author | Walther Neuper <neuper@ist.tugraz.at> |
Wed, 25 Aug 2010 16:20:07 +0200 | |
branch | isac-update-Isa09-2 |
changeset 37947 | 22235e4dbe5f |
parent 37906 | src/Tools/isac/IsacKnowledge/RatEq.thy@e2b23ba9df13 |
child 37954 | 4022d670753c |
permissions | -rw-r--r-- |
neuper@37906 | 1 |
(*.(c) by Richard Lang, 2003 .*) |
neuper@37906 | 2 |
(* theory collecting all knowledge for RationalEquations |
neuper@37906 | 3 |
created by: rlang |
neuper@37906 | 4 |
date: 02.08.12 |
neuper@37906 | 5 |
changed by: rlang |
neuper@37906 | 6 |
last change by: rlang |
neuper@37906 | 7 |
date: 02.11.28 |
neuper@37906 | 8 |
*) |
neuper@37906 | 9 |
|
neuper@37906 | 10 |
(* |
neuper@37906 | 11 |
RL.020812 |
neuper@37906 | 12 |
use_thy"knowledge/RatEq"; |
neuper@37906 | 13 |
use_thy"RatEq"; |
neuper@37906 | 14 |
use_thy_only"RatEq"; |
neuper@37906 | 15 |
|
neuper@37906 | 16 |
remove_thy"RatEq"; |
neuper@37906 | 17 |
use_thy"Isac"; |
neuper@37906 | 18 |
|
neuper@37906 | 19 |
use"ROOT.ML"; |
neuper@37906 | 20 |
cd"knowledge"; |
neuper@37906 | 21 |
*) |
neuper@37906 | 22 |
RatEq = Rational + |
neuper@37906 | 23 |
|
neuper@37906 | 24 |
(*-------------------- consts------------------------------------------------*) |
neuper@37906 | 25 |
consts |
neuper@37906 | 26 |
|
neuper@37906 | 27 |
is'_ratequation'_in :: "[bool, real] => bool" ("_ is'_ratequation'_in _") |
neuper@37906 | 28 |
|
neuper@37906 | 29 |
(*----------------------scripts-----------------------*) |
neuper@37906 | 30 |
Solve'_rat'_equation |
neuper@37906 | 31 |
:: "[bool,real, \ |
neuper@37906 | 32 |
\ bool list] => bool list" |
neuper@37906 | 33 |
("((Script Solve'_rat'_equation (_ _ =))// \ |
neuper@37906 | 34 |
\ (_))" 9) |
neuper@37906 | 35 |
|
neuper@37906 | 36 |
(*-------------------- rules------------------------------------------------*) |
neuper@37906 | 37 |
rules |
neuper@37906 | 38 |
(* FIXME also in Poly.thy def. --> FIXED*) |
neuper@37906 | 39 |
(*real_diff_minus |
neuper@37906 | 40 |
"a - b = a + (-1) * b"*) |
neuper@37906 | 41 |
real_rat_mult_1 |
neuper@37906 | 42 |
"a*(b/c) = (a*b)/c" |
neuper@37906 | 43 |
real_rat_mult_2 |
neuper@37906 | 44 |
"(a/b)*(c/d) = (a*c)/(b*d)" |
neuper@37906 | 45 |
real_rat_mult_3 |
neuper@37906 | 46 |
"(a/b)*c = (a*c)/b" |
neuper@37906 | 47 |
real_rat_pow |
neuper@37906 | 48 |
"(a/b)^^^2 = a^^^2/b^^^2" |
neuper@37906 | 49 |
|
neuper@37906 | 50 |
rat_double_rat_1 |
neuper@37906 | 51 |
"[|Not(c=0); Not(d=0)|] ==> (a / (c/d) = (a*d) / c)" |
neuper@37906 | 52 |
rat_double_rat_2 |
neuper@37906 | 53 |
"[|Not(b=0);Not(c=0); Not(d=0)|] ==> ((a/b) / (c/d) = (a*d) / (b*c))" |
neuper@37906 | 54 |
rat_double_rat_3 |
neuper@37906 | 55 |
"[|Not(b=0);Not(c=0)|] ==> ((a/b) / c = a / (b*c))" |
neuper@37906 | 56 |
|
neuper@37906 | 57 |
|
neuper@37906 | 58 |
(* equation to same denominator *) |
neuper@37906 | 59 |
rat_mult_denominator_both |
neuper@37906 | 60 |
"[|Not(b=0); Not(d=0)|] ==> ((a::real) / b = c / d) = (a*d = c*b)" |
neuper@37906 | 61 |
rat_mult_denominator_left |
neuper@37906 | 62 |
"[|Not(d=0)|] ==> ((a::real) = c / d) = (a*d = c)" |
neuper@37906 | 63 |
rat_mult_denominator_right |
neuper@37906 | 64 |
"[|Not(b=0)|] ==> ((a::real) / b = c) = (a = c*b)" |
neuper@37906 | 65 |
|
neuper@37906 | 66 |
|
neuper@37906 | 67 |
end |