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