proposition: Lemma combinations_step B n (i x y : term) : HFeq ⊢ 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 HF_eset. - apply bunion_use; try apply bunion_use; auto. + apply II. apply HF_bunion_el'. auto. apply DI1. eapply IE. eapply IE. eapply IE. * eapply Weak. apply IHn. auto. * auto. * auto. * auto. + apply Exp. eapply IE. apply (HF_numeral_wf (S n)). auto. eapply HF_eq_elem. auto. eapply opair_inj1. auto. auto. apply HF_refl'. auto. cbn. apply HF_bunion_el'. auto. apply DI1. auto. + apply II. apply HF_bunion_el'. auto. apply DI2. apply HF_sing_iff. auto. apply HF_eq_opair. auto. * apply HF_eq_sig; auto. * eapply combinations_eq; auto. apply enc_derivations_eq. auto. eapply HF_eq_elem; auto; try apply HF_refl'; auto. eapply HF_eq_opair; auto; try apply HF_refl'. auto. + apply Exp. eapply IE. apply (HF_numeral_wf n). auto. eapply HF_eq_elem. auto. apply HF_refl'. auto. eapply HF_trans'. auto. apply HF_sym'. auto. eapply opair_inj1. auto. auto. auto. apply HF_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_HF Undecidability.PCP(PCP Util.PCP_facts Reductions.PCPb_iff_dPCPb) Undecidability(Shared.ListAutomation)