next hd tl ih =>
intro unitsAcc asssignments b
simp only [List.foldl]
let hd_res := insertUnit (unitsAcc, asssignments, b) hd
specialize ih hd_res.1 hd_res.2.1 hd_res.2.2
simp only [Prod.mk.eta] at ih
rw [ih, insertUnit_preserves_size]
case cons
n : Nat
head✝ : Literal (PosFin n)
tail✝ : List (Literal (PosFin n))
tail_ih✝ :
  ∀ (unitsAcc : Array (Literal (PosFin n))) (assignments : Array Assignment) (b : Bool),
    (List.foldl insertUnit (unitsAcc, assignments, b) tail✝).snd.fst.size = assignments.size
⊢ ∀ (unitsAcc : Array (Literal (PosFin n))) (assignments : Array Assignment) (b : Bool),
    (List.foldl insertUnit (unitsAcc, assignments, b) (head✝ :: tail✝)).snd.fst.size = assignments.size
no goals