The family formulas as programs #
Every formula of FamilyFml.lean as a program reading a shared input: a candidate of
readers (CandR), the width e in unary, and the data the explicit families need. The
statement of each is progR … i = familyF (eu i).length Gc … (C.ev i), and its proof is
simp over the constants of the layout — the shape of the formula matches definitionally,
because CandR.ev is a structure literal of the programs' own values.
The constants are the only content: Sof e = 2 ^ e and 2 * Sof e + k = 2 ^ (e + 1) + k
come from pow2P and incN, and numR turns a number and a width into the bit string of
the field constant (planning/succinct-cook-levin.md, S3).
Conjunctions and disjunctions of readers #
andList of readers.
Equations
Instances For
orList of readers.
Equations
Instances For
and of two readers.
Equations
Instances For
or of two readers.
Equations
Instances For
not of a reader.
Equations
Instances For
xnor of two readers.
Equations
Instances For
mux of three readers.
Equations
- MIPRE.TM.CookLevin.Desc.muxR s f g = MIPRE.SAT.muxP.ap₃ s f g
Instances For
eqConst.
Equations
- MIPRE.TM.CookLevin.Desc.eqC fs c = MIPRE.SAT.eqConstP.ap₂ fs c
Instances For
ltConst.
Equations
- MIPRE.TM.CookLevin.Desc.ltC fs c = MIPRE.SAT.ltConstP.ap₂ fs c
Instances For
eqFields.
Equations
- MIPRE.TM.CookLevin.Desc.eqF fs gs = MIPRE.SAT.eqFieldsP.ap₂ fs gs
Instances For
ltFields.
Equations
- MIPRE.TM.CookLevin.Desc.ltF fs gs = MIPRE.SAT.ltFieldsP.ap₂ fs gs
Instances For
addConstRel.
Equations
- MIPRE.TM.CookLevin.Desc.addRelR fs gs c = MIPRE.SAT.addConstRelP.comp ((fs.pair gs).pair c)
Instances For
The constants of the layout #
A field constant, from a width in unary and the number.
Equations
Instances For
A field constant with a fixed value.
Equations
Instances For
Sof e.
Equations
Instances For
2 * Sof e, as Sof (e + 1).
Equations
Instances For
Sof e + k.
Equations
Instances For
2 * Sof e + k.
Equations
Instances For
The kind predicates #
numEqF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
isCellF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
isHeadF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
isStateF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
isEmitOneF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
isEmitBadF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
isEmittedF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
isAuxF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The same-variable formulas #
cellEqF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
headEqF.
Equations
Instances For
stateEqF.
Equations
Instances For
auxEqF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
samePosF.
Equations
Instances For
Mapping over a list read off the input #
Mapping a reader of pairs over a list read off the input.
Equations
- MIPRE.TM.CookLevin.Desc.mapR F l = F.mapWith.comp (l.pair (MIPRE.Cost.PolyTimeFun.id ι))
Instances For
Unit clauses and signs #
unitCellF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
unitHeadF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
unitStateF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
unitEmitBadF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
unitEmittedF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
unitAuxF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
sameSignsF.
Equations
Instances For
Positions and values #
bdryF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
startCellF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
workValF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The lookup table, written as a map over the codes paired with their positions.
lookupList, from cell 3.
Equations
- One or more equations did not get rendered due to their size.
Instances For
cellValF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
unaryValF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
freeTapeF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
tZeroF.
Equations
Instances For
The start family #
startHeadF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
startStateF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
startFixedF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
startWorkF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
startF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The free family #
freeBdryF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
freeOtherF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
freeTwoF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
freeOneOfF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
freeNandF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
freeBlankF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
freeF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The boundary, emission and final families #
bdryCellF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
bdryHeadF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
bdryPredF.
Equations
Instances For
emitZeroF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
emitStepF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
emitMonoF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
emitOneF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
emitOnceF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
emitBadF.
Equations
Instances For
emitPredF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
finalStateF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
finalEmittedF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
finalPredF.
Equations
Instances For
The five explicit families #
mainF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The window family #
The templates of the check circuit are a constant of the describer — Gc is fixed — so
the program maps over tplsOf Gc chk at the Lean level and the descriptors never have to be
encoded: each becomes a const reader.
selectF, written as a map over the pairs.
selectF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
posF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
winMatchN.
Equations
- One or more equations did not get rendered due to their size.
Instances For
auxMatchN.
Equations
- One or more equations did not get rendered due to their size.
Instances For
specMatchN.
Equations
- One or more equations did not get rendered due to their size.
Instances For
tplN.
Equations
- One or more equations did not get rendered due to their size.
Instances For
windowGatesN, on the templates of the check circuit.
Equations
- One or more equations did not get rendered due to their size.
Instances For
windowOutF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
windowN.
Equations
Instances For
The whole tableau #
tableauF.
Equations
- MIPRE.TM.CookLevin.Desc.tableauR eu C tabs frees = MIPRE.TM.CookLevin.Desc.orTwo (MIPRE.TM.CookLevin.Desc.mainR eu C tabs frees) (MIPRE.TM.CookLevin.Desc.windowR eu C)
Instances For
The answer-end clauses #
ansEndF.
Equations
- One or more equations did not get rendered due to their size.
Instances For
tableauPlusF.
Equations
- MIPRE.TM.CookLevin.Desc.tableauPlusR eu TR C tabs frees = MIPRE.TM.CookLevin.Desc.orTwo (MIPRE.TM.CookLevin.Desc.tableauR eu C tabs frees) (MIPRE.TM.CookLevin.Desc.ansEndR eu TR C)