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