

Code for the optimiser for point-free code.
Subject to frequent update and experimentation.

Basically consists of some simple rewrite rules for 
canonicalisation and optimisation most of which are
generic versions of rules found in list and product
theories in all good theorem provers.

Plus, and this is important, strategies for using 
these rules in a sensible way. 

opt.str is the top level rule - followed by index.str

Each file contains some inline comments to describe
what is going on. At any one stage there will be some
redundancy as new forms of canonicalistion eliminate
the need for some variations. The left-hand-side of 
some optimisation rules will also change as canonicalisation
improves to match new forms.

compiled by running.

./compile.str opt.str
