Class IncrementalDFADAGBuilder<I>

    • Constructor Detail

      • IncrementalDFADAGBuilder

        public IncrementalDFADAGBuilder​(Alphabet<I> inputAlphabet)
        Constructor. Initializes the incremental builder.
        Parameters:
        inputAlphabet - the input alphabet to use
    • Method Detail

      • lookup

        public Acceptance lookup​(Word<? extends I> word)
        Checks the ternary acceptance status for a given word.
        Parameters:
        word - the word to check
        Returns:
        the acceptance status for the given word
      • insert

        public void insert​(Word<? extends I> word,
                           boolean accepting)
        Inserts a word into either the set of accepted or rejected words.
        Parameters:
        word - the word to insert
        accepting - whether to insert this word into the set of accepted or rejected words.
      • addAlphabetSymbol

        public void addAlphabetSymbol​(I symbol)
        Description copied from interface: SupportsGrowingAlphabet
        Notifies the data structure that a new symbol should be added to the alphabet. Behavior depends on the implementation:
        • After adding a new symbol, the symbol-related data may either be initialized with default values or undefined.
        • Duplicate symbols may: (1) be handled accordingly, (2) be ignored or (3) result in an error.
        Some data structures may need to be properly initialized (e.g. with a GrowingAlphabet) to handle potentially shared state across multiple instances. If the needed requirements are not met, a GrowingAlphabetNotSupportedException can be thrown.
        Specified by:
        addAlphabetSymbol in interface SupportsGrowingAlphabet<I>
        Overrides:
        addAlphabetSymbol in class AbstractIncrementalDFABuilder<I>
        Parameters:
        symbol - the symbol to add to the alphabet.
      • findSeparatingWord

        public @Nullable Word<I> findSeparatingWord​(DFA<?,​I> target,
                                                    Collection<? extends I> inputs,
                                                    boolean omitUndefined)
        Description copied from interface: IncrementalConstruction
        Checks the current state of the construction against a given target model, and returns a word exposing a difference if there is one.
        Parameters:
        target - the target automaton model
        inputs - the set of input symbols to consider
        omitUndefined - if this is set to true, then undefined transitions in the target model will be interpreted as "unspecified/don't know" and omitted in the equivalence test. Otherwise, they will be interpreted in the usual manner (e.g., non-accepting sink in case of DFAs).
        Returns:
        a separating word, or null if no difference could be found.
      • asTransitionSystem

        public UniversalDTS<?,​I,​?,​Acceptance,​Void> asTransitionSystem()
        Description copied from interface: IncrementalConstruction
        Retrieves a transition system view of the current state of the construction. The transition system model should be backed by the construction, i.e., subsequent changes will be reflected in the transition system.
        Returns:
        a transition system view on the current state of the construction
      • asGraph

        public Graph<?,​?> asGraph()
        Description copied from interface: IncrementalConstruction
        Retrieves a graph view of the current state of the construction. The graph model should be backed by the construction, i.e., subsequent changes will be reflected in the graph model.
        Returns:
        a graph view on the current state of the construction