anchor.diff:          ([], []) in
       List.rev l, decls
   
  -(* this assumes t is a Lemma *)
  -and encode_function_type_as_formula (t:typ) (env:env_t) : term * decls_t =
  -    let universe_of_binders binders = List.map (fun _ -> U_zero) binders in
  -    let quant = U.smt_lemma_as_forall t universe_of_binders in
  -    let env = {env with use_zfuel_name=true} in //see #1028; SMT lemmas should not violate the fuel instrumentation
  -    encode_formula quant env
  -
   and encode_smt_patterns (pats_l:list<(list<S.arg>)>) env : list<(list<term>)> * decls_t =
       let env = {env with use_zfuel_name=true} in
       let encode_smt_pattern t =
  
positive.code: 
      | _ -> false
  
  
  let rec encode_const c env =
      match c with
      | Const_unit -> mk_Term_unit, []
  
negative.code: and encode_term_pred (fuel_opt:option<term>) (t:typ) (env:env_t) (e:term) : term * decls_t =
      let t, decls = encode_term t env in
      mk_HasTypeWithFuel fuel_opt e t, decls
  
  and encode_arith_term env head args_e =
      let arg_tms, decls = encode_args args_e env in
  