proposition: Theorem FSAT_FO_sem_eq A : @fo_form_fin_dec_SAT_in Σ A X <-> exists M, FO_sem M A.
proof: Proof. Proof using HX1. split. + intros (M & H1 & H2 & rho & H3). exists (existT _ M (existT _ rho H2)); simpl; auto. + intros ((M & rho & H1) & H2). exists M, HX1, H1, rho; auto. Qed.
imports: List Arith Bool Lia Eqdep_dec 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 fo_logic fo_sat decidable)