The binary AND/OR basis #
This basis is the common syntax for Boolean AND/OR circuits and set-theoretic
intersection/union constructions. Separate operation costs can charge either
kind of binary gate; andCost is the intersection-complexity convention used
by the set-theoretic fusion method.
Operation symbols in the binary AND/OR basis.
Instances For
The AND/OR basis has two operation symbols.
Both AND/OR operations have arity two.
Equations
- Algebraic.AndOr.arity x✝ = 2
Instances For
Signature of the binary AND/OR basis.
Equations
- Algebraic.AndOr.signature = { Op := Algebraic.AndOr.Op, Arity := Algebraic.AndOr.arity }
Instances For
Standard Boolean interpretation of AND and OR.
Equations
- Algebraic.AndOr.boolInterpretation Algebraic.AndOr.Op.and input = (input ⟨0, Algebraic.AndOr.boolInterpretation._proof_3⟩ && input ⟨1, Algebraic.AndOr.boolInterpretation._proof_4⟩)
- Algebraic.AndOr.boolInterpretation Algebraic.AndOr.Op.or input = (input ⟨0, Algebraic.AndOr.boolInterpretation._proof_5⟩ || input ⟨1, Algebraic.AndOr.boolInterpretation._proof_6⟩)
Instances For
Interpret AND as intersection and OR as union.
Equations
- Algebraic.AndOr.setInterpretation Γ Algebraic.AndOr.Op.and input = input ⟨0, Algebraic.AndOr.boolInterpretation._proof_3⟩ ∩ input ⟨1, Algebraic.AndOr.boolInterpretation._proof_4⟩
- Algebraic.AndOr.setInterpretation Γ Algebraic.AndOr.Op.or input = input ⟨0, Algebraic.AndOr.boolInterpretation._proof_5⟩ ∪ input ⟨1, Algebraic.AndOr.boolInterpretation._proof_6⟩
Instances For
Charge AND gates and treat OR gates as free.
Equations
Instances For
Charge OR gates and treat AND gates as free.
Equations
Instances For
Boolean characteristic value of membership in a set.
Equations
- Algebraic.AndOr.membership point set = decide (point ∈ set)
Instances For
Equality of characteristic values is pointwise equivalence of membership.
Equality of characteristic values at two points is equivalence of their membership in the set.
Membership at a fixed point is a homomorphism from sets to Booleans.
Equations
- Algebraic.AndOr.membershipHomomorphism point = { map := Algebraic.AndOr.membership point, homomorphic := ⋯ }