Squeak
  links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
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