perm filename SIMPLE[3,2] blob sn#397745 filedate 1978-11-26 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002
C00006 ENDMK
CāŠ—;

	SIMPLE is a simplifier designed for use in program manipulation
and verification.  It finds a normal form for any expression over the
language consisting of individual variables, the usual boolean
connectives, the conditional function cond (denoting if-then-else), the
integers (numerals), the arithmetic functions and predicates +, - and ā‰¤,
the LISP constants, functions and predicates nil, car, cdr, cons and atom,
the functions store and select for storing into and selecting from arrays,
and uninterpreted function symbols.  Individual variables range over the
union of the rationals, the set of arrays, the LISP s-expressions and the
booleans true and false.  The constant, function and predicate symbols
take their natural interpretations.

	The simplifier is complete; that is, it simplifies every valid
formula to true.  Thus it is also a decision procedure for the
quantifier-free theory of rationals, arrays and s-expressions under the
above functions and predicates.

	To run the simplifier, R SIMPLE.    Problems to DCO.