proposition: Fact fol_sem_ldisj lf φ : ⟪fol_ldisj lf⟫ φ <-> exists f, f ∊ lf /\ ⟪f⟫ φ.
proof: Proof. induction lf as [ | f lf IHlf ]; simpl. + split; try tauto; intros ( ? & [] & _). + rewrite IHlf. split. * intros [ H | (g & H1 & H2) ]. - exists f; auto. - exists g; auto. * intros (g & [ <- | Hg ] & ?); auto. right; exists g; auto. Qed.
imports: List Arith Lia Undecidability.Shared.Libs.DLW.Utils(utils_tac utils_list utils_nat finite) Undecidability.Shared.Libs.DLW.Vec(pos vec) Undecidability.FOL.TRAKHTENBROT(notations utils fol_ops fo_sig fo_terms) Undecidability.Shared.ListAutomation