let commands () =
Format.eprintf "@[";
Format.eprintf "assert <atom>. Assert atom in current context.@\n";
Format.eprintf "can <term>. Canonical forms.@\n";
Format.eprintf "ctxt. Current logical context.@\n";
Format.eprintf "def <var> := <term>. Term definition.@\n";
Format.eprintf "diseq <term>. Variables known to be disequal.@\n";
Format.eprintf "dom <term>. Domain of interpretation@\n";
Format.eprintf "exit. Exiting ICS interpreter (or: Ctrl-D)@\n";
Format.eprintf "forget. Clearing current logical context.@\n";
Format.eprintf "find <th> <var>. Interpretation of variable in theory.@\n";
Format.eprintf "help [commands | syntax]. Help texts.@\n";
Format.eprintf "inv <th> <term>. External variable for term in theory@\n";
Format.eprintf "prop <var> := <prop>. Definition for a proposition.@\n";
Format.eprintf "reset. Reinitializing ICS.@\n";
Format.eprintf "restore <name>. Restore current context.@\n";
Format.eprintf "remove <name>. Remove a saved current context.@\n";
Format.eprintf "save <name>. Save current context.@\n";
Format.eprintf "sat <prop>. Propositional satisfiability@\n";
Format.eprintf "sig <var> : bv[<int>]. Signature for bitvector variables.@\n";
Format.eprintf "sig <var> : [dom | real]. Signature for arithmetic variables.@\n";
Format.eprintf "sigma (<term> | <atom>). Normal forms.@\n";
Format.eprintf "sign <term>. Abstrat sign interpretation of a term.@\n";
Format.eprintf "show. Solution sets and variable partitioning.@\n";
Format.eprintf "solve <ith> <term> = <term>. Solve equation in interpreted theory.@\n";
Format.eprintf "symtab [<name>]. Symbol table entries.@\n";
Format.eprintf "trace <ident>,...,<ident>. Tracing.@\n";
Format.eprintf "unsat <prop>. Check for unsatisfiability.@\n";
Format.eprintf "untrace. Stop tracing.@\n";
Format.eprintf "use <th> <var>. Occurrences of variables.@\n";
Format.eprintf "valid <prop>. Validity check.@\n";
Format.eprintf "An interpreted theory <ith> is either 'a' for arithmetic, 't' for@\n";
Format.eprintf "tuples, or 'bv' for bitvectors. In addition, <th> includes 'u' the@\n";
Format.eprintf "theory of unintepreted terms";
Format.eprintf "@]@."