proposition: Theorem undecidable_entailment_HFN : undecidable entailment_HFN.
proof: Proof. apply (undecidability_from_reducibility PCPb_undec). exists PCPb_to_HF.solvable. intros phi. rewrite PCPb_iff_dPCPb. split; intros H. - destruct H as [s H]. intros M HM rho H1 H2. eapply PCP_HF1; eauto. intros sigma psi Hp. apply H2. now right. - destruct HFN_model as (M & H1 & H2 & H3 & H4). specialize (H M H1 (fun _ => @i_func _ _ _ _ eset Vector.nil) H2 H4). apply PCP_HF2 in H as [s Hs]; trivial. now exists s. intros sigma psi Hp. apply H4. now right. Qed.
imports: Undecidability.Synthetic.Definitions Undecidability.Synthetic.Undecidability Undecidability.FOL(Semantics.Tarski.FullFacts Semantics.Tarski.FullSoundness) Undecidability.FOL.Sets.Models(Aczel_CE Aczel_TD ZF_model HF_model) Undecidability.FOL.Reductions(ZF_to_HF PCPb_to_HF PCPb_to_HFD PCPb_to_ZFeq PCPb_to_ZF PCPb_to_ZFD) Undecidability.FOL.Sets.ZF Undecidability.FOL.ZF Undecidability.PCP(PCP PCP_undec Util.PCP_facts Reductions.PCPb_iff_dPCPb)