Certified-row complement protocol construction #
This module implements the synchronous scanners and row actions of the inductive-counting complement protocol.
Boot action #
State of the first, initialization scan.
- start : BootVerifier
- scan (one : RowNumeral.OneState) (ok : Bool) : BootVerifier
- bad : BootVerifier
Instances For
Equations
- One or more equations did not get rendered due to their size.
- CertifiedRowSystem.Complement.instDecidableEqBootVerifier.decEq CertifiedRowSystem.Complement.BootVerifier.start CertifiedRowSystem.Complement.BootVerifier.start = isTrue ⋯
- CertifiedRowSystem.Complement.instDecidableEqBootVerifier.decEq CertifiedRowSystem.Complement.BootVerifier.start (CertifiedRowSystem.Complement.BootVerifier.scan one ok) = isFalse ⋯
- CertifiedRowSystem.Complement.instDecidableEqBootVerifier.decEq (CertifiedRowSystem.Complement.BootVerifier.scan one ok) CertifiedRowSystem.Complement.BootVerifier.start = isFalse ⋯
- CertifiedRowSystem.Complement.instDecidableEqBootVerifier.decEq (CertifiedRowSystem.Complement.BootVerifier.scan one ok) CertifiedRowSystem.Complement.BootVerifier.bad = isFalse ⋯
- CertifiedRowSystem.Complement.instDecidableEqBootVerifier.decEq CertifiedRowSystem.Complement.BootVerifier.bad (CertifiedRowSystem.Complement.BootVerifier.scan one ok) = isFalse ⋯
- CertifiedRowSystem.Complement.instDecidableEqBootVerifier.decEq CertifiedRowSystem.Complement.BootVerifier.bad CertifiedRowSystem.Complement.BootVerifier.bad = isTrue ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Cell-local conditions of the boot transition, apart from the LSD-first one check
on the new oldCount track.
Equations
- One or more equations did not get rendered due to their size.
Instances For
One cell of the initialization scan. The certificate must request boot in every
cell; OneState.first makes the first count digit one and every later digit zero.
Equations
- One or more equations did not get rendered due to their size.
- CertifiedRowSystem.Complement.bootStepCell CertifiedRowSystem.Complement.BootVerifier.bad x✝² x✝¹ x✝ = CertifiedRowSystem.Complement.BootVerifier.bad
- CertifiedRowSystem.Complement.bootStepCell x✝³ x✝² x✝¹ x✝ = CertifiedRowSystem.Complement.BootVerifier.bad
Instances For
Successful terminal state of the initialization scan.
Equations
Instances For
Run only the boot verifier across aligned rows.
Equations
Instances For
evalBoot is the ordinary certified-row evaluator for bootStepCell.
A certified row system exposing the initialization action. It is also the prefix
of the complete protocol system: subsequent actions extend BootVerifier with the
counting scanners while leaving this transition unchanged.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Integrated protocol system #
Finite verifier state of the complete protocol. The outer constructor records which small synchronous scanner was selected by the repeated action certificate.
- start {Q : Type u_1} {F : Type u_2} : ProtocolVerifier Q F
- boot {Q : Type u_1} {F : Type u_2} (state : BootVerifier) : ProtocolVerifier Q F
- enumeration {Q : Type u_1} {F : Type u_2} (state : EnumerationVerifier) : ProtocolVerifier Q F
- startPath {Q : Type u_1} {F : Type u_2} (finalScan : Bool) (state : StartPathVerifier) : ProtocolVerifier Q F
- pathStep {Q : Type u_1} {F : Type u_2} (finalScan : Bool) (state : PathStepVerifier Q) : ProtocolVerifier Q F
- finishWitness {Q : Type u_1} {F : Type u_2} (state : FinishWitnessVerifier Q) : ProtocolVerifier Q F
- finalWitness {Q : Type u_1} {F : Type u_2} (state : FinalWitnessVerifier F) : ProtocolVerifier Q F
- bad {Q : Type u_1} {F : Type u_2} : ProtocolVerifier Q F
Instances For
Equations
- One or more equations did not get rendered due to their size.
- CertifiedRowSystem.Complement.instDecidableEqProtocolVerifier.decEq CertifiedRowSystem.Complement.ProtocolVerifier.start CertifiedRowSystem.Complement.ProtocolVerifier.start = isTrue ⋯
- CertifiedRowSystem.Complement.instDecidableEqProtocolVerifier.decEq CertifiedRowSystem.Complement.ProtocolVerifier.start (CertifiedRowSystem.Complement.ProtocolVerifier.boot state) = isFalse ⋯
- CertifiedRowSystem.Complement.instDecidableEqProtocolVerifier.decEq CertifiedRowSystem.Complement.ProtocolVerifier.start CertifiedRowSystem.Complement.ProtocolVerifier.bad = isFalse ⋯
- CertifiedRowSystem.Complement.instDecidableEqProtocolVerifier.decEq (CertifiedRowSystem.Complement.ProtocolVerifier.boot state) CertifiedRowSystem.Complement.ProtocolVerifier.start = isFalse ⋯
- CertifiedRowSystem.Complement.instDecidableEqProtocolVerifier.decEq (CertifiedRowSystem.Complement.ProtocolVerifier.boot state) CertifiedRowSystem.Complement.ProtocolVerifier.bad = isFalse ⋯
- CertifiedRowSystem.Complement.instDecidableEqProtocolVerifier.decEq CertifiedRowSystem.Complement.ProtocolVerifier.bad CertifiedRowSystem.Complement.ProtocolVerifier.start = isFalse ⋯
- CertifiedRowSystem.Complement.instDecidableEqProtocolVerifier.decEq CertifiedRowSystem.Complement.ProtocolVerifier.bad (CertifiedRowSystem.Complement.ProtocolVerifier.boot state) = isFalse ⋯
- CertifiedRowSystem.Complement.instDecidableEqProtocolVerifier.decEq CertifiedRowSystem.Complement.ProtocolVerifier.bad CertifiedRowSystem.Complement.ProtocolVerifier.bad = isTrue ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Select and run the first cell of the scanner named by an action.
Equations
- One or more equations did not get rendered due to their size.
- CertifiedRowSystem.Complement.startProtocolAction D old new CertifiedRowSystem.Complement.ProtocolAction.beginFinal = CertifiedRowSystem.Complement.ProtocolVerifier.bad
Instances For
One cell of the complete complement-protocol verifier.
Equations
- One or more equations did not get rendered due to their size.
- CertifiedRowSystem.Complement.protocolStepCell D CertifiedRowSystem.Complement.ProtocolVerifier.bad x✝² x✝¹ x✝ = CertifiedRowSystem.Complement.ProtocolVerifier.bad
- CertifiedRowSystem.Complement.protocolStepCell D CertifiedRowSystem.Complement.ProtocolVerifier.start x✝² x✝¹ x✝ = CertifiedRowSystem.Complement.startProtocolAction D x✝² x✝¹ x✝
Instances For
Terminal predicate of the integrated scanner.
Equations
- CertifiedRowSystem.Complement.protocolStepDone D (CertifiedRowSystem.Complement.ProtocolVerifier.boot q) = CertifiedRowSystem.Complement.bootDone q
- CertifiedRowSystem.Complement.protocolStepDone D (CertifiedRowSystem.Complement.ProtocolVerifier.enumeration q) = CertifiedRowSystem.Complement.enumerationDone q
- CertifiedRowSystem.Complement.protocolStepDone D (CertifiedRowSystem.Complement.ProtocolVerifier.startPath finalScan q) = CertifiedRowSystem.Complement.startPathDone q
- CertifiedRowSystem.Complement.protocolStepDone D (CertifiedRowSystem.Complement.ProtocolVerifier.pathStep finalScan q) = CertifiedRowSystem.Complement.pathStepDone D q
- CertifiedRowSystem.Complement.protocolStepDone D (CertifiedRowSystem.Complement.ProtocolVerifier.finishWitness q) = CertifiedRowSystem.Complement.finishWitnessDone D q
- CertifiedRowSystem.Complement.protocolStepDone D (CertifiedRowSystem.Complement.ProtocolVerifier.finalWitness q) = CertifiedRowSystem.Complement.finalWitnessDone D q
- CertifiedRowSystem.Complement.protocolStepDone D x✝ = false
Instances For
The full inductive-counting row system for a source system whose edge verifier is
deterministic (Unit-certified).
Equations
- One or more equations did not get rendered due to their size.
Instances For
A protocol row is final exactly when every cell carries the accepting phase.
Machine-independent Immerman--Szelepcsényi construction for an arbitrary finite certified row system. The source edge verifier is determinized before the counting protocol is installed.
Equations
Instances For
Machine-independent protocol relation #
List-level initialization action implemented by the boot scanner.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Every nonempty input row performs the canonical boot action.
The union of all semantic actions in one complement-protocol step.
This relation is independent of the compiler to an LBA. Its source parameter is already
deterministic, so both D.RowStep and its negation are certified synchronously.
Equations
- One or more equations did not get rendered due to their size.