proposition: Lemma combinations_step B n (i x y : term) : ZFeq' ⊢ i ∈ tnumeral n → opair i x ∈ enc_derivations B n → combinations B x y → opair (σ i) y ∈ enc_derivations B n.
proof: Proof. induction n; cbn. - apply II. apply Exp. apply imps. apply ZF_eset. - apply bunion_use; try apply bunion_use; auto. + apply II. apply ZF_bunion_el'. auto. apply DI1. eapply IE. eapply IE. eapply IE. * eapply Weak. apply IHn. auto. * auto. * auto. * auto. + apply Exp. eapply IE. apply (ZF_numeral_wf (S n)). auto. eapply ZF_eq_elem. auto. eapply opair_inj1. auto. auto. apply ZF_refl'. auto. cbn. apply ZF_bunion_el'. auto. apply DI1. auto. + apply II. apply ZF_bunion_el'. auto. apply DI2. apply ZF_sing_iff. auto. apply ZF_eq_opair. auto. * apply ZF_eq_sig; auto. * eapply combinations_eq; auto. apply enc_derivations_eq. auto. eapply ZF_eq_elem; auto; try apply ZF_refl'; auto. eapply ZF_eq_opair; auto; try apply ZF_refl'. auto. + apply Exp. eapply IE. apply (ZF_numeral_wf n). auto. eapply ZF_eq_elem. auto. apply ZF_refl'. auto. eapply ZF_trans'. auto. apply ZF_sym'. auto. eapply opair_inj1. auto. auto. auto. apply ZF_sig_el. auto. Qed.
imports: Undecidability.FOL.ZF Undecidability.FOL.Syntax.Facts Undecidability.FOL.Semantics.Tarski.FullFacts Undecidability.FOL.Sets.ZF Undecidability.FOL.Reductions.PCPb_to_ZF Undecidability.PCP(PCP Util.PCP_facts Reductions.PCPb_iff_dPCPb) Undecidability(Shared.ListAutomation)