src/Tools/isac/Knowledge/LinEq.thy
author Walther Neuper <neuper@ist.tugraz.at>
Wed, 25 Aug 2010 16:20:07 +0200
branchisac-update-Isa09-2
changeset 37947 22235e4dbe5f
parent 37906 src/Tools/isac/IsacKnowledge/LinEq.thy@e2b23ba9df13
child 37950 525a28152a67
permissions -rw-r--r--
renamed isac's directories and Build_Isac.thy

Scripts --> ProgLang
ME --> Interpret
IsacKnowledge --> Knowledge
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