Actually, it's rather the other way round: the (new-style) assumption
system depends heavily on logic. So making sure that improvements to
logic translate into improvements to assumptions is an important goal.
My understanding so far is:
* core/logic.py, core/facts.py, core/assumptions.py is the old
assumptions system.
* assumptions/* is the new assumptions system.
Would a GSOC proposal along the following lines make sense?
* Improve logic/boolalg.py to include Predicate logic, fuzzy logic and
useful functionality for manipulating them
* Use statements in predicate logic as the external format for
assumptions and rules. Such as
** forall x. real(x) => positive(x)
** forall x. nonnegative(x) <=> positive(x+1)
** forall x. nonnegative(x) <=> Abs(x) = x (I'm dubious about this one
since it's effectively expressing a rewrite rule)
* Implement a deduction system that can be the backend to Q.ask() (how
exactly we do this depends on what sort of rules we allow)
Peter,
Would a GSOC proposal along the following lines make sense?
* Improve logic/boolalg.py to include Predicate logic, fuzzy logic and
useful functionality for manipulating them
* Use statements in predicate logic as the external format for
assumptions and rules. Such as
** forall x. real(x) => positive(x)
** forall x. nonnegative(x) <=> positive(x+1)
** forall x. nonnegative(x) <=> Abs(x) = x (I'm dubious about this one
since it's effectively expressing a rewrite rule)
* Implement a deduction system that can be the backend to Q.ask() (how
exactly we do this depends on what sort of rules we allow)