Class Op
- All Implemented Interfaces:
Lattice
public class Op extends Object implements Lattice
Instances of this class wrap a given lattice, dualising all its operations.
Since the lattice axioms (including distributivity) are self-dual, by reversing the order relation (or, equivalently, exchanging meets and joins) we get a new lattice. Note that the definitions of difference and relative pseudocomplement are dual, so a lattice is a Browerian algebra iff its opposite is a Heyting algebra.
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and Type Method Description boolean
comp(Element x, Element y)
Return whether the two provided elements are comparable.Map<Element,Set<Element>>
coveringRelation()
Compute the covering relation by transposing the covering relation of the dualised lattice.Collection<Element>
elements()
Return all elements of this lattice (optional operation).Collection<Element>
generators()
Return a collection of generators for the lattice.boolean
isDistributive()
Return true if this lattice is distributive.Element
join(Element... element)
Return the join of the provided elements.boolean
leq(Element x, Element y)
Return whether an element is less than or equal to another element in the natural order of this lattice.Element
meet(Element... element)
Return the meet of the provided elements.Element
one()
Return the one of this lattice.Element
pscomp(Element x, Element y)
Return the pseudocomplement of the first element relative to the second element (optional operation).Element
psdiff(Element x, Element y)
Return the Brouwerian pseudo-difference of two elements (optional operation).Element
symdiff(Element x, Element y)
Return the symmetric difference of the arguments, that is,psdiff(x,y).join(psdiff(y,x))
.Element
valueOf(String name)
Return a dualised element by name.Element
zero()
Return the zero of this lattice.
-
Constructor Details
-
Method Details
-
isDistributive
public boolean isDistributive()Description copied from interface:Lattice
Return true if this lattice is distributive.- Specified by:
isDistributive
in interfaceLattice
- Returns:
- true if this lattice is distributive.
-
meet
Description copied from interface:Lattice
Return the meet of the provided elements. In particular, upon the empty list of arguments returnsone
, and upon a singleton list the only specified element. -
join
Description copied from interface:Lattice
Return the join of the provided elements. In particular, upon the empty list of arguments returnszero
, and upon a singleton list the only specified element. -
generators
Description copied from interface:Lattice
Return a collection of generators for the lattice. The set will not includezero
orone
. There is no guarantee of freeness or minimality.- Specified by:
generators
in interfaceLattice
- Returns:
- a collection of generators.
-
elements
Description copied from interface:Lattice
Return all elements of this lattice (optional operation).This operation might not implemented, for instance, in infinite lattices.
-
valueOf
Return a dualised element by name.Dual elements have the same name of the corresponding elements of the dualised lattice, except for zero and one, which have the standard names.
-
zero
Description copied from interface:Lattice
Return the zero of this lattice.Note that there is no guarantee that the returned element is the only element representing zero in this lattice. Other zeroes may arise from computations, but they will always be equal to the element returned by this method.
-
one
Description copied from interface:Lattice
Return the one of this lattice.Note that there is no guarantee that the returned element is the only element representing one in this lattice. Other ones may arise from computations, but they will always be equal to the element returned by this method.
-
comp
Description copied from interface:Lattice
Return whether the two provided elements are comparable. -
leq
Description copied from interface:Lattice
Return whether an element is less than or equal to another element in the natural order of this lattice. -
psdiff
Description copied from interface:Lattice
Return the Brouwerian pseudo-difference of two elements (optional operation).The (Brouwerian) pseudo-difference of x and y, usually denoted by x − y, is defined by a Galois connection with the join operation (categorically speaking, an adjunction):
x − y ≤ t iff x ≤ y ∨ t for all t.If the Galois connection exists, this lattice is endowed with the structure of a Brouwerian algebra. In that case, if the lattice is finite
x − y = inf { z | x ≤ y ∨ z },and the lattice is necessarily distributive. Conversely, all finite distributive lattices are Brouwerian algebras, with x − y defined as above.
-
pscomp
Description copied from interface:Lattice
Return the pseudocomplement of the first element relative to the second element (optional operation).The pseudocomplement of x relative to y, denoted by x ⇒ y, is defined by a Galois connection with the meet operation (categorically speaking, an adjunction):
t ≤ y ⇒ x iff x ∧ t ≤ y for all t.If the Galois connection exists, this lattice is endowed with the structure of a Heyting algebra. In that case, if the lattice is finite
x ⇒ y = sup { z | x ∧ z ≤ y },and the lattice is necessarily distributive. Conversely, all finite distributive lattices are Heyting algebras.
-
symdiff
Description copied from interface:Lattice
Return the symmetric difference of the arguments, that is,psdiff(x,y).join(psdiff(y,x))
.- Specified by:
symdiff
in interfaceLattice
- Parameters:
x
- an element.y
- another element.- Returns:
x
Δy
.- See Also:
Element.join(Element)
,Lattice.psdiff(Element, Element)
-
coveringRelation
Compute the covering relation by transposing the covering relation of the dualised lattice.- Specified by:
coveringRelation
in interfaceLattice
- Returns:
- a map from elements to set of elements representing the covering relation.
-