. simp only [List.foldl, forall_const]
case nil
n : Nat
⊢ ∀ (unitsAcc : Array (Literal (PosFin n))) (assignments : Array Assignment) (b : Bool),
    (List.foldl insertUnit (unitsAcc, assignments, b) []).snd.fst.size = assignments.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
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