20 lines
497 B
TypeScript
20 lines
497 B
TypeScript
/**
|
|
* A meet-semilattice (or lower semilattice) is a semilattice whose operation is called `meet`, and which can be thought
|
|
* of as a greatest lower bound.
|
|
*
|
|
* A `MeetSemilattice` must satisfy the following laws:
|
|
*
|
|
* - Associativity: `a ∧ (b ∧ c) <-> (a ∧ b) ∧ c`
|
|
* - Commutativity: `a ∧ b <-> b ∧ a`
|
|
* - Idempotency: `a ∧ a <-> a`
|
|
*
|
|
* @since 2.0.0
|
|
*/
|
|
/**
|
|
* @category model
|
|
* @since 2.0.0
|
|
*/
|
|
export interface MeetSemilattice<A> {
|
|
readonly meet: (x: A, y: A) => A
|
|
}
|