Determinizing certified row relations #
A CertifiedRowSystem presents its row relation by a finite-state verifier that may guess one
certificate symbol per cell. This file applies the ordinary subset construction to that verifier.
The resulting system has Unit certificates: after reading an aligned pair of rows, its verifier
state is exactly the finite set of source-verifier states obtainable from all certificate prefixes.
This is useful when both an edge and the absence of an edge must be checked in linear space. In particular, the inductive-counting proof of context-sensitive complement closure uses the determinized verifier in its negative branch.
One subset-construction transition for a certified row verifier.
Equations
- S.detStepCell states old new = states.biUnion fun (q : Q) => Finset.image (fun (cert : C) => S.stepCell q old new cert) Finset.univ
Instances For
Run the determinized verifier on two aligned rows.
Equations
- S.evalDetStep x✝ [] [] = some x✝
- S.evalDetStep x✝ (old :: olds) (new :: news) = S.evalDetStep (S.detStepCell x✝ old new) olds news
- S.evalDetStep x✝² x✝¹ x✝ = none
Instances For
The determinized state set contains q' exactly when some certificate row takes some initial
verifier state in states to q'.
The subset construction turns a certified system into an equivalent system whose certificate
alphabet is Unit.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Determinization preserves the certified row relation exactly.
Determinization preserves the reachability language.