proposition: Theorem Σuniformize_sound : fo_form_fin_dec_SAT_in A X -> fo_form_fin_dec_SAT_in Σuniformize X.
proof: Proof. Proof using Hn. intros (M & H1 & H2 & phi & H). exists (fom_uniformize M), H1. exists. { intros ? ?; apply H2. } exists phi; split. + apply fol_all_uniform_after_spec. intros r _ v e1 e2; simpl. do 2 rewrite vec_first_half_fill_tail; tauto. + revert H; apply fol_uniformize_sound. 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)