// explain_constant(x, c) => x = c
// Above, explain_constant(x,c) is a basic explanation of why x must be equal
// to string constant c, which is computed by taking arguments of
- // concatentation terms that are entailed to be constants. For example:
+ // concatenation terms that are entailed to be constants. For example:
// ( y = "AB" ^ z = "C" ) => y ++ z = "ABC"
I_CONST_MERGE,
// initial constant conflict
* send a fact, lemma, or conflict that is waiting to be asserted to the
* equality engine or sent on the output channel.
*
- * For the sake of proofs, the antecedants in InferInfo have a particular
+ * For the sake of proofs, the antecedents in InferInfo have a particular
* ordering for many of the core strings rules, which is expected by
* InferProofCons for constructing proofs of F_CONST, F_UNIFY, N_CONST, etc.
* which apply to a pair of string terms t and s. At a high level, the ordering
* (3) (optionally) a length constraint.
* For example, say we have:
* { x ++ y ++ v1 = z ++ w ++ v2, x = z ++ u, u = "", len(y) = len(w) }
- * We can conclude y = w by the N_UNIFY rule from the left side. The antecedant
+ * We can conclude y = w by the N_UNIFY rule from the left side. The antecedent
* has the following form:
* - (prefix up to y/w equal) x = z ++ u, u = "",
* - (main equality) x ++ y ++ v1 = z ++ w ++ v2,
/** The conclusion */
Node d_conc;
/**
- * The antecedant(s) of the inference, interpreted conjunctively. These are
+ * The antecedent(s) of the inference, interpreted conjunctively. These are
* literals that currently hold in the equality engine.
*/
std::vector<Node> d_ant;
/**
- * The "new literal" antecedant(s) of the inference, interpreted
+ * The "new literal" antecedent(s) of the inference, interpreted
* conjunctively. These are literals that were needed to show the conclusion
* but do not currently hold in the equality engine. These should be a subset
- * of d_ant. In other words, antecedants that are not explained are stored
+ * of d_ant. In other words, antecedents that are not explained are stored
* in *both* d_ant and d_noExplain.
*/
std::vector<Node> d_noExplain;
bool isTrivial() const;
/**
* Does this infer info correspond to a conflict? True if d_conc is false
- * and it has no new antecedants (d_noExplain).
+ * and it has no new antecedents (d_noExplain).
*/
bool isConflict() const;
/**
* Does this infer info correspond to a "fact". A fact is an inference whose
* conclusion should be added as an equality or predicate to the equality
- * engine with no new external antecedants (d_noExplain).
+ * engine with no new external antecedents (d_noExplain).
*/
bool isFact() const;
- /** Get antecedant */
- Node getAntecedant() const;
+ /** Get antecedent */
+ Node getAntecedent() const;
};
/**