ChemLog compatibility
In order to support the ChemLog package, we added some useful features to the first-order logic representation. This includes:
- syntactic equality checks (e.g. two variables with the same name are always equal)
- n-ary disjunction and conjunction
- translations from binary to n-ary operations and vice-versa
- conversion of formulas to NNF and CNF
- detection and substitution of variables in formulas