equal
deleted
inserted
replaced
871 fun rewrite_pat (ct1, ct2) = |
871 fun rewrite_pat (ct1, ct2) = |
872 (ct1, cterm_of thy (Pattern.rewrite_term thy pats' [] (term_of ct2))) |
872 (ct1, cterm_of thy (Pattern.rewrite_term thy pats' [] (term_of ct2))) |
873 val t_insts' = map rewrite_pat t_insts |
873 val t_insts' = map rewrite_pat t_insts |
874 val intro'' = Thm.instantiate (T_insts, t_insts') intro |
874 val intro'' = Thm.instantiate (T_insts, t_insts') intro |
875 val [intro'''] = Variable.export ctxt3 ctxt [intro''] |
875 val [intro'''] = Variable.export ctxt3 ctxt [intro''] |
876 val intro'''' = Simplifier.full_simplify |
876 val intro'''' = |
877 (HOL_basic_ss addsimps [@{thm fst_conv}, @{thm snd_conv}, @{thm Pair_eq}]) |
877 Simplifier.full_simplify |
|
878 (put_simpset HOL_basic_ss ctxt |
|
879 addsimps [@{thm fst_conv}, @{thm snd_conv}, @{thm Pair_eq}]) |
878 intro''' |
880 intro''' |
879 (* splitting conjunctions introduced by Pair_eq*) |
881 (* splitting conjunctions introduced by Pair_eq*) |
880 val intro''''' = split_conjuncts_in_assms ctxt intro'''' |
882 val intro''''' = split_conjuncts_in_assms ctxt intro'''' |
881 in |
883 in |
882 intro''''' |
884 intro''''' |