daikon.inv
Class Joiner

Object
  extended by Invariant
      extended by Joiner
All Implemented Interfaces:
Serializable, Cloneable
Direct Known Subclasses:
AndJoiner, Implication

public abstract class Joiner
extends Invariant

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class Invariant
Invariant.ClassVarnameComparator, Invariant.ClassVarnameFormulaComparator, Invariant.InvariantComparatorForPrinting, Invariant.Match
 
Field Summary
 Invariant left
           
 Invariant right
           
 
Fields inherited from class Invariant
CONFIDENCE_JUSTIFIED, CONFIDENCE_NEVER, CONFIDENCE_UNJUSTIFIED, debug, debugFlow, debugGuarding, debugIsObvious, debugIsWorthPrinting, debugPrint, debugPrintEquality, dkconfig_confidence_limit, dkconfig_fuzzy_ratio, dkconfig_simplify_define_predicates, falsified, isGuardingPredicate, min_mod_non_missing_samples, ppt, PROBABILITY_JUSTIFIED, PROBABILITY_NEVER, PROBABILITY_UNJUSTIFIED
 
Constructor Summary
protected Joiner(PptSlice ppt)
           
  Joiner(PptTopLevel ppt, Invariant left, Invariant right)
           
 
Method Summary
abstract  String format_using(OutputFormat format)
           
 boolean isInteresting()
           
 boolean isObviousDerived()
           
 DiscardInfo isObviousImplied()
           
 boolean isSameFormula(Invariant other)
           
 boolean isSameInvariant(Invariant other)
           
 boolean isValidEscExpression()
           
abstract  String repr()
          For printing invariants, there are two interfaces: repr gives a low-level representation (repr_prop also prints the confidence), and format gives a high-level representation for user output.
protected  Invariant resurrect_done(int[] permutation)
          Called on the new invariant just before resurrect() returns it to allow subclasses to fix any information they might have cached from the old Ppt and VarInfos.
 
Methods inherited from class Invariant
add_sample, asInvClass, clear_falsified, clone_and_permute, clone, computeConfidence, conf_is_ge, confidence_and, confidence_and, confidence_or, createGuardedInvariant, createGuardingPredicate, enabled, enoughSamples, falsify, find, format_too_few_samples, format_unimplemented, format, formatFuzzy, get_comparability, get_ni_suppressions, getConfidence, getGuardingList, getGuardingList, hasUninterestingConstant, instantiate_dyn, instantiate_ok, instantiate, is_false, is_ni_suppressed, isActive, isAllPrestate, isExact, isExclusiveFormula, isObvious, isObviousDynamically_SomeInEquality, isObviousDynamically_SomeInEqualityHelper, isObviousDynamically, isObviousDynamically, isObviousStatically_AllInEquality, isObviousStatically_SomeInEquality, isObviousStatically_SomeInEqualityHelper, isObviousStatically, isObviousStatically, isReflexive, isValidExpression, isWorthPrinting, justified, log, log, logDetail, logOn, match, merge, mergeFormulasOk, permute, prob_and, prob_and, prob_is_ge, prob_or, repCheck, repr_prob, resurrect, simplify_format_double, simplify_format_long, simplify_format_string, state_match, toString, toString, transfer, usesVar, usesVar, usesVarDerived, valid_types, varNames
 
Methods inherited from class Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

left

public Invariant left

right

public Invariant right
Constructor Detail

Joiner

protected Joiner(PptSlice ppt)

Joiner

public Joiner(PptTopLevel ppt,
              Invariant left,
              Invariant right)
Method Detail

repr

public abstract String repr()
Description copied from class: Invariant
For printing invariants, there are two interfaces: repr gives a low-level representation (repr_prop also prints the confidence), and format gives a high-level representation for user output.

Overrides:
repr in class Invariant

resurrect_done

protected Invariant resurrect_done(int[] permutation)
Description copied from class: Invariant
Called on the new invariant just before resurrect() returns it to allow subclasses to fix any information they might have cached from the old Ppt and VarInfos.

Specified by:
resurrect_done in class Invariant

format_using

public abstract String format_using(OutputFormat format)
Specified by:
format_using in class Invariant

isValidEscExpression

public boolean isValidEscExpression()
Overrides:
isValidEscExpression in class Invariant
Returns:
conjuction of mapping the same function of our expresssions's VarInfos, in general. Subclasses may override if they are able to handle generally-inexpressible properties in special-case ways.
See Also:
VarInfo.isValidEscExpression()

isObviousDerived

public boolean isObviousDerived()

isObviousImplied

public DiscardInfo isObviousImplied()

isSameInvariant

public boolean isSameInvariant(Invariant other)
Overrides:
isSameInvariant in class Invariant
Returns:
true iff the argument is the "same" invariant as this. Same, in this case, means a matching type, formula, and variable names.

isSameFormula

public boolean isSameFormula(Invariant other)
Overrides:
isSameFormula in class Invariant
Returns:
true iff the two invariants represent the same mathematical formula. Does not consider the context such as variable names, confidences, sample counts, value counts, or related quantities. As a rule of thumb, if two invariants format the same, this method returns true. Furthermore, in many cases, if an invariant does not involve computed constants (as "x>c" and "y=ax+b" do for constants a, b, and c), then this method vacuously returns true.

isInteresting

public boolean isInteresting()
Overrides:
isInteresting in class Invariant