Notation classes for lattice operations #
In this file we introduce typeclasses and definitions for lattice operations.
Main definitions #
- the
⊔
notation is used forMax
since November 2024 - the
⊓
notation is used forMin
since November 2024 HasCompl
: 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
- compl : α → α
Set / lattice complement
Set / lattice complement
Equations
- «term_ᶜ» = Lean.ParserDescr.trailingNode `«term_ᶜ» 1024 1024 (Lean.ParserDescr.symbol "ᶜ")
The maximum operation: max x y
.
Equations
- «term_⊔_» = Lean.ParserDescr.trailingNode `«term_⊔_» 68 68 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊔ ") (Lean.ParserDescr.cat `term 69))
The minimum operation: min x y
.
Equations
- «term_⊓_» = Lean.ParserDescr.trailingNode `«term_⊓_» 69 69 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊓ ") (Lean.ParserDescr.cat `term 70))
Syntax typeclass for Heyting implication ⇨
.
- himp : α → α → α
Heyting implication
⇨
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))
Heyting negation
Equations
- «term¬_» = Lean.ParserDescr.node `«term¬_» 72 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "¬") (Lean.ParserDescr.cat `term 72))
Typeclass for the ⊤
(\top
) notation
- top : α
The top (
⊤
,\top
) element
Instances
- AddGroupTopology.instTop
- AddSubgroup.instTop
- AddSubmonoid.instTop
- AddSubsemigroup.instTop
- Associates.instTopOfZero
- ConvexCone.instTop
- EReal.instTop
- Filter.Germ.instTop
- Filter.instTop
- GroupTopology.instTop
- InfHom.instTop
- LowerSet.instTop
- MeasurableSet.Subtype.instTop
- MeasureTheory.Filtration.instTop
- NonUnitalSubring.instTop
- NonUnitalSubsemiring.instTop
- OrderDual.instTop
- OrderHom.instTopOrderHom
- Pi.instTopForall
- Prod.instTop
- Subfield.instTop
- Subgroup.instTop
- Submodule.instTop
- Submonoid.instTop
- Subring.instTop
- Subsemigroup.instTop
- Subsemiring.instTop
- SupHom.instTop
- TopologicalSpace.Clopens.instTop
- TopologicalSpace.CompactOpens.instTop
- TopologicalSpace.Compacts.instTopOfCompactSpace
- TopologicalSpace.NonemptyCompacts.instTopOfCompactSpaceOfNonempty
- TopologicalSpace.PositiveCompacts.instTopOfCompactSpaceOfNonempty
- TwoSidedIdeal.instTop
- ULift.instTop
- UpperSet.instTop
- WithBot.instTop
- WithTop.top
- instENNRealTop
- instENatTop
- instTopUniformSpace
- sInfHom.instTop
Typeclass for the ⊥
(\bot
) notation
- bot : α
The bot (
⊥
,\bot
) element
Instances
- AddGroupTopology.instBot
- AddSubgroup.instBot
- AddSubmonoid.instBot
- AddSubsemigroup.instBot
- Associates.instBot
- ConvexCone.instBot
- Filter.Germ.instBot
- Filter.instBot
- GroupTopology.instBot
- InfHom.instBot
- LinearPMap.bot
- LowerSet.instBot
- MeasurableSet.Subtype.instBot
- MeasureTheory.Filtration.instBot
- MeasureTheory.OuterMeasure.instBot
- NonUnitalSubring.instBot
- NonUnitalSubsemiring.instBot
- OrderDual.instBot
- OrderHom.instBotOfOrderBot
- Pi.instBotForall
- Prod.instBot
- SubAddAction.instBot
- SubMulAction.instBot
- Subgroup.instBot
- Submodule.instBot
- Submonoid.instBot
- Subring.instBot
- Subsemigroup.instBot
- Subsemiring.instBot
- SupHom.instBot
- TopologicalSpace.Clopens.instBot
- TopologicalSpace.CompactOpens.instBot
- TopologicalSpace.Compacts.instBot
- TwoSidedIdeal.instBot
- ULift.instBot
- UpperSet.instBot
- WithBot.bot
- WithTop.instBot
- instBotUniformSpace
- instENatBot
- instERealBot
- sSupHom.instBot
The top (⊤
, \top
) element
Equations
- «term⊤» = Lean.ParserDescr.node `«term⊤» 1024 (Lean.ParserDescr.symbol "⊤")
The bot (⊥
, \bot
) element
Equations
- «term⊥» = Lean.ParserDescr.node `«term⊥» 1024 (Lean.ParserDescr.symbol "⊥")