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.
|
isCounterExample
default 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.