Metamath Proof Explorer


Theorem naddcnffo

Description: Addition of Cantor normal forms is a function onto Cantor normal forms. (Contributed by RP, 2-Jan-2025)

Ref Expression
Assertion naddcnffo ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X → ∘ f ⁡ + 𝑜 ↾ S × S : S × S ⟶ onto S

Proof

Step Hyp Ref Expression
1 naddcnff ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X → ∘ f ⁡ + 𝑜 ↾ S × S : S × S ⟶ S
2 simpr ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X ∧ f ∈ S → f ∈ S
3 peano1 ⊢ ∅ ∈ ω
4 fconst6g ⊢ ∅ ∈ ω → X × ∅ : X ⟶ ω
5 3 4 mp1i ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X → X × ∅ : X ⟶ ω
6 simpl ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X → X ∈ On
7 3 a1i ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X → ∅ ∈ ω
8 6 7 fczfsuppd ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X → finSupp ∅⁡ X × ∅
9 simpr ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X → S = dom ⁡ ω CNF X
10 9 eleq2d ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X → X × ∅ ∈ S ↔ X × ∅ ∈ dom ⁡ ω CNF X
11 eqid ⊢ dom ⁡ ω CNF X = dom ⁡ ω CNF X
12 omelon ⊢ ω ∈ On
13 12 a1i ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X → ω ∈ On
14 11 13 6 cantnfs ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X → X × ∅ ∈ dom ⁡ ω CNF X ↔ X × ∅ : X ⟶ ω ∧ finSupp ∅⁡ X × ∅
15 10 14 bitrd ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X → X × ∅ ∈ S ↔ X × ∅ : X ⟶ ω ∧ finSupp ∅⁡ X × ∅
16 5 8 15 mpbir2and ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X → X × ∅ ∈ S
17 16 adantr ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X ∧ f ∈ S → X × ∅ ∈ S
18 simpl ⊢ f ∈ S ∧ X × ∅ ∈ S → f ∈ S
19 18 adantl ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X ∧ f ∈ S ∧ X × ∅ ∈ S → f ∈ S
20 simpr ⊢ f ∈ S ∧ X × ∅ ∈ S → X × ∅ ∈ S
21 20 adantl ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X ∧ f ∈ S ∧ X × ∅ ∈ S → X × ∅ ∈ S
22 19 21 ovresd ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X ∧ f ∈ S ∧ X × ∅ ∈ S → f ∘ f ⁡ + 𝑜 ↾ S × S X × ∅ = f + 𝑜 f X × ∅
23 9 eleq2d ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X → f ∈ S ↔ f ∈ dom ⁡ ω CNF X
24 11 13 6 cantnfs ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X → f ∈ dom ⁡ ω CNF X ↔ f : X ⟶ ω ∧ finSupp ∅⁡ f
25 23 24 bitrd ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X → f ∈ S ↔ f : X ⟶ ω ∧ finSupp ∅⁡ f
26 25 biimpd ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X → f ∈ S → f : X ⟶ ω ∧ finSupp ∅⁡ f
27 simpl ⊢ f : X ⟶ ω ∧ finSupp ∅⁡ f → f : X ⟶ ω
28 18 26 27 syl56 ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X → f ∈ S ∧ X × ∅ ∈ S → f : X ⟶ ω
29 28 imp ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X ∧ f ∈ S ∧ X × ∅ ∈ S → f : X ⟶ ω
30 29 ffnd ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X ∧ f ∈ S ∧ X × ∅ ∈ S → f Fn X
31 fnconstg ⊢ ∅ ∈ ω → X × ∅ Fn X
32 3 31 mp1i ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X ∧ f ∈ S ∧ X × ∅ ∈ S → X × ∅ Fn X
33 6 adantr ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X ∧ f ∈ S ∧ X × ∅ ∈ S → X ∈ On
34 inidm ⊢ X ∩ X = X
35 30 32 33 33 34 offn ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X ∧ f ∈ S ∧ X × ∅ ∈ S → f + 𝑜 f X × ∅ Fn X
36 30 adantr ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X ∧ f ∈ S ∧ X × ∅ ∈ S ∧ x ∈ X → f Fn X
37 3 31 mp1i ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X ∧ f ∈ S ∧ X × ∅ ∈ S ∧ x ∈ X → X × ∅ Fn X
38 simplll ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X ∧ f ∈ S ∧ X × ∅ ∈ S ∧ x ∈ X → X ∈ On
39 simpr ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X ∧ f ∈ S ∧ X × ∅ ∈ S ∧ x ∈ X → x ∈ X
40 fnfvof ⊢ f Fn X ∧ X × ∅ Fn X ∧ X ∈ On ∧ x ∈ X → f + 𝑜 f X × ∅ ⁡ x = f ⁡ x + 𝑜 X × ∅ ⁡ x
41 36 37 38 39 40 syl22anc ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X ∧ f ∈ S ∧ X × ∅ ∈ S ∧ x ∈ X → f + 𝑜 f X × ∅ ⁡ x = f ⁡ x + 𝑜 X × ∅ ⁡ x
42 3 a1i ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X ∧ f ∈ S ∧ X × ∅ ∈ S ∧ x ∈ X → ∅ ∈ ω
43 fvconst2g ⊢ ∅ ∈ ω ∧ x ∈ X → X × ∅ ⁡ x = ∅
44 42 39 43 syl2anc ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X ∧ f ∈ S ∧ X × ∅ ∈ S ∧ x ∈ X → X × ∅ ⁡ x = ∅
45 44 oveq2d ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X ∧ f ∈ S ∧ X × ∅ ∈ S ∧ x ∈ X → f ⁡ x + 𝑜 X × ∅ ⁡ x = f ⁡ x + 𝑜 ∅
46 29 ffvelcdmda ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X ∧ f ∈ S ∧ X × ∅ ∈ S ∧ x ∈ X → f ⁡ x ∈ ω
47 nnon ⊢ f ⁡ x ∈ ω → f ⁡ x ∈ On
48 oa0 ⊢ f ⁡ x ∈ On → f ⁡ x + 𝑜 ∅ = f ⁡ x
49 46 47 48 3syl ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X ∧ f ∈ S ∧ X × ∅ ∈ S ∧ x ∈ X → f ⁡ x + 𝑜 ∅ = f ⁡ x
50 41 45 49 3eqtrd ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X ∧ f ∈ S ∧ X × ∅ ∈ S ∧ x ∈ X → f + 𝑜 f X × ∅ ⁡ x = f ⁡ x
51 35 30 50 eqfnfvd ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X ∧ f ∈ S ∧ X × ∅ ∈ S → f + 𝑜 f X × ∅ = f
52 22 51 eqtr2d ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X ∧ f ∈ S ∧ X × ∅ ∈ S → f = f ∘ f ⁡ + 𝑜 ↾ S × S X × ∅
53 52 expr ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X ∧ f ∈ S → X × ∅ ∈ S → f = f ∘ f ⁡ + 𝑜 ↾ S × S X × ∅
54 17 53 jcai ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X ∧ f ∈ S → X × ∅ ∈ S ∧ f = f ∘ f ⁡ + 𝑜 ↾ S × S X × ∅
55 oveq2 ⊢ z = X × ∅ → f ∘ f ⁡ + 𝑜 ↾ S × S z = f ∘ f ⁡ + 𝑜 ↾ S × S X × ∅
56 55 rspceeqv ⊢ X × ∅ ∈ S ∧ f = f ∘ f ⁡ + 𝑜 ↾ S × S X × ∅ → ∃ z ∈ S f = f ∘ f ⁡ + 𝑜 ↾ S × S z
57 54 56 syl ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X ∧ f ∈ S → ∃ z ∈ S f = f ∘ f ⁡ + 𝑜 ↾ S × S z
58 oveq1 ⊢ g = f → g ∘ f ⁡ + 𝑜 ↾ S × S z = f ∘ f ⁡ + 𝑜 ↾ S × S z
59 58 eqeq2d ⊢ g = f → f = g ∘ f ⁡ + 𝑜 ↾ S × S z ↔ f = f ∘ f ⁡ + 𝑜 ↾ S × S z
60 59 rexbidv ⊢ g = f → ∃ z ∈ S f = g ∘ f ⁡ + 𝑜 ↾ S × S z ↔ ∃ z ∈ S f = f ∘ f ⁡ + 𝑜 ↾ S × S z
61 60 rspcev ⊢ f ∈ S ∧ ∃ z ∈ S f = f ∘ f ⁡ + 𝑜 ↾ S × S z → ∃ g ∈ S ∃ z ∈ S f = g ∘ f ⁡ + 𝑜 ↾ S × S z
62 2 57 61 syl2anc ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X ∧ f ∈ S → ∃ g ∈ S ∃ z ∈ S f = g ∘ f ⁡ + 𝑜 ↾ S × S z
63 62 ralrimiva ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X → ∀ f ∈ S ∃ g ∈ S ∃ z ∈ S f = g ∘ f ⁡ + 𝑜 ↾ S × S z
64 foov ⊢ ∘ f ⁡ + 𝑜 ↾ S × S : S × S ⟶ onto S ↔ ∘ f ⁡ + 𝑜 ↾ S × S : S × S ⟶ S ∧ ∀ f ∈ S ∃ g ∈ S ∃ z ∈ S f = g ∘ f ⁡ + 𝑜 ↾ S × S z
65 1 63 64 sylanbrc ⊢ X ∈ On ∧ S = dom ⁡ ω CNF X → ∘ f ⁡ + 𝑜 ↾ S × S : S × S ⟶ onto S