Adding new rules

Rules (represented by Rule) allow to create new statements given that a list of other statements are true.

In newclid, statements are expressed as a predicate and a list of points. The list of predicates used by Newclid are enumerated in Predicates.

Rules can be initialized from a text representation as such:

perp A B C D, perp C D E F, ncoll A B E => para A B E F

Where perp, ncoll and para are predicates found at Predicates. A, B, C, D, E, F are arguments of the rule representing points.

The default rules used can be found in default_configs/rules.txt as an example.