Documentation

DescriptiveComplexity.Problems.Epr.Small

The small-model property of ∃*∀* sentences #

What makes EPR a bounded problem: a satisfiable ∃*∀* sentence has a model whose universe is the instance itself. The witnesses of the existential variables are the only elements a model needs – everything else the sentence says is universally quantified, and a universal statement survives passing to a subuniverse containing those witnesses.

The proof counts nothing. Map the instance onto the model by x ↦ ε x at an existential variable and by a fixed element elsewhere (DescriptiveComplexity.Epr.collapse); read the interpretation back through that map, and let every variable stand for itself. What makes the reading legitimate is locality together with well-formedness: the value of a symbol is decided by the argument positions its signature declares, an atom names exactly one variable at each of them, and those variables' values are the ones the collapse carries.

This is the form the membership proof uses: with the universe fixed to the instance, an interpretation is a relation on the instance and an assignment of the universal variables is a function on it – one point of an exponential expansion.

A model on the instance itself: an interpretation of the symbols by relations on the instance, and a witness for the existential variables among its elements.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    Dependency graph
    noncomputable def DescriptiveComplexity.Epr.collapse {A : Type} [FirstOrder.Language.epr.Structure A] {M : Type} (ε : AM) (m₀ : M) :
    AM

    The instance, mapped into a model: the witness of an existential variable, and a fixed element elsewhere. Its image is the subuniverse the sentence can speak of.

    Equations
    Instances For
      Dependency graph
      theorem DescriptiveComplexity.Epr.collapse_eVar {A : Type} [FirstOrder.Language.epr.Structure A] {M : Type} {ε : AM} {m₀ : M} {x : A} (h : EVarG x) :
      collapse ε m₀ x = ε x
      Dependency graph
      theorem DescriptiveComplexity.Epr.collapse_val {A : Type} [FirstOrder.Language.epr.Structure A] {M : Type} (ε : AM) (m₀ : M) (u : AA) (x : A) :
      collapse ε m₀ (eprVal (fun (y : A) => y) u x) = eprVal ε (fun (y : A) => collapse ε m₀ (u y)) x

      The collapse commutes with the two environments: the value a variable takes when it stands for itself, mapped into the model, is the value it takes in the model.

      Dependency graph
      noncomputable def DescriptiveComplexity.Epr.argAssign {A : Type} [FirstOrder.Language.epr.Structure A] (u : AA) (l : A) :
      AA

      The arguments of a literal, as an assignment of its positions: the value of the variable the encoding names there, when every variable stands for itself. Well-formedness makes the choice unambiguous.

      Equations
      Instances For
        Dependency graph
        theorem DescriptiveComplexity.Epr.argAssign_eq {A : Type} [FirstOrder.Language.epr.Structure A] (hwf : IsWF A) (u : AA) {l p x : A} (h : ArgG l p x) :
        argAssign u l p = eprVal (fun (y : A) => y) u x
        Dependency graph

        A model becomes one on the instance: read every symbol through the collapse, and take each variable to stand for itself.

        Dependency graph

        And a model on the instance is a model: the instance is a finite nonempty universe like any other.

        Dependency graph

        The small-model property: a well-formed instance is satisfiable exactly when it is satisfiable on its own universe.

        Dependency graph