∀ {n : ℕ} (f : Std.Tactic.BVDecide.LRAT.Internal.DefaultFormula n)
  (c : Std.Tactic.BVDecide.LRAT.Internal.DefaultClause n)
  (p : Std.Sat.Literal (Std.Tactic.BVDecide.LRAT.Internal.PosFin n)) (rupHints : Array ℕ)
  (ratHints : Array (ℕ × Array ℕ)) (f' : Std.Tactic.BVDecide.LRAT.Internal.DefaultFormula n),
  ((Array.foldl (fun x ratHint => if x.2 = true then x.1.performRatCheck p.negate ratHint else (x.1, false))
            (((f.insertRupUnits c.negate).1.performRupCheck rupHints).1, true) ratHints).1,
        false) =
      (f', true) →
    f' = f.insert c