anchor.diff:          //make sure they all have non-null names
           let formals = formals |> List.map (fun (x, imp) -> if S.is_null_bv x then (S.new_bv (Some (S.range_of_bv x)) x.sort, imp) else x,imp) in
           let dec = decreases_clause formals c in
  -        let precedes = mk_Tm_app precedes [as_arg dec; as_arg previous_dec] r in
  +        let precedes = mk_precedes_lex dec previous_dec in
           let precedes = TcUtil.label "Could not prove termination of this recursive call" r precedes in
           let bs, (last, imp) = BU.prefix formals in
           let last = {last with sort=U.refine last precedes} in
  
positive.code:       let _, args = U.head_and_args tc in
        let res, args = List.hd args, List.tl args in
        let flags, guards = c.flags |> List.map (function
          | DECREASES e ->
              let env, _ = Env.clear_expected_typ env in
              let e, _, g = tc_tot_or_gtot_term env e in
              DECREASES e, g
          | f -> f, Env.trivial_guard) |> List.unzip in
        let u = env.universe_of env (fst res) in
        let c = mk_Comp ({c with
  
negative.code: (* Some local utilities *)
  let instantiate_both env = {env with Env.instantiate_imp=true}
  let no_inst env = {env with Env.instantiate_imp=false}
  
  let is_eq = function
      | Some Equality -> true
  