apply generic_recursor
⊢ ∀ (c a b : ↑N0), plus (a, plus (b, c)) = plus (plus (a, b), c)
case hz

⊢ ∀ (a b : ↑N0), plus (a, plus (b, z)) = plus (plus (a, b), z)

case hs

⊢ ∀ (n : ↑N0),
    (∀ (a b : ↑N0), plus (a, plus (b, n)) = plus (plus (a, b), n)) →
      ∀ (a b : ↑N0), plus (a, plus (b, S n)) = plus (plus (a, b), S n)