Theorem: LRAT.DefaultFormula.insert_preserves_assignments_size (LeanSAT/LRAT/Formula/Basic.lean)

State before:
n : Nat
f : DefaultFormula n
c : DefaultClause n
⊢ (f.insert c).assignments.size = f.assignments.size
Tactic:
simp only [insert]
State after:
n : Nat
f : DefaultFormula n
c : DefaultClause n
⊢ (match c.isUnit with
        | none =>
          { clauses := f.clauses.push (some c), rupUnits := f.rupUnits, ratUnits := f.ratUnits,
            assignments := f.assignments }
        | some (l, true) =>
          { clauses := f.clauses.push (some c), rupUnits := f.rupUnits, ratUnits := f.ratUnits,
            assignments := f.assignments.modify l.val addPosAssignment }
        | some (l, false) =>
          { clauses := f.clauses.push (some c), rupUnits := f.rupUnits, ratUnits := f.ratUnits,
            assignments := f.assignments.modify l.val addNegAssignment }).assignments.size =
    f.assignments.size

State before:
n : Nat
f : DefaultFormula n
c : DefaultClause n
⊢ (match c.isUnit with
        | none =>
          { clauses := f.clauses.push (some c), rupUnits := f.rupUnits, ratUnits := f.ratUnits,
            assignments := f.assignments }
        | some (l, true) =>
          { clauses := f.clauses.push (some c), rupUnits := f.rupUnits, ratUnits := f.ratUnits,
            assignments := f.assignments.modify l.val addPosAssignment }
        | some (l, false) =>
          { clauses := f.clauses.push (some c), rupUnits := f.rupUnits, ratUnits := f.ratUnits,
            assignments := f.assignments.modify l.val addNegAssignment }).assignments.size =
    f.assignments.size
Tactic:
split <;> simp only [Array.modify_preserves_size]
State after:
no goals