anchor.diff:  //   |- (?) = (\P. !q. (!x. P x ==> q) ==> q); |- (!) = (\P. P = (\x. T));
   //   |- (==>) = (\p q. p /\ q <=> p);
   //   |- (/\) = (\p q. (\f. f p q) = (\f. f T T)); |- T <=> (\p. p) = (\p. p)]
  +!the_implicit_types;;                                                               // no change
  +type_abbrevs();;                                                                    // no change
   
   //* Itab Module *//
   ITAUT_TAC;; // forces itab module evaluation
  
positive.code: //   ("=", A->A->bool)]
  axioms();;                                                                          // the_axioms database doesn't change
  definitions();;                                                                     // the_definitions doesn't change
  
  // after population of constants this parses
  parse_term @"~(p /\ q) <=> ~p \/ ~q";;
  
negative.code: //   |- (==>) = (\p q. p /\ q <=> p);
  //   |- (/\) = (\p q. (\f. f p q) = (\f. f T T)); |- T <=> (\p. p) = (\p. p)]
  
  // ocaml
  
  //[|- PASSOC =
  //      (\_1099 _1100. _1099 ((FST _1100,FST (SND _1100)),SND (SND _1100)));
  //   |- UNCURRY = (\_1082 _1083. _1082 (FST _1083) (SND _1083));
  //   |- CURRY = (\_1061 _1062 _1063. _1061 (_1062,_1063));
  //   |- SND = (\p. @y. ?x. p = x,y); |- FST = (\p. @x. ?y. p = x,y);
  //   |- (,) = (\x y. ABS_prod (mk_pair x y));
  //   |- mk_pair = (\x y a b. a = x /\ b = y);
  //   |- _FUNCTION = (\r x. if (?!) (r x) then (@) (r x) else @z. F);
  //   |- _MATCH = (\e r. if (?!) (r e) then (@) (r e) else @z. F);
  //   |- _GUARDED_PATTERN = (\p g r. p /\ g /\ r);
  //   |- _UNGUARDED_PATTERN = (\p r. p /\ r);
  //   |- _SEQPATTERN = (\r s x. if ?y. r x y then r x else s x);
  //   |- GEQ = (\a b. a = b); |- GABS = (\P. (@) P); |- LET_END = (\t. t);
  //   |- LET = (\f x. f x); |- one = (@x. T); |- I = (\x. x);
  //   |- (o) = (\f g x. f (g x));
  //   |- COND = (\t t1 t2. @x. ((t <=> T) ==> x = t1) /\ ((t <=> F) ==> x = t2));
  //   |- _FALSITY_ <=> F; |- (?!) = (\P. (?) P /\ (!x y. P x /\ P y ==> x = y));
  //   |- (~) = (\p. p ==> F); |- F <=> (!p. p);
  //   |- (\/) = (\p q. !r. (p ==> r) ==> (q ==> r) ==> r);
  //   |- (?) = (\P. !q. (!x. P x ==> q) ==> q); |- (!) = (\P. P = (\x. T));
  //   |- (==>) = (\p q. p /\ q <=> p);
  //   |- (/\) = (\p q. (\f. f p q) = (\f. f T T)); |- T <=> (\p. p) = (\p. p)]
  
  //* Num Module *//
  
  ONE_ONE;; // forces num module evaluation
  
  parse_term(@"x + 1");;
  
  PRE;; //arith: error on EXP_ZERO
  
  ARITH_ZERO;; //calc_num
  
  SEMIRING_NORMALIZERS_CONV;; //normalizer
  
  RING_AND_IDEAL_CONV;; //grobner
  
  
  