anchor.diff:  
           match pth_leFuncs with
           | [pth_le1; pth_le2a; pth_le2b; pth_le3] -> pth_le1, pth_le2a, pth_le2b, pth_le3
  -        | _ -> failwith "pth_leFuncs: Unhandled case."
  +        | _ -> 
  +            let failThm = Choice.failwith "pth_leFuncs: Unhandled case."
  +            failThm, failThm, failThm, failThm
   
       let INT_LE_CONV = 
           FIRST_CONV [GEN_REWRITE_CONV I [pth_le1]
  
positive.code:         let rs = filter (fun t -> Choice.get <| type_of t = int_ty) (qs @ ps)
          let rs = int_ideal_cofactors rs p
          eq, zip (fst(chop_list (length qs) rs)) vars
      let subst_in_poly i p = Choice.get <| rhs(concl <| Choice.get(INT_POLY_CONV(Choice.get <| vsubst i p)))
      let rec solve_idealism evs ps eqs = 
          if evs = []
  
negative.code:                 TRANS th1 (SPECL [Choice.get <| lhs(Choice.get <| rand(concl <| Choice.get th1))
                                    v] <| pth())
              CONV_RULE (RAND_CONV(RAND_CONV INT_POLY_CONV)) th2
  
      let UNWIND_POLYS_CONV tm = 
          let vars, bod = strip_exists tm
          let cjs = conjuncts bod
  