Commit Graph
25 Commits
Author SHA1 Message Date
patrick 81b9ca4cfa Require identity equality for variable declarations
Variable declarations should only be considered equal if their identity
is equal. In other words, just because two different variable
declarations share the same name, they aren’t automatically equal. This
is to support situations in which nested variable declarations shadow
variable declarations of the same name at a higher level.
2020-02-03 02:39:15 +01:00
patrick 171c725fb8 Assert against empty parameter lists 2020-02-02 20:06:41 +01:00
patrick 5e39fc5cec Remove unnecessary Symbolic type
This type is a special case of Function and doesn’t need to be
represented separately.
2020-02-02 19:31:16 +01:00
patrick 25c567af06 Assert against empty conjunctions and disjunctions 2020-02-02 17:46:55 +01:00
patrick 6163c5b259 Use std::rc::Rc types for variable declarations
These fields may have to be shared in other data structures, such as a
variable declaration stack. In order to accomplish that, it’s necessary
to wrap the variable declarations in std::rc::Rc.
2020-02-02 17:44:49 +01:00
patrick 3e6e68f6ea Use ordered sets for declarations
This replaces the unordered sets used for function and predicate
declarations with ordered sets. This is useful when these declarations
are supposed to be processed in a stable and meaningful order.
2020-02-02 17:39:41 +01:00
patrick e1d616d8b4 Add convenience constructors 2020-02-02 02:14:14 +01:00
patrick 749dab228b Represent parameter lists as vectors and not sets 2020-02-02 02:12:05 +01:00
patrick f0958b100e Rename types for consistency 2020-02-02 02:08:39 +01:00
patrick 242435c698 Add useful derive statements 2020-02-01 17:40:15 +01:00
patrick dfe86c09cc Add convenience constructor 2020-01-31 13:53:42 +01:00
patrick 72db7c448b Declare collection types for declarations 2020-01-31 13:53:21 +01:00
patrick 03e249e791 Add useful derive statements 2020-01-31 13:52:57 +01:00
patrick 6b10cced7c Expose variable stack 2020-01-24 18:57:23 +01:00
patrick f19f1a3eb1 Work in progress 2020-01-24 18:43:42 +01:00
patrick 5070965bfe Make predicate declarations hashable 2019-11-02 04:12:16 +01:00
patrick 30ba3e22c1 Fix precedence between predicates and comparisons 2019-11-02 04:06:06 +01:00
patrick de4ab29da5 Implement Display formatter in terms of Debug 2019-11-02 04:05:57 +01:00
patrick a6fe4b9e08 Respect operator precedence when printing 2019-11-01 22:35:51 +01:00
patrick b76287a07b Restructure crate for a nicer interface 2019-11-01 22:00:17 +01:00
patrick 9f32bea10c Rename project “foliage” 2019-11-01 21:00:00 +01:00
patrick d1d20deadb Add benchmark 2019-11-01 06:40:55 +01:00
patrick 48b18b9354 Add example 2019-11-01 06:20:19 +01:00
patrick dcf12d45eb Implement formula parsing 2019-11-01 06:20:02 +01:00
patrick 1b9654f44f Implement term parsing 2019-11-01 05:40:48 +01:00