Interface MutableObservationTable<I,​D>

    • Method Detail

      • initialize

        List<List<Row<I>>> initialize​(List<Word<I>> initialShortPrefixes,
                                      List<Word<I>> initialSuffixes,
                                      MembershipOracle<I,​D> oracle)
        Initializes an observation table using a specified set of suffixes.
        Parameters:
        initialSuffixes - the set of initial column labels.
        oracle - the MembershipOracle to use for performing queries
        Returns:
        a list of equivalence classes of unclosed rows
      • isInitialized

        boolean isInitialized()
        Checks whether this observation table has been initialized yet (i.e., contains any rows).
        Returns:
        true iff the table has been initialized
      • isInitialConsistencyCheckRequired

        boolean isInitialConsistencyCheckRequired()
      • addSuffix

        default List<List<Row<I>>> addSuffix​(Word<I> suffix,
                                             MembershipOracle<I,​D> oracle)
        Adds a suffix to the list of distinguishing suffixes. This is a convenience method that can be used as shorthand for addSufixes(Collections.singletonList(suffix), oracle).
        Parameters:
        suffix - the suffix to add
        oracle - the membership oracle
        Returns:
        a list of equivalence classes of unclosed rows
      • addSuffixes

        List<List<Row<I>>> addSuffixes​(Collection<? extends Word<I>> newSuffixes,
                                       MembershipOracle<I,​D> oracle)
        Adds suffixes to the list of distinguishing suffixes.
        Parameters:
        newSuffixes - the suffixes to add
        oracle - the membership oracle
        Returns:
        a list of equivalence classes of unclosed rows
      • toShortPrefixes

        List<List<Row<I>>> toShortPrefixes​(List<Row<I>> lpRows,
                                           MembershipOracle<I,​D> oracle)
        Moves the specified rows to the set of short prefix rows. If some of the specified rows already are short prefix rows, they are ignored (unless they do not have any contents, in which case they are completed).
        Parameters:
        lpRows - the rows to move to the set of short prefix rows
        oracle - the membership oracle
        Returns:
        a list of equivalence classes of unclosed rows