Binary meet and finite join basis #
This basis has one binary meet operation and a finite-arity join operation for every arity. Nullary join supplies the bottom element. It is convenient for cyclic discrete constructions, where joins are free and only binary meets are counted; finite joins can subsequently be expanded into binary joins without changing meet cost.
Equations
- Algebraic.JoinMeet.instDecidableEqOp.decEq Algebraic.JoinMeet.Op.meet Algebraic.JoinMeet.Op.meet = isTrue ⋯
- Algebraic.JoinMeet.instDecidableEqOp.decEq Algebraic.JoinMeet.Op.meet (Algebraic.JoinMeet.Op.join arity) = isFalse ⋯
- Algebraic.JoinMeet.instDecidableEqOp.decEq (Algebraic.JoinMeet.Op.join arity) Algebraic.JoinMeet.Op.meet = isFalse ⋯
- Algebraic.JoinMeet.instDecidableEqOp.decEq (Algebraic.JoinMeet.Op.join a) (Algebraic.JoinMeet.Op.join b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
@[instance_reducible]
@[reducible]
Arity of a meet/join operation.
Equations
Instances For
@[reducible, inline]
Signature with binary meet and every finite join.
Equations
- Algebraic.JoinMeet.signature = { Op := Algebraic.JoinMeet.Op, Arity := Algebraic.JoinMeet.arity }
Instances For
Interpret meet as intersection and finite join as indexed union.
Equations
- One or more equations did not get rendered due to their size.
- Algebraic.JoinMeet.setInterpretation Γ Algebraic.JoinMeet.Op.meet input = input 0 ∩ input 1
Instances For
Charge meets and treat all finite joins as free.