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:                  ([], vars, mk_and_l (guards_l@[ct]@effect_args)) in
                 let tkey_hash = "Non_total_Tm_arrow" ^ (hash_of_term tkey) ^ "@Effect=" ^
                   (c |> U.comp_effect_name |> string_of_lid) in
                 BU.digest_of_string tkey_hash in
  
               let tsym = "Non_total_Tm_arrow_" ^ tkey_hash in
               let tdecl = Term.DeclFun(tsym, [], Term_sort, None) in
               let t = mkApp(tsym, []) in
  