FO(DTC) reductions: the logarithmic-space reduction of the textbooks #
DescriptiveComplexity.TCReduction lets a reduction's formulas consult
nondeterministic walks. The classical many-one reduction for the classes at
this level is the deterministic logarithmic-space one, and this file is it:
DescriptiveComplexity.DTCReduction, notation P ≤ᵈᵗᶜ Q, where every walk is
read through its determinization – it may follow a step only when that step is
the only one available.
Determinism as a formula #
The packaging is the library's own, from
DescriptiveComplexity.TransitiveClosureDet: rather than carrying a proof that
a walk is functional – which is not first-order data, and would have to be
re-established after every pullback – the walk is read through
detStep(x̄, ȳ, z̄) := step(x̄, ȳ, z̄) ∧ ∀ w̄. step(x̄, w̄, z̄) → w̄ = ȳ
(DescriptiveComplexity.ParamTCSpec.det), which is again first-order. Every
specification then denotes a legitimate deterministic walk
(DescriptiveComplexity.ParamTCSpec.det_functional) and nothing has to be
assumed; on a walk that is already functional the two readings agree
(DescriptiveComplexity.ParamTCSpec.detStepAt_of_functional), which is how an
existing walk – the parity walk, say – is reused at this notion.
Where it sits #
≤ᶠᵒ[≤] ⊆ ≤ᵈᵗᶜ ⊆ ≤ᵗᶜ ⊆ ≤ˡᶠᵖ: a determinized walk is a walk, so
everything DescriptiveComplexity.TransitiveClosureReduction proves transfers,
and PTIME, NP and coNP are closed under ≤ᵈᵗᶜ as well.
DescriptiveComplexity.LOGSPACE is closed under it
(DescriptiveComplexity.mem_LOGSPACE_of_dtcReduction, in
DescriptiveComplexity.TransitiveClosureReductionClosure), by the same normal
form as NL under ≤ᵗᶜ with one difference at the atoms: flattening a walk
that consults walks needs non-reachability at the negative occurrences, and a
deterministic walk is witnessed not to arrive by a step budget
(DescriptiveComplexity.ParamTCSpec.detReachDecider), where a
nondeterministic one needs inductive counting. Transitivity is
DescriptiveComplexity.DTCReduction.trans, the composite of
DescriptiveComplexity.TransitiveClosureReductionTrans read through its
determinization.
Determinizing a parameterized walk #
The renaming used by the uniqueness clause: the step formula is re-read
with its first tuple still the current one, its second tuple the freshly
quantified w̄, and its parameters unchanged.
Equations
Instances For
Dependency graph
The determinized step formula at a pair of modes: this step, and no
other step out of the current node. As in
DescriptiveComplexity.TCSpec.detStep, the competing successor's mode is
compared statically, so the uniqueness clause has one conjunct per mode.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The deterministic reading of a walk: the same modes, arity and parameters, with the step formula replaced by its determinization.
Reducible, so that the modes, the arity and the parameter count of s.det are
those of s transparently – a node of the deterministic reading is a node,
and the block of a determinized family is the block of the family.
Instances For
Dependency graph
Dependency graph
A determinized step is a step with no competitor.
Dependency graph
A walk is functional at a structure when no node has two successors.
Equations
Instances For
Dependency graph
The deterministic reading is functional, whatever walk it comes from: this is what makes determinization the right packaging, there being nothing left to assume.
Dependency graph
On a walk that is already functional, the deterministic reading is the original one.
Dependency graph
Reachability is unchanged by determinizing a functional walk.
Dependency graph
Determinizing a family #
The deterministic reading of a family: every walk read through its
determinization. Reducible, so that F.det.block is F.block.
Instances For
Dependency graph
A family is functional when each of its walks is.
Equations
- F.Functional A = ∀ (i : F.Ix), (F.spec i).Functional A
Instances For
Dependency graph
A functional family is unchanged by determinization: its relation variables hold the same relations either way.
Dependency graph
An FO(TC) sentence read deterministically #
A functional walk may be read deterministically at no cost: its
walk-as-an-atom formula (DescriptiveComplexity.TCSpec.acceptsF) still says
acceptance when the relation variables hold the determinized reachability
relations. This is what lets an existing walk of the catalog be reused at the
deterministic notion.
Dependency graph
FO(DTC) reductions #
An FO(DTC) reduction from P to Q – a deterministic
logarithmic-space reduction, in the logical form of
Immerman 1987: an interpretation over the ordered
expansion whose formulas may read the reachability relations of a family of
walks, each read through its determinization.
- Tag : Type
The tags used by the underlying interpretation.
Tags are finite, so that finite structures map to finite structures.
- dim : ℕ
The dimension of the underlying interpretation.
- fam : TCFamily (L.sum FirstOrder.Language.order)
The walks the formulas may read – before determinization, which is how they are read.
- toRel : RelFOInterpretation ((L.sum FirstOrder.Language.order).sum self.fam.block.lang) L' self.Tag self.dim
The interpretation, over the base expanded by the walks' relation variables.
- map_nonempty (A : Type) [L.Structure A] [LinearOrder A] [Finite A] [Nonempty A] : Nonempty ({ fam := self.fam.det, toRel := self.toRel }.Map A)
The interpreted structure is nonempty on nonempty finite ordered inputs.
- correct (A : Type) [L.Structure A] [LinearOrder A] [Finite A] [Nonempty A] : P.Holds A ↔ Q.Holds ({ fam := self.fam.det, toRel := self.toRel }.Map A)
Yes-instances map exactly to yes-instances, whatever the linear order.
Instances For
Dependency graph
An FO(DTC) reduction from P to Q – a deterministic
logarithmic-space reduction, in the logical form of
Immerman 1987: an interpretation over the ordered
expansion whose formulas may read the reachability relations of a family of
walks, each read through its determinization.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
An FO(DTC) reduction is an FO(TC) reduction: a determinized walk is a
walk. Every closure property of ≤ᵗᶜ – hence of ≤ˡᶠᵖ – transfers along
this.
Equations
Instances For
Dependency graph
A relativized ordered FO reduction is an FO(DTC) reduction, consulting no walk.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
An ordered FO reduction is an FO(DTC) reduction.
Instances For
Dependency graph
An FO reduction is an FO(DTC) reduction.
Instances For
Dependency graph
PTIME is closed under FO(DTC) reductions.
Dependency graph
NP is closed under FO(DTC) reductions.
Dependency graph
coNP is closed under FO(DTC) reductions.