Composition of first-order reductions (transitivity) #
The composite of two FO interpretations is an FO interpretation
(DescriptiveComplexity.FOInterpretation.comp), and hence FO reducibility is transitive
(DescriptiveComplexity.FOReduction.trans): from P ≤ᶠᵒ Q and Q ≤ᶠᵒ R one gets
P ≤ᶠᵒ R.
The composite of an interpretation I : FOInterpretation L₁ L₂ Tag₁ d₁ with
J : FOInterpretation L₂ L₃ Tag₂ d₂ has tags Tag₂ × (Fin d₂ → Tag₁) and
dimension d₂ * d₁: an element of the composite universe carries the outer
tag, one inner tag per outer coordinate, and a d₂ × d₁ matrix of elements.
Its defining formulas are obtained by pulling back the defining L₂-formulas
of J through I (DescriptiveComplexity.FOInterpretation.pull): atoms become the
defining formulas of I, equality becomes componentwise equality (with tags
compared statically), and a quantifier over the universe of I.Map A becomes
a finite conjunction/disjunction over Tag₁ of a block of d₁ quantifiers
over A.
Two points deserve attention:
- the composite's universe
(Tag₂ × (Fin d₂ → Tag₁)) × A^(d₂·d₁)is only isomorphic (DescriptiveComplexity.FOInterpretation.compLEquiv), not equal, to the twice-interpretedJ.Map (I.Map A); transitivity therefore uses the isomorphism-invariance of the target problem, which is part of the notion ofDecisionProblem; - pulling back quantifiers requires enumerating the (finitely many) inner
tags, so composite formulas are noncomputable (they are built with
BoundedFormula.iInf); this does not affect any of the theorems.
Terms of a relational language are variables #
These extend Mathlib's FirstOrder.Language.Term and live in its namespace
(where Mathlib would want them, and where dot notation finds them).
In a relational language, every term is a variable.
Equations
- (FirstOrder.Language.var x_1).varOf = x_1
- (FirstOrder.Language.func f _ts).varOf = isEmptyElim f
Instances For
Dependency graph
Dependency graph
Dependency graph
Pulling back a formula through an interpretation #
The environment of the interpreted structure induced by tags τ and an
environment v for the individual coordinates.
Instances For
Dependency graph
Pullback of an L₂-formula through the interpretation I, given a static
assignment of tags to its (free and bound) variables: an L₁-formula on the
coordinates which realizes in A exactly as the original formula realizes in
I.Map A (see FOInterpretation.realize_pull). Quantified variables are
expanded into a conjunction over the (finitely many) tags of a block of d
quantifiers.
Equations
Instances For
Dependency graph
Dependency graph
Composition of interpretations #
The composite of two FO interpretations: tags are an outer tag together
with one inner tag per outer coordinate, and dimensions multiply. Its
interpretation of a structure A is isomorphic to J.Map (I.Map A)
(FOInterpretation.compLEquiv).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The universe of the composite interpretation is equivalent to the twice-interpreted universe.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Dependency graph
Transitivity of FO reductions #
The universe equivalence of the composite interpretation is an
L₃-isomorphism.
Equations
- J.compLEquiv I A = { toEquiv := J.compEquiv I A, map_fun' := ⋯, map_rel' := ⋯ }
Instances For
Dependency graph
Transitivity of FO reductions: if P ≤ᶠᵒ Q and Q ≤ᶠᵒ R, then
P ≤ᶠᵒ R. The composite interpretation is only isomorphic, not equal, to the
twice-applied one, so the isomorphism-invariance built into DecisionProblem
is used to conclude.
Equations
Instances For
Dependency graph
Trans instance for FO reductions, enabling calc chains
P ≤ᶠᵒ Q ≤ᶠᵒ R.
Equations
- One or more equations did not get rendered due to their size.
Dependency graph
Reflexivity and the preorder structure #
The identity interpretation of a language in itself (one tag, dimension one).
Equations
Instances For
Dependency graph
The identity interpretation of a structure is isomorphic to the structure itself.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Reflexivity of FO reductions: every decision problem (over a relational language) reduces to itself, via the identity interpretation.
Equations
- DescriptiveComplexity.FOReduction.refl P = { Tag := Unit, tagFinite := ⋯, tagNonempty := ⋯, dim := 1, toInterpretation := DescriptiveComplexity.FOInterpretation.refl L, correct := ⋯ }
Instances For
Dependency graph
FO reducibility is a preorder on the decision problems over a fixed
relational language, with P ≤ Q the propositional truncation of P ≤ᶠᵒ Q.
(Across different languages, reflexivity FOReduction.refl and transitivity
FOReduction.trans express the same fact in heterogeneous form.)
Equations
- One or more equations did not get rendered due to their size.