test/Tools/isac/thms-survey-Isa02-Isa09-2.sml
author Walther Neuper <neuper@ist.tugraz.at>
Tue, 13 Mar 2012 15:04:09 +0100
changeset 42390 96174a374a7a
parent 42387 767debe8a50c
child 42399 c5bb245afb58
permissions -rw-r--r--
uncomment test/../ptyps.sml (Isabelle 2002 --> 2011)

jumped from incomplete test/../equsystem.sml to above
ATTENTION: in 1st go Test_Isac.thy had errors in ctree, and 2 other files?!?
neuper@42385
     1
WN110726 see ~/devel/isac/isac-10/isa2009-2/thms-replace-Isa02-Isa09-2.sml
neuper@42390
     2
-----------------------------------------------------------------------------------------------------------------
neuper@42390
     3
find_theorems: in emacs 
neuper@42390
     4
(999) name : 
neuper@42390
     5
(999) simp : "?a * (?b + ?c)"
neuper@42390
     6
Tobias Nipkow 'searched for' ...  "_ + _ + _ = _ + (_ + _)"
neuper@42390
     7
-----------------------------------------------------------------------------------------------------------------
neuper@42390
     8
neuper@42390
     9
(1) ======================================================================= + ===========
neuper@42385
    10
    Isabelle2002-isac                                                       Isabelle2009-2
neuper@42385
    11
                                                                            ok
neuper@42385
    12
                                                                            \ to be checked
neuper@42385
    13
                                                                            \? still misterious
neuper@42385
    14
                                                                            # better would be the  *_class.*(n)
neuper@42385
    15
                                                                            // no rule outside  *_class.*(n)
neuper@42385
    16
> rlsthmsNOTisac;
neuper@42385
    17
