Interface EquivalenceOracle<A,I,D>

Type Parameters:
A - automaton type this equivalence oracle works on
I - input symbol type
D - output domain type
All Known Subinterfaces:
BlackBoxOracle<A,I,D>, BlackBoxOracle.DFABlackBoxOracle<I>, BlackBoxOracle.MealyBlackBoxOracle<I,O>, EquivalenceOracle.DFAEquivalenceOracle<I>, EquivalenceOracle.MealyEquivalenceOracle<I,O>, EquivalenceOracle.MMLTEquivalenceOracle<I,O>, EquivalenceOracle.MooreEquivalenceOracle<I,O>, InclusionOracle<A,I,D>, InclusionOracle.DFAInclusionOracle<I>, InclusionOracle.MealyInclusionOracle<I,O>, PropertyOracle<I,A,P,D>, PropertyOracle.DFAPropertyOracle<I,P>, PropertyOracle.MealyPropertyOracle<I,O,P>
All Known Implementing Classes:
AbstractBFInclusionOracle, AbstractTestWordEQOracle, BasePropertyOracle, CExFirstOracle, CompleteExplorationEQOracle, CounterEQOracle, DFABFInclusionOracle, DFACExFirstOracle, DFACompleteExplorationEQOracle, DFADisproveFirstOracle, DFAEQOracleChain, DFAFinitePropertyOracle, DFAIncrementalWMethodEQOracle, DFALassoPropertyOracle, DFALoggingPropertyOracle, DFAPropertyOracleChain, DFARandomWMethodEQOracle, DFARandomWordsEQOracle, DFARandomWpMethodEQOracle, DFASimulatorEQOracle, DFAWMethodEQOracle, DFAWpMethodEQOracle, DisproveFirstOracle, EarlyExitEQOracle, EQOracleChain, IncrementalWMethodEQOracle, KWayStateCoverEQOracle, KWayTransitionCoverEQOracle, LoggingPropertyOracle, MealyBFInclusionOracle, MealyCacheConsistencyTest, MealyCExFirstOracle, MealyCompleteExplorationEQOracle, MealyDisproveFirstOracle, MealyEQOracleChain, MealyFinitePropertyOracle, MealyIncrementalWMethodEQOracle, MealyLassoPropertyOracle, MealyLoggingPropertyOracle, MealyPropertyOracleChain, MealyRandomWMethodEQOracle, MealyRandomWordsEQOracle, MealyRandomWpMethodEQOracle, MealySimulatorEQOracle, MealyWMethodEQOracle, MealyWpMethodEQOracle, MMLTCacheConsistencyTest, MMLTEQOracleChain, MooreCacheConsistencyTest, MooreCompleteExplorationEQOracle, MooreEQOracleChain, MooreIncrementalWMethodEQOracle, MooreRandomWMethodEQOracle, MooreRandomWordsEQOracle, MooreRandomWpMethodEQOracle, MooreSimulatorEQOracle, MooreWMethodEQOracle, MooreWpMethodEQOracle, PropertyOracleChain, RandomWalkEQOracle, RandomWellMatchedWordsEQOracle, RandomWMethodEQOracle, RandomWordsEQOracle, RandomWpMethodEQOracle, RandomWpMethodEQOracle, ResetSearchEQOracle, SampleSetEQOracle, SBAPropertyOracle, SimulatorEQOracle, SimulatorEQOracle, SimulatorEQOracle, SimulatorEQOracle, SimulatorEQOracle, SimulatorEQOracle, StateLocalInputMealySimulatorEQOracle, SymbolEQOracleWrapper, ThreadSafeMealyCacheConsistencyTest, ThreadSafeMooreCacheConsistencyTest, WMethodEQOracle, WMethodEQOracle, WMethodEQOracle, WMethodEQOracle, WpMethodEQOracle, WpMethodEQOracle
Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface EquivalenceOracle<A,I,D>
An equivalence oracle, which checks hypothesis automata against the (possibly unknown) system under learning (SUL).

Please note that equivalence oracles are implicitly connected to a SUL, there is no explicit references in terms of a MembershipOracle or such. However, this might be different in implementing classes.

CAVEAT: Equivalence oracles serve as an abstraction to tackle the (generally undecidable) problem of black-box equivalence testing. The contract imposed by this interface is that results returned by the findCounterExample(Object, Collection) method are in fact counterexamples, BUT a null result signalling no counterexample was found does not mean that there can be none.

  • Method Details

    • findCounterExample

      @Nullable DefaultQuery<I,D> findCounterExample(A hypothesis, Collection<? extends I> inputs)
      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.
      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.