src/Tools/isac/Knowledge/Base_Tools.thy
changeset 60273 f15995595411
parent 60149 f01072d28542
child 60274 5b1cd0f93d8b
     1.1 --- a/src/Tools/isac/Knowledge/Base_Tools.thy	Thu Apr 29 17:08:38 2021 +0200
     1.2 +++ b/src/Tools/isac/Knowledge/Base_Tools.thy	Sun May 02 13:13:44 2021 +0200
     1.3 @@ -5,19 +5,20 @@
     1.4                        (*  ^^^ for KEStore_Elems.add_thes *)
     1.5  begin
     1.6  subsection \<open>theorems for Base_Tools\<close>
     1.7 +
     1.8 +lemma real_unari_minus:   "- a = (-1) * (a::real)" by auto
     1.9 +(*Semiring_Normalization.comm_ring_1_class.ring_normalization_rules(1)*)
    1.10 +
    1.11 +(* should be in Rational.thy, but needed for asms in e.g. d2_pqformula1 in PolyEq, RootEq... *)
    1.12 +lemma radd_left_cancel_le: "((k::real) + m <= k + n) = (m <= n)" by auto
    1.13 +(*Groups.ordered_ab_semigroup_add_imp_le_class.add_le_cancel_left*)
    1.14 +
    1.15  axiomatization where (*for evaluating the assumptions of conditional rules*)
    1.16 +  (* should be in Rational.thy, but needed for asms in e.g. d2_pqformula1 in PolyEq, RootEq... *)
    1.17 +  rat_leq1: "[| 0 \<noteq> b; 0 \<noteq> d |] ==> (a / b <= c / d) = (a * d <= b * c)"(*Quickcheck found a counterexample*) and
    1.18 +  rat_leq2:	          "0 \<noteq> d    ==> (a     <= c / d) = (a * d <=     c)" (*Quickcheck found a counterexample*) and
    1.19 +  rat_leq3:	   "0 \<noteq> b           ==> (a / b <= c    ) = (a     <= b * c)" (*Quickcheck found a counterexample*)
    1.20  
    1.21 -(*last_thmI:	        "lastI (x#xs) = (if xs =!= [] then x else lastI xs)" and*)
    1.22 -  real_unari_minus:   "- a = (-1) * a" and
    1.23 -  radd_left_cancel_le:"((k::real) + m <= k + n) = (m <= n)" and
    1.24 -  (* should be in Rational.thy, but: 
    1.25 -   needed for asms in e.g. d2_pqformula1 in PolyEq.ML, RootEq.ML...*)
    1.26 -  rat_leq1:	      "[| b ~= 0; d ~= 0 |] ==>
    1.27 -		       ((a / b) <= (c / d)) = ((a*d) <= (b*c))"(*Isa?*) and
    1.28 -  rat_leq2:	      "d ~= 0 ==>
    1.29 -		       ( a      <= (c / d)) = ((a*d) <=    c )"(*Isa?*) and
    1.30 -  rat_leq3:	      "b ~= 0 ==>
    1.31 -		       ((a / b) <=  c     ) = ( a    <= (b*c))"(*Isa?*)
    1.32  
    1.33  subsection \<open>setup for ML-functions\<close>
    1.34  text \<open>required by "eval_binop" below\<close>