val it =
neuper@42385
    18
   [("refl", "?t = ?t"),                                                    HOL.refl
neuper@42385
    19
    ("o_apply", "(?f o ?g) ?x = ?f (?g ?x)"),                               Fun.o_apply
neuper@42385
    20
    ("take_Nil", "take ?n [] = []"),                                        List.take_Nil
neuper@42385
    21
    ("take_Cons",                                                           List.take_Cons
neuper@42385
    22
     "take ?n (?x # ?xs) =                                                  
neuper@42385
    23
      (case ?n of 0 => [] | Suc m => ?x # take m ?xs)"),                    
neuper@42385
    24
    ("if_True", "(if True then ?x else ?y) = ?x"),                          HOL.if_True
neuper@42385
    25
-----------------------------------------------------------------------------------------------------------------
neuper@42385
    26
    ("if_False", "(if False then ?x else ?y) = ?y"),                        HOL.if_False
neuper@42385
    27
    ("sym_real_mult_minus1", "- ?z1 = -1 * ?z1"  [.]),                      \???
neuper@42385
    28
    ("real_add_mult_distrib",                                               Rings.semiring_class.left_distrib
neuper@42385
    29
     "(?z1.0 + ?z2.0) * ?w = ?z1.0 * ?w + ?z2.0 * ?w"),                     
neuper@42385
    30
    ("real_add_mult_distrib2",                                              Rings.semiring_class.right_distrib
neuper@42385
    31
     "?w * (?z1.0 + ?z2.0) = ?w * ?z1.0 + ?w * ?z2.0"),                     
neuper@42385
    32
    ("sym_realpow_twoI", "?r1 * ?r1 = ?r1 ^^^ 2"  [.]),                     !^!Semiring_Normalization.comm_semiring_1_class.normalizing_semiring_rules(29)
neuper@42385
    33
-----------------------------------------------------------------------------------------------------------------
neuper@42385
    34
    ("sym_realpow_addI",                                                    !^!Semiring_Normalization.comm_semiring_1_class.normalizing_semiring_rules(26)
neuper@42385
    35
     "?r1 ^^^ ?n1 * ?r1 ^^^ ?m1 = ?r1 ^^^ (?n1 + ?m1)"  [.]),               
neuper@42385
    36
    ("real_mult_1_right", "?z * 1 = ?z"),                                   Groups.monoid_mult_class.mult_1_right
neuper@42385
    37
    ("sym_real_mult_2", "?z1 + ?z1 = 2 * ?z1"  [.]),                        #!^! Semiring_Normalization.comm_semiring_1_class.normalizing_semiring_rules(4): ?m + ?m = ((1::?'a) + (1::?'a)) * ?m
neuper@42385
    38
     -''-                                                                   //
neuper@42385
    39
    ("real_mult_1", "1 * ?z = ?z"),                                         Groups.monoid_mult_class.mult_1_left
neuper@42385
    40
    ("real_mult_0", "0 * ?z = 0"),                                          Rings.mult_zero_class.mult_zero_left
neuper@42385
    41
-----------------------------------------------------------------------------------------------------------------
neuper@42385
    42
    ("real_mult_0_right", "?z * 0 = 0"),                                    Rings.mult_zero_class.mult_zero_right
neuper@42385
    43
    ("real_add_zero_left", "0 + ?z = ?z"),                                  Groups.monoid_add_class.add_0_left
neuper@42385
    44
    ("real_add_zero_right", "?z + 0 = ?z"),                                 Groups.monoid_add_class.add_0_right
neuper@42385
    45
    ("real_0_divide", "0 / ?x = 0"),                                        Rings.division_ring_class.divide_zero_left
neuper@42385
    46
    ("sym_real_mult_assoc",                                                 # Semiring_Normalization.comm_semiring_1_class.normalizing_semiring_rules(18) + see sym_rmult_assoc
neuper@42385
    47
     -''-                                                                   //
neuper@42385
    48
     "?z1.1 * (?z2.1 * ?z3.1) = ?z1.1 * ?z2.1 * ?z3.1"  [.]),               
neuper@42385
    49
-----------------------------------------------------------------------------------------------------------------
neuper@42385
    50
    ("le_refl", "?n <= ?n"),                                                RealDef.real_le_refl
neuper@42385
    51
    ("real_minus_minus", "- (- ?z) = ?z"),                                  Groups.group_add_class.minus_minus
neuper@42385
    52
    ("real_mult_commute", "?z * ?w = ?w * ?z"),                             RealDef.real_mult_commute
neuper@42385
    53
    ("real_mult_left_commute",                                              # Semiring_Normalization.comm_semiring_1_class.normalizing_semiring_rules(19)
neuper@42385
    54
     "?z1.0 * (?z2.0 * ?z3.0) = ?z2.0 * (?z1.0 * ?z3.0)"),                  
neuper@42385
    55
     -''-                                                                   //
neuper@42385
    56
    ("real_mult_assoc", "?z1.0 * ?z2.0 * ?z3.0 = ?z1.0 * (?z2.0 * ?z3.0)"), RealDef.real_mult_assoc
neuper@42385
    57
-----------------------------------------------------------------------------------------------------------------
neuper@42385
    58
    ("real_add_commute", "?z + ?w = ?w + ?z"),                              Groups.ab_semigroup_add_class.add_commute
neuper@42385
    59
    ("real_add_left_commute", "?x + (?y + ?z) = ?y + (?x + ?z)"),           Groups.ab_semigroup_add_class.add_left_commute
neuper@42385
    60
    ("real_add_assoc", "?z1.0 + ?z2.0 + ?z3.0 = ?z1.0 + (?z2.0 + ?z3.0)"),  Groups.semigroup_add_class.add_assoc
neuper@42385
    61
    ("sym_real_mult_minus_eq1", "- (?x1 * ?y1) = - ?x1 * ?y1"  [.]),        Rings.ring_class.minus_mult_left
neuper@42385
    62
    ("real_add_minus", "?z + - ?z = 0"),                                    Groups.group_add_class.right_minus
neuper@42385
    63
-----------------------------------------------------------------------------------------------------------------
neuper@42385
    64
    ("sym_real_add_assoc",                                                  # Semiring_Normalization.comm_semiring_1_class.normalizing_semiring_rules(25) + see sym_radd_assoc
neuper@42385
    65
     "?z1.1 + (?z2.1 + ?z3.1) = ?z1.1 + ?z2.1 + ?z3.1"  [.]),               
neuper@42385
    66
     -''-                                                                   //
neuper@42385
    67
    ("sym_real_minus_divide_eq", "- (?x1 / ?y1) = - ?x1 / ?y1"  [.]),       Rings.division_ring_class.minus_divide_left
neuper@42385
    68
    ("real_times_divide1_eq", "?x * (?y / ?z) = ?x * ?y / ?z"),             # Fields.field_class.times_divide_eq(1)
neuper@42385
    69
     -''-                                                                   ! Rings.division_ring_class.times_divide_eq_right
neuper@42385
    70
    ("real_times_divide2_eq", "?y / ?z * ?x = ?y * ?x / ?z"),               Fields.field_class.times_divide_eq_left
neuper@42385
    71
    ("real_divide_divide2_eq", "?x / ?y / ?z = ?x / (?y * ?z)"),            Fields.field_inverse_zero_class.divide_divide_eq_left
neuper@42385
    72
-----------------------------------------------------------------------------------------------------------------
neuper@42385
    73
    ("real_divide_divide1_eq", "?x / (?y / ?z) = ?x * ?z / ?y"),            Fields.field_inverse_zero_class.divide_divide_eq_right
neuper@42385
    74
    ("real_divide_1", "?x / 1 = ?x"),                                       Rings.division_ring_class.divide_1
neuper@42385
    75
    ("real_diff_mult_distrib",                                              Rings.ring_class.left_diff_distrib
neuper@42385
    76
     "(?z1.0 - ?z2.0) * ?w = ?z1.0 * ?w - ?z2.0 * ?w"),                     
neuper@42385
    77
    ("real_diff_mult_distrib2",                                             Rings.ring_class.right_diff_distrib
neuper@42385
    78
     "?w * (?z1.0 - ?z2.0) = ?w * ?z1.0 - ?w * ?z2.0"),                     
neuper@42385
    79
    ("real_add_divide_distrib", "(?x + ?y) / ?z = ?x / ?z + ?y / ?z"),      Rings.division_ring_class.add_divide_distrib
neuper@42385
    80
-----------------------------------------------------------------------------------------------------------------
neuper@42385
    81
    ("sym_radd_assoc", "?m1 + (?n1 + ?k1) = ?m1 + ?n1 + ?k1"  [.]),         + see sym_real_add_assoc
neuper@42385
    82
    ("sym_rmult_assoc", "?m1 * (?n1 * ?k1) = ?m1 * ?n1 * ?k1"  [.])]        + see sym_real_mult_assoc
neuper@42385
    83
: (thmID * Thm.thm) list
neuper@42390
    84
neuper@42390
    85
neuper@42390
    86
(2) ===== thms in Scripts: ================================================ + ===========
neuper@42385
    87
     "real_divide_minus1", "?x / -1 = - ?x"                                 Int.divide_minus1
neuper@42387
    88
     "real_minus_eq_cancel", "(- ?a = - ?b) = (?a = ?b)"                    Groups.group_add_class.neg_equal_iff_equal: 
neuper@42385
    89
neuper@42385
    90
                                  "_ + (_ + (_::nat)) = _ + _ + _"
neuper@42385
    91
neuper@42390
    92
(3) ===== list funs: ====================================================== + ===========
neuper@42390
    93
    nth_Nil_                                                                NTH_NIL
neuper@42390
    94
    nth_Cons_                                                               NTH_CONS
neuper@42385
    95
neuper@42390
    96
    length_Nil_                                                             LENGTH_NIL
neuper@42390
    97
    length_Cons_                                                            LENGTH_CONS
neuper@42390
    98
neuper@42390
    99
    tl_Nil_                                                                 tl_Nil_
neuper@42390
   100
    tl_Cons_                                                                tl_Cons_