Interface Traversable<L,S>

Type Parameters:
L - the type of labels of the underlying automaton
S - the type of states of the underlying automaton
All Known Implementing Classes:
DAutomaton, ZAutomaton

public interface Traversable<L,S>
Indicates that the implementor can be traversed as the transition graph of an automaton.
Since:
1.1
  • Method Summary

    Modifier and Type
    Method
    Description
    static <L, S> boolean
    bisimilar(Traversable<L,S> t1, Traversable<L,S> t2)
    Checks whether two transition graphs specify indistinguishable observable behavior.
    getBehavior(S state)
    Returns the automaton behavior the given state node.
    Returns the initial state node of the transition graph.
  • Method Details

    • getInitialState

      S getInitialState()
      Returns the initial state node of the transition graph.
      Returns:
      the initial state node of the transition graph
    • getBehavior

      Behavior<L,S> getBehavior(S state)
      Returns the automaton behavior the given state node.

      The behavior specifies the label attached to the state node, as well as the outgoing transition edges.

      Parameters:
      state - a state node
      Returns:
      the automaton behavior at the given state
    • bisimilar

      static <L, S> boolean bisimilar(Traversable<L,S> t1, Traversable<L,S> t2)
      Checks whether two transition graphs specify indistinguishable observable behavior.

      Observable behavior is the overall information that can be gathered using only methods of the interface Automaton.Trace, and equality on their results. Classes that implement Traversable are encouraged to also implement Traceable, such that a reference of type Automaton.Trace can be obtained in a natural way.

      Type Parameters:
      L - the type of labels of the underlying automata
      S - the type of states of the underlying automata
      Parameters:
      t1 - the first transition graph
      t2 - the second transition graph
      Returns:
      true if the observable behaviors of t1 and t2 are indistinguishable; false if there is an observable difference
      See Also: