Deciding reachability in a walk: Immerman–Szelepcsényi with parameters #
The atom case of the normal form for FO(TC): the reachability relation of a
parameterized walk (DescriptiveComplexity.ParamTCSpec) has a
DescriptiveComplexity.Decider (DescriptiveComplexity.ParamTCSpec.reachDecider).
Its yes exit is the walk itself, run from the first endpoint until it
stands on the second; its no exit is the inductive-counting walk of
DescriptiveComplexity.TransitiveClosureCompl, which certifies that the second
endpoint is not reached.
Parameters as constants #
The complement construction is stated for a sentence: a
DescriptiveComplexity.TCSpec, whose source and target formulas have no free
variables beyond the tuple. What is needed here is the complement of a
relation – the parameters of the walk and its two endpoints are free. The
two are reconciled without touching the 950 lines of the counting machine:
the free variables become constants of the vocabulary
(FirstOrder.Language.withConstants), the walk becomes a sentence over the
enlarged vocabulary (DescriptiveComplexity.ParamTCSpec.constSpec), the
complement is taken there, and its formulas are read back with the constants
as variables (DescriptiveComplexity.fromConst). Mathlib's
FirstOrder.Language.BoundedFormula.constantsVarsEquiv is the bridge, in both
directions, and a structure interprets the constants by the valuation of the
parameters (DescriptiveComplexity.constStructure).
Formulas with parameters, as sentences with constants #
The vocabulary with one constant per parameter.
Equations
- DescriptiveComplexity.withPar L₀ γ = L₀.withConstants γ
Instances For
Dependency graph
The vocabulary map reading the second copy of the order, in the ordered expansion of the vocabulary with constants, as the first.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
A formula with parameters, as a formula over the vocabulary with constants, over its ordered expansion.
Equations
Instances For
Dependency graph
A formula over the ordered expansion of the vocabulary with constants, as a formula with parameters.
Equations
Instances For
Dependency graph
The structure over the vocabulary with constants, the constants read by a valuation of the parameters.
Equations
Instances For
Dependency graph
Dependency graph
Dependency graph
A parameterized walk, as a sentence over the vocabulary with constants #
The parameters of the reachability atom of a walk: the two endpoints and
the walk's own parameters, packed as DescriptiveComplexity.ParamTCSpec.pack
does.
Instances For
Dependency graph
The variables of the step formula, the walk's parameters read off the atom's parameters.
Equations
- W.constStepVar (Sum.inl p) = Sum.inr p
- W.constStepVar (Sum.inr j) = Sum.inl (W.parIx j)
Instances For
Dependency graph
“The tuple is the first endpoint.”
Equations
- W.eqLeftF = FirstOrder.Language.Formula.iInf fun (i : Fin W.k) => (FirstOrder.Language.var (Sum.inr i)).equal (FirstOrder.Language.var (Sum.inl (W.leftIx i)))
Instances For
Dependency graph
“The tuple is the second endpoint.”
Equations
- W.eqRightF = FirstOrder.Language.Formula.iInf fun (i : Fin W.k) => (FirstOrder.Language.var (Sum.inr i)).equal (FirstOrder.Language.var (Sum.inl (W.rightIx i)))
Instances For
Dependency graph
The walk as a sentence over the vocabulary with one constant per parameter of the atom: the same walk, whose sources are the first endpoint in the first mode and whose targets are the second endpoint in the second mode. Reducible: a node of it is a node of the walk.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
The sentence says reachability between the two endpoints.
Dependency graph
The complement, with parameters #
The complement of the walk between two endpoints, with parameters:
the inductive-counting walk of DescriptiveComplexity.TCCompl.complSpec run
on the sentence with constants.
Equations
- W.coSpec ma mb = DescriptiveComplexity.TCCompl.complSpec (W.constSpec ma mb).pad
Instances For
Dependency graph
The complement accepts exactly when the second endpoint is not reached.
Dependency graph
The decider #
The variables of the walk's step, in the decider's.
Equations
Instances For
Dependency graph
The variables of the complement's step, in the decider's.
Equations
Instances For
Dependency graph
The variables of the complement's source formula, read on the next tuple of the decider's step.
Equations
Instances For
Dependency graph
The variables of the complement's target formula, in the decider's exit.
Equations
Instances For
Dependency graph
The decider of reachability between two modes, at the two endpoints
and the parameters: from its start it either enters the walk at the first
endpoint and exits yes on standing at the second, or enters the complement
walk at one of its sources and exits no at one of its targets. The
coordinates of the idle branch are copied along.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Steps and exits #
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Lifting the two walks #
A path of the walk lifts to the yes branch.
Dependency graph
A path of the complement lifts to the no branch.
Dependency graph
What the decider may have reached: its start, a node of the walk reached from the first endpoint, or a node of the complement reached from one of its sources.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Dependency graph
The decider decides reachability between its two modes, at the two endpoints and the parameters.
Dependency graph
The deciders of a family #
The reachability deciders of a family: one per relation variable of its block.
Equations
- F.reachDeciders q = (F.spec q.fst).reachDecider q.snd.1 q.snd.2
Instances For
Dependency graph
The deciders decide the family's reachability relations.