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