The De Morgan basis #
The basis contains Boolean constants, a structural identity gate, unary
negation, and binary conjunction and disjunction. The circuit representation
has free wire outputs; identity remains useful only when a proof explicitly
materializes an output as a final program gate. binaryCost implements the
standard gate-elimination cost model in which only the binary gates are
charged. andCost and notCost count the AND gates and the NOT gates.
The De Morgan basis has six operation symbols.
Equations
- One or more equations did not get rendered due to their size.
Arity of an operation in the De Morgan basis.
Equations
- Algebraic.DeMorgan.arity Algebraic.DeMorgan.Op.false = 0
- Algebraic.DeMorgan.arity Algebraic.DeMorgan.Op.true = 0
- Algebraic.DeMorgan.arity Algebraic.DeMorgan.Op.id = 1
- Algebraic.DeMorgan.arity Algebraic.DeMorgan.Op.not = 1
- Algebraic.DeMorgan.arity Algebraic.DeMorgan.Op.and = 2
- Algebraic.DeMorgan.arity Algebraic.DeMorgan.Op.or = 2
Instances For
Signature of the De Morgan basis.
Equations
- Algebraic.DeMorgan.signature = { Op := Algebraic.DeMorgan.Op, Arity := Algebraic.DeMorgan.arity }
Instances For
Standard Boolean interpretation of the De Morgan basis.
Equations
- Algebraic.DeMorgan.interpretation Algebraic.DeMorgan.Op.false x_2 = false
- Algebraic.DeMorgan.interpretation Algebraic.DeMorgan.Op.true x_2 = true
- Algebraic.DeMorgan.interpretation Algebraic.DeMorgan.Op.id input = input ⟨0, Algebraic.DeMorgan.interpretation._proof_3⟩
- Algebraic.DeMorgan.interpretation Algebraic.DeMorgan.Op.not input = !input ⟨0, Algebraic.DeMorgan.interpretation._proof_4⟩
- Algebraic.DeMorgan.interpretation Algebraic.DeMorgan.Op.and input = (input ⟨0, Algebraic.DeMorgan.interpretation._proof_5⟩ && input ⟨1, Algebraic.DeMorgan.interpretation._proof_6⟩)
- Algebraic.DeMorgan.interpretation Algebraic.DeMorgan.Op.or input = (input ⟨0, Algebraic.DeMorgan.interpretation._proof_7⟩ || input ⟨1, Algebraic.DeMorgan.interpretation._proof_8⟩)
Instances For
Cost model charging exactly the binary gates. This is the convention used by the gate-elimination lower bounds, not the mass-production manuscript.
Equations
- Algebraic.DeMorgan.binaryCost Algebraic.DeMorgan.Op.and = 1
- Algebraic.DeMorgan.binaryCost Algebraic.DeMorgan.Op.or = 1
- Algebraic.DeMorgan.binaryCost Algebraic.DeMorgan.Op.false = 0
- Algebraic.DeMorgan.binaryCost Algebraic.DeMorgan.Op.true = 0
- Algebraic.DeMorgan.binaryCost Algebraic.DeMorgan.Op.id = 0
- Algebraic.DeMorgan.binaryCost Algebraic.DeMorgan.Op.not = 0
Instances For
The manuscript's standard circuit-size convention: constants and structural identities are free, while NOT, AND, and OR each cost one gate.
Equations
- Algebraic.DeMorgan.standardCost Algebraic.DeMorgan.Op.false = 0
- Algebraic.DeMorgan.standardCost Algebraic.DeMorgan.Op.true = 0
- Algebraic.DeMorgan.standardCost Algebraic.DeMorgan.Op.id = 0
- Algebraic.DeMorgan.standardCost Algebraic.DeMorgan.Op.not = 1
- Algebraic.DeMorgan.standardCost Algebraic.DeMorgan.Op.and = 1
- Algebraic.DeMorgan.standardCost Algebraic.DeMorgan.Op.or = 1
Instances For
Charge AND gates and treat every other gate as free; the De Morgan analogue
of AndOr.andCost.
Equations
- Algebraic.DeMorgan.andCost Algebraic.DeMorgan.Op.and = 1
- Algebraic.DeMorgan.andCost Algebraic.DeMorgan.Op.false = 0
- Algebraic.DeMorgan.andCost Algebraic.DeMorgan.Op.true = 0
- Algebraic.DeMorgan.andCost Algebraic.DeMorgan.Op.id = 0
- Algebraic.DeMorgan.andCost Algebraic.DeMorgan.Op.not = 0
- Algebraic.DeMorgan.andCost Algebraic.DeMorgan.Op.or = 0
Instances For
Charge NOT gates and treat every other gate as free, so that a circuit's cost is its number of negations.
Equations
- Algebraic.DeMorgan.notCost Algebraic.DeMorgan.Op.not = 1
- Algebraic.DeMorgan.notCost Algebraic.DeMorgan.Op.false = 0
- Algebraic.DeMorgan.notCost Algebraic.DeMorgan.Op.true = 0
- Algebraic.DeMorgan.notCost Algebraic.DeMorgan.Op.id = 0
- Algebraic.DeMorgan.notCost Algebraic.DeMorgan.Op.and = 0
- Algebraic.DeMorgan.notCost Algebraic.DeMorgan.Op.or = 0