Class EarlyExitEQOracle<I,O>

java.lang.Object
de.learnlib.oracle.equivalence.mealy.EarlyExitEQOracle<I,O>
Type Parameters:
I - input symbol type
O - output symbol type
All Implemented Interfaces:
EquivalenceOracle<MealyMachine<?,I,?,O>,I,Word<O>>, EquivalenceOracle.MealyEquivalenceOracle<I,O>

public class EarlyExitEQOracle<I,O> extends Object implements EquivalenceOracle.MealyEquivalenceOracle<I,O>
This EquivalenceOracle.MealyEquivalenceOracle evaluates test words generated by the given TestWordGenerator on a symbol-by-symbol basis (via the provided AdaptiveMembershipOracle) and returns a counterexample on the first observed mismatch. It can be used to improve the symbol performance of equivalence oracles which tend to generate long testing sequences.

Note that this implementation does not support query parallelization via batching, even if the provided AdaptiveMembershipOracle does.

  • Constructor Details

  • Method Details

    • findCounterExample

      public @Nullable DefaultQuery<I,Word<O>> findCounterExample(MealyMachine<?,I,?,O> hypothesis, Collection<? extends I> inputs)
      Description copied from interface: EquivalenceOracle
      Searches for a counterexample disproving the subjected hypothesis. A counterexample is query which, when performed on the SUL, yields a different output than what was predicted by the hypothesis. If no counterexample could be found (this does not necessarily mean that none exists), null is returned.
      Specified by:
      findCounterExample in interface EquivalenceOracle<MealyMachine<?,I,?,O>,I,Word<O>>
      Parameters:
      hypothesis - the conjecture
      inputs - the set of inputs to consider, this should be a subset of the input alphabet of the provided hypothesis
      Returns:
      a query exposing different behavior, or null if no counterexample could be found. In case a non-null value is returned, the output field in the DefaultQuery contains the SUL output for the respective query.