Logic Expressions

Last updated at 9:53 pm UTC on 28 June 2006

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

### Download:

-Install it from SqueakMap

### Examples:

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 Logic-Tests category.

I hope you enjoy it!

Dany