Let x0 of type ι be given.
Apply nat_ind with
λ x1 . mul_nat (ordsucc x0) x1 = add_nat (mul_nat x0 x1) x1 leaving 2 subgoals.
Apply mul_nat_0R with
ordsucc x0,
λ x1 x2 . x2 = add_nat (mul_nat x0 0) 0.
Apply mul_nat_0R with
x0,
λ x1 x2 . 0 = add_nat x2 0.
Let x1 of type ι → ι → ο be given.
The subproof is completed by applying add_nat_0R with 0, λ x2 x3 . x1 x3 x2.
Let x1 of type ι be given.
Apply mul_nat_SR with
ordsucc x0,
x1,
λ x2 x3 . x3 = add_nat (mul_nat x0 (ordsucc x1)) (ordsucc x1) leaving 2 subgoals.
The subproof is completed by applying H1.
Apply H2 with
λ x2 x3 . add_nat (ordsucc x0) x3 = add_nat (mul_nat x0 (ordsucc x1)) (ordsucc x1).
Apply add_nat_SL with
x0,
add_nat (mul_nat x0 x1) x1,
λ x2 x3 . x3 = add_nat (mul_nat x0 (ordsucc x1)) (ordsucc x1) leaving 3 subgoals.
The subproof is completed by applying H0.
Apply add_nat_p with
mul_nat x0 x1,
x1 leaving 2 subgoals.
Apply mul_nat_p with
x0,
x1 leaving 2 subgoals.
The subproof is completed by applying H0.
The subproof is completed by applying H1.
The subproof is completed by applying H1.
Apply mul_nat_SR with
x0,
x1,
λ x2 x3 . ordsucc (add_nat x0 (add_nat (mul_nat x0 x1) x1)) = add_nat x3 (ordsucc x1) leaving 2 subgoals.
The subproof is completed by applying H1.
Apply add_nat_SR with
add_nat x0 (mul_nat x0 x1),
x1,
λ x2 x3 . ordsucc (add_nat x0 (add_nat (mul_nat x0 x1) x1)) = x3 leaving 2 subgoals.
The subproof is completed by applying H1.
Apply add_nat_asso with
x0,
mul_nat x0 x1,
x1,
λ x2 x3 . ordsucc (add_nat x0 (add_nat (mul_nat x0 x1) x1)) = ordsucc x3 leaving 4 subgoals.
The subproof is completed by applying H0.
Apply mul_nat_p with
x0,
x1 leaving 2 subgoals.
The subproof is completed by applying H0.
The subproof is completed by applying H1.
The subproof is completed by applying H1.
Let x2 of type ι → ι → ο be given.
The subproof is completed by applying H3.