src/Tools/isac/IsacKnowledge/Test.thy
branchisac-update-Isa09-2
changeset 37947 22235e4dbe5f
parent 37946 a28b5fc129b7
child 37948 ed85f172569c
     1.1 --- a/src/Tools/isac/IsacKnowledge/Test.thy	Wed Aug 25 15:15:01 2010 +0200
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,169 +0,0 @@
     1.4 -(* use_thy"IsacKnowledge/Test";
     1.5 -   *) 
     1.6 -
     1.7 -Test = Atools + Rational + Root + Poly + 
     1.8 - 
     1.9 -consts
    1.10 -
    1.11 -(*"cancel":: [real, real] => real    (infixl "'/'/'/" 70) ...divide 2002*)
    1.12 -
    1.13 -  Expand'_binomtest
    1.14 -             :: "['y, \
    1.15 -		  \ 'y] => 'y"
    1.16 -               ("((Script Expand'_binomtest (_ =))// \
    1.17 -                 \ (_))" 9)
    1.18 -
    1.19 -  Solve'_univar'_err
    1.20 -             :: "[bool,real,bool, \
    1.21 -		  \ bool list] => bool list"
    1.22 -               ("((Script Solve'_univar'_err (_ _ _ =))// \
    1.23 -                 \ (_))" 9)
    1.24 -  
    1.25 -  Solve'_linear
    1.26 -             :: "[bool,real, \
    1.27 -		  \ bool list] => bool list"
    1.28 -               ("((Script Solve'_linear (_ _ =))// \
    1.29 -                 \ (_))" 9)
    1.30 -
    1.31 -(*17.9.02 aus SqRoot.thy------------------------------vvv---*)
    1.32 -
    1.33 -  "is'_root'_free" :: 'a => bool           ("is'_root'_free _" 10)
    1.34 -  "contains'_root" :: 'a => bool           ("contains'_root _" 10)
    1.35 -
    1.36 -  Solve'_root'_equation 
    1.37 -             :: "[bool,real, \
    1.38 -		  \ bool list] => bool list"
    1.39 -               ("((Script Solve'_root'_equation (_ _ =))// \
    1.40 -                 \ (_))" 9)
    1.41 -
    1.42 -  Solve'_plain'_square 
    1.43 -             :: "[bool,real, \
    1.44 -		  \ bool list] => bool list"
    1.45 -               ("((Script Solve'_plain'_square (_ _ =))// \
    1.46 -                 \ (_))" 9)
    1.47 -
    1.48 -  Norm'_univar'_equation 
    1.49 -             :: "[bool,real, \
    1.50 -		  \ bool] => bool"
    1.51 -               ("((Script Norm'_univar'_equation (_ _ =))// \
    1.52 -                 \ (_))" 9)
    1.53 -
    1.54 -  STest'_simplify
    1.55 -             :: "['z, \
    1.56 -		  \ 'z] => 'z"
    1.57 -               ("((Script STest'_simplify (_ =))// \
    1.58 -                 \ (_))" 9)
    1.59 -
    1.60 -(*17.9.02 aus SqRoot.thy------------------------------^^^---*)  
    1.61 -
    1.62 -rules (*stated as axioms, todo: prove as theorems*)
    1.63 -
    1.64 -  radd_mult_distrib2      "(k::real) * (m + n) = k * m + k * n"
    1.65 -  rdistr_right_assoc      "(k::real) + l * n + m * n = k + (l + m) * n"
    1.66 -  rdistr_right_assoc_p    "l * n + (m * n + (k::real)) = (l + m) * n + k"
    1.67 -  rdistr_div_right        "((k::real) + l) / n = k / n + l / n"
    1.68 -  rcollect_right
    1.69 -          "[| l is_const; m is_const |] ==> (l::real)*n + m*n = (l + m) * n"
    1.70 -  rcollect_one_left
    1.71 -          "m is_const ==> (n::real) + m * n = (1 + m) * n"
    1.72 -  rcollect_one_left_assoc
    1.73 -          "m is_const ==> (k::real) + n + m * n = k + (1 + m) * n"
    1.74 -  rcollect_one_left_assoc_p
    1.75 -          "m is_const ==> n + (m * n + (k::real)) = (1 + m) * n + k"
    1.76 -
    1.77 -  rtwo_of_the_same        "a + a = 2 * a"
    1.78 -  rtwo_of_the_same_assoc  "(x + a) + a = x + 2 * a"
    1.79 -  rtwo_of_the_same_assoc_p"a + (a + x) = 2 * a + x"
    1.80 -
    1.81 -  rcancel_den             "not(a=0) ==> a * (b / a) = b"
    1.82 -  rcancel_const           "[| a is_const; b is_const |] ==> a*(x/b) = a/b*x"
    1.83 -  rshift_nominator        "(a::real) * b / c = a / c * b"
    1.84 -
    1.85 -  exp_pow                 "(a ^^^ b) ^^^ c = a ^^^ (b * c)"
    1.86 -  rsqare                  "(a::real) * a = a ^^^ 2"
    1.87 -  power_1                 "(a::real) ^^^ 1 = a"
    1.88 -  rbinom_power_2          "((a::real) + b)^^^ 2 = a^^^ 2 + 2*a*b + b^^^ 2"
    1.89 -
    1.90 -  rmult_1                 "1 * k = (k::real)"
    1.91 -  rmult_1_right           "k * 1 = (k::real)"
    1.92 -  rmult_0                 "0 * k = (0::real)"
    1.93 -  rmult_0_right           "k * 0 = (0::real)"
    1.94 -  radd_0                  "0 + k = (k::real)"
    1.95 -  radd_0_right            "k + 0 = (k::real)"
    1.96 -
    1.97 -  radd_real_const_eq
    1.98 -          "[| a is_const; c is_const; d is_const |] ==> a/d + c/d = (a+c)/(d::real)"
    1.99 -  radd_real_const
   1.100 -          "[| a is_const; b is_const; c is_const; d is_const |] ==> a/b + c/d = (a*d + b*c)/(b*(d::real))"  
   1.101 -  
   1.102 -(*for AC-operators*)
   1.103 -  radd_commute            "(m::real) + (n::real) = n + m"
   1.104 -  radd_left_commute       "(x::real) + (y + z) = y + (x + z)"
   1.105 -  radd_assoc              "(m::real) + n + k = m + (n + k)"
   1.106 -  rmult_commute           "(m::real) * n = n * m"
   1.107 -  rmult_left_commute      "(x::real) * (y * z) = y * (x * z)"
   1.108 -  rmult_assoc             "(m::real) * n * k = m * (n * k)"
   1.109 -
   1.110 -(*for equations: 'bdv' is a meta-constant*)
   1.111 -  risolate_bdv_add       "((k::real) + bdv = m) = (bdv = m + (-1)*k)"
   1.112 -  risolate_bdv_mult_add  "((k::real) + n*bdv = m) = (n*bdv = m + (-1)*k)"
   1.113 -  risolate_bdv_mult      "((n::real) * bdv = m) = (bdv = m / n)"
   1.114 -
   1.115 -  rnorm_equation_add
   1.116 -      "~(b =!= 0) ==> (a = b) = (a + (-1)*b = 0)"
   1.117 -
   1.118 -(*17.9.02 aus SqRoot.thy------------------------------vvv---*) 
   1.119 -  root_ge0            "0 <= a ==> 0 <= sqrt a"
   1.120 -  (*should be dropped with better simplification in eval_rls ...*)
   1.121 -  root_add_ge0
   1.122 -	"[| 0 <= a; 0 <= b |] ==> (0 <= sqrt a + sqrt b) = True"
   1.123 -  root_ge0_1
   1.124 -	"[| 0<=a; 0<=b; 0<=c |] ==> (0 <= a * sqrt b + sqrt c) = True"
   1.125 -  root_ge0_2
   1.126 -	"[| 0<=a; 0<=b; 0<=c |] ==> (0 <= sqrt a + b * sqrt c) = True"
   1.127 -
   1.128 -
   1.129 -  rroot_square_inv         "(sqrt a)^^^ 2 = a"
   1.130 -  rroot_times_root         "sqrt a * sqrt b = sqrt(a*b)"
   1.131 -  rroot_times_root_assoc   "(a * sqrt b) * sqrt c = a * sqrt(b*c)"
   1.132 -  rroot_times_root_assoc_p "sqrt b * (sqrt c * a)= sqrt(b*c) * a"
   1.133 -
   1.134 -
   1.135 -(*for root-equations*)
   1.136 -  square_equation_left
   1.137 -          "[| 0 <= a; 0 <= b |] ==> (((sqrt a)=b)=(a=(b^^^ 2)))"
   1.138 -  square_equation_right
   1.139 -          "[| 0 <= a; 0 <= b |] ==> ((a=(sqrt b))=((a^^^ 2)=b))"
   1.140 -  (*causes frequently non-termination:*)
   1.141 -  square_equation  
   1.142 -          "[| 0 <= a; 0 <= b |] ==> ((a=b)=((a^^^ 2)=b^^^ 2))"
   1.143 -  
   1.144 -  risolate_root_add        "(a+  sqrt c = d) = (  sqrt c = d + (-1)*a)"
   1.145 -  risolate_root_mult       "(a+b*sqrt c = d) = (b*sqrt c = d + (-1)*a)"
   1.146 -  risolate_root_div        "(a * sqrt c = d) = (  sqrt c = d / a)"
   1.147 -
   1.148 -(*for polynomial equations of degree 2; linear case in RatArith*)
   1.149 -  mult_square		"(a*bdv^^^2 = b) = (bdv^^^2 = b / a)"
   1.150 -  constant_square       "(a + bdv^^^2 = b) = (bdv^^^2 = b + -1*a)"
   1.151 -  constant_mult_square  "(a + b*bdv^^^2 = c) = (b*bdv^^^2 = c + -1*a)"
   1.152 -
   1.153 -  square_equality 
   1.154 -	     "0 <= a ==> (x^^^2 = a) = ((x=sqrt a) | (x=-1*sqrt a))"
   1.155 -  square_equality_0
   1.156 -	     "(x^^^2 = 0) = (x = 0)"
   1.157 -
   1.158 -(*isolate root on the LEFT hand side of the equation
   1.159 -  otherwise shuffling from left to right would not terminate*)  
   1.160 -
   1.161 -  rroot_to_lhs
   1.162 -          "is_root_free a ==> (a = sqrt b) = (a + (-1)*sqrt b = 0)"
   1.163 -  rroot_to_lhs_mult
   1.164 -          "is_root_free a ==> (a = c*sqrt b) = (a + (-1)*c*sqrt b = 0)"
   1.165 -  rroot_to_lhs_add_mult
   1.166 -          "is_root_free a ==> (a = d+c*sqrt b) = (a + (-1)*c*sqrt b = d)"
   1.167 -
   1.168 - 
   1.169 -(*17.9.02 aus SqRoot.thy------------------------------^^^---*)  
   1.170 -
   1.171 -
   1.172 -end