Recommendations in using the API: The type of terms: constr (see kernel/constr.ml and kernel/term.ml) - On type constr, the canonical equality on CIC (up to alpha-conversion and cast removal) is Constr.equal - The type constr is abstract, use mkRel, mkSort, etc. to build elements in constr; use "kind_of_term" to analyze the head of a constr; use destRel, destSort, etc. when the head constructor is known