Step |
Hyp |
Ref |
Expression |
1 |
|
setcmon.c |
|- C = ( SetCat ` U ) |
2 |
|
setcmon.u |
|- ( ph -> U e. V ) |
3 |
|
setcmon.x |
|- ( ph -> X e. U ) |
4 |
|
setcmon.y |
|- ( ph -> Y e. U ) |
5 |
|
setcepi.h |
|- E = ( Epi ` C ) |
6 |
|
setcepi.2 |
|- ( ph -> 2o e. U ) |
7 |
|
eqid |
|- ( Base ` C ) = ( Base ` C ) |
8 |
|
eqid |
|- ( Hom ` C ) = ( Hom ` C ) |
9 |
|
eqid |
|- ( comp ` C ) = ( comp ` C ) |
10 |
1
|
setccat |
|- ( U e. V -> C e. Cat ) |
11 |
2 10
|
syl |
|- ( ph -> C e. Cat ) |
12 |
1 2
|
setcbas |
|- ( ph -> U = ( Base ` C ) ) |
13 |
3 12
|
eleqtrd |
|- ( ph -> X e. ( Base ` C ) ) |
14 |
4 12
|
eleqtrd |
|- ( ph -> Y e. ( Base ` C ) ) |
15 |
7 8 9 5 11 13 14
|
epihom |
|- ( ph -> ( X E Y ) C_ ( X ( Hom ` C ) Y ) ) |
16 |
15
|
sselda |
|- ( ( ph /\ F e. ( X E Y ) ) -> F e. ( X ( Hom ` C ) Y ) ) |
17 |
1 2 8 3 4
|
elsetchom |
|- ( ph -> ( F e. ( X ( Hom ` C ) Y ) <-> F : X --> Y ) ) |
18 |
17
|
biimpa |
|- ( ( ph /\ F e. ( X ( Hom ` C ) Y ) ) -> F : X --> Y ) |
19 |
16 18
|
syldan |
|- ( ( ph /\ F e. ( X E Y ) ) -> F : X --> Y ) |
20 |
19
|
frnd |
|- ( ( ph /\ F e. ( X E Y ) ) -> ran F C_ Y ) |
21 |
19
|
ffnd |
|- ( ( ph /\ F e. ( X E Y ) ) -> F Fn X ) |
22 |
|
fnfvelrn |
|- ( ( F Fn X /\ x e. X ) -> ( F ` x ) e. ran F ) |
23 |
21 22
|
sylan |
|- ( ( ( ph /\ F e. ( X E Y ) ) /\ x e. X ) -> ( F ` x ) e. ran F ) |
24 |
23
|
iftrued |
|- ( ( ( ph /\ F e. ( X E Y ) ) /\ x e. X ) -> if ( ( F ` x ) e. ran F , 1o , (/) ) = 1o ) |
25 |
24
|
mpteq2dva |
|- ( ( ph /\ F e. ( X E Y ) ) -> ( x e. X |-> if ( ( F ` x ) e. ran F , 1o , (/) ) ) = ( x e. X |-> 1o ) ) |
26 |
19
|
ffvelrnda |
|- ( ( ( ph /\ F e. ( X E Y ) ) /\ x e. X ) -> ( F ` x ) e. Y ) |
27 |
19
|
feqmptd |
|- ( ( ph /\ F e. ( X E Y ) ) -> F = ( x e. X |-> ( F ` x ) ) ) |
28 |
|
eqidd |
|- ( ( ph /\ F e. ( X E Y ) ) -> ( a e. Y |-> if ( a e. ran F , 1o , (/) ) ) = ( a e. Y |-> if ( a e. ran F , 1o , (/) ) ) ) |
29 |
|
eleq1 |
|- ( a = ( F ` x ) -> ( a e. ran F <-> ( F ` x ) e. ran F ) ) |
30 |
29
|
ifbid |
|- ( a = ( F ` x ) -> if ( a e. ran F , 1o , (/) ) = if ( ( F ` x ) e. ran F , 1o , (/) ) ) |
31 |
26 27 28 30
|
fmptco |
|- ( ( ph /\ F e. ( X E Y ) ) -> ( ( a e. Y |-> if ( a e. ran F , 1o , (/) ) ) o. F ) = ( x e. X |-> if ( ( F ` x ) e. ran F , 1o , (/) ) ) ) |
32 |
|
fconstmpt |
|- ( Y X. { 1o } ) = ( a e. Y |-> 1o ) |
33 |
32
|
a1i |
|- ( ( ph /\ F e. ( X E Y ) ) -> ( Y X. { 1o } ) = ( a e. Y |-> 1o ) ) |
34 |
|
eqidd |
|- ( a = ( F ` x ) -> 1o = 1o ) |
35 |
26 27 33 34
|
fmptco |
|- ( ( ph /\ F e. ( X E Y ) ) -> ( ( Y X. { 1o } ) o. F ) = ( x e. X |-> 1o ) ) |
36 |
25 31 35
|
3eqtr4d |
|- ( ( ph /\ F e. ( X E Y ) ) -> ( ( a e. Y |-> if ( a e. ran F , 1o , (/) ) ) o. F ) = ( ( Y X. { 1o } ) o. F ) ) |
37 |
2
|
adantr |
|- ( ( ph /\ F e. ( X E Y ) ) -> U e. V ) |
38 |
3
|
adantr |
|- ( ( ph /\ F e. ( X E Y ) ) -> X e. U ) |
39 |
4
|
adantr |
|- ( ( ph /\ F e. ( X E Y ) ) -> Y e. U ) |
40 |
6
|
adantr |
|- ( ( ph /\ F e. ( X E Y ) ) -> 2o e. U ) |
41 |
|
eqid |
|- ( a e. Y |-> if ( a e. ran F , 1o , (/) ) ) = ( a e. Y |-> if ( a e. ran F , 1o , (/) ) ) |
42 |
|
1oex |
|- 1o e. _V |
43 |
42
|
prid2 |
|- 1o e. { (/) , 1o } |
44 |
|
df2o3 |
|- 2o = { (/) , 1o } |
45 |
43 44
|
eleqtrri |
|- 1o e. 2o |
46 |
|
0ex |
|- (/) e. _V |
47 |
46
|
prid1 |
|- (/) e. { (/) , 1o } |
48 |
47 44
|
eleqtrri |
|- (/) e. 2o |
49 |
45 48
|
ifcli |
|- if ( a e. ran F , 1o , (/) ) e. 2o |
50 |
49
|
a1i |
|- ( a e. Y -> if ( a e. ran F , 1o , (/) ) e. 2o ) |
51 |
41 50
|
fmpti |
|- ( a e. Y |-> if ( a e. ran F , 1o , (/) ) ) : Y --> 2o |
52 |
51
|
a1i |
|- ( ( ph /\ F e. ( X E Y ) ) -> ( a e. Y |-> if ( a e. ran F , 1o , (/) ) ) : Y --> 2o ) |
53 |
1 37 9 38 39 40 19 52
|
setcco |
|- ( ( ph /\ F e. ( X E Y ) ) -> ( ( a e. Y |-> if ( a e. ran F , 1o , (/) ) ) ( <. X , Y >. ( comp ` C ) 2o ) F ) = ( ( a e. Y |-> if ( a e. ran F , 1o , (/) ) ) o. F ) ) |
54 |
|
fconst6g |
|- ( 1o e. 2o -> ( Y X. { 1o } ) : Y --> 2o ) |
55 |
45 54
|
mp1i |
|- ( ( ph /\ F e. ( X E Y ) ) -> ( Y X. { 1o } ) : Y --> 2o ) |
56 |
1 37 9 38 39 40 19 55
|
setcco |
|- ( ( ph /\ F e. ( X E Y ) ) -> ( ( Y X. { 1o } ) ( <. X , Y >. ( comp ` C ) 2o ) F ) = ( ( Y X. { 1o } ) o. F ) ) |
57 |
36 53 56
|
3eqtr4d |
|- ( ( ph /\ F e. ( X E Y ) ) -> ( ( a e. Y |-> if ( a e. ran F , 1o , (/) ) ) ( <. X , Y >. ( comp ` C ) 2o ) F ) = ( ( Y X. { 1o } ) ( <. X , Y >. ( comp ` C ) 2o ) F ) ) |
58 |
11
|
adantr |
|- ( ( ph /\ F e. ( X E Y ) ) -> C e. Cat ) |
59 |
13
|
adantr |
|- ( ( ph /\ F e. ( X E Y ) ) -> X e. ( Base ` C ) ) |
60 |
14
|
adantr |
|- ( ( ph /\ F e. ( X E Y ) ) -> Y e. ( Base ` C ) ) |
61 |
6 12
|
eleqtrd |
|- ( ph -> 2o e. ( Base ` C ) ) |
62 |
61
|
adantr |
|- ( ( ph /\ F e. ( X E Y ) ) -> 2o e. ( Base ` C ) ) |
63 |
|
simpr |
|- ( ( ph /\ F e. ( X E Y ) ) -> F e. ( X E Y ) ) |
64 |
1 37 8 39 40
|
elsetchom |
|- ( ( ph /\ F e. ( X E Y ) ) -> ( ( a e. Y |-> if ( a e. ran F , 1o , (/) ) ) e. ( Y ( Hom ` C ) 2o ) <-> ( a e. Y |-> if ( a e. ran F , 1o , (/) ) ) : Y --> 2o ) ) |
65 |
52 64
|
mpbird |
|- ( ( ph /\ F e. ( X E Y ) ) -> ( a e. Y |-> if ( a e. ran F , 1o , (/) ) ) e. ( Y ( Hom ` C ) 2o ) ) |
66 |
1 37 8 39 40
|
elsetchom |
|- ( ( ph /\ F e. ( X E Y ) ) -> ( ( Y X. { 1o } ) e. ( Y ( Hom ` C ) 2o ) <-> ( Y X. { 1o } ) : Y --> 2o ) ) |
67 |
55 66
|
mpbird |
|- ( ( ph /\ F e. ( X E Y ) ) -> ( Y X. { 1o } ) e. ( Y ( Hom ` C ) 2o ) ) |
68 |
7 8 9 5 58 59 60 62 63 65 67
|
epii |
|- ( ( ph /\ F e. ( X E Y ) ) -> ( ( ( a e. Y |-> if ( a e. ran F , 1o , (/) ) ) ( <. X , Y >. ( comp ` C ) 2o ) F ) = ( ( Y X. { 1o } ) ( <. X , Y >. ( comp ` C ) 2o ) F ) <-> ( a e. Y |-> if ( a e. ran F , 1o , (/) ) ) = ( Y X. { 1o } ) ) ) |
69 |
57 68
|
mpbid |
|- ( ( ph /\ F e. ( X E Y ) ) -> ( a e. Y |-> if ( a e. ran F , 1o , (/) ) ) = ( Y X. { 1o } ) ) |
70 |
69 32
|
eqtrdi |
|- ( ( ph /\ F e. ( X E Y ) ) -> ( a e. Y |-> if ( a e. ran F , 1o , (/) ) ) = ( a e. Y |-> 1o ) ) |
71 |
49
|
rgenw |
|- A. a e. Y if ( a e. ran F , 1o , (/) ) e. 2o |
72 |
|
mpteqb |
|- ( A. a e. Y if ( a e. ran F , 1o , (/) ) e. 2o -> ( ( a e. Y |-> if ( a e. ran F , 1o , (/) ) ) = ( a e. Y |-> 1o ) <-> A. a e. Y if ( a e. ran F , 1o , (/) ) = 1o ) ) |
73 |
71 72
|
ax-mp |
|- ( ( a e. Y |-> if ( a e. ran F , 1o , (/) ) ) = ( a e. Y |-> 1o ) <-> A. a e. Y if ( a e. ran F , 1o , (/) ) = 1o ) |
74 |
70 73
|
sylib |
|- ( ( ph /\ F e. ( X E Y ) ) -> A. a e. Y if ( a e. ran F , 1o , (/) ) = 1o ) |
75 |
|
1n0 |
|- 1o =/= (/) |
76 |
75
|
nesymi |
|- -. (/) = 1o |
77 |
|
iffalse |
|- ( -. a e. ran F -> if ( a e. ran F , 1o , (/) ) = (/) ) |
78 |
77
|
eqeq1d |
|- ( -. a e. ran F -> ( if ( a e. ran F , 1o , (/) ) = 1o <-> (/) = 1o ) ) |
79 |
76 78
|
mtbiri |
|- ( -. a e. ran F -> -. if ( a e. ran F , 1o , (/) ) = 1o ) |
80 |
79
|
con4i |
|- ( if ( a e. ran F , 1o , (/) ) = 1o -> a e. ran F ) |
81 |
80
|
ralimi |
|- ( A. a e. Y if ( a e. ran F , 1o , (/) ) = 1o -> A. a e. Y a e. ran F ) |
82 |
74 81
|
syl |
|- ( ( ph /\ F e. ( X E Y ) ) -> A. a e. Y a e. ran F ) |
83 |
|
dfss3 |
|- ( Y C_ ran F <-> A. a e. Y a e. ran F ) |
84 |
82 83
|
sylibr |
|- ( ( ph /\ F e. ( X E Y ) ) -> Y C_ ran F ) |
85 |
20 84
|
eqssd |
|- ( ( ph /\ F e. ( X E Y ) ) -> ran F = Y ) |
86 |
|
dffo2 |
|- ( F : X -onto-> Y <-> ( F : X --> Y /\ ran F = Y ) ) |
87 |
19 85 86
|
sylanbrc |
|- ( ( ph /\ F e. ( X E Y ) ) -> F : X -onto-> Y ) |
88 |
|
fof |
|- ( F : X -onto-> Y -> F : X --> Y ) |
89 |
88
|
adantl |
|- ( ( ph /\ F : X -onto-> Y ) -> F : X --> Y ) |
90 |
17
|
biimpar |
|- ( ( ph /\ F : X --> Y ) -> F e. ( X ( Hom ` C ) Y ) ) |
91 |
89 90
|
syldan |
|- ( ( ph /\ F : X -onto-> Y ) -> F e. ( X ( Hom ` C ) Y ) ) |
92 |
12
|
adantr |
|- ( ( ph /\ F : X -onto-> Y ) -> U = ( Base ` C ) ) |
93 |
92
|
eleq2d |
|- ( ( ph /\ F : X -onto-> Y ) -> ( z e. U <-> z e. ( Base ` C ) ) ) |
94 |
2
|
ad2antrr |
|- ( ( ( ph /\ F : X -onto-> Y ) /\ ( z e. U /\ ( g e. ( Y ( Hom ` C ) z ) /\ h e. ( Y ( Hom ` C ) z ) ) ) ) -> U e. V ) |
95 |
3
|
ad2antrr |
|- ( ( ( ph /\ F : X -onto-> Y ) /\ ( z e. U /\ ( g e. ( Y ( Hom ` C ) z ) /\ h e. ( Y ( Hom ` C ) z ) ) ) ) -> X e. U ) |
96 |
4
|
ad2antrr |
|- ( ( ( ph /\ F : X -onto-> Y ) /\ ( z e. U /\ ( g e. ( Y ( Hom ` C ) z ) /\ h e. ( Y ( Hom ` C ) z ) ) ) ) -> Y e. U ) |
97 |
|
simprl |
|- ( ( ( ph /\ F : X -onto-> Y ) /\ ( z e. U /\ ( g e. ( Y ( Hom ` C ) z ) /\ h e. ( Y ( Hom ` C ) z ) ) ) ) -> z e. U ) |
98 |
89
|
adantr |
|- ( ( ( ph /\ F : X -onto-> Y ) /\ ( z e. U /\ ( g e. ( Y ( Hom ` C ) z ) /\ h e. ( Y ( Hom ` C ) z ) ) ) ) -> F : X --> Y ) |
99 |
|
simprrl |
|- ( ( ( ph /\ F : X -onto-> Y ) /\ ( z e. U /\ ( g e. ( Y ( Hom ` C ) z ) /\ h e. ( Y ( Hom ` C ) z ) ) ) ) -> g e. ( Y ( Hom ` C ) z ) ) |
100 |
1 94 8 96 97
|
elsetchom |
|- ( ( ( ph /\ F : X -onto-> Y ) /\ ( z e. U /\ ( g e. ( Y ( Hom ` C ) z ) /\ h e. ( Y ( Hom ` C ) z ) ) ) ) -> ( g e. ( Y ( Hom ` C ) z ) <-> g : Y --> z ) ) |
101 |
99 100
|
mpbid |
|- ( ( ( ph /\ F : X -onto-> Y ) /\ ( z e. U /\ ( g e. ( Y ( Hom ` C ) z ) /\ h e. ( Y ( Hom ` C ) z ) ) ) ) -> g : Y --> z ) |
102 |
1 94 9 95 96 97 98 101
|
setcco |
|- ( ( ( ph /\ F : X -onto-> Y ) /\ ( z e. U /\ ( g e. ( Y ( Hom ` C ) z ) /\ h e. ( Y ( Hom ` C ) z ) ) ) ) -> ( g ( <. X , Y >. ( comp ` C ) z ) F ) = ( g o. F ) ) |
103 |
|
simprrr |
|- ( ( ( ph /\ F : X -onto-> Y ) /\ ( z e. U /\ ( g e. ( Y ( Hom ` C ) z ) /\ h e. ( Y ( Hom ` C ) z ) ) ) ) -> h e. ( Y ( Hom ` C ) z ) ) |
104 |
1 94 8 96 97
|
elsetchom |
|- ( ( ( ph /\ F : X -onto-> Y ) /\ ( z e. U /\ ( g e. ( Y ( Hom ` C ) z ) /\ h e. ( Y ( Hom ` C ) z ) ) ) ) -> ( h e. ( Y ( Hom ` C ) z ) <-> h : Y --> z ) ) |
105 |
103 104
|
mpbid |
|- ( ( ( ph /\ F : X -onto-> Y ) /\ ( z e. U /\ ( g e. ( Y ( Hom ` C ) z ) /\ h e. ( Y ( Hom ` C ) z ) ) ) ) -> h : Y --> z ) |
106 |
1 94 9 95 96 97 98 105
|
setcco |
|- ( ( ( ph /\ F : X -onto-> Y ) /\ ( z e. U /\ ( g e. ( Y ( Hom ` C ) z ) /\ h e. ( Y ( Hom ` C ) z ) ) ) ) -> ( h ( <. X , Y >. ( comp ` C ) z ) F ) = ( h o. F ) ) |
107 |
102 106
|
eqeq12d |
|- ( ( ( ph /\ F : X -onto-> Y ) /\ ( z e. U /\ ( g e. ( Y ( Hom ` C ) z ) /\ h e. ( Y ( Hom ` C ) z ) ) ) ) -> ( ( g ( <. X , Y >. ( comp ` C ) z ) F ) = ( h ( <. X , Y >. ( comp ` C ) z ) F ) <-> ( g o. F ) = ( h o. F ) ) ) |
108 |
|
simplr |
|- ( ( ( ph /\ F : X -onto-> Y ) /\ ( z e. U /\ ( g e. ( Y ( Hom ` C ) z ) /\ h e. ( Y ( Hom ` C ) z ) ) ) ) -> F : X -onto-> Y ) |
109 |
101
|
ffnd |
|- ( ( ( ph /\ F : X -onto-> Y ) /\ ( z e. U /\ ( g e. ( Y ( Hom ` C ) z ) /\ h e. ( Y ( Hom ` C ) z ) ) ) ) -> g Fn Y ) |
110 |
105
|
ffnd |
|- ( ( ( ph /\ F : X -onto-> Y ) /\ ( z e. U /\ ( g e. ( Y ( Hom ` C ) z ) /\ h e. ( Y ( Hom ` C ) z ) ) ) ) -> h Fn Y ) |
111 |
|
cocan2 |
|- ( ( F : X -onto-> Y /\ g Fn Y /\ h Fn Y ) -> ( ( g o. F ) = ( h o. F ) <-> g = h ) ) |
112 |
108 109 110 111
|
syl3anc |
|- ( ( ( ph /\ F : X -onto-> Y ) /\ ( z e. U /\ ( g e. ( Y ( Hom ` C ) z ) /\ h e. ( Y ( Hom ` C ) z ) ) ) ) -> ( ( g o. F ) = ( h o. F ) <-> g = h ) ) |
113 |
112
|
biimpd |
|- ( ( ( ph /\ F : X -onto-> Y ) /\ ( z e. U /\ ( g e. ( Y ( Hom ` C ) z ) /\ h e. ( Y ( Hom ` C ) z ) ) ) ) -> ( ( g o. F ) = ( h o. F ) -> g = h ) ) |
114 |
107 113
|
sylbid |
|- ( ( ( ph /\ F : X -onto-> Y ) /\ ( z e. U /\ ( g e. ( Y ( Hom ` C ) z ) /\ h e. ( Y ( Hom ` C ) z ) ) ) ) -> ( ( g ( <. X , Y >. ( comp ` C ) z ) F ) = ( h ( <. X , Y >. ( comp ` C ) z ) F ) -> g = h ) ) |
115 |
114
|
anassrs |
|- ( ( ( ( ph /\ F : X -onto-> Y ) /\ z e. U ) /\ ( g e. ( Y ( Hom ` C ) z ) /\ h e. ( Y ( Hom ` C ) z ) ) ) -> ( ( g ( <. X , Y >. ( comp ` C ) z ) F ) = ( h ( <. X , Y >. ( comp ` C ) z ) F ) -> g = h ) ) |
116 |
115
|
ralrimivva |
|- ( ( ( ph /\ F : X -onto-> Y ) /\ z e. U ) -> A. g e. ( Y ( Hom ` C ) z ) A. h e. ( Y ( Hom ` C ) z ) ( ( g ( <. X , Y >. ( comp ` C ) z ) F ) = ( h ( <. X , Y >. ( comp ` C ) z ) F ) -> g = h ) ) |
117 |
116
|
ex |
|- ( ( ph /\ F : X -onto-> Y ) -> ( z e. U -> A. g e. ( Y ( Hom ` C ) z ) A. h e. ( Y ( Hom ` C ) z ) ( ( g ( <. X , Y >. ( comp ` C ) z ) F ) = ( h ( <. X , Y >. ( comp ` C ) z ) F ) -> g = h ) ) ) |
118 |
93 117
|
sylbird |
|- ( ( ph /\ F : X -onto-> Y ) -> ( z e. ( Base ` C ) -> A. g e. ( Y ( Hom ` C ) z ) A. h e. ( Y ( Hom ` C ) z ) ( ( g ( <. X , Y >. ( comp ` C ) z ) F ) = ( h ( <. X , Y >. ( comp ` C ) z ) F ) -> g = h ) ) ) |
119 |
118
|
ralrimiv |
|- ( ( ph /\ F : X -onto-> Y ) -> A. z e. ( Base ` C ) A. g e. ( Y ( Hom ` C ) z ) A. h e. ( Y ( Hom ` C ) z ) ( ( g ( <. X , Y >. ( comp ` C ) z ) F ) = ( h ( <. X , Y >. ( comp ` C ) z ) F ) -> g = h ) ) |
120 |
7 8 9 5 11 13 14
|
isepi2 |
|- ( ph -> ( F e. ( X E Y ) <-> ( F e. ( X ( Hom ` C ) Y ) /\ A. z e. ( Base ` C ) A. g e. ( Y ( Hom ` C ) z ) A. h e. ( Y ( Hom ` C ) z ) ( ( g ( <. X , Y >. ( comp ` C ) z ) F ) = ( h ( <. X , Y >. ( comp ` C ) z ) F ) -> g = h ) ) ) ) |
121 |
120
|
adantr |
|- ( ( ph /\ F : X -onto-> Y ) -> ( F e. ( X E Y ) <-> ( F e. ( X ( Hom ` C ) Y ) /\ A. z e. ( Base ` C ) A. g e. ( Y ( Hom ` C ) z ) A. h e. ( Y ( Hom ` C ) z ) ( ( g ( <. X , Y >. ( comp ` C ) z ) F ) = ( h ( <. X , Y >. ( comp ` C ) z ) F ) -> g = h ) ) ) ) |
122 |
91 119 121
|
mpbir2and |
|- ( ( ph /\ F : X -onto-> Y ) -> F e. ( X E Y ) ) |
123 |
87 122
|
impbida |
|- ( ph -> ( F e. ( X E Y ) <-> F : X -onto-> Y ) ) |