v : Vector ℕ (Nat.succ 0 + 1)
⊢ Nat.rec 0 (fun y IH => Vector.head (Vector.tail v) + IH) (Vector.head v) = Vector.head v * Vector.head (Vector.tail v)
v : Vector ℕ (Nat.succ 0 + 1)
⊢ Nat.rec 0
      (fun y IH =>
        Vector.head (Vector.tail (Vector.tail (y ::ᵥ IH ::ᵥ Vector.tail v))) +
          Vector.head (Vector.tail (y ::ᵥ IH ::ᵥ Vector.tail v)))
      (Vector.head v) =
    Vector.head v * Vector.head (Vector.tail v)
simp
case succ
v : Vector ℕ (Nat.succ 0 + 1)
n✝ : ℕ
n_ih✝ : Nat.rec 0 (fun y IH => Vector.head (Vector.tail v) + IH) n✝ = n✝ * Vector.head (Vector.tail v)
⊢ Vector.head (Vector.tail v) + n✝ * Vector.head (Vector.tail v) =
    n✝ * Vector.head (Vector.tail v) + Vector.head (Vector.tail v)
v : Vector ℕ (Nat.succ 0 + 1)
⊢ Nat.rec 0 (fun y IH => Vector.head (Vector.tail v) + IH) (Vector.head v) = Vector.head v * Vector.head (Vector.tail v)
induction v.head <;> simp [*, Nat.succ_mul]
no goals
case succ
v : Vector ℕ (Nat.succ 0 + 1)
n✝ : ℕ
n_ih✝ : Nat.rec 0 (fun y IH => Vector.head (Vector.tail v) + IH) n✝ = n✝ * Vector.head (Vector.tail v)
⊢ Vector.head (Vector.tail v) + n✝ * Vector.head (Vector.tail v) =
    n✝ * Vector.head (Vector.tail v) + Vector.head (Vector.tail v)
rw [add_comm]