Logic expressions

Summary: A model of first order logic expressions
Author: Daniel Altman
Owner: Daniel Altman (DEA)
Co-maintainers: <None>
Categories:
Homepage: http://wiki.squeak.org/squeak/3539
PackageInfo name: <Not entered>
RSS feed:

Description:

This is a model of first order logic expressions, allowing you to manipulate them as objects instead of just strings.

Prerequisites:
Refactoring Browser
SmaCC Runtime Package
SmaCC Development Package

For example, inspect the following lines to get the expression corresponding
to "(p = q) = (not p or q)":

| p q |
p := LVariable named: 'p'.
q := LVariable named: 'q'.
p = q equiv: (p not | q).

Now, the same formula could be created using:
LExpression fromString: '{p=q = not p or q}'

More complex formulas can also be created and evaluated, for example try:
| exp |
exp := LExpression fromString: '{V(x)[x even]}'.
exp valueDomains: {'x' - #(2 4 6 8 10 12 )}.

See more examples in the Homepage and on the Logic-Tests category.

I hope you enjoy it!
Dany

Releases


Back