sybila / biodivine-lib-bdd

A small library for BDD manipulation in Rust. Part of the BioDivine toolset.
MIT License
20 stars 4 forks source link

BooleanExpression using a binary operation "action enum". #5

Open daemontus opened 4 years ago

daemontus commented 4 years ago

BooleanExpression should use a BinaryOp for the binary boolean operations instead of explicitly specifying all five options. Also, it might be a good idea to move BooleanExpression to standard library entirely, because it can be used by other crates that need to work with formulas as well. In fact, standard library should provide some kind of extensible generic parser where one can define boolean expressions with custom atomic propositions.

daemontus commented 3 years ago

Overall, I believe this should really be its own crate and also support (at least) first order logic and some other useful stuff, such as generic propositions as mentioned above, or maybe even some basic temporal logic. However, that would require a lot of work that I'm not sure can be completed before 1.0.0. So for now, the plan is to keep it in this crate but make the API a bit less painful by not having 5 different recursive type cases for something that can be solved via an enum.