equal
deleted
inserted
replaced
181 val frees = Term.fold_aterms (fn Free (x, _) => |
181 val frees = Term.fold_aterms (fn Free (x, _) => |
182 if Variable.is_fixed ctxt' x then I else insert (op =) x | _ => I) prop []; |
182 if Variable.is_fixed ctxt' x then I else insert (op =) x | _ => I) prop []; |
183 in |
183 in |
184 Goal.prove ctxt' frees [] prop (K (ALLGOALS |
184 Goal.prove ctxt' frees [] prop (K (ALLGOALS |
185 (meta_rewrite_tac ctxt' THEN' |
185 (meta_rewrite_tac ctxt' THEN' |
186 Tactic.rewrite_goal_tac [def] THEN' |
186 Goal.rewrite_goal_tac [def] THEN' |
187 Tactic.resolve_tac [Drule.reflexive_thm]))) |
187 Tactic.resolve_tac [Drule.reflexive_thm]))) |
188 handle ERROR msg => cat_error msg "Failed to prove definitional specification." |
188 handle ERROR msg => cat_error msg "Failed to prove definitional specification." |
189 end; |
189 end; |
190 in (((c, T), rhs), prove) end; |
190 in (((c, T), rhs), prove) end; |
191 |
191 |