Logic expressions

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


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

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!