Class DiscardCode
- Object
-
- DiscardCode
-
- All Implemented Interfaces:
Serializable
,Comparable<DiscardCode>
public class DiscardCode extends Object implements Comparable<DiscardCode>, Serializable
DiscardCode is an enumeration type. It represents reasons why an invariant is falsified or disregarded. Methods that decide whether an Invariant should be printed later (such as isObviousImplied()), side effect Invariants to contain DiscardCode instances in their discardCode field slot.The different elements of the enumeration are:
obvious // is implied by other already known invariants
bad_sample // is falsified by a seen example
bad_confidence // has an unjustified confidence
(unused) // was few_modified_samples
not_enough_samples // not enough samples seen for the Invariant
non_canonical_var // expression involves a non-canonical variable
implied_post_condition // implied by some prestate conditions
only_constant_vars // expression for invariant only contains constant variables
derived_param // has a VarInfo that has derived and uninteresting param
unmodified_var // invariant discarded because it says some var hasn't been modified
control_check // if discarded due to the ControlledInvariantFilter
exact // isExact() fails
var_filtered // Doesn't contain a desirable variable
filtered // filtered by some other means not in the above list
There is no representation for an invariant that is *not* discarded; don't use a DiscardCode in that situation.
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static DiscardCode
bad_confidence
used when an invariant has an unjustified confidencestatic DiscardCode
bad_sample
used when an invariant is falsified by a seen examplestatic DiscardCode
control_check
used for invariants discarded because of the ControlledInvariantsFilterstatic DiscardCode
derived_param
used when an invariant's VarInfo returns true for isDerivedParamAndUninteresting()int
enumValue
Each member of the enumeration is associated with a distinct int for comparability.static DiscardCode
exact
used for invariants discarded when isExact() failsstatic DiscardCode
filtered
used for invariants that are filtered by some means not in the above liststatic DiscardCode
implied_post_condition
used when an invariant is implied by some prestate conditionsstatic DiscardCode
non_canonical_var
used when an invariant contains a non-canonical variablestatic DiscardCode
not_enough_samples
used when an invariant has not had enough samplesstatic DiscardCode
obvious
used when an invariant is implied by other known invariantsstatic DiscardCode
only_constant_vars
used when an invariant's expression contains only constant variablesstatic DiscardCode
unmodified_var
used for invariants that describe unmodified variablesstatic DiscardCode
var_filtered
used for invariants that don't contain desired variables
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description int
compareTo(DiscardCode o)
The enumeration members in sorted order:
obvious, bad_sample, bad_confidence, [unused], not_enough_samples, non_canonical_var,
implied_post_condition, only_constant_vars, derived_param, unmodified_var, control_check, exact, var filterstatic DiscardCode
findCode(InvariantFilter filter)
Returns the DiscardCode most associated with the given filter.Object
readResolve()
To prevent deserialization causing more DiscardCodes to be instantiated.String
toString()
Prints out a string describing the reason for discard.
-
-
-
Field Detail
-
obvious
public static final DiscardCode obvious
used when an invariant is implied by other known invariants
-
bad_sample
public static final DiscardCode bad_sample
used when an invariant is falsified by a seen example
-
bad_confidence
public static final DiscardCode bad_confidence
used when an invariant has an unjustified confidence
-
not_enough_samples
public static final DiscardCode not_enough_samples
used when an invariant has not had enough samples
-
non_canonical_var
public static final DiscardCode non_canonical_var
used when an invariant contains a non-canonical variable
-
implied_post_condition
public static final DiscardCode implied_post_condition
used when an invariant is implied by some prestate conditions
-
only_constant_vars
public static final DiscardCode only_constant_vars
used when an invariant's expression contains only constant variables
-
derived_param
public static final DiscardCode derived_param
used when an invariant's VarInfo returns true for isDerivedParamAndUninteresting()
-
unmodified_var
public static final DiscardCode unmodified_var
used for invariants that describe unmodified variables
-
control_check
public static final DiscardCode control_check
used for invariants discarded because of the ControlledInvariantsFilter
-
exact
public static final DiscardCode exact
used for invariants discarded when isExact() fails
-
var_filtered
public static final DiscardCode var_filtered
used for invariants that don't contain desired variables
-
filtered
public static final DiscardCode filtered
used for invariants that are filtered by some means not in the above list
-
enumValue
public final int enumValue
Each member of the enumeration is associated with a distinct int for comparability.
-
-
Method Detail
-
compareTo
@Pure public int compareTo(@GuardSatisfied DiscardCode this, DiscardCode o)
The enumeration members in sorted order:
obvious, bad_sample, bad_confidence, [unused], not_enough_samples, non_canonical_var,
implied_post_condition, only_constant_vars, derived_param, unmodified_var, control_check, exact, var filter- Specified by:
compareTo
in interfaceComparable<DiscardCode>
- Returns:
- this.enumValue.compareTo(o.enumValue) where the enumValue are treated as Integers
- Throws:
ClassCastException
- iff !(o instanceof DiscardCode)
-
findCode
public static DiscardCode findCode(InvariantFilter filter)
Returns the DiscardCode most associated with the given filter.
-
toString
@SideEffectFree public String toString(@GuardSatisfied DiscardCode this)
Prints out a string describing the reason for discard.- Overrides:
toString
in classObject
- Returns:
- one of {"Not discarded", "Obvious, "Bad sample seen", "Unjustified confidence", "Few modified samples", "Not enough samples", "Non-canonical variable", "Implied post state", "Only constant variables in this expression", "Derived Param", "Control Check", "Exact", "Variable Filter", "Filtered"}
-
readResolve
public Object readResolve() throws ObjectStreamException
To prevent deserialization causing more DiscardCodes to be instantiated.- Returns:
- one of the static DiscardCode instances
- Throws:
ObjectStreamException
-
-