Relativization of a formula to a unary predicate #
Restricting every quantifier of a first-order formula to the elements
satisfying a unary relation symbol (DescriptiveComplexity.relativizeTo), so
that the formula, read in a structure M, says exactly what it says in the
part of M that the symbol marks
(DescriptiveComplexity.realize_relativizeTo).
The statement takes the marked part as a FirstOrder.Language.Substructure
whose carrier the symbol defines (for the relational vocabularies of this
library there is nothing to be closed under, so any marked part qualifies).
Marking by a symbol rather than by an arbitrary formula is what the users
below need, and keeps the guard a one-line atom.
Where this is used #
Value invention (DescriptiveComplexity.SecondOrderNew) puts the instance A
and m invented values in one universe A ⊕ Fin m. A formula about A – in
particular a defining formula of an interpretation being pulled back – must
then be read with its quantifiers restricted to the original elements, which
is exactly relativization to the predicate old. The specialization
DescriptiveComplexity.relOld and its correctness
DescriptiveComplexity.realize_relOld package that instance: the old part of
A ⊕ Fin m is a substructure isomorphic to A
(DescriptiveComplexity.oldSubEquiv).
The same machinery is what a relativized membership pullback – one through an interpretation whose domain is cut out by a formula – would want.
Relativization to a unary relation symbol #
The guard “the last bound variable satisfies R”.
Equations
Instances For
Dependency graph
Relativization: the formula obtained by restricting every quantifier
to the elements satisfying the unary relation symbol R. Atoms are left
untouched, so this is a purely syntactic guard insertion.
Equations
- DescriptiveComplexity.relativizeTo R FirstOrder.Language.BoundedFormula.falsum = FirstOrder.Language.BoundedFormula.falsum
- DescriptiveComplexity.relativizeTo R (FirstOrder.Language.BoundedFormula.equal t₁ t₂) = FirstOrder.Language.BoundedFormula.equal t₁ t₂
- DescriptiveComplexity.relativizeTo R (FirstOrder.Language.BoundedFormula.rel r ts) = FirstOrder.Language.BoundedFormula.rel r ts
- DescriptiveComplexity.relativizeTo R (φ.imp ψ) = (DescriptiveComplexity.relativizeTo R φ).imp (DescriptiveComplexity.relativizeTo R ψ)
- DescriptiveComplexity.relativizeTo R φ.all = ((DescriptiveComplexity.lastGuard R x✝).imp (DescriptiveComplexity.relativizeTo R φ)).all
Instances For
Dependency graph
Dependency graph
Relativization is correct: the relativized formula, read in M at
arguments taken from the substructure the symbol R defines, says what the
original formula says in that substructure.
Dependency graph
Relativization to the original elements of an extended universe #
The original elements of the extended universe form a substructure: the vocabulary is relational, so there is nothing to be closed under.
Equations
Instances For
Dependency graph
The instance is the substructure of original elements, over the extended vocabulary (where every element is marked as original).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The relativization of an L-formula to the original elements of an
extended universe: an L-formula becomes a formula over the extended
vocabulary, with every quantifier restricted to the elements marked old.
Equations
Instances For
Dependency graph
Relativizing to the original elements is correct: read in the extended universe at original arguments, the relativized formula says what the original formula says in the instance.