I - the input typeA - the automaton typeP - the property typeD - the output type@ParametersAreNonnullByDefault public interface PropertyOracle<I,A extends Output<I,D>,P,D> extends InclusionOracle<A,I,D>
PropertyOracle can disprove a property, and used to find a counter example to an hypothesis.
Note that a property oracle is also an InclusionOracle and thus an EquivalenceOracle, hence it can
be use used to find counterexamples to hypotheses.
An implementation should keep track of whether the property is already disproved.
| Modifier and Type | Interface and Description |
|---|---|
static interface |
PropertyOracle.DFAPropertyOracle<I,P> |
static interface |
PropertyOracle.MealyPropertyOracle<I,O,P> |
InclusionOracle.DFAInclusionOracle<I>, InclusionOracle.MealyInclusionOracle<I,O>EquivalenceOracle.DFAEquivalenceOracle<I>, EquivalenceOracle.MealyEquivalenceOracle<I,O>| Modifier and Type | Method and Description |
|---|---|
DefaultQuery<I,D> |
disprove(A hypothesis,
Collection<? extends I> inputs)
Try to disprove the property with the given
hypothesis. |
DefaultQuery<I,D> |
doFindCounterExample(A hypothesis,
Collection<? extends I> inputs)
Unconditionally find a counterexample, i.e. regardless of whether the property can be disproved.
|
default DefaultQuery<I,D> |
findCounterExample(A hypothesis,
Collection<? extends I> inputs)
Try to find a counterexample to the given
hypothesis if the property can not be disproved. |
DefaultQuery<I,D> |
getCounterExample()
Returns the counterexample for the property if
isDisproved(), null otherwise. |
P |
getProperty()
Returns the property.
|
default boolean |
isDisproved()
Returns whether the property is disproved.
|
void |
setProperty(P property)
Set the property.
|
isCounterExampledefault boolean isDisproved()
void setProperty(P property)
property - the property to set.P getProperty()
@Nullable DefaultQuery<I,D> getCounterExample()
isDisproved(), null otherwise.
If this method does not return null, a previous call to disprove(Output, Collection) must
have returned a DefaultQuery.isDisproved(), null otherwise.@Nullable DefaultQuery<I,D> disprove(A hypothesis, Collection<? extends I> inputs)
hypothesis.hypothesis - the hypothesis.inputs - the inputsDefaultQuery that is a counterexample the property, or null, if the property
could not be disproved.@Nullable default DefaultQuery<I,D> findCounterExample(A hypothesis, Collection<? extends I> inputs)
hypothesis if the property can not be disproved.findCounterExample in interface EquivalenceOracle<A extends Output<I,D>,I,D>hypothesis - the hypothesis to find a counterexample to.inputs - the input alphabet.DefaultQuery that is a counterexample to the given hypothesis, or null, a counterexample could not be found or the property could be disproved.@Nullable DefaultQuery<I,D> doFindCounterExample(A hypothesis, Collection<? extends I> inputs)
disprove(Output, Collection) is not even be called.findCounterExample(Output, Collection)Copyright © 2019. All rights reserved.