I - the input typeA - the automaton typeP - the property typeD - the output typepublic 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 |
|---|---|
@Nullable DefaultQuery<I,D> |
disprove(A hypothesis,
Collection<? extends I> inputs)
Try to disprove the property with the given
hypothesis. |
@Nullable 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 @Nullable 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. |
@Nullable 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.@Pure 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.default @Nullable 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 © 2020. All rights reserved.