equal
deleted
inserted
replaced
41 (* composition of two theorems, used in maps *) |
41 (* composition of two theorems, used in maps *) |
42 fun OF1 thm1 thm2 = thm2 RS thm1 |
42 fun OF1 thm1 thm2 = thm2 RS thm1 |
43 |
43 |
44 fun atomize_thm thm = |
44 fun atomize_thm thm = |
45 let |
45 let |
46 val thm' = Thm.legacy_freezeT (forall_intr_vars thm) (* FIXME/TODO: is this proper Isar-technology? *) |
46 val thm' = Thm.legacy_freezeT (forall_intr_vars thm) (* FIXME/TODO: is this proper Isar-technology? no! *) |
47 val thm'' = Object_Logic.atomize (cprop_of thm') |
47 val thm'' = Object_Logic.atomize (cprop_of thm') |
48 in |
48 in |
49 @{thm equal_elim_rule1} OF [thm'', thm'] |
49 @{thm equal_elim_rule1} OF [thm'', thm'] |
50 end |
50 end |
51 |
51 |