Require Export Undecidability.FOL.Utils.FullSyntax.
From Undecidability.FOL.Sets Require Export FST binFST Signatures.
Import Vector.VectorNotations.
Require Import List.
Declare Scope syn.
Open Scope syn.
Import FSTSignature.
Export FSTSignature.
Notation extensional M :=
(forall x y, @i_atom _ ZFSignature.ZF_pred_sig _ M equal ([x; y]) <-> x = y).
Definition entailment_FST phi :=
forall D (M : interp D) (rho : nat -> D), extensional M -> (forall sigma psi, In psi FST -> sigma ⊨ psi) -> rho ⊨ phi.
Definition entailment_FSTeq phi :=
forall D (M : interp D) (rho : nat -> D), (forall sigma psi, In psi FSTeq -> sigma ⊨ psi) -> rho ⊨ phi.
Definition entailment_FSTI phi :=
forall D (M : interp D) (rho : nat -> D), extensional M -> (forall sigma psi, FSTI psi -> sigma ⊨ psi) -> rho ⊨ phi.
Definition deduction_FST phi :=
FSTeq ⊢I phi.
Definition deduction_FSTI phi :=
FSTIeq ⊢TI phi.
Definition entailment_binFST phi :=
forall D (M : @interp sig_empty _ D) (rho : nat -> D), (forall psi, In psi binFST -> rho ⊨ psi) -> rho ⊨ phi.
Definition deduction_binFST phi :=
binFST ⊢I phi.