Package de.learnlib.oracle.property
Class PropertyOracleChain<I,A extends Output<I,D>,P,D>
- java.lang.Object
-
- de.learnlib.oracle.property.PropertyOracleChain<I,A,P,D>
-
- Type Parameters:
I- the input type.A- the automaton type.P- the property type.D- the output type.
- All Implemented Interfaces:
EquivalenceOracle<A,I,D>,InclusionOracle<A,I,D>,PropertyOracle<I,A,P,D>
- Direct Known Subclasses:
DFAPropertyOracleChain,MealyPropertyOracleChain
public class PropertyOracleChain<I,A extends Output<I,D>,@Nullable P,D> extends Object implements PropertyOracle<I,A,P,D>
A chain of property oracles. Useful when combining multiple model checking strategies to disprove a property, or when finding counter examples to hypotheses.For example, you may want to construct a chain that first uses a model checker for monitors, and next, one that uses a model checker for full LTL. This strategy tends to give shorter counter examples for properties, and these counter examples can be found more quickly (as in smaller hypothesis size and less learning queries).
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface de.learnlib.oracle.EquivalenceOracle
EquivalenceOracle.DFAEquivalenceOracle<I extends Object>, EquivalenceOracle.MealyEquivalenceOracle<I extends Object,O extends Object>, EquivalenceOracle.MooreEquivalenceOracle<I extends Object,O extends Object>
-
Nested classes/interfaces inherited from interface de.learnlib.oracle.InclusionOracle
InclusionOracle.DFAInclusionOracle<I extends Object>, InclusionOracle.MealyInclusionOracle<I extends Object,O extends Object>
-
Nested classes/interfaces inherited from interface de.learnlib.oracle.PropertyOracle
PropertyOracle.DFAPropertyOracle<I extends Object,P extends Object>, PropertyOracle.MealyPropertyOracle<I extends Object,O extends Object,P extends Object>
-
-
Constructor Summary
Constructors Constructor Description PropertyOracleChain(PropertyOracle<I,? super A,@Nullable P,D>... oracles)PropertyOracleChain(Collection<? extends PropertyOracle<I,? super A,@Nullable P,D>> oracles)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddOracle(PropertyOracle<I,? super A,@Nullable P,D> oracle)@Nullable DefaultQuery<I,D>disprove(A hypothesis, Collection<? extends I> inputs)@Nullable DefaultQuery<I,D>doFindCounterExample(A hypothesis, Collection<? extends I> inputs)@Nullable DefaultQuery<I,D>getCounterExample()PgetProperty()voidsetProperty(@Nullable P property)-
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
-
Methods inherited from interface de.learnlib.oracle.PropertyOracle
findCounterExample, isDisproved
-
-
-
-
Constructor Detail
-
PropertyOracleChain
@SafeVarargs public PropertyOracleChain(PropertyOracle<I,? super A,@Nullable P,D>... oracles)
-
PropertyOracleChain
public PropertyOracleChain(Collection<? extends PropertyOracle<I,? super A,@Nullable P,D>> oracles)
-
-
Method Detail
-
addOracle
public void addOracle(PropertyOracle<I,? super A,@Nullable P,D> oracle)
-
doFindCounterExample
public @Nullable DefaultQuery<I,D> doFindCounterExample(A hypothesis, Collection<? extends I> inputs)
- Specified by:
doFindCounterExamplein interfacePropertyOracle<I,A extends Output<I,D>,P,D>
-
disprove
public @Nullable DefaultQuery<I,D> disprove(A hypothesis, Collection<? extends I> inputs)
-
setProperty
public void setProperty(@Nullable P property)
- Specified by:
setPropertyin interfacePropertyOracle<I,A extends Output<I,D>,P,D>
-
getProperty
public P getProperty()
- Specified by:
getPropertyin interfacePropertyOracle<I,A extends Output<I,D>,P,D>
-
getCounterExample
public @Nullable DefaultQuery<I,D> getCounterExample()
- Specified by:
getCounterExamplein interfacePropertyOracle<I,A extends Output<I,D>,P,D>
-
-