proposition: Lemma Σ2_Σn_correct (A : fol_form Σ2) φ : ⟪ A ⟫ φ <-> ⟪Σ2_Σn A⟫' φ.
proof: Proof. Proof using HP. revert φ. induction A as [ | [] v | b A HA B HB | q A HA ]; intros phi. + simpl; tauto. + vec split v with a; vec split v with b; vec nil v; clear v; revert a b. intros [ a | [] ] [ b | [] ]; unfold Σ2_Σn; simpl; rew fot. rewrite vec_map_set_pos; apply HP. + simpl; apply fol_bin_sem_ext; auto. + simpl; apply fol_quant_sem_ext; intro; 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 fol_ops fo_sig fo_terms fo_logic fo_sat)