equal
deleted
inserted
replaced
17 val conjunctionD2: thm |
17 val conjunctionD2: thm |
18 val conjunctionI: thm |
18 val conjunctionI: thm |
19 val intr: thm -> thm -> thm |
19 val intr: thm -> thm -> thm |
20 val intr_balanced: thm list -> thm |
20 val intr_balanced: thm list -> thm |
21 val elim: thm -> thm * thm |
21 val elim: thm -> thm * thm |
|
22 val elim_conjunctions: thm -> thm list |
22 val elim_balanced: int -> thm -> thm list |
23 val elim_balanced: int -> thm -> thm list |
23 val curry_balanced: int -> thm -> thm |
24 val curry_balanced: int -> thm -> thm |
24 val uncurry_balanced: int -> thm -> thm |
25 val uncurry_balanced: int -> thm -> thm |
25 end; |
26 end; |
26 |
27 |
116 Thm.implies_elim (inst conjunctionD2) th) |
117 Thm.implies_elim (inst conjunctionD2) th) |
117 end; |
118 end; |
118 |
119 |
119 end; |
120 end; |
120 |
121 |
|
122 fun elim_conjunctions th = |
|
123 (case try elim th of |
|
124 NONE => [th] |
|
125 | SOME (th1, th2) => elim_conjunctions th1 @ elim_conjunctions th2); |
|
126 |
121 |
127 |
122 (* balanced conjuncts *) |
128 (* balanced conjuncts *) |
123 |
129 |
124 fun intr_balanced [] = asm_rl |
130 fun intr_balanced [] = asm_rl |
125 | intr_balanced ths = Balanced_Tree.make (uncurry intr) ths; |
131 | intr_balanced ths = Balanced_Tree.make (uncurry intr) ths; |