equal
deleted
inserted
replaced
100 |
100 |
101 |
101 |
102 fun intr tha thb = |
102 fun intr tha thb = |
103 Thm.implies_elim |
103 Thm.implies_elim |
104 (Thm.implies_elim |
104 (Thm.implies_elim |
105 (Thm.instantiate ([], [(vA, Thm.cprop_of tha), (vB, Thm.cprop_of thb)]) conjunctionI) |
105 (Thm.instantiate (TVars.empty, Vars.make [(vA, Thm.cprop_of tha), (vB, Thm.cprop_of thb)]) |
|
106 conjunctionI) |
106 tha) |
107 tha) |
107 thb; |
108 thb; |
108 |
109 |
109 fun elim th = |
110 fun elim th = |
110 let |
111 let |
111 val (A, B) = dest_conjunction (Thm.cprop_of th) |
112 val (A, B) = dest_conjunction (Thm.cprop_of th) |
112 handle TERM (msg, _) => raise THM (msg, 0, [th]); |
113 handle TERM (msg, _) => raise THM (msg, 0, [th]); |
113 val inst = Thm.instantiate ([], [(vA, A), (vB, B)]); |
114 val inst = Thm.instantiate (TVars.empty, Vars.make [(vA, A), (vB, B)]); |
114 in |
115 in |
115 (Thm.implies_elim (inst conjunctionD1) th, |
116 (Thm.implies_elim (inst conjunctionD1) th, |
116 Thm.implies_elim (inst conjunctionD2) th) |
117 Thm.implies_elim (inst conjunctionD2) th) |
117 end; |
118 end; |
118 |
119 |