src/Tools/isac/Knowledge/RatEq.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/RatEq.thy@e2b23ba9df13
child 37954 4022d670753c
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 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