7.0.0-pre.1
Pre-release
Pre-release
Changes in this pre-release:
- BREAKING: Removed
Constant
type from the model. There has never been any real need for it - a constant is just a function with arity zero. Now that parsing is somewhat configurable (lessening the chance of confusion/issues occurring due to zero arity functions being specifiable with or without parentheses), there really is no excuse not to get rid of this. - BREAKING: namespace changes. Two motivations here. First, to tidy up the SentenceManipulation namespace, by moving concrete manipulation classes downward into one of two sub-namespaces (
Normalisation
andVariableManipulation
), leaving just the abstractions in SentenceManipulation itself. Second, to push the specifics of our CNF conversion logic (notably, the standardised variable and Skolem function identifier types) downward, so that they don't pollute our model. The CNFSentence and CNFClause types should be usable without needing to also use our conversion logic - if consumers want to normalise using their own logic/identifiers, that should be doable without any awkwardness. Specifics:- CNFExplainer moved from SentenceFormatting to SentenceManipulation.Normalisation.
- CNFClause.Restandardise method removed, replaced with extension methods in Normalisation namespace.
- SkolemFunctionIdentifier and StandardisedVariableIdentifier moved from SCFirstOrderLogic to SCFirstOrderLogc.SentenceManipulation.Normalisation.
- VariableSubstitution, MutableVariableSubstitution and CNFInspector moved from SentenceManipulation to SentenceManipulation.VariableManipulation.
- Unifier class and CNFClause unification extension methods moved from SentenceManipulation.Unification to SentenceManipulation.VariableManipulation.
- Added some extension methods for Terms to the new SentenceManipulation.VariableManipulation namespace. Specifically, added
IsInstanceOf(Term)
,IsGeneralisationOf(Term)
andOrdinalise()
. - Added an implicit conversion operator to OperableFunction, to eliminate a situation where the compiler complains due to ambiguity. Should probably also make several other similar additions to other operable types, but.. haven't bothered for now.
- Package README update
- As always, some XML doc improvements
All v7 changes so far:
As above