equal
deleted
inserted
replaced
95 val goal = Logic.mk_equals (old, new) |
95 val goal = Logic.mk_equals (old, new) |
96 val thm = Goal.prove (Simplifier.the_context ss) [] [] goal |
96 val thm = Goal.prove (Simplifier.the_context ss) [] [] goal |
97 (fn _ => rtac iff_reflection 1 THEN |
97 (fn _ => rtac iff_reflection 1 THEN |
98 simp_tac (Simplifier.inherit_context ss datatype_ss addsimps #free_iffs lcon_info) 1) |
98 simp_tac (Simplifier.inherit_context ss datatype_ss addsimps #free_iffs lcon_info) 1) |
99 handle ERROR msg => |
99 handle ERROR msg => |
100 (warning (msg ^ "\ndata_free simproc:\nfailed to prove " ^ Sign.string_of_term sg goal); |
100 (warning (msg ^ "\ndata_free simproc:\nfailed to prove " ^ Syntax.string_of_term_global sg goal); |
101 raise Match) |
101 raise Match) |
102 in SOME thm end |
102 in SOME thm end |
103 handle Match => NONE; |
103 handle Match => NONE; |
104 |
104 |
105 |
105 |