equal
deleted
inserted
replaced
158 val inj_map_strongs' = map (Thm.permute_prems 0 ~1 o inj_map_strong_of_bnf) fp_nesting_bnfs; |
158 val inj_map_strongs' = map (Thm.permute_prems 0 ~1 o inj_map_strong_of_bnf) fp_nesting_bnfs; |
159 |
159 |
160 val (xs, names_ctxt) = ctxt |> mk_Frees "x" fpTs; |
160 val (xs, names_ctxt) = ctxt |> mk_Frees "x" fpTs; |
161 |
161 |
162 val conjuncts = map3 mk_conjunct fpTs xs (mk_encode_funs ctxt fpTs ns ctrss0 recs0); |
162 val conjuncts = map3 mk_conjunct fpTs xs (mk_encode_funs ctxt fpTs ns ctrss0 recs0); |
163 val goal = HOLogic.mk_Trueprop (Balanced_Tree.make HOLogic.mk_conj conjuncts); |
163 val goal = HOLogic.mk_Trueprop (Library.foldr1 HOLogic.mk_conj conjuncts); |
164 in |
164 in |
165 Goal.prove ctxt [] [] goal (fn {context = ctxt, prems = _} => |
165 Goal.prove ctxt [] [] goal (fn {context = ctxt, prems = _} => |
166 mk_encode_injectives_tac ctxt ns induct nchotomys injectss rec_thmss map_comps' |
166 mk_encode_injectives_tac ctxt ns induct nchotomys injectss rec_thmss map_comps' |
167 inj_map_strongs') |
167 inj_map_strongs') |
168 |> HOLogic.conj_elims |
168 |> HOLogic.conj_elims |