What the drawn circuit computes #
The intended value of each gate of
DescriptiveComplexity.Problems.Cvp.Hardness.Interp, and the two halves of the
statement that the circuit computes it.
The building half (this file's first section) walks the chains: each gate's
value follows from its inputs', by induction along the order for the two chains
and by strong induction on the rank of the stage for the propagation, whose
gates at stage s read the propagation gates one stage below. The inverting
half is the converse, and it is one induction on the derivation
DescriptiveComplexity.GateVal: whatever the circuit derives, it derives for
the intended reason, because the wiring lemmas leave a gate no other input to
have derived it from.
Only the true rail carries information; the false rail is where the constant
0 and the unfired chains sit, and nothing downstream reads it, so the
inverting half states nothing about it.
The intended values #
The value of a conjunction-chain gate: every negative literal of c up to
y is forced within orank s rounds.
Equations
- DescriptiveComplexity.CvpVal.BdVal c y s = ∀ y' ≤ y, DescriptiveComplexity.SatOcc.NegIn c y' → DescriptiveComplexity.ForcedIn (DescriptiveComplexity.orank s) y'
Instances For
Dependency graph
The value of a propagation-chain gate: some clause up to c forces x in
one round from the stage orank s.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The value of a top-stage conjunction-chain gate: every negative literal of
c up to y is forced at all.
Equations
- DescriptiveComplexity.CvpVal.BdTopVal c y = ∀ y' ≤ y, DescriptiveComplexity.SatOcc.NegIn c y' → DescriptiveComplexity.Forced y'
Instances For
Dependency graph
The value of a goal-chain gate: the instance is not Horn, or some clause up
to c is a goal clause whose negative literals are all forced.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Reading the values off the stages #
At the top of the clause walk, a propagation gate is one round of unit propagation.
Dependency graph
At the top of the literal walk, a conjunction gate is the body condition.
Dependency graph
The last stage is the fixed point: Nat.card A rounds of propagation force
everything that is forced at all.
Dependency graph
Building a derivation #
Each gate evaluates to 1 as soon as its intended value holds.
The constant 1 gate derives 1.
Dependency graph
The two chains of one stage, by strong induction on the rank of the stage: the conjunction chains of a stage read the propagation gates of the stage below, and the propagation chain of a stage reads the conjunction chains of its own.
Dependency graph
A conjunction gate of the top stage evaluates to 1 when its value
holds.
Dependency graph
A goal-chain gate evaluates to 1 when its value holds.
Dependency graph
Inverting a derivation #
Whatever the circuit derives on the true rail, it derives for the intended reason: the wiring leaves a gate no other input to have derived it from.
The intended value of a point, by tag. The constant 1 carries no
information and the constant 0 is never derived, which is what makes the
induction go through.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Nothing else evaluates to 1. By induction on the derivation: every
rule that can fire at a gate of the drawn circuit fires for the intended
reason. The false rail carries no information and is not tracked.