proposition: Fact fol_sem_vec_fa n A φ : ⟪@fol_vec_fa n A⟫ φ <-> forall p, ⟪vec_pos A p⟫ φ.
proof: Proof. unfold fol_vec_fa; rewrite fol_sem_lconj; split. + intros H p; apply H, in_vec_list, in_vec_pos. + intros H f Hf. apply vec_list_inv in Hf. destruct Hf as (p & ->); 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