∀ {n : ℕ} (f : Std.Tactic.BVDecide.LRAT.Internal.DefaultFormula n)
  (pivot : Std.Sat.Literal (Std.Tactic.BVDecide.LRAT.Internal.PosFin n)) (ratHints : Array (ℕ × Array ℕ)),
  decide
        (Array.filter
            (fun i =>
              match f.clauses[i]! with
              | none => false
              | some c => c.contains pivot.negate)
            (Array.range f.clauses.size) =
          Array.map (fun x => x.1) ratHints) =
      true →
    ∀ (j : Fin (Array.map (fun x => x.1) ratHints).toList.length),
      ↑j <
        (List.filter
            (fun i =>
              match f.clauses[i]! with
              | none => false
              | some c => c.contains pivot.negate)
            (Array.range f.clauses.size).toList).length