Section Σ2_ΣSSn1_enc_complete.
Variable (n : nat) (A : fol_form Σ2) (Y : Type) (MSSn1 : fo_model (Σn1 (S (S n))) Y)
(MSSn1_dec : fo_model_dec MSSn1) (ψ : nat -> Y).
Let i := S (lmax (fol_vars A)).
Let d := ψ i.
Let f u v := fom_syms MSSn1 tt (u##vec_set_pos (fun _ => v)).
Let P y := fom_rels MSSn1 tt (f d y##ø).
Hypothesis (HA : fol_sem MSSn1 ψ (Σ2_ΣSSn1_enc n A)).
Let Q y := (if @MSSn1_dec tt (f d y##ø) then true else false) = true.
Let Q_spec y : Q y <-> P y.
Let H1 j : In j (fol_vars A) -> Q (ψ j).
Let H2 : Q (ψ 0).
Let H3 : fol_sem MSSn1 ψ (Σ2_ΣSSn1 n i A).
Hypothesis HY : finite_t Y.

Theorem Σ2_ΣSSn1_enc_complete : fo_form_fin_dec_SAT A.