de.rwth.domains
Interface Lattice

All Superinterfaces:
LowerSemiLattice, POSet, PreLattice, PreLowerSemiLattice, PreUpperSemiLattice, Set, UpperSemiLattice
All Known Subinterfaces:
CompleteLattice
All Known Implementing Classes:
TupleLattice

public interface Lattice
extends LowerSemiLattice, UpperSemiLattice, PreLattice

Interface for lattices. Lattices are structures which are both lower and upper semi lattice where the absorption law holds.

Version:
$Id: Lattice.java,v 1.2 2002/09/17 06:53:53 mohnen Exp $
Author:
Markus Mohnen

Inner classes inherited from class de.rwth.domains.Set
Set.Default
 
Method Summary
 java.lang.Object join(java.lang.Object e1, java.lang.Object e2)
          Computes the least upper bound of two elements.
 java.lang.Object meet(java.lang.Object e1, java.lang.Object e2)
          Computes the greatest lower bound of two elements.
 
Methods inherited from interface de.rwth.domains.POSet
le, lt
 
Methods inherited from interface de.rwth.domains.Set
equals, isElement, iterator, iteratorSkel, size, sizeSkel
 

Method Detail

meet

public java.lang.Object meet(java.lang.Object e1,
                             java.lang.Object e2)
Computes the greatest lower bound of two elements.

In addition to the restrictions on meet from here, implementations should guarantee that meet fulfills the absortion laws: equals(meet(join(e1,e2),e1),e1) and equals(join(e1,meet(e1,e2)),e1) for all elements e1 and e2

Specified by:
meet in interface LowerSemiLattice
Parameters:
e1 - a value of type Object
e2 - a value of type Object
Returns:
the greatest lower bound of e1 and e2
See Also:
Domain.checkProperties(Lattice l)

join

public java.lang.Object join(java.lang.Object e1,
                             java.lang.Object e2)
Computes the least upper bound of two elements.

In addition to the restrictions on join from here, implementations should guarantee that join fulfills the absortion laws: equals(meet(join(e1,e2),e1),e1) and equals(join(e1,meet(e1,e2)),e1) for all elements e1 and e2

Specified by:
join in interface UpperSemiLattice
Parameters:
e1 - a value of type Object
e2 - a value of type Object
Returns:
the least upper bound of e1 and e2
See Also:
Domain.checkProperties(Lattice l)