Bilattices #
A bilattice ([Avr96] Def 2.1) is one carrier with two lattice orders, a truth order ≤
and a knowledge order ≤ₖ. It is interlaced when the meet and join of each order are
monotone for the other order, a condition due to [Fit90].
The truth lattice is the carrier's own [Lattice B]. The knowledge lattice lives on the type
synonym Know B, a distinct type head (cf. OrderDual), so both can be instances at once. On
B itself the knowledge meet and join, Fitting's consensus ⊗ and gullibility ⊕, are written
⊓ₖ and ⊔ₖ.
Main definitions #
Bilattice.Know,Bilattice.toKnow,Bilattice.ofKnow: the knowledge-order synonym and its casts.Bilattice.kInf,Bilattice.kSup,Bilattice.kLE: the knowledge meet⊓ₖ, join⊔ₖand order≤ₖ.Bilattice.IsInterlaced: the four interlacing laws.
References #
The knowledge-order synonym of a bilattice carrier (cf. OrderDual). It is
the same underlying type as B, but a distinct type head, so it can carry the
knowledge lattice as a separate instance from B's truth lattice.
Equations
- Bilattice.Know B = B
Instances For
Knowledge meet ⊓ₖ (consensus): the meet in the knowledge lattice.
Equations
- Bilattice.kInf x y = Bilattice.ofKnow (Bilattice.toKnow x ⊓ Bilattice.toKnow y)
Instances For
Knowledge join ⊔ₖ (gullibility): the join in the knowledge lattice.
Equations
- Bilattice.kSup x y = Bilattice.ofKnow (Bilattice.toKnow x ⊔ Bilattice.toKnow y)
Instances For
Knowledge meet ⊓ₖ (consensus): the meet in the knowledge lattice.
Equations
- Bilattice.«term_⊓ₖ_» = Lean.ParserDescr.trailingNode `Bilattice.«term_⊓ₖ_» 70 70 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊓ₖ ") (Lean.ParserDescr.cat `term 71))
Instances For
Knowledge join ⊔ₖ (gullibility): the join in the knowledge lattice.
Equations
- Bilattice.«term_⊔ₖ_» = Lean.ParserDescr.trailingNode `Bilattice.«term_⊔ₖ_» 65 65 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊔ₖ ") (Lean.ParserDescr.cat `term 66))
Instances For
Knowledge order ≤_k.
Equations
- Bilattice.kLE x y = (Bilattice.toKnow x ≤ Bilattice.toKnow y)
Instances For
Knowledge order ≤_k.
Equations
- Bilattice.«term_≤ₖ_» = Lean.ParserDescr.trailingNode `Bilattice.«term_≤ₖ_» 50 51 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ≤ₖ ") (Lean.ParserDescr.cat `term 51))
Instances For
Equations
- Bilattice.instTransKLE = { trans := ⋯ }
The interlacing mixin #
The four interlacing laws ([Avr96] Def 2.1(3)): each operation is monotone w.r.t. the other order. The same-order monotonicities are automatic (an operation is monotone for its own order).
truth meet
∧ = ⊓is≤_k-monotonetruth join
∨ = ⊔is≤_k-monotoneknowledge meet
⊓ₖis≤_t-monotoneknowledge join
⊔ₖis≤_t-monotone