proposition: Theorem FSAT_UNIFORM Σ n : (forall r : rels Σ, ar_rels _ r <= n) -> FSAT Σ ⪯ᵢ FSAT (Σunif Σ n).
proof: Proof. intros Hn. exists (fun A => @Σuniformize Σ n (fol_rels A) A); intros A. split; intros (X & HX); exists X; revert HX. + apply Σuniformize_sound; auto. + intros H; generalize H. intros (_ & _ & _ & phi & _). revert H; apply Σuniformize_complete; cbv; auto. Qed.
imports: List Arith Bool Lia Eqdep_dec Undecidability.Synthetic.Definitions Undecidability.Synthetic.ReducibilityFacts Undecidability.Synthetic.InformativeDefinitions Undecidability.Synthetic.InformativeReducibilityFacts Undecidability.Shared.Libs.DLW.Utils(utils_tac utils_list utils_nat finite) Undecidability.Shared.Libs.DLW.Vec(pos vec) Undecidability.Shared.Libs.DLW.Wf(wf_finite) Undecidability.FOL.TRAKHTENBROT(notations utils decidable bpcp fo_sig fo_terms fo_logic fo_sat red_utils Sig_discrete BPCP_SigBPCP Sig_rem_syms Sig_uniform Sig_one_rel Sig_rem_cst Sign_Sig2 Sig2_Sign Sign_Sig Sig_Sig_fin Sig2_SigSSn1 Sign1_Sig )