Semilattice

Order Theoretic Definition

AllJoinsβ€…β€ŠAβ€…β€ŠR\textbf{AllJoins} \; A \; R

βˆ€(x,y∈A::βˆƒ(z∈A::Joinβ€…β€ŠAβ€…β€ŠRβ€…β€Š{x,y}β€…β€Šz))\forall(x,y \in A :: \exists(z \in A:: \textbf{Join} \; A \; R \; \{x, y\} \; z))


pred AllJoins(A: set univ, R: univ -> univ) {
  all x,y: A | some z: A | Join[A,R,x+y,z]
}
AllMeetsβ€…β€ŠAβ€…β€ŠR\textbf{AllMeets} \; A \; R

βˆ€(x,y∈A::βˆƒ(z::Meetβ€…β€ŠAβ€…β€ŠRβ€…β€Š{x,y}β€…β€Šz))\forall(x,y \in A :: \exists(z :: \textbf{Meet} \; A \; R \; \{x,y\} \; z))


pred AllMeets(A: set univ, R: univ->univ) {
  all x,y: A | some z: A | Meet[A,R,x+y,z]
}
JoinSemilatticeβ€…β€ŠAβ€…β€ŠR\textbf{JoinSemilattice} \; A \; R

PartialOrderβ€…β€ŠAβ€…β€ŠR\textbf{PartialOrder} \; A \; R

AllJoinsβ€…β€ŠAβ€…β€ŠR\textbf{AllJoins} \; A \; R


pred JoinSemilattice(A: set univ, R: univ -> univ) {
  PartialOrder[A,R]
  AllJoins[A,R]
}
Latticeβ€…β€ŠAβ€…β€ŠR\textbf{Lattice} \; A \; R

JoinSemilatticeβ€…β€ŠAβ€…β€ŠR\textbf{JoinSemilattice} \; A \; R

MeetSemilatticeβ€…β€ŠAβ€…β€ŠR\textbf{MeetSemilattice} \; A \; R


pred Lattice(A: set univ, R: univ->univ) {
  JoinSemilattice[A,R]
  MeetSemilattice[A,R]
}
MeetSemilatticeβ€…β€ŠAβ€…β€ŠR\textbf{MeetSemilattice} \; A \; R

PartialOrderβ€…β€ŠAβ€…β€ŠR\textbf{PartialOrder} \; A \; R

AllMeetsβ€…β€ŠAβ€…β€ŠR\textbf{AllMeets} \; A \; R


pred MeetSemilattice(A: set univ, R: univ -> univ) {
  PartialOrder[A,R]
  AllMeets[A,R]
}

Algebraic Definition

Absorbsβ€…β€ŠAβ€…β€ŠβŠ—β€…β€ŠβŠ•\textbf{Absorbs} \; A \; \otimes \; \oplus

Magmaβ€…β€ŠAβ€…β€ŠβŠ—\textbf{Magma} \; A \; \otimes

Magmaβ€…β€ŠAβ€…β€ŠβŠ•\textbf{Magma} \; A \; \oplus

βˆ€(x,y∈A::xβŠ—(xβŠ•y)=x)\forall( x,y \in A :: x \otimes (x \oplus y) = x)


pred Absorbs(A: set univ, f,g: univ->univ->univ) {
  Magma[A,f]
  Magma[A,g]
  all: x,y: A | f[x,g[x,y]] = x
}
Latticeβ€…β€ŠAβ€…β€ŠβŠ—β€…β€ŠβŠ•\textbf{Lattice} \; A \; \otimes \; \oplus

Semilatticeβ€…β€ŠAβ€…β€ŠβŠ—\textbf{Semilattice} \; A \; \otimes

Semilatticeβ€…β€ŠAβ€…β€ŠβŠ•\textbf{Semilattice} \; A \; \oplus

Absorbsβ€…β€ŠAβ€…β€ŠβŠ—β€…β€ŠβŠ•\textbf{Absorbs} \; A \; \otimes \; \oplus

Absorbsβ€…β€ŠAβ€…β€ŠβŠ•β€…β€ŠβŠ—\textbf{Absorbs} \; A \; \oplus \; \otimes


pred Lattice(A: set univ, cap, cup: univ->univ->univ) {
  Semilattice[A,cap]
  Semilattice[A,cup]
  Absorbs[A,cap,cup]
  Absorbs[A,cup,cap]
}
Semilatticeβ€…β€ŠAβ€…β€ŠβŠ—\textbf{Semilattice} \; A \; \otimes

Idempotentβ€…β€ŠAβ€…β€ŠβŠ—\textbf{Idempotent} \; A \; \otimes

Symmetricβ€…β€ŠAβ€…β€ŠβŠ—\textbf{Symmetric} \; A \; \otimes

Semigroupβ€…β€ŠAβ€…β€ŠβŠ—\textbf{Semigroup} \; A \; \otimes


pred Semilattice(A: set univ, op: univ->univ->univ) {
  Idempotent[A,op]
  Symmetric[A,op]
  Semigroup[A,op]
}

Last updated