simp only [insertUnit, Prod.mk.eta] at l'_in_insertUnit_res
n : Nat
units : Array (Literal (PosFin n))
assignments : Array Assignment
foundContradiction : Bool
l : Literal (PosFin n)
insertUnit_res : Array (Literal (PosFin n)) × Array Assignment × Bool :=
  insertUnit (units, assignments, foundContradiction) l
l' : Literal (PosFin n)
l'_in_insertUnit_res : l' ∈ (insertUnit (units, assignments, foundContradiction) l).fst.data
⊢ l' = l ∨ l' ∈ units.data
n : Nat
units : Array (Literal (PosFin n))
assignments : Array Assignment
foundContradiction : Bool
l : Literal (PosFin n)
insertUnit_res : Array (Literal (PosFin n)) × Array Assignment × Bool :=
  insertUnit (units, assignments, foundContradiction) l
l' : Literal (PosFin n)
l'_in_insertUnit_res :
  l' ∈
    (if hasAssignment l.snd assignments[l.fst.val]! = true then (units, assignments, foundContradiction)
        else
          (units.push l, assignments.modify l.fst.val (addAssignment l.snd),
            foundContradiction || assignments[l.fst.val]! != unassigned)).fst.data
⊢ l' = l ∨ l' ∈ units.data