daikon.inv.unary.stringsequence
Class CommonStringSequence

Object
  extended by Invariant
      extended by UnaryInvariant
          extended by SingleStringSequence
              extended by CommonStringSequence
All Implemented Interfaces:
Serializable, Cloneable

public class CommonStringSequence
extends SingleStringSequence

Represents string sequences that contain a common subset. Prints as "{s1, s2, s3, ...} subset of x[]".

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class Invariant
Invariant.ClassVarnameComparator, Invariant.ClassVarnameFormulaComparator, Invariant.InvariantComparatorForPrinting, Invariant.Match
 
Field Summary
static boolean dkconfig_enabled
          Boolean.
 
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 CommonStringSequence(PptSlice ppt)
           
 
Method Summary
 InvariantStatus add_modified(String[] a, int count)
          This method need not check for falsified; that is done by the caller.
 InvariantStatus check_modified(String[] a, int count)
           
protected  double computeConfidence()
          This method computes the confidence that this invariant occurred by chance.
 boolean enabled()
          returns whether or not this invariant is enabled
 String format_daikon()
           
 String format_using(OutputFormat format)
           
static CommonStringSequence get_proto()
          Returns the prototype invariant for CommonStringSequence
protected  CommonStringSequence instantiate_dyn(PptSlice slice)
          instantiate an invariant on the specified slice
 DiscardInfo isObviousImplied()
           
 boolean isSameFormula(Invariant other)
           
 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.
 
Methods inherited from class SingleStringSequence
add_unmodified, add, check_unmodified, check, valid_types, var
 
Methods inherited from class UnaryInvariant
resurrect_done
 
Methods inherited from class Invariant
add_sample, asInvClass, clear_falsified, clone_and_permute, clone, conf_is_ge, confidence_and, confidence_and, confidence_or, createGuardedInvariant, createGuardingPredicate, enoughSamples, falsify, find, format_too_few_samples, format_unimplemented, format, formatFuzzy, get_comparability, get_ni_suppressions, getConfidence, getGuardingList, getGuardingList, hasUninterestingConstant, instantiate_ok, instantiate, is_false, is_ni_suppressed, isActive, isAllPrestate, isExact, isExclusiveFormula, isInteresting, isObvious, isObviousDynamically_SomeInEquality, isObviousDynamically_SomeInEqualityHelper, isObviousDynamically, isObviousDynamically, isObviousStatically_AllInEquality, isObviousStatically_SomeInEquality, isObviousStatically_SomeInEqualityHelper, isObviousStatically, isObviousStatically, isReflexive, isSameInvariant, isValidEscExpression, 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, varNames
 
Methods inherited from class Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

dkconfig_enabled

public static boolean dkconfig_enabled
Boolean. True iff CommonStringSequence invariants should be considered.

Constructor Detail

CommonStringSequence

protected CommonStringSequence(PptSlice ppt)
Method Detail

get_proto

public static CommonStringSequence get_proto()
Returns the prototype invariant for CommonStringSequence


enabled

public boolean enabled()
returns whether or not this invariant is enabled

Overrides:
enabled in class Invariant

instantiate_dyn

protected CommonStringSequence instantiate_dyn(PptSlice slice)
instantiate an invariant on the specified slice

Overrides:
instantiate_dyn in class Invariant
Returns:
the new invariant

repr

public 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

format_using

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

format_daikon

public String format_daikon()

check_modified

public InvariantStatus check_modified(String[] a,
                                      int count)
Specified by:
check_modified in class SingleStringSequence

add_modified

public InvariantStatus add_modified(String[] a,
                                    int count)
Description copied from class: SingleStringSequence
This method need not check for falsified; that is done by the caller.

Specified by:
add_modified in class SingleStringSequence

computeConfidence

protected double computeConfidence()
Description copied from class: Invariant
This method computes the confidence that this invariant occurred by chance. Users should use getConfidence() instead.

Specified by:
computeConfidence in class Invariant
See Also:
Invariant.getConfidence()

isObviousImplied

public DiscardInfo isObviousImplied()

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.