eq_atom | mark_oriented_eq | oriented_eq | |
extend | orient_equalities | pos_eq_unit |
BOOL eq_atom(Term a);This function checks if an atom is an equality atom (positive or negative) for the purposes of paramodulation and demodulation.
Term extend(Term atom, Term arg, int flag);Atom is an equality, and arg is one of its two arguments. If the arg side of the atom is AC-extendable, return extended atom, else return NULL.
(A term is AC-extendable if the root symbol is AC, and it does not have a lone variable as an AC argument.)
The extended atom is an entirely new copy.
void mark_oriented_eq(Term atom);This routine marks an atom as an oriented equality.
void orient_equalities(Clause c);For each equality literal (positive or negative) of Clause c, compare the arguments; if the left is greater, mark the atom as oriented, and if the the right is greater, flip the arguments (add a note about flipping to the justification), and mark the atom as oriented.
(What ordering method will be used???
BOOL oriented_eq(Term atom);This function checks if an atom is an oriented equality atom. (The terms are not actually compared. Only the mark is checked.)
BOOL pos_eq_unit(Clause c);This function checks if a clause is a positive equality unit for the purposes of paramodulation and demodulation.
These activities are projects of the Mathematics and Computer Science Division of Argonne National Laboratory.