src/Tools/isac/Knowledge/Root.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/Root.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
(* theory collecting all knowledge for Root
neuper@37906
     2
   created by: 
neuper@37906
     3
         date: 
neuper@37906
     4
   changed by: rlang
neuper@37906
     5
   last change by: rlang
neuper@37906
     6
             date: 02.10.21
neuper@37906
     7
*)
neuper@37906
     8
neuper@37947
     9
(* use_thy_only"Knowledge/Root";
neuper@37906
    10
   remove_thy"Root";
neuper@37947
    11
   use_thy"Knowledge/Isac";
neuper@37906
    12
*)
neuper@37906
    13
Root = Simplify + 
neuper@37906
    14
neuper@37906
    15
(*-------------------- consts------------------------------------------------*)
neuper@37906
    16
consts
neuper@37906
    17
neuper@37906
    18
  sqrt             :: "real => real"         (*"(sqrt _ )" [80] 80*)
neuper@37906
    19
  nroot            :: "[real, real] => real"
neuper@37906
    20
neuper@37906
    21
(*----------------------scripts-----------------------*)
neuper@37906
    22
neuper@37906
    23
(*-------------------- rules------------------------------------------------*)
neuper@37906
    24
rules (*.not contained in Isabelle2002,
neuper@37906
    25
         stated as axioms, TODO: prove as theorems;
neuper@37906
    26
         theorem-IDs 'xxxI' with ^^^ instead of ^ in 'xxx' in Isabelle2002.*)
neuper@37906
    27
neuper@37906
    28
  root_plus_minus       "0 <= b ==> \
neuper@37906
    29
			\(a^^^2 = b) = ((a = sqrt b) | (a = (-1)*sqrt b))"
neuper@37906
    30
  root_false		"b < 0 ==> (a^^^2 = b) = False"
neuper@37906
    31
neuper@37906
    32
 (* for expand_rootbinom *)
neuper@37906
    33
  real_pp_binom_times        "(a + b)*(c + d) = a*c + a*d + b*c + b*d"
neuper@37906
    34
  real_pm_binom_times        "(a + b)*(c - d) = a*c - a*d + b*c - b*d"
neuper@37906
    35
  real_mp_binom_times        "(a - b)*(c + d) = a*c + a*d - b*c - b*d"
neuper@37906
    36
  real_mm_binom_times        "(a - b)*(c - d) = a*c - a*d - b*c + b*d"
neuper@37906
    37
  real_plus_binom_pow3       "(a + b)^^^3 = a^^^3 + 3*a^^^2*b + 3*a*b^^^2 + b^^^3"
neuper@37906
    38
  real_minus_binom_pow3      "(a - b)^^^3 = a^^^3 - 3*a^^^2*b + 3*a*b^^^2 - b^^^3"
neuper@37906
    39
  realpow_mul                "(a*b)^^^n = a^^^n * b^^^n"
neuper@37906
    40
neuper@37906
    41
  real_diff_minus            "a - b = a + (-1) * b"
neuper@37906
    42
  real_plus_binom_times      "(a + b)*(a + b) = a^^^2 + 2*a*b + b^^^2"
neuper@37906
    43
  real_minus_binom_times     "(a - b)*(a - b) = a^^^2 - 2*a*b + b^^^2"
neuper@37906
    44
  real_plus_binom_pow2       "(a + b)^^^2 = a^^^2 + 2*a*b + b^^^2"
neuper@37906
    45
  real_minus_binom_pow2      "(a - b)^^^2 = a^^^2 - 2*a*b + b^^^2"
neuper@37906
    46
  real_plus_minus_binom1     "(a + b)*(a - b) = a^^^2 - b^^^2"
neuper@37906
    47
  real_plus_minus_binom2     "(a - b)*(a + b) = a^^^2 - b^^^2"
neuper@37906
    48
neuper@37906
    49
  real_root_positive     "0 <= a ==> (x ^^^ 2 = a) = (x = sqrt a)"
neuper@37906
    50
  real_root_negative     "a <  0 ==> (x ^^^ 2 = a) = False"
neuper@37906
    51
neuper@37906
    52
      
neuper@37906
    53
end