Package de.learnlib.oracle.equivalence
Class DisproveFirstOracle<A extends Output<I,D>,I,D>
- java.lang.Object
-
- de.learnlib.oracle.equivalence.DisproveFirstOracle<A,I,D>
-
- Type Parameters:
A
- the automaton typeI
- the input typeD
- the output type
- All Implemented Interfaces:
BlackBoxOracle<A,I,D>
,EquivalenceOracle<A,I,D>
,InclusionOracle<A,I,D>
- Direct Known Subclasses:
DFADisproveFirstOracle
,MealyDisproveFirstOracle
public class DisproveFirstOracle<A extends Output<I,D>,I,D> extends Object implements BlackBoxOracle<A,I,D>
The strategy of this black-box oracle is to first try to disprove all properties before finding a counter example to the given hypothesis.One may favor this implementation if refining a hypothesis is expensive compared to trying to disprove properties.
- See Also:
CExFirstOracle
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface de.learnlib.oracle.BlackBoxOracle
BlackBoxOracle.DFABlackBoxOracle<I>, BlackBoxOracle.MealyBlackBoxOracle<I,O>
-
Nested classes/interfaces inherited from interface de.learnlib.oracle.EquivalenceOracle
EquivalenceOracle.DFAEquivalenceOracle<I>, EquivalenceOracle.MealyEquivalenceOracle<I,O>, EquivalenceOracle.MooreEquivalenceOracle<I,O>
-
Nested classes/interfaces inherited from interface de.learnlib.oracle.InclusionOracle
InclusionOracle.DFAInclusionOracle<I>, InclusionOracle.MealyInclusionOracle<I,O>
-
-
Constructor Summary
Constructors Constructor Description DisproveFirstOracle()
DisproveFirstOracle(PropertyOracle<I,? super A,?,D> propertyOracle)
DisproveFirstOracle(Collection<? extends PropertyOracle<I,? super A,?,D>> propertyOracles)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description @Nullable DefaultQuery<I,D>
findCounterExample(A hypothesis, Collection<? extends I> inputs)
Searches for a counterexample disproving the subjected hypothesis.List<PropertyOracle<I,? super A,?,D>>
getPropertyOracles()
Returns the property oracles that this black-box oracle uses to evaluate properties.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface de.learnlib.oracle.InclusionOracle
isCounterExample
-
-
-
-
Constructor Detail
-
DisproveFirstOracle
public DisproveFirstOracle()
-
DisproveFirstOracle
public DisproveFirstOracle(PropertyOracle<I,? super A,?,D> propertyOracle)
-
DisproveFirstOracle
public DisproveFirstOracle(Collection<? extends PropertyOracle<I,? super A,?,D>> propertyOracles)
-
-
Method Detail
-
getPropertyOracles
public List<PropertyOracle<I,? super A,?,D>> getPropertyOracles()
Description copied from interface:BlackBoxOracle
Returns the property oracles that this black-box oracle uses to evaluate properties.- Specified by:
getPropertyOracles
in interfaceBlackBoxOracle<A extends Output<I,D>,I,D>
- Returns:
- the property oracles.
-
findCounterExample
public @Nullable DefaultQuery<I,D> findCounterExample(A 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 interfaceEquivalenceOracle<A extends Output<I,D>,I,D>
- Parameters:
hypothesis
- the conjectureinputs
- 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 theDefaultQuery
contains the SUL output for the respective query.
-
-