The transcription: HORNSAT ≤ᶠᵒ[≤] DTMAccept #
The first-order half of stage 4 of the machine bridge: the defining formulas
of an interpretation of Language.turing in ordered CNF instances describing
the unit-propagation machine of
DescriptiveComplexity.Problems.Machine.HornHardness, shown to realize exactly its
predicates, and bundled as the ordered reduction
DescriptiveComplexity.HornTM.hornSat_ordered_fo_reduction_dtmAccept.
The method is stage 3's (DescriptiveComplexity.Problems.Machine.Interp), one
dimension up: three shape helpers – cstHF, oneHF, twoHF – for the three
payload shapes of the machine's elements, each with one realization lemma
taking the valuation abstractly, so that every defining formula matches on its
first tag only and every characterization case discharges by rfl. The two
relational destinations (tMarkEndRound/tMarkEndVer dispatch to the lowest
clause, which is not in their payload) get bespoke min-clause-pinned helpers.
The clause-order formulas (minClF, maxClF, nextClF, noClF) are reused
from stage 3 unchanged; the element-order ones (minF, maxF, succF) come
from DescriptiveComplexity.OrderWalk, with a small bridge from succF's
between-form to DescriptiveComplexity.SuccElt.
Formula pieces #
b is the successor of a among the elements, as a formula: succF's
between-form.
Equations
Instances For
Dependency graph
The instance is Horn – at most one positive literal per clause – as a sentence-shaped formula: the accept gate.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The literal test of the verification phase, for the statically known mark
b.
Equations
Instances For
Dependency graph
Dependency graph
Dependency graph
Dependency graph
The three shapes, as formulas #
The second argument is the constant cstH s.
Equations
- DescriptiveComplexity.HornTM.cstHF s t' = if t' = s then DescriptiveComplexity.minF (1, 0) ⊓ DescriptiveComplexity.minF (1, 1) ⊓ DescriptiveComplexity.minF (1, 2) else ⊥
Instances For
Dependency graph
The second argument is oneH s (v x).
Equations
- DescriptiveComplexity.HornTM.oneHF s x t' = if t' = s then DescriptiveComplexity.SatOcc.eqF (1, 0) x ⊓ DescriptiveComplexity.minF (1, 1) ⊓ DescriptiveComplexity.minF (1, 2) else ⊥
Instances For
Dependency graph
The second argument is twoH s (v x) (v y).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The second argument is a check state of the round held by x and the
lowest clause: the destination of a round turn.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The second argument is the initial verification state of the lowest clause: the destination of the turn into verification.
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
Dependency graph
The defining formulas #
Defining formula for posn.
Equations
- DescriptiveComplexity.HornTM.hPosnF DescriptiveComplexity.UPTag.pStart = DescriptiveComplexity.minF (0, 0) ⊓ DescriptiveComplexity.minF (0, 1) ⊓ DescriptiveComplexity.minF (0, 2)
- DescriptiveComplexity.HornTM.hPosnF DescriptiveComplexity.UPTag.pCell = DescriptiveComplexity.minF (0, 1) ⊓ DescriptiveComplexity.minF (0, 2)
- DescriptiveComplexity.HornTM.hPosnF DescriptiveComplexity.UPTag.pEnd = DescriptiveComplexity.minF (0, 0) ⊓ DescriptiveComplexity.minF (0, 1) ⊓ DescriptiveComplexity.minF (0, 2)
- DescriptiveComplexity.HornTM.hPosnF (DescriptiveComplexity.UPTag.pFill i) = ⊤
- DescriptiveComplexity.HornTM.hPosnF x✝ = ⊥
Instances For
Dependency graph
Defining formula for tr: the payload promises of HTr.
Equations
- One or more equations did not get rendered due to their size.
- DescriptiveComplexity.HornTM.hTrF DescriptiveComplexity.UPTag.tInitChk = DescriptiveComplexity.minF (0, 0) ⊓ DescriptiveComplexity.SatTM.minClF (0, 1) ⊓ DescriptiveComplexity.minF (0, 2)
- DescriptiveComplexity.HornTM.hTrF (DescriptiveComplexity.UPTag.tChk m f) = DescriptiveComplexity.SatOcc.clF (0, 1)
- DescriptiveComplexity.HornTM.hTrF (DescriptiveComplexity.UPTag.tChkEnd f) = DescriptiveComplexity.SatOcc.clF (0, 1) ⊓ DescriptiveComplexity.minF (0, 2)
- DescriptiveComplexity.HornTM.hTrF (DescriptiveComplexity.UPTag.tMark m mk) = DescriptiveComplexity.SatOcc.clF (0, 1)
- DescriptiveComplexity.HornTM.hTrF (DescriptiveComplexity.UPTag.tMarkEndNext mk) = DescriptiveComplexity.SatTM.nextClF (0, 1) (0, 2)
- DescriptiveComplexity.HornTM.hTrF (DescriptiveComplexity.UPTag.tMarkEndRound mk) = DescriptiveComplexity.HornTM.succEltF (0, 0) (0, 1) ⊓ DescriptiveComplexity.SatTM.maxClF (0, 2)
- DescriptiveComplexity.HornTM.hTrF (DescriptiveComplexity.UPTag.tMarkEndVer mk) = DescriptiveComplexity.maxF (0, 0) ⊓ DescriptiveComplexity.SatTM.maxClF (0, 1) ⊓ DescriptiveComplexity.minF (0, 2)
- DescriptiveComplexity.HornTM.hTrF (DescriptiveComplexity.UPTag.tVer m f d) = DescriptiveComplexity.SatOcc.clF (0, 0) ⊓ DescriptiveComplexity.minF (0, 2)
- DescriptiveComplexity.HornTM.hTrF (DescriptiveComplexity.UPTag.tVerNext d) = DescriptiveComplexity.SatTM.nextClF (0, 0) (0, 1) ⊓ DescriptiveComplexity.minF (0, 2)
- DescriptiveComplexity.HornTM.hTrF x✝ = ⊥
Instances For
Dependency graph
Defining formula for start.
Equations
Instances For
Dependency graph
Defining formula for acc.
Equations
Instances For
Dependency graph
Defining formula for blank.
Equations
Instances For
Dependency graph
Defining formula for right.
Equations
- DescriptiveComplexity.HornTM.hRightF DescriptiveComplexity.UPTag.tInitChk = ⊤
- DescriptiveComplexity.HornTM.hRightF DescriptiveComplexity.UPTag.tInitAcc = ⊤
- DescriptiveComplexity.HornTM.hRightF (DescriptiveComplexity.UPTag.tChk m f) = ⊤
- DescriptiveComplexity.HornTM.hRightF (DescriptiveComplexity.UPTag.tMarkEndNext mk) = ⊤
- DescriptiveComplexity.HornTM.hRightF (DescriptiveComplexity.UPTag.tMarkEndRound mk) = ⊤
- DescriptiveComplexity.HornTM.hRightF (DescriptiveComplexity.UPTag.tMarkEndVer mk) = ⊤
- DescriptiveComplexity.HornTM.hRightF (DescriptiveComplexity.UPTag.tVer m f d) = if d = true then ⊤ else ⊥
- DescriptiveComplexity.HornTM.hRightF (DescriptiveComplexity.UPTag.tVerNext d) = if d = true then ⊥ else ⊤
- DescriptiveComplexity.HornTM.hRightF (DescriptiveComplexity.UPTag.tVerAcc d) = if d = true then ⊥ else ⊤
- DescriptiveComplexity.HornTM.hRightF x✝ = ⊥
Instances For
Dependency graph
Defining formula for inp.
Equations
- DescriptiveComplexity.HornTM.hInpF DescriptiveComplexity.UPTag.pStart x✝ = DescriptiveComplexity.HornTM.cstHF DescriptiveComplexity.UPTag.sStart x✝
- DescriptiveComplexity.HornTM.hInpF DescriptiveComplexity.UPTag.pCell x✝ = DescriptiveComplexity.HornTM.oneHF DescriptiveComplexity.UPTag.sU (0, 0) x✝
- DescriptiveComplexity.HornTM.hInpF DescriptiveComplexity.UPTag.pEnd x✝ = DescriptiveComplexity.HornTM.cstHF DescriptiveComplexity.UPTag.sEnd x✝
- DescriptiveComplexity.HornTM.hInpF x✝¹ x✝ = ⊥
Instances For
Dependency graph
Defining formula for tsrc.
Equations
- DescriptiveComplexity.HornTM.hSrcF DescriptiveComplexity.UPTag.tInitChk x✝ = DescriptiveComplexity.HornTM.cstHF DescriptiveComplexity.UPTag.qInit x✝
- DescriptiveComplexity.HornTM.hSrcF DescriptiveComplexity.UPTag.tInitAcc x✝ = DescriptiveComplexity.HornTM.cstHF DescriptiveComplexity.UPTag.qInit x✝
- DescriptiveComplexity.HornTM.hSrcF (DescriptiveComplexity.UPTag.tChk m f) x✝ = DescriptiveComplexity.HornTM.twoHF (DescriptiveComplexity.UPTag.qChk f) (0, 0) (0, 1) x✝
- DescriptiveComplexity.HornTM.hSrcF (DescriptiveComplexity.UPTag.tChkEnd f) x✝ = DescriptiveComplexity.HornTM.twoHF (DescriptiveComplexity.UPTag.qChk f) (0, 0) (0, 1) x✝
- DescriptiveComplexity.HornTM.hSrcF (DescriptiveComplexity.UPTag.tMark m mrk) x✝ = DescriptiveComplexity.HornTM.twoHF (DescriptiveComplexity.UPTag.qMark mrk) (0, 0) (0, 1) x✝
- DescriptiveComplexity.HornTM.hSrcF (DescriptiveComplexity.UPTag.tMarkEndNext mrk) x✝ = DescriptiveComplexity.HornTM.twoHF (DescriptiveComplexity.UPTag.qMark mrk) (0, 0) (0, 1) x✝
- DescriptiveComplexity.HornTM.hSrcF (DescriptiveComplexity.UPTag.tMarkEndRound mrk) x✝ = DescriptiveComplexity.HornTM.twoHF (DescriptiveComplexity.UPTag.qMark mrk) (0, 0) (0, 2) x✝
- DescriptiveComplexity.HornTM.hSrcF (DescriptiveComplexity.UPTag.tMarkEndVer mrk) x✝ = DescriptiveComplexity.HornTM.twoHF (DescriptiveComplexity.UPTag.qMark mrk) (0, 0) (0, 1) x✝
- DescriptiveComplexity.HornTM.hSrcF (DescriptiveComplexity.UPTag.tVer m f d) x✝ = DescriptiveComplexity.HornTM.oneHF (DescriptiveComplexity.UPTag.qVer f d) (0, 0) x✝
- DescriptiveComplexity.HornTM.hSrcF (DescriptiveComplexity.UPTag.tVerNext d) x✝ = DescriptiveComplexity.HornTM.oneHF (DescriptiveComplexity.UPTag.qVer true d) (0, 0) x✝
- DescriptiveComplexity.HornTM.hSrcF (DescriptiveComplexity.UPTag.tVerAcc d) x✝ = DescriptiveComplexity.HornTM.oneHF (DescriptiveComplexity.UPTag.qVer true d) (0, 0) x✝
- DescriptiveComplexity.HornTM.hSrcF x✝¹ x✝ = ⊥
Instances For
Dependency graph
Defining formula for tread.
Equations
- One or more equations did not get rendered due to their size.
- DescriptiveComplexity.HornTM.hReadF DescriptiveComplexity.UPTag.tInitChk x✝ = DescriptiveComplexity.HornTM.cstHF DescriptiveComplexity.UPTag.sStart x✝
- DescriptiveComplexity.HornTM.hReadF DescriptiveComplexity.UPTag.tInitAcc x✝ = DescriptiveComplexity.HornTM.cstHF DescriptiveComplexity.UPTag.sStart x✝
- DescriptiveComplexity.HornTM.hReadF (DescriptiveComplexity.UPTag.tChkEnd f) x✝ = DescriptiveComplexity.HornTM.cstHF DescriptiveComplexity.UPTag.sEnd x✝
- DescriptiveComplexity.HornTM.hReadF (DescriptiveComplexity.UPTag.tMarkEndNext mrk) x✝ = DescriptiveComplexity.HornTM.cstHF DescriptiveComplexity.UPTag.sStart x✝
- DescriptiveComplexity.HornTM.hReadF (DescriptiveComplexity.UPTag.tMarkEndRound mrk) x✝ = DescriptiveComplexity.HornTM.cstHF DescriptiveComplexity.UPTag.sStart x✝
- DescriptiveComplexity.HornTM.hReadF (DescriptiveComplexity.UPTag.tMarkEndVer mrk) x✝ = DescriptiveComplexity.HornTM.cstHF DescriptiveComplexity.UPTag.sStart x✝
- DescriptiveComplexity.HornTM.hReadF x✝¹ x✝ = ⊥
Instances For
Dependency graph
Defining formula for tdst.
Equations
- One or more equations did not get rendered due to their size.
- DescriptiveComplexity.HornTM.hDstF DescriptiveComplexity.UPTag.tInitChk x✝ = DescriptiveComplexity.HornTM.twoHF (DescriptiveComplexity.UPTag.qChk true) (0, 0) (0, 1) x✝
- DescriptiveComplexity.HornTM.hDstF DescriptiveComplexity.UPTag.tInitAcc x✝ = DescriptiveComplexity.HornTM.cstHF DescriptiveComplexity.UPTag.qAcc x✝
- DescriptiveComplexity.HornTM.hDstF (DescriptiveComplexity.UPTag.tChkEnd f) x✝ = DescriptiveComplexity.HornTM.twoHF (DescriptiveComplexity.UPTag.qMark f) (0, 0) (0, 1) x✝
- DescriptiveComplexity.HornTM.hDstF (DescriptiveComplexity.UPTag.tMark m mrk) x✝ = DescriptiveComplexity.HornTM.twoHF (DescriptiveComplexity.UPTag.qMark mrk) (0, 0) (0, 1) x✝
- DescriptiveComplexity.HornTM.hDstF (DescriptiveComplexity.UPTag.tMarkEndNext mrk) x✝ = DescriptiveComplexity.HornTM.twoHF (DescriptiveComplexity.UPTag.qChk true) (0, 0) (0, 2) x✝
- DescriptiveComplexity.HornTM.hDstF (DescriptiveComplexity.UPTag.tMarkEndRound mrk) x✝ = DescriptiveComplexity.HornTM.roundDstF (0, 1) x✝
- DescriptiveComplexity.HornTM.hDstF (DescriptiveComplexity.UPTag.tMarkEndVer mrk) x✝ = DescriptiveComplexity.HornTM.verDstF x✝
- DescriptiveComplexity.HornTM.hDstF (DescriptiveComplexity.UPTag.tVerNext d) x✝ = DescriptiveComplexity.HornTM.oneHF (DescriptiveComplexity.UPTag.qVer false !d) (0, 1) x✝
- DescriptiveComplexity.HornTM.hDstF (DescriptiveComplexity.UPTag.tVerAcc d) x✝ = DescriptiveComplexity.HornTM.cstHF DescriptiveComplexity.UPTag.qAcc x✝
- DescriptiveComplexity.HornTM.hDstF x✝¹ x✝ = ⊥
Instances For
Dependency graph
Defining formula for twrite.
Equations
- One or more equations did not get rendered due to their size.
- DescriptiveComplexity.HornTM.hWriteF DescriptiveComplexity.UPTag.tInitChk x✝ = DescriptiveComplexity.HornTM.cstHF DescriptiveComplexity.UPTag.sStart x✝
- DescriptiveComplexity.HornTM.hWriteF DescriptiveComplexity.UPTag.tInitAcc x✝ = DescriptiveComplexity.HornTM.cstHF DescriptiveComplexity.UPTag.sStart x✝
- DescriptiveComplexity.HornTM.hWriteF (DescriptiveComplexity.UPTag.tChkEnd f) x✝ = DescriptiveComplexity.HornTM.cstHF DescriptiveComplexity.UPTag.sEnd x✝
- DescriptiveComplexity.HornTM.hWriteF (DescriptiveComplexity.UPTag.tMarkEndNext mrk) x✝ = DescriptiveComplexity.HornTM.cstHF DescriptiveComplexity.UPTag.sStart x✝
- DescriptiveComplexity.HornTM.hWriteF (DescriptiveComplexity.UPTag.tMarkEndRound mrk) x✝ = DescriptiveComplexity.HornTM.cstHF DescriptiveComplexity.UPTag.sStart x✝
- DescriptiveComplexity.HornTM.hWriteF (DescriptiveComplexity.UPTag.tMarkEndVer mrk) x✝ = DescriptiveComplexity.HornTM.cstHF DescriptiveComplexity.UPTag.sStart x✝
- DescriptiveComplexity.HornTM.hWriteF x✝¹ x✝ = ⊥
Instances For
Dependency graph
The interpretation of machine instances in ordered CNF instances, describing the unit-propagation machine.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The realization lemmas #
The identity equivalence between the tagged triples and the interpreted universe.
Instances For
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
The machines agree, and the reduction #
The interpreted structure describes the unit-propagation machine.
Dependency graph
Correctness of the interpretation: the interpreted structure is a
yes-instance of deterministic machine acceptance exactly when the CNF instance
is a yes-instance of HORN-SAT. Well-formedness and determinism hold
unconditionally – they were proved for every image, Horn or not – and
acceptance is DescriptiveComplexity.hornMachine_accepts_iff, transported along the
agreement.
Dependency graph
HORN-SAT reduces to deterministic machine acceptance: the ordered first-order reduction building the unit-propagation machine inside the instance.
Equations
- One or more equations did not get rendered due to their size.