Package owl.ltl

## Class Biconditional

- java.lang.Object
- - owl.ltl.Formula
  - - owl.ltl.Formula.LogicalOperator
    - - owl.ltl.Biconditional

- All Implemented Interfaces:
    `Comparable<Formula>`

      public final class Biconditional
      extends Formula.LogicalOperator

  Biconditional.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class owl.ltl.Formula

      `Formula.LogicalOperator, Formula.ModalOperator, Formula.TemporalOperator`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `Formula` | `left` |
    `Formula` | `right` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Biconditional​(Formula leftOperand, Formula rightOperand)` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `<R,​P> R` | `accept​(BinaryVisitor<P,​R> visitor, P parameter)` |
    `int` | `accept​(IntVisitor visitor)` |
    `<R> R` | `accept​(Visitor<R> visitor)` |
    `Set<Formula>` | `children()` |
    `protected int` | `compareToImpl​(Formula o)` |
    `protected boolean` | `equalsImpl​(Formula o)` |
    `boolean` | `isPureEventual()` |
    `boolean` | `isPureUniversal()` |
    `Formula` | `nnf()` |
    `Formula` | `not()` | Syntactically negate this formula.
    `static Formula` | `of​(Formula leftOperand, Formula rightOperand)` | Construct a LTL-equivalent formula for (leftOperand)<->(rightOperand).
    `Formula` | `substitute​(Function<? super Formula.TemporalOperator,​? extends Formula> substitution)` |
    `String` | `toString()` |

    - ### Methods inherited from class owl.ltl.Formula.LogicalOperator

      `temporalStep, temporalStep, temporalStep, temporalStepUnfold, unfold, unfoldTemporalStep`

    - ### Methods inherited from class owl.ltl.Formula

      `allMatch, anyMatch, atomicPropositions, compareTo, equals, hashCode, height, isSuspendable, subformulas, subformulas, subformulas`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### left

          public final Formula left

    - #### right

          public final Formula right

  - ### Constructor Detail

    - #### Biconditional

          public Biconditional​(Formula leftOperand,
                               Formula rightOperand)

  - ### Method Detail

    - #### of

          public static Formula of​(Formula leftOperand,
                                   Formula rightOperand)

      Construct a LTL-equivalent formula for (leftOperand)<->(rightOperand). The method examines the operands and might choose to construct a simpler formula. However, the size of the syntax tree is not increased. In order to syntactically construct (leftOperand)<->(rightOperand) use the constructor.
      Parameters:
        `leftOperand` - The left operand of the biconditional
        `rightOperand` - The right operand of the biconditional
      Returns:
        a formula equivalent to (leftOperand)<->(rightOperand)

    - #### accept

          public int accept​(IntVisitor visitor)

      Specified by:
        `accept` in class `Formula`

    - #### accept

          public <R> R accept​(Visitor<R> visitor)

      Specified by:
        `accept` in class `Formula`

    - #### accept

          public <R,​P> R accept​(BinaryVisitor<P,​R> visitor,
                                      P parameter)

      Specified by:
        `accept` in class `Formula`

    - #### children

          public Set<Formula> children()

      Specified by:
        `children` in class `Formula`

    - #### isPureEventual

          public boolean isPureEventual()

      Specified by:
        `isPureEventual` in class `Formula`

    - #### isPureUniversal

          public boolean isPureUniversal()

      Specified by:
        `isPureUniversal` in class `Formula`

    - #### not

          public Formula not()

      Description copied from class: `Formula`
      Syntactically negate this formula.

      If this formula is in NNF, the returned negation will also be in NNF.

      Specified by:
        `not` in class `Formula`
      Returns:
        the negation of this formula.

    - #### nnf

          public Formula nnf()

      Specified by:
        `nnf` in class `Formula`

    - #### substitute

          public Formula substitute​(Function<? super Formula.TemporalOperator,​? extends Formula> substitution)

      Specified by:
        `substitute` in class `Formula`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### compareToImpl

          protected int compareToImpl​(Formula o)

      Specified by:
        `compareToImpl` in class `Formula`

    - #### equalsImpl

          protected boolean equalsImpl​(Formula o)

      Specified by:
        `equalsImpl` in class `Formula`