equal
deleted
inserted
replaced
146 by (simp add: Quot_True_def) |
146 by (simp add: Quot_True_def) |
147 |
147 |
148 use "quotient_tacs.ML" |
148 use "quotient_tacs.ML" |
149 |
149 |
150 |
150 |
151 (* Atomize infrastructure *) |
|
152 (* FIXME/TODO: is this really needed? *) |
|
153 (* |
|
154 lemma atomize_eqv[atomize]: |
|
155 shows "(Trueprop A \<equiv> Trueprop B) \<equiv> (A \<equiv> B)" |
|
156 proof |
|
157 assume "A \<equiv> B" |
|
158 then show "Trueprop A \<equiv> Trueprop B" by unfold |
|
159 next |
|
160 assume *: "Trueprop A \<equiv> Trueprop B" |
|
161 have "A = B" |
|
162 proof (cases A) |
|
163 case True |
|
164 have "A" by fact |
|
165 then show "A = B" using * by simp |
|
166 next |
|
167 case False |
|
168 have "\<not>A" by fact |
|
169 then show "A = B" using * by auto |
|
170 qed |
|
171 then show "A \<equiv> B" by (rule eq_reflection) |
|
172 qed |
|
173 *) |
|
174 |
|
175 section {* Methods / Interface *} |
151 section {* Methods / Interface *} |
176 |
152 |
177 ML {* |
153 ML {* |
178 fun mk_method1 tac thm ctxt = |
154 fun mk_method1 tac thm ctxt = |
179 SIMPLE_METHOD (HEADGOAL (tac ctxt thm)) |
155 SIMPLE_METHOD (HEADGOAL (tac ctxt thm)) |