Interface Operators.BinRel<X>

All Superinterfaces:
Operators.Rel<X,X>
All Known Implementing Classes:
Operators.AbstractBinRel, Operators.AbstractEquivalence, Operators.AbstractPartialOrder, Operators.AllBinRel, Operators.EqualsRel
Enclosing class:
Operators

public static interface Operators.BinRel<X> extends Operators.Rel<X,X>
Represents binary relations on a single type. These come with possible additional properties, namely reflexivity, symmetry and transitivity, that may serve to simplify certain algorithms.
  • Method Details

    • isReflexive

      boolean isReflexive()
      Indicates reflexivity. This means that x.equals(y) implies relates(x, y). It is silently assumed that preempting this case is an optimization, i.e., that equals runs faster than relates.
    • isAntireflexive

      boolean isAntireflexive()
      Indicates antireflexivity. This means that x.equals(y) implies !relates(x, y). It is silently assumed that preempting this case is an optimization, i.e., that equals runs faster than relates.
    • isSymmetric

      boolean isSymmetric()
      Indicates symmetry. This means that relates(y, x) implies relates(x, y).
    • isAntisymmetric

      boolean isAntisymmetric()
      Indicates anti-symmetry. This means that relates(y, x) & relates(x, y) implies x.equals(y).
    • isTransitive

      boolean isTransitive()
      Indicates anti-symmetry. This means that relates(y, x) & relates(y, z) implies x.equals(z).