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/LinEq.thy@e2b23ba9df13 |
child 37950 | 525a28152a67 |
permissions | -rw-r--r-- |
neuper@37906 | 1 |
(*. (c) by Richard Lang, 2003 .*) |
neuper@37906 | 2 |
(* theory collecting all knowledge for LinearEquations |
neuper@37906 | 3 |
created by: rlang |
neuper@37906 | 4 |
date: 02.10 |
neuper@37906 | 5 |
changed by: rlang |
neuper@37906 | 6 |
last change by: rlang |
neuper@37906 | 7 |
date: 02.10.20 |
neuper@37906 | 8 |
*) |
neuper@37906 | 9 |
|
neuper@37906 | 10 |
(* |
neuper@37906 | 11 |
use"knowledge/LinEq.ML"; |
neuper@37906 | 12 |
use"LinEq.ML"; |
neuper@37906 | 13 |
|
neuper@37906 | 14 |
use"ROOT.ML"; |
neuper@37906 | 15 |
cd"knowledge"; |
neuper@37906 | 16 |
|
neuper@37906 | 17 |
*) |
neuper@37906 | 18 |
|
neuper@37906 | 19 |
LinEq = Poly + Equation + |
neuper@37906 | 20 |
|
neuper@37906 | 21 |
(*-------------------- consts------------------------------------------------*) |
neuper@37906 | 22 |
consts |
neuper@37906 | 23 |
Solve'_lineq'_equation |
neuper@37906 | 24 |
:: "[bool,real, \ |
neuper@37906 | 25 |
\ bool list] => bool list" |
neuper@37906 | 26 |
("((Script Solve'_lineq'_equation (_ _ =))// \ |
neuper@37906 | 27 |
\ (_))" 9) |
neuper@37906 | 28 |
|
neuper@37906 | 29 |
(*-------------------- rules -------------------------------------------------*) |
neuper@37906 | 30 |
rules |
neuper@37906 | 31 |
(*-- normalize --*) |
neuper@37906 | 32 |
(*WN0509 compare PolyEq.all_left "[|Not(b=!=0)|] ==> (a = b) = (a - b = 0)"*) |
neuper@37906 | 33 |
all_left |
neuper@37906 | 34 |
"[|Not(b=!=0)|] ==> (a=b) = (a+(-1)*b=0)" |
neuper@37906 | 35 |
makex1_x |
neuper@37906 | 36 |
"a^^^1 = a" |
neuper@37906 | 37 |
real_assoc_1 |
neuper@37906 | 38 |
"a+(b+c) = a+b+c" |
neuper@37906 | 39 |
real_assoc_2 |
neuper@37906 | 40 |
"a*(b*c) = a*b*c" |
neuper@37906 | 41 |
|
neuper@37906 | 42 |
(*-- solve --*) |
neuper@37906 | 43 |
lin_isolate_add1 |
neuper@37906 | 44 |
"(a + b*bdv = 0) = (b*bdv = (-1)*a)" |
neuper@37906 | 45 |
lin_isolate_add2 |
neuper@37906 | 46 |
"(a + bdv = 0) = ( bdv = (-1)*a)" |
neuper@37906 | 47 |
lin_isolate_div |
neuper@37906 | 48 |
"[|Not(b=0)|] ==> (b*bdv = c) = (bdv = c / b)" |
neuper@37906 | 49 |
end |
neuper@37906 | 50 |