equal
deleted
inserted
replaced
850 |> infer_instantiate' lthy (replicate live NONE @ |
850 |> infer_instantiate' lthy (replicate live NONE @ |
851 [SOME (Thm.cterm_of lthy (ctorA $ y))]) |
851 [SOME (Thm.cterm_of lthy (ctorA $ y))]) |
852 |> unfold_thms lthy [dtor_ctor]; |
852 |> unfold_thms lthy [dtor_ctor]; |
853 in |
853 in |
854 (fp_map_thm' RS ctor_cong RS (ctor_dtor RS sym RS trans)) |
854 (fp_map_thm' RS ctor_cong RS (ctor_dtor RS sym RS trans)) |
855 |> Drule.generalize ([], [y_s]) |
855 |> Drule.generalize (Symtab.empty, Symtab.make_set [y_s]) |
856 end; |
856 end; |
857 |
857 |
858 val map_thms = |
858 val map_thms = |
859 let |
859 let |
860 fun mk_goal ctrA ctrB xs ys = |
860 fun mk_goal ctrA ctrB xs ys = |
929 in |
929 in |
930 fp_rel_thm |
930 fp_rel_thm |
931 |> infer_instantiate' lthy (replicate live NONE @ |
931 |> infer_instantiate' lthy (replicate live NONE @ |
932 [SOME (Thm.cterm_of lthy (ctorA $ y)), SOME (Thm.cterm_of lthy (ctorB $ z))]) |
932 [SOME (Thm.cterm_of lthy (ctorA $ y)), SOME (Thm.cterm_of lthy (ctorB $ z))]) |
933 |> unfold_thms lthy [dtor_ctor] |
933 |> unfold_thms lthy [dtor_ctor] |
934 |> Drule.generalize ([], [y_s, z_s]) |
934 |> Drule.generalize (Symtab.empty, Symtab.make_set [y_s, z_s]) |
935 end; |
935 end; |
936 |
936 |
937 val rel_inject_thms = |
937 val rel_inject_thms = |
938 let |
938 let |
939 fun mk_goal ctrA ctrB xs ys = |
939 fun mk_goal ctrA ctrB xs ys = |