Search for blocks/addresses/...

Proofgold Proof

pf
Apply nat_ind with λ x0 . ∀ x1 . x1x0∃ x2 . and (x2omega) (add_nat x1 x2 = x0) leaving 2 subgoals.
Let x0 of type ι be given.
Assume H0: x00.
Apply FalseE with ∃ x1 . and (x1omega) (add_nat x0 x1 = 0).
Apply EmptyE with x0.
The subproof is completed by applying H0.
Let x0 of type ι be given.
Assume H0: nat_p x0.
Assume H1: ∀ x1 . x1x0∃ x2 . and (x2omega) (add_nat x1 x2 = x0).
Let x1 of type ι be given.
Assume H2: x1ordsucc x0.
Apply ordsuccE with x0, x1, ∃ x2 . and (x2omega) (add_nat x1 x2 = ordsucc x0) leaving 3 subgoals.
The subproof is completed by applying H2.
Assume H3: x1x0.
Apply H1 with x1, ∃ x2 . and (x2omega) (add_nat x1 x2 = ordsucc x0) leaving 2 subgoals.
The subproof is completed by applying H3.
Let x2 of type ι be given.
Assume H4: (λ x3 . and (x3omega) (add_nat x1 x3 = x0)) x2.
Apply H4 with ∃ x3 . and (x3omega) (add_nat x1 x3 = ordsucc x0).
Assume H5: x2omega.
Assume H6: add_nat x1 x2 = x0.
Let x3 of type ο be given.
Assume H7: ∀ x4 . and (x4omega) (add_nat x1 x4 = ordsucc x0)x3.
Apply H7 with ordsucc x2.
Apply andI with ordsucc x2omega, add_nat x1 (ordsucc x2) = ordsucc x0 leaving 2 subgoals.
Apply omega_ordsucc with x2.
The subproof is completed by applying H5.
Apply add_nat_SR with x1, x2, λ x4 x5 . x5 = ordsucc x0 leaving 2 subgoals.
Apply omega_nat_p with x2.
The subproof is completed by applying H5.
set y4 to be ordsucc (add_nat x1 x2)
set y5 to be ordsucc x1
Claim L8: ∀ x6 : ι → ο . x6 y5x6 y4
Let x6 of type ιο be given.
Assume H8: x6 (ordsucc x2).
set y7 to be λ x7 . x6
Apply H6 with λ x8 x9 . y7 (ordsucc x8) (ordsucc x9).
The subproof is completed by applying H8.
Let x6 of type ιιο be given.
Apply L8 with λ x7 . x6 x7 y5x6 y5 x7.
Assume H9: x6 y5 y5.
The subproof is completed by applying H9.
Assume H3: x1 = x0.
Let x2 of type ο be given.
Assume H4: ∀ x3 . and (x3omega) (add_nat x1 x3 = ordsucc x0)x2.
Apply H4 with 1.
Apply andI with 1omega, add_nat x1 1 = ordsucc x0 leaving 2 subgoals.
Apply nat_p_omega with 1.
The subproof is completed by applying nat_1.
Apply H3 with λ x3 x4 . add_nat x1 1 = ordsucc x3.
Apply add_nat_SR with x1, 0, λ x3 x4 . x4 = ordsucc x1 leaving 2 subgoals.
The subproof is completed by applying nat_0.
set y3 to be ...
set y4 to be ordsucc ...
Claim L5: ∀ x5 : ι → ο . x5 y4x5 y3
Let x5 of type ιο be given.
Assume H5: x5 (ordsucc y3).
set y6 to be λ x6 . x5
Apply add_nat_0R with y3, λ x7 x8 . y6 (ordsucc x7) (ordsucc x8).
The subproof is completed by applying H5.
Let x5 of type ιιο be given.
Apply L5 with λ x6 . x5 x6 y4x5 y4 x6.
Assume H6: x5 y4 y4.
The subproof is completed by applying H6.