Orders #
Defines classes for preorders, partial orders, and linear orders and proves some basic lemmas about them.
Unbundled classes #
An empty relation does not relate any elements.
Equations
- EmptyRelation x✝¹ x✝ = False
IsIrrefl X r
means the binary relation r
on X
is irreflexive (that is, r x x
never
holds).
Instances
- CovBy.isIrrefl
- Finset.instIsIrreflSSubset
- HRel.IrreflGen.instIsIrrefl
- IsIrrefl.decide
- IsRefl.compl
- LO.Modal.Hilbert.GL.Kripke.mdpCounterexmpleFrame.instIsIrreflexive
- LO.Modal.Hilbert.GL.Kripke.miniCanonicalFrame.instIsIrreflexive
- LO.Modal.Kripke.Cluster.instIsIrreflStrict_rel
- LO.Modal.Kripke.Frame.IrreflGen.instIsIrreflexive
- LO.Modal.Kripke.Frame.pointGenerate.isIrreflexive
- LO.Modal.Kripke.Frame.strictSkelteon.instIsIrreflexive
- LO.Modal.Kripke.Frame.treeUnravelling.isIrreflexive
- LO.Modal.Kripke.instIsIrreflWorldBlackpointRel
- LO.Modal.Kripke.instIsIrreflexiveOfIsAsymmetric
- Order.Preimage.instIsIrrefl
- Prod.isIrrefl
- Set.instIsIrreflSSubset
- Subrel.instIsIrreflSubtype
- Sum.instIsIrreflLex
- Sum.instIsIrreflLiftRel
- WellFounded.instIsIrreflRel
- instIsIrreflEmptyRelation
- instIsIrreflGt
- instIsIrreflLt
- instIsIrreflOfIsIsolated
- instIsIrreflOfIsNonstrictStrictOrder
- instIsIrreflOfIsWellFounded
- instIsIrreflOfIsWellOrder
IsRefl X r
means the binary relation r
on X
is reflexive.
- refl (a : α) : r a a
Instances
- AddCommute.instIsRefl
- AddCommute.on_isRefl
- Commute.instIsRefl
- Commute.on_isRefl
- Finset.instIsReflSubset
- HRel.ReflGen.instIsRefl
- HRel.ReflTransGen.instIsRefl
- HRel.TransGen.instIsRefl
- IsIrrefl.compl
- IsRefl.decide
- IsTotal.to_isRefl
- LO.Modal.Kripke.Cluster.instIsReflRelOfIsReflexive
- LO.Modal.Kripke.Frame.ReflGen.instIsReflexive
- LO.Modal.Kripke.Frame.TransGen.instIsReflexive
- LO.Modal.Kripke.Frame.instIsReflexiveOfIsGeachConvergentMkOfNatNat
- LO.Modal.Kripke.Frame.pointGenerate.isReflexive
- LO.Modal.Kripke.Grz.instIsReflexiveMiniCanonicalFrame
- LO.Modal.Kripke.Model.pointGenerate.isReflexive
- LO.Modal.Kripke.coarsestFiltrationModel.instIsReflexive
- LO.Modal.Kripke.finLE.instIsReflWorldRel
- LO.Modal.Kripke.finestFiltrationModel.isReflexive
- LO.Modal.Kripke.finestFiltrationTransitiveClosureModel.isReflexive
- LO.Modal.Kripke.instIsReflWorldClusterEquiv
- LO.Modal.Kripke.instIsReflexiveCanonicalFrameOfHasAxiomTFormulaNat
- LO.Modal.Kripke.instIsReflexiveSkeleton
- LO.Modal.Kripke.natLE.instIsReflWorldRel
- List.SublistForall₂.is_refl
- Nat.ModEq.instIsRefl
- Order.Preimage.instIsRefl
- Prod.instIsReflLex
- Prod.instIsReflLex_1
- Relation.ReflGen.instIsRefl
- Relation.instIsReflReflTransGen
- Set.instIsReflSubset
- Subrel.instIsReflSubtype
- Sum.instIsReflLex
- Sum.instIsReflLiftRel
- WCovBy.isRefl
- instIsReflAntisymmRel
- instIsReflDvd
- instIsReflGe
- instIsReflLe
- instIsReflOfIsSymmOfIsTransOfIsSerial
- instIsReflOfIsUniversal
IsSymm X r
means the binary relation r
on X
is symmetric.
- symm (a b : α) : r a b → r b a
Instances
- HRel.ReflGen.instIsSymm
- HRel.ReflTransGen.instIsSymm
- HRel.TransGen.instIsSymm
- IsSymm.decide
- LO.Modal.Kripke.Frame.ReflGen.instIsSymmetric
- LO.Modal.Kripke.Frame.ReflTransGen.instIsSymmetric
- LO.Modal.Kripke.Frame.TransGen.isSymmetric
- LO.Modal.Kripke.Frame.instIsSymmetricOfIsGeachConvergentMkOfNatNat
- LO.Modal.Kripke.finestFiltrationModel.isSymmetric
- LO.Modal.Kripke.finestFiltrationTransitiveClosureModel.isSymmetric
- LO.Modal.Kripke.instIsSymmWorldClusterEquiv
- LO.Modal.Kripke.instIsSymmetricCanonicalFrameOfHasAxiomBFormulaNat
- List.instIsSymmPerm
- Order.Preimage.instIsSymm
- Subrel.instIsSymmSubtype
- instIsSymmAntisymmRel
- instIsSymmOfIsCoreflexive
- instIsSymmOfIsEquality
- instIsSymmOfIsReflOfIsRightEuclidean
IsAsymm X r
means that the binary relation r
on X
is asymmetric, that is,
r a b → ¬ r b a
.
- asymm (a b : α) : r a b → ¬r b a
Instances
- Finset.instIsAsymmSSubset
- InvImage.isAsymm
- IsAsymm.decide
- LO.Modal.Kripke.Cluster.instIsAsymmStrict_rel
- LO.Modal.Kripke.Frame.extendRoot.isAsymmetric
- LO.Modal.Kripke.Frame.mkTransTreeUnravelling.instIsAsymmetric
- LO.Modal.Kripke.Frame.pointGenerate.isAsymmetric
- LO.Modal.Kripke.Frame.treeUnravelling.isAsymmetric
- LO.Modal.Kripke.Model.extendRoot.isAsymmetric
- LO.Modal.Kripke.Model.pointGenerate.isAsymmetric
- List.Lex.isAsymm
- Order.Preimage.instIsAsymm
- Prod.instIsAsymmLex
- Set.instIsAsymmSSubset
- Subrel.instIsAsymmSubtype
- WellFounded.instIsAsymmRel
- instIsAsymmGt
- instIsAsymmLt
- instIsAsymmOfIsWellFounded
- instIsAsymmOfIsWellOrder
- isAsymm_of_isTrans_of_isIrrefl
IsAntisymm X r
means the binary relation r
on X
is antisymmetric.
- antisymm (a b : α) : r a b → r b a → a = b
Instances
- Encodable.instIsAntisymmPreimageNatCoeEmbeddingEncode'Le
- Finset.instIsAntisymmSubset
- HRel.ReflGen.instIsAntisymmOfIsIrreflOfIsTrans
- HRel.TransGen.instIsAntisymmOfIsTrans
- IsAntisymm.decide
- IsAsymm.toIsAntisymm
- LO.Modal.Kripke.Cluster.instIsAntisymmRel
- LO.Modal.Kripke.Frame.IrreflGen.instIsAntisymmetric
- LO.Modal.Kripke.Frame.ReflGen.instIsAntisymmetricOfIsTransitiveOfIsIrreflexive
- LO.Modal.Kripke.Frame.pointGenerate.isAntisymmetric
- LO.Modal.Kripke.Grz.instIsAntisymmetricMiniCanonicalFrame
- LO.Modal.Kripke.Model.pointGenerate.isAntisymmetric
- LO.Modal.Kripke.finLE.instIsAntisymmWorldRel
- LO.Modal.Kripke.instIsAntisymmetricSkeleton
- LO.Modal.Kripke.instIsAntisymmetricWhitepoint
- Prod.instIsAntisymmLexOfIsStrictOrder
- Set.instIsAntisymmSubset
- Sum.instIsAntisymmLex
- Sum.instIsAntisymmLiftRel
- instIsAntisymmGe
- instIsAntisymmGt
- instIsAntisymmLe
- instIsAntisymmLt
- instIsAntisymmOfIsEquality
- instIsAntisymmOfIsWeaklyConverseWellFounded
IsTrans X r
means the binary relation r
on X
is transitive.
- trans (a b c : α) : r a b → r b c → r a c
Instances
- Finset.instIsTransSSubset
- Finset.instIsTransSubset
- HRel.IrreflGen.instIsTransOfIsAntisymm
- HRel.ReflGen.instIsTrans
- HRel.ReflTransGen.instIsTrans
- HRel.TransGen.instIsTrans
- IsTrans.decide
- LO.Modal.Hilbert.GL.Kripke.miniCanonicalFrame.instIsTransitive
- LO.Modal.Kripke.Cluster.instIsTransRel
- LO.Modal.Kripke.Cluster.instIsTransStrict_rel
- LO.Modal.Kripke.Frame.IrreflGen.instIsTransitiveOfIsAntisymmetric
- LO.Modal.Kripke.Frame.ReflGen.instIsTransitive
- LO.Modal.Kripke.Frame.TransGen.instIsTransitive
- LO.Modal.Kripke.Frame.extendRoot.isTransitive
- LO.Modal.Kripke.Frame.instIsTransitiveOfIsGeachConvergentMkOfNatNat
- LO.Modal.Kripke.Frame.mkTransTreeUnravelling.instIsTransitive
- LO.Modal.Kripke.Frame.pointGenerate.isTransitive
- LO.Modal.Kripke.Frame.strictSkelteon.instIsTransitive
- LO.Modal.Kripke.Grz.instIsTransitiveMiniCanonicalFrame
- LO.Modal.Kripke.Model.extendRoot.isTransitive
- LO.Modal.Kripke.Model.pointGenerate.isTransitive
- LO.Modal.Kripke.finLE.instIsTransWorldRel
- LO.Modal.Kripke.finestFiltrationTransitiveClosureModel.isTransitive
- LO.Modal.Kripke.instIsTransWorldBlackpointRel
- LO.Modal.Kripke.instIsTransWorldClusterEquivOfIsTransitive
- LO.Modal.Kripke.instIsTransitiveCanonicalFrameOfHasAxiomFourFormulaNat
- LO.Modal.Kripke.instIsTransitiveSkeleton
- LO.Modal.Kripke.natLE.instIsTransWorldRel
- LO.Modal.Kripke.natLT.instIsTransWorldRel
- List.SublistForall₂.is_trans
- Order.Preimage.instIsTrans
- Prod.instIsTransLex
- Relation.instIsTransReflTransGen
- Relation.instIsTransTransGen
- Set.instIsTransSSubset
- Set.instIsTransSubset
- Subrel.instIsTransSubtype
- Sum.instIsTransLex
- Sum.instIsTransLiftRel
- instIsTransAntisymmRel
- instIsTransDvd
- instIsTransGe
- instIsTransGt
- instIsTransLe
- instIsTransLt
- instIsTransOfIsCoreflexive
- instIsTransOfIsEquality
- instIsTransOfIsIsolated
- instIsTransOfIsReflOfIsRightEuclidean
- instIsTransOfIsSymmOfIsRightEuclidean
- instIsTransOfIsWellOrder
- instIsTransOfTrans
Equations
- instTransOfIsTrans = { trans := ⋯ }
IsTotal X r
means that the binary relation r
on X
is total, that is, that for any
x y : X
we have r x y
or r y x
.
Instances
- Encodable.instIsTotalPreimageNatCoeEmbeddingEncode'Le
- IsTotal.decide
- LE.isTotal
- LO.Modal.Kripke.Cluster.instIsTotalRelOfWorldRel
- LO.Modal.Kripke.instIsTotalWorldSkeletonRel
- LowerSet.isTotal_le
- Order.Preimage.instIsTotal
- OrderDual.isTotal_le
- Prod.isTotal_left
- Prod.isTotal_right
- Prop.le_isTotal
- Sum.instIsTotalLex
- UpperSet.isTotal_le
- WithBot.isTotal_le
- WithTop.isTotal_le
- instIsTotalGe
IsPreorder X r
means that the binary relation r
on X
is a pre-order, that is, reflexive
and transitive.
IsPartialOrder X r
means that the binary relation r
on X
is a partial order, that is,
IsPreorder X r
and IsAntisymm X r
.
IsLinearOrder X r
means that the binary relation r
on X
is a linear order, that is,
IsPartialOrder X r
and IsTotal X r
.
IsEquiv X r
means that the binary relation r
on X
is an equivalence relation, that
is, IsPreorder X r
and IsSymm X r
.
IsStrictOrder X r
means that the binary relation r
on X
is a strict order, that is,
IsIrrefl X r
and IsTrans X r
.
IsStrictWeakOrder X lt
means that the binary relation lt
on X
is a strict weak order,
that is, IsStrictOrder X lt
and ¬lt a b ∧ ¬lt b a → ¬lt b c ∧ ¬lt c b → ¬lt a c ∧ ¬lt c a
.
Instances
IsTrichotomous X lt
means that the binary relation lt
on X
is trichotomous, that is,
either lt a b
or a = b
or lt b a
for any a
and b
.
Instances
- IsTrichotomous.decide
- LO.Modal.Kripke.Cluster.instIsTrichotomousStrict_relOfWorldRel
- LO.Modal.Kripke.Frame.strictSkelteon.instIsTrichotomousWorldRel
- List.Lex.isTrichotomous
- Prod.IsTrichotomous
- Subrel.instIsTrichotomousSubtype
- Sum.instIsTrichotomousLex
- WithBot.trichotomous.gt
- WithBot.trichotomous.lt
- WithTop.trichotomous.gt
- WithTop.trichotomous.lt
- instIsTrichotomousGe
- instIsTrichotomousGt
- instIsTrichotomousLe
- instIsTrichotomousLt
- instIsTrichotomousOfIsWellOrder
IsStrictTotalOrder X lt
means that the binary relation lt
on X
is a strict total order,
that is, IsTrichotomous X lt
and IsStrictOrder X lt
.
Equality is an equivalence relation.
IsTrans
as a definition, suitable for use in proofs.
Equations
- Transitive r = ∀ ⦃x y z : α⦄, r x y → r y z → r x z
IsIrrefl
as a definition, suitable for use in proofs.
Equations
- Irreflexive r = ∀ (x : α), ¬r x x
IsAntisymm
as a definition, suitable for use in proofs.
Equations
- AntiSymmetric r = ∀ ⦃x y : α⦄, r x y → r y x → x = y
Minimal and maximal #
MinimalFor P f i
means that f i
is minimal over all i
satisfying P
.
Equations
- MinimalFor P f i = (P i ∧ ∀ ⦃j : ι⦄, P j → f j ≤ f i → f i ≤ f j)
MaximalFor P f i
means that f i
is maximal over all i
satisfying P
.
Equations
- MaximalFor P f i = (P i ∧ ∀ ⦃j : ι⦄, P j → f i ≤ f j → f j ≤ f i)
Upper and lower sets #
The type of upper sets of an order.
An upper set in an order α
is a set such that any element greater than one of its members is
also a member. Also called up-set, upward-closed set.
- carrier : Set α
The carrier of an
UpperSet
. - upper' : IsUpperSet self.carrier
The carrier of an
UpperSet
is an upper set.
The type of lower sets of an order.
A lower set in an order α
is a set such that any element less than one of its members is also
a member. Also called down-set, downward-closed set.
- carrier : Set α
The carrier of a
LowerSet
. - lower' : IsLowerSet self.carrier
The carrier of a
LowerSet
is a lower set.
An upper set relative to a predicate P
is a set such that all elements satisfy P
and
any element greater than one of its members and satisfying P
is also a member.
A lower set relative to a predicate P
is a set such that all elements satisfy P
and
any element less than one of its members and satisfying P
is also a member.
The type of upper sets of an order relative to P
.
An upper set relative to a predicate P
is a set such that all elements satisfy P
and
any element greater than one of its members and satisfying P
is also a member.
- carrier : Set α
The carrier of a
RelUpperSet
. - isRelUpperSet' : IsRelUpperSet self.carrier P
The carrier of a
RelUpperSet
is an upper set relative toP
.Do NOT use directly. Please use
RelUpperSet.isRelUpperSet
instead.
The type of lower sets of an order relative to P
.
A lower set relative to a predicate P
is a set such that all elements satisfy P
and
any element less than one of its members and satisfying P
is also a member.
- carrier : Set α
The carrier of a
RelLowerSet
. - isRelLowerSet' : IsRelLowerSet self.carrier P
The carrier of a
RelLowerSet
is a lower set relative toP
.Do NOT use directly. Please use
RelLowerSet.isRelLowerSet
instead.
A version of antisymm
with r
explicit.
This lemma matches the lemmas from lean core in Init.Algebra.Classes
, but is missing there.
A version of antisymm'
with r
explicit.
This lemma matches the lemmas from lean core in Init.Algebra.Classes
, but is missing there.
In a trichotomous irreflexive order, every element is determined by the set of predecessors.