Notation classes for lattice operations #
In this file we introduce typeclasses and definitions for lattice operations.
Main definitions #
Sup
: type class for the⊔
notationInf
: type class for the⊓
notationHasCompl
: type class for theᶜ
notationTop
: type class for the⊤
notationBot
: type class for the⊥
notation
Notations #
x ⊔ y
: lattice join operation;x ⊓ y
: lattice meet operation;xᶜ
: complement in a lattice;
Set / lattice complement
Equations
- «term_ᶜ» = Lean.ParserDescr.trailingNode `term_ᶜ 1024 1024 (Lean.ParserDescr.symbol "ᶜ")
Instances For
Least upper bound (\lub
notation)
Equations
- «term_⊔_» = Lean.ParserDescr.trailingNode `term_⊔_ 68 68 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊔ ") (Lean.ParserDescr.cat `term 69))
Instances For
Greatest lower bound (\glb
notation)
Equations
- «term_⊓_» = Lean.ParserDescr.trailingNode `term_⊓_ 69 69 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊓ ") (Lean.ParserDescr.cat `term 70))
Instances For
Syntax typeclass for Heyting negation ¬
.
The difference between HasCompl
and HNot
is that the former belongs to Heyting algebras,
while the latter belongs to co-Heyting algebras. They are both pseudo-complements, but compl
underestimates while HNot
overestimates. In boolean algebras, they are equal.
See hnot_eq_compl
.
- hnot : α → α
Heyting negation
¬
Instances
Heyting implication
Equations
- «term_⇨_» = Lean.ParserDescr.trailingNode `term_⇨_ 60 61 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⇨ ") (Lean.ParserDescr.cat `term 60))
Instances For
Heyting negation
Equations
- «term¬_» = Lean.ParserDescr.node `term¬_ 72 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "¬") (Lean.ParserDescr.cat `term 72))
Instances For
The top (⊤
, \top
) element
Equations
- «term⊤» = Lean.ParserDescr.node `term⊤ 1024 (Lean.ParserDescr.symbol "⊤")
Instances For
The bot (⊥
, \bot
) element
Equations
- «term⊥» = Lean.ParserDescr.node `term⊥ 1024 (Lean.ParserDescr.symbol "⊥")