anchor.diff:                              |> THEN <| SPLIT_TAC(n - 1)
                          else NO_TAC)
            |> ORELSE <| ALL_TAC) g
  +
       fun min max step ths -> 
           REFUTE_THEN ASSUME_TAC
           |> THEN <| POLY_ASSUME_TAC(map GEN_ALL ths)
  
positive.code:     (* ----------------------------------------------------------------------- *)
      (* Try expansion and continuation call with ancestor or initial rule.      *)
      (* ----------------------------------------------------------------------- *)
      let meson_expand rules ((g, ancestors), ((insts, offset, size) as tup)) cont = 
          let pr = fst g
          let newancestors = insertan insts g ancestors
  
negative.code:                 ccounter := n + 1
                  cstore := (c, n) :: currentconsts
                  n
  
          let hol_of_const c =
              rev_assoc c (!cstore)
              |> Option.getOrFailWith "find"
  
          reset_consts, fol_of_const, hol_of_const
  
      let rec fol_of_term env consts tm = 
          if is_var tm && not(mem tm consts) then Fvar(fol_of_var tm)
          else 
              let f, args = strip_comb tm
              if mem f env then failwith "fol_of_term: higher order"
              else 
                  let ff = fol_of_const f
                  Fnapp(ff, map (fol_of_term env consts) args)
  
      let fol_of_atom env consts tm = 
          let f, args = strip_comb tm
          if mem f env then failwith "fol_of_atom: higher order"
          else 
              let ff = fol_of_const f
              ff, map (fol_of_term env consts) args
  
      let fol_of_literal env consts tm = 
          try 
              let tm' = Choice.get <| dest_neg tm
  