anchor.diff:                *          /\ (forall x1. IsTotFun (ApplyTT x0 x1)
                 *
                 *   I.e, we add IsTotFun axioms for every total partial application.
  -              *   Importantly, in the example above, the axiom is omitted for 
  +              *   Importantly, in the example above, the axiom is omitted for
                 *   (x0 x1 x2 : int -> GTot int), since this function is not total
                 *)
  -             
  +
   
                //finally add the IsTotFun for the function term itself
                let t_interp =
  
positive.code:                  mkAnd (t_interp, tot_fun_axioms)
               in
               let cvars =
                 Term.free_variables t_interp 
                 |> List.filter (fun x -> fv_name x <> fv_name fsym) 
               in
               let tkey =
                 mkForall t.pos ([], fsym::cvars, t_interp)
  
negative.code:                  in
                   let rec is_tot_fun_axioms ctx head vars =
                     match vars with
                     | [] ->
                       mkTrue
  
                     | [_] ->
                       //last arrow, the effect label tells us if its pure or not
                       if is_pure
                       then maybe_mkForall [[head]] ctx (mk_IsTotFun head)
                       else mkTrue
  
                     | x::vars ->
                       //curried arrow with more than 1 argument
                       //head is definitely Tot
  