equal
deleted
inserted
replaced
160 MetaSimplifier.rewrite_term thy Data.atomize [] |
160 MetaSimplifier.rewrite_term thy Data.atomize [] |
161 #> ObjectLogic.drop_judgment thy; |
161 #> ObjectLogic.drop_judgment thy; |
162 |
162 |
163 val atomize_cterm = MetaSimplifier.rewrite true Data.atomize; |
163 val atomize_cterm = MetaSimplifier.rewrite true Data.atomize; |
164 |
164 |
165 val atomize_tac = Goal.rewrite_goal_tac Data.atomize; |
165 val atomize_tac = Simplifier.rewrite_goal_tac Data.atomize; |
166 |
166 |
167 val inner_atomize_tac = |
167 val inner_atomize_tac = |
168 Goal.rewrite_goal_tac (map Thm.symmetric conjunction_congs) THEN' atomize_tac; |
168 Simplifier.rewrite_goal_tac (map Thm.symmetric conjunction_congs) THEN' atomize_tac; |
169 |
169 |
170 |
170 |
171 (* rulify *) |
171 (* rulify *) |
172 |
172 |
173 fun rulify_term thy = |
173 fun rulify_term thy = |
180 val rulify = rulify_term thy; |
180 val rulify = rulify_term thy; |
181 val (As, B) = Logic.strip_horn (Thm.prop_of thm); |
181 val (As, B) = Logic.strip_horn (Thm.prop_of thm); |
182 in (thy, Logic.list_implies (map rulify As, rulify B)) end; |
182 in (thy, Logic.list_implies (map rulify As, rulify B)) end; |
183 |
183 |
184 val rulify_tac = |
184 val rulify_tac = |
185 Goal.rewrite_goal_tac (Data.rulify @ conjunction_congs) THEN' |
185 Simplifier.rewrite_goal_tac (Data.rulify @ conjunction_congs) THEN' |
186 Goal.rewrite_goal_tac Data.rulify_fallback THEN' |
186 Simplifier.rewrite_goal_tac Data.rulify_fallback THEN' |
187 Goal.conjunction_tac THEN_ALL_NEW |
187 Goal.conjunction_tac THEN_ALL_NEW |
188 (Goal.rewrite_goal_tac [conjunction_imp] THEN' Goal.norm_hhf_tac); |
188 (Simplifier.rewrite_goal_tac [conjunction_imp] THEN' Goal.norm_hhf_tac); |
189 |
189 |
190 |
190 |
191 (* prepare rule *) |
191 (* prepare rule *) |
192 |
192 |
193 fun rule_instance thy inst rule = |
193 fun rule_instance thy inst rule = |
308 SOME concl => |
308 SOME concl => |
309 (compose_tac (false, spec_rule (goal_prefix n goal) concl, 1) THEN' rtac asm_rl) i |
309 (compose_tac (false, spec_rule (goal_prefix n goal) concl, 1) THEN' rtac asm_rl) i |
310 | NONE => all_tac) |
310 | NONE => all_tac) |
311 end); |
311 end); |
312 |
312 |
313 fun miniscope_tac p i = PRIMITIVE (Conv.fconv_rule |
313 fun miniscope_tac p = |
314 (Conv.goals_conv (Library.equal i) |
314 CONVERSION (Conv.forall_conv p (MetaSimplifier.rewrite true [Thm.symmetric Drule.norm_hhf_eq])); |
315 (Conv.forall_conv p (MetaSimplifier.rewrite true [Thm.symmetric Drule.norm_hhf_eq])))); |
|
316 |
315 |
317 in |
316 in |
318 |
317 |
319 fun fix_tac _ _ [] = K all_tac |
318 fun fix_tac _ _ [] = K all_tac |
320 | fix_tac ctxt n xs = SUBGOAL (fn (goal, i) => |
319 | fix_tac ctxt n xs = SUBGOAL (fn (goal, i) => |