EPR: satisfiability of an ∃*∀* sentence #
The Bernays–Schönfinkel–Ramsey class (Lewis 1980): is
the given ∃*∀* sentence satisfiable? A sentence of that shape has no
function symbols and its quantifier prefix is a block of existentials followed
by a block of universals, so it is satisfiable exactly when it has a model with
one element per existential variable – a small model, of which the sentence
nevertheless speaks exponentially much, since a clause is checked at every
assignment of its universal variables. That gap is the whole of the problem's
complexity, and it is why the class sits at NEXPTIME rather than at NP.
The encoding #
An instance is a flat description, with no parse tree at all:
evar xmarks the existential variables; every other variable of the sentence is universally quantified, so no mark is needed for those;cl cmarks the clauses of the matrix, which is in conjunctive normal form, andinCl c lgives the literals of a clause – a clause is the disjunction of all the literals it names, so nothing is a binary tree;posL l sandnegL l ssay that the literallis the atom of the relation symbols, positive or negated, andarg l p xgives its argument at the positionp;sig s pgives the argument positions ofs.
Nothing here is a chain or a tree, so the encoding needs no order of its own –
unlike DescriptiveComplexity.FINSAT, whose parse DAG has to be acyclic. That
is what a prenex form with a quantifier-free matrix buys.
The semantics #
There is deliberately no decoding into a FirstOrder.Language.Sentence: the
relation symbols of the encoded sentence are elements of the instance, so the
decoded vocabulary would depend on the instance. Satisfaction is defined on the
encoding directly, and being quantifier-free the matrix needs no fixed point:
one clause per kind of literal is the whole truth definition.
A model is a finite nonempty type M, an interpretation
I : A → (A → M) → Prop reading a symbol and an assignment of argument
positions – required to be local, so that I s is a relation of the arity
of s rather than of the whole universe – and a witness e for the
existential variables. The sentence holds when every assignment of the
universal variables satisfies every clause.
Equality is not part of the encoding. The class is NEXPTIME-complete either way, and a reduction that wants equality can carry its own equality symbol with the axioms it needs.
Relation symbols of the language of encoded ∃*∀* sentences in conjunctive
normal form.
- evar : eprRel 1
evar x: the variablexis existentially quantified. - cl : eprRel 1
cl c:cis a clause of the matrix. - inCl : eprRel 2
inCl c l: the literalloccurs in the clausec. - posL : eprRel 2
posL l s: the literallis the positive atom of the symbols. - negL : eprRel 2
negL l s: the literallis the negated atom of the symbols. - arg : eprRel 3
arg l p x: the argument of the literallat the positionpis the variablex. - sig : eprRel 2
sig s p: the relation symbolshas the argument positionp.
Instances For
Dependency graph
Dependency graph
Equations
- FirstOrder.Language.instDecidableEqEprRel.decEq FirstOrder.Language.eprRel.evar FirstOrder.Language.eprRel.evar = isTrue FirstOrder.Language.instDecidableEqEprRel.decEq._proof_1
- FirstOrder.Language.instDecidableEqEprRel.decEq FirstOrder.Language.eprRel.evar FirstOrder.Language.eprRel.cl = isFalse FirstOrder.Language.instDecidableEqEprRel.decEq._proof_2
- FirstOrder.Language.instDecidableEqEprRel.decEq FirstOrder.Language.eprRel.cl FirstOrder.Language.eprRel.evar = isFalse FirstOrder.Language.instDecidableEqEprRel.decEq._proof_3
- FirstOrder.Language.instDecidableEqEprRel.decEq FirstOrder.Language.eprRel.cl FirstOrder.Language.eprRel.cl = isTrue FirstOrder.Language.instDecidableEqEprRel.decEq._proof_4
- FirstOrder.Language.instDecidableEqEprRel.decEq FirstOrder.Language.eprRel.inCl FirstOrder.Language.eprRel.inCl = isTrue FirstOrder.Language.instDecidableEqEprRel.decEq._proof_5
- FirstOrder.Language.instDecidableEqEprRel.decEq FirstOrder.Language.eprRel.inCl FirstOrder.Language.eprRel.posL = isFalse FirstOrder.Language.instDecidableEqEprRel.decEq._proof_6
- FirstOrder.Language.instDecidableEqEprRel.decEq FirstOrder.Language.eprRel.inCl FirstOrder.Language.eprRel.negL = isFalse FirstOrder.Language.instDecidableEqEprRel.decEq._proof_7
- FirstOrder.Language.instDecidableEqEprRel.decEq FirstOrder.Language.eprRel.inCl FirstOrder.Language.eprRel.sig = isFalse FirstOrder.Language.instDecidableEqEprRel.decEq._proof_8
- FirstOrder.Language.instDecidableEqEprRel.decEq FirstOrder.Language.eprRel.posL FirstOrder.Language.eprRel.inCl = isFalse FirstOrder.Language.instDecidableEqEprRel.decEq._proof_9
- FirstOrder.Language.instDecidableEqEprRel.decEq FirstOrder.Language.eprRel.posL FirstOrder.Language.eprRel.posL = isTrue FirstOrder.Language.instDecidableEqEprRel.decEq._proof_10
- FirstOrder.Language.instDecidableEqEprRel.decEq FirstOrder.Language.eprRel.posL FirstOrder.Language.eprRel.negL = isFalse FirstOrder.Language.instDecidableEqEprRel.decEq._proof_11
- FirstOrder.Language.instDecidableEqEprRel.decEq FirstOrder.Language.eprRel.posL FirstOrder.Language.eprRel.sig = isFalse FirstOrder.Language.instDecidableEqEprRel.decEq._proof_12
- FirstOrder.Language.instDecidableEqEprRel.decEq FirstOrder.Language.eprRel.negL FirstOrder.Language.eprRel.inCl = isFalse FirstOrder.Language.instDecidableEqEprRel.decEq._proof_13
- FirstOrder.Language.instDecidableEqEprRel.decEq FirstOrder.Language.eprRel.negL FirstOrder.Language.eprRel.posL = isFalse FirstOrder.Language.instDecidableEqEprRel.decEq._proof_14
- FirstOrder.Language.instDecidableEqEprRel.decEq FirstOrder.Language.eprRel.negL FirstOrder.Language.eprRel.negL = isTrue FirstOrder.Language.instDecidableEqEprRel.decEq._proof_15
- FirstOrder.Language.instDecidableEqEprRel.decEq FirstOrder.Language.eprRel.negL FirstOrder.Language.eprRel.sig = isFalse FirstOrder.Language.instDecidableEqEprRel.decEq._proof_16
- FirstOrder.Language.instDecidableEqEprRel.decEq FirstOrder.Language.eprRel.arg FirstOrder.Language.eprRel.arg = isTrue FirstOrder.Language.instDecidableEqEprRel.decEq._proof_17
- FirstOrder.Language.instDecidableEqEprRel.decEq FirstOrder.Language.eprRel.sig FirstOrder.Language.eprRel.inCl = isFalse FirstOrder.Language.instDecidableEqEprRel.decEq._proof_18
- FirstOrder.Language.instDecidableEqEprRel.decEq FirstOrder.Language.eprRel.sig FirstOrder.Language.eprRel.posL = isFalse FirstOrder.Language.instDecidableEqEprRel.decEq._proof_19
- FirstOrder.Language.instDecidableEqEprRel.decEq FirstOrder.Language.eprRel.sig FirstOrder.Language.eprRel.negL = isFalse FirstOrder.Language.instDecidableEqEprRel.decEq._proof_20
- FirstOrder.Language.instDecidableEqEprRel.decEq FirstOrder.Language.eprRel.sig FirstOrder.Language.eprRel.sig = isTrue FirstOrder.Language.instDecidableEqEprRel.decEq._proof_21
Instances For
Dependency graph
The relational vocabulary of encoded ∃*∀* sentences: a set of clauses of
literals over relation symbols, with the existential variables marked.
Equations
- FirstOrder.Language.epr = { Functions := fun (x : ℕ) => Empty, Relations := FirstOrder.Language.eprRel }
Instances For
Dependency graph
Dependency graph
The symbol marking existential variables.
Instances For
Dependency graph
The symbol marking clauses.
Instances For
Dependency graph
The symbol giving the literals of a clause.
Instances For
Dependency graph
The symbol of positive literals.
Instances For
Dependency graph
The symbol of negated literals.
Instances For
Dependency graph
The symbol giving the arguments of a literal.
Instances For
Dependency graph
The symbol giving the signature of a relation symbol.
Instances For
Dependency graph
Reading the encoding #
The variable x is existentially quantified.
Equations
Instances For
Dependency graph
c is a clause of the matrix.
Equations
Instances For
Dependency graph
The literal l occurs in the clause c.
Equations
Instances For
Dependency graph
The literal l is the positive atom of the symbol s.
Equations
Instances For
Dependency graph
The literal l is the negated atom of the symbol s.
Equations
Instances For
Dependency graph
The argument of the literal l at the position p is the variable x.
Equations
Instances For
Dependency graph
The relation symbol s has the argument position p.
Equations
Instances For
Dependency graph
Satisfaction #
The value of a variable: the witness chosen for it if it is existentially quantified, and the assignment being tested otherwise. Every variable the encoding does not mark counts as universally quantified, which is what lets the encoding get away with one mark instead of two.
Equations
- DescriptiveComplexity.Epr.eprVal e u x = if DescriptiveComplexity.Epr.EVarG x then e x else u x
Instances For
Dependency graph
A literal is true: its symbol holds (or fails, for a negated literal) of an assignment of the argument positions matching the environment on the arguments the encoding declares.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Well-formedness, folded into the yes-instances as
DescriptiveComplexity.FINSAT's is: an atom names one variable at each
argument position, and names one at every position of its symbol's signature.
Both are what makes an atom an atom, and both are needed for the small-model
property (DescriptiveComplexity.Epr.selfModel_of_eprSatOn): an atom whose
arguments are ambiguous, or missing where the signature asks for one, reads
differently on a universe the sentence has collapsed than on the instance
itself.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
An interpretation is local when the value of a symbol depends only on the arguments its signature declares.
Equations
- DescriptiveComplexity.Epr.Local I = ∀ (s : A) (w w' : A → M), (∀ (p : A), DescriptiveComplexity.Epr.SigG s p → w p = w' p) → (I s w ↔ I s w')
Instances For
Dependency graph
The matrix holds at an environment: every clause has a true literal.
Equations
- DescriptiveComplexity.Epr.MatrixTrue I v = ∀ (c : A), DescriptiveComplexity.Epr.ClauseG c → ∃ (l : A), DescriptiveComplexity.Epr.InClG c l ∧ DescriptiveComplexity.Epr.LitTrue I v l
Instances For
Dependency graph
The problem #
The encoded ∃*∀* sentence is satisfiable: some finite nonempty
universe carries a local interpretation of the relation symbols and a witness
for the existential variables under which every assignment of the universal
variables satisfies every clause.
Finiteness of the model costs nothing: a satisfiable ∃*∀* sentence has a
model with one element per existential variable, which is what
DescriptiveComplexity.Problems.Epr.Membership proves and uses.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Isomorphism-invariance #
Everything the semantics reads is a relation of the instance, so an isomorphism
transports it: the model is carried over unchanged and its interpretation
composed with the isomorphism, exactly as for
DescriptiveComplexity.FINSAT.
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
The interpretation the image carries: read the symbol back through the isomorphism.
Equations
- DescriptiveComplexity.Epr.mapI e I s w = I (e.symm s) fun (x : A) => w (e x)
Instances For
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Well-formedness transports along an isomorphism.
Dependency graph
Satisfiability transports along an isomorphism: the model is carried over unchanged, its interpretation read back through the isomorphism.
Dependency graph
Satisfiability of an ∃*∀* sentence. The instance is the sentence, in
prenex form with a conjunctive-normal-form matrix; the question is whether it
has a model.
Equations
- One or more equations did not get rendered due to their size.