  The interpreter itself is the files olli.mod and its public view
(the things intended for the user) is in olli.sig.  Each Olli formula
(program clause) will be a Teyjus term of type "frm".  Olli programs
are stored in the Teyjus' context using the wrapper "prog" (in
olli.sig) on each program clause.  Olli terms are just Teyjus terms.
This setup allows me to use Teyjus' parsing, unification, and
backtracking.
  To write an Olli program: write an appropriate signature file for
the terms you will use and include at the top of the file "accum_sig
olli." so that your Olli program has access to the Olli interpreter;
then write the program itself (using the logical connectives provided
in olli.sig) in the module file and put "accumulate olli." at the top
to give your program access to the interpreter.  Remember to wrap each
program clause in a "prog" predicate.  Use Teyjus logic variables or
if you want you can explicitly quantify with Olli's universal, "all".
  To execute your Olli program, first compile it-- "tjcc my_prog.mod",
then run the Teyjus abstract machine simulator with your code-- 
"tjsim my_prog".  The prompt for the simulator should look like: 
"[my_prog] ?- ". To execute a query use: "olli (my_query)."
  See the example programs for models.


