| Step | 
						Hyp | 
						Ref | 
						Expression | 
					
						
							| 1 | 
							
								
							 | 
							cofull.f | 
							 |-  ( ph -> F e. ( C Full D ) )  | 
						
						
							| 2 | 
							
								
							 | 
							cofull.g | 
							 |-  ( ph -> G e. ( D Full E ) )  | 
						
						
							| 3 | 
							
								
							 | 
							relfunc | 
							 |-  Rel ( C Func E )  | 
						
						
							| 4 | 
							
								
							 | 
							fullfunc | 
							 |-  ( C Full D ) C_ ( C Func D )  | 
						
						
							| 5 | 
							
								4 1
							 | 
							sselid | 
							 |-  ( ph -> F e. ( C Func D ) )  | 
						
						
							| 6 | 
							
								
							 | 
							fullfunc | 
							 |-  ( D Full E ) C_ ( D Func E )  | 
						
						
							| 7 | 
							
								6 2
							 | 
							sselid | 
							 |-  ( ph -> G e. ( D Func E ) )  | 
						
						
							| 8 | 
							
								5 7
							 | 
							cofucl | 
							 |-  ( ph -> ( G o.func F ) e. ( C Func E ) )  | 
						
						
							| 9 | 
							
								
							 | 
							1st2nd | 
							 |-  ( ( Rel ( C Func E ) /\ ( G o.func F ) e. ( C Func E ) ) -> ( G o.func F ) = <. ( 1st ` ( G o.func F ) ) , ( 2nd ` ( G o.func F ) ) >. )  | 
						
						
							| 10 | 
							
								3 8 9
							 | 
							sylancr | 
							 |-  ( ph -> ( G o.func F ) = <. ( 1st ` ( G o.func F ) ) , ( 2nd ` ( G o.func F ) ) >. )  | 
						
						
							| 11 | 
							
								
							 | 
							1st2ndbr | 
							 |-  ( ( Rel ( C Func E ) /\ ( G o.func F ) e. ( C Func E ) ) -> ( 1st ` ( G o.func F ) ) ( C Func E ) ( 2nd ` ( G o.func F ) ) )  | 
						
						
							| 12 | 
							
								3 8 11
							 | 
							sylancr | 
							 |-  ( ph -> ( 1st ` ( G o.func F ) ) ( C Func E ) ( 2nd ` ( G o.func F ) ) )  | 
						
						
							| 13 | 
							
								
							 | 
							eqid | 
							 |-  ( Base ` D ) = ( Base ` D )  | 
						
						
							| 14 | 
							
								
							 | 
							eqid | 
							 |-  ( Hom ` E ) = ( Hom ` E )  | 
						
						
							| 15 | 
							
								
							 | 
							eqid | 
							 |-  ( Hom ` D ) = ( Hom ` D )  | 
						
						
							| 16 | 
							
								
							 | 
							relfull | 
							 |-  Rel ( D Full E )  | 
						
						
							| 17 | 
							
								2
							 | 
							adantr | 
							 |-  ( ( ph /\ ( x e. ( Base ` C ) /\ y e. ( Base ` C ) ) ) -> G e. ( D Full E ) )  | 
						
						
							| 18 | 
							
								
							 | 
							1st2ndbr | 
							 |-  ( ( Rel ( D Full E ) /\ G e. ( D Full E ) ) -> ( 1st ` G ) ( D Full E ) ( 2nd ` G ) )  | 
						
						
							| 19 | 
							
								16 17 18
							 | 
							sylancr | 
							 |-  ( ( ph /\ ( x e. ( Base ` C ) /\ y e. ( Base ` C ) ) ) -> ( 1st ` G ) ( D Full E ) ( 2nd ` G ) )  | 
						
						
							| 20 | 
							
								
							 | 
							eqid | 
							 |-  ( Base ` C ) = ( Base ` C )  | 
						
						
							| 21 | 
							
								
							 | 
							relfunc | 
							 |-  Rel ( C Func D )  | 
						
						
							| 22 | 
							
								5
							 | 
							adantr | 
							 |-  ( ( ph /\ ( x e. ( Base ` C ) /\ y e. ( Base ` C ) ) ) -> F e. ( C Func D ) )  | 
						
						
							| 23 | 
							
								
							 | 
							1st2ndbr | 
							 |-  ( ( Rel ( C Func D ) /\ F e. ( C Func D ) ) -> ( 1st ` F ) ( C Func D ) ( 2nd ` F ) )  | 
						
						
							| 24 | 
							
								21 22 23
							 | 
							sylancr | 
							 |-  ( ( ph /\ ( x e. ( Base ` C ) /\ y e. ( Base ` C ) ) ) -> ( 1st ` F ) ( C Func D ) ( 2nd ` F ) )  | 
						
						
							| 25 | 
							
								20 13 24
							 | 
							funcf1 | 
							 |-  ( ( ph /\ ( x e. ( Base ` C ) /\ y e. ( Base ` C ) ) ) -> ( 1st ` F ) : ( Base ` C ) --> ( Base ` D ) )  | 
						
						
							| 26 | 
							
								
							 | 
							simprl | 
							 |-  ( ( ph /\ ( x e. ( Base ` C ) /\ y e. ( Base ` C ) ) ) -> x e. ( Base ` C ) )  | 
						
						
							| 27 | 
							
								25 26
							 | 
							ffvelcdmd | 
							 |-  ( ( ph /\ ( x e. ( Base ` C ) /\ y e. ( Base ` C ) ) ) -> ( ( 1st ` F ) ` x ) e. ( Base ` D ) )  | 
						
						
							| 28 | 
							
								
							 | 
							simprr | 
							 |-  ( ( ph /\ ( x e. ( Base ` C ) /\ y e. ( Base ` C ) ) ) -> y e. ( Base ` C ) )  | 
						
						
							| 29 | 
							
								25 28
							 | 
							ffvelcdmd | 
							 |-  ( ( ph /\ ( x e. ( Base ` C ) /\ y e. ( Base ` C ) ) ) -> ( ( 1st ` F ) ` y ) e. ( Base ` D ) )  | 
						
						
							| 30 | 
							
								13 14 15 19 27 29
							 | 
							fullfo | 
							 |-  ( ( ph /\ ( x e. ( Base ` C ) /\ y e. ( Base ` C ) ) ) -> ( ( ( 1st ` F ) ` x ) ( 2nd ` G ) ( ( 1st ` F ) ` y ) ) : ( ( ( 1st ` F ) ` x ) ( Hom ` D ) ( ( 1st ` F ) ` y ) ) -onto-> ( ( ( 1st ` G ) ` ( ( 1st ` F ) ` x ) ) ( Hom ` E ) ( ( 1st ` G ) ` ( ( 1st ` F ) ` y ) ) ) )  | 
						
						
							| 31 | 
							
								
							 | 
							eqid | 
							 |-  ( Hom ` C ) = ( Hom ` C )  | 
						
						
							| 32 | 
							
								
							 | 
							relfull | 
							 |-  Rel ( C Full D )  | 
						
						
							| 33 | 
							
								1
							 | 
							adantr | 
							 |-  ( ( ph /\ ( x e. ( Base ` C ) /\ y e. ( Base ` C ) ) ) -> F e. ( C Full D ) )  | 
						
						
							| 34 | 
							
								
							 | 
							1st2ndbr | 
							 |-  ( ( Rel ( C Full D ) /\ F e. ( C Full D ) ) -> ( 1st ` F ) ( C Full D ) ( 2nd ` F ) )  | 
						
						
							| 35 | 
							
								32 33 34
							 | 
							sylancr | 
							 |-  ( ( ph /\ ( x e. ( Base ` C ) /\ y e. ( Base ` C ) ) ) -> ( 1st ` F ) ( C Full D ) ( 2nd ` F ) )  | 
						
						
							| 36 | 
							
								20 15 31 35 26 28
							 | 
							fullfo | 
							 |-  ( ( ph /\ ( x e. ( Base ` C ) /\ y e. ( Base ` C ) ) ) -> ( x ( 2nd ` F ) y ) : ( x ( Hom ` C ) y ) -onto-> ( ( ( 1st ` F ) ` x ) ( Hom ` D ) ( ( 1st ` F ) ` y ) ) )  | 
						
						
							| 37 | 
							
								
							 | 
							foco | 
							 |-  ( ( ( ( ( 1st ` F ) ` x ) ( 2nd ` G ) ( ( 1st ` F ) ` y ) ) : ( ( ( 1st ` F ) ` x ) ( Hom ` D ) ( ( 1st ` F ) ` y ) ) -onto-> ( ( ( 1st ` G ) ` ( ( 1st ` F ) ` x ) ) ( Hom ` E ) ( ( 1st ` G ) ` ( ( 1st ` F ) ` y ) ) ) /\ ( x ( 2nd ` F ) y ) : ( x ( Hom ` C ) y ) -onto-> ( ( ( 1st ` F ) ` x ) ( Hom ` D ) ( ( 1st ` F ) ` y ) ) ) -> ( ( ( ( 1st ` F ) ` x ) ( 2nd ` G ) ( ( 1st ` F ) ` y ) ) o. ( x ( 2nd ` F ) y ) ) : ( x ( Hom ` C ) y ) -onto-> ( ( ( 1st ` G ) ` ( ( 1st ` F ) ` x ) ) ( Hom ` E ) ( ( 1st ` G ) ` ( ( 1st ` F ) ` y ) ) ) )  | 
						
						
							| 38 | 
							
								30 36 37
							 | 
							syl2anc | 
							 |-  ( ( ph /\ ( x e. ( Base ` C ) /\ y e. ( Base ` C ) ) ) -> ( ( ( ( 1st ` F ) ` x ) ( 2nd ` G ) ( ( 1st ` F ) ` y ) ) o. ( x ( 2nd ` F ) y ) ) : ( x ( Hom ` C ) y ) -onto-> ( ( ( 1st ` G ) ` ( ( 1st ` F ) ` x ) ) ( Hom ` E ) ( ( 1st ` G ) ` ( ( 1st ` F ) ` y ) ) ) )  | 
						
						
							| 39 | 
							
								7
							 | 
							adantr | 
							 |-  ( ( ph /\ ( x e. ( Base ` C ) /\ y e. ( Base ` C ) ) ) -> G e. ( D Func E ) )  | 
						
						
							| 40 | 
							
								20 22 39 26 28
							 | 
							cofu2nd | 
							 |-  ( ( ph /\ ( x e. ( Base ` C ) /\ y e. ( Base ` C ) ) ) -> ( x ( 2nd ` ( G o.func F ) ) y ) = ( ( ( ( 1st ` F ) ` x ) ( 2nd ` G ) ( ( 1st ` F ) ` y ) ) o. ( x ( 2nd ` F ) y ) ) )  | 
						
						
							| 41 | 
							
								
							 | 
							eqidd | 
							 |-  ( ( ph /\ ( x e. ( Base ` C ) /\ y e. ( Base ` C ) ) ) -> ( x ( Hom ` C ) y ) = ( x ( Hom ` C ) y ) )  | 
						
						
							| 42 | 
							
								20 22 39 26
							 | 
							cofu1 | 
							 |-  ( ( ph /\ ( x e. ( Base ` C ) /\ y e. ( Base ` C ) ) ) -> ( ( 1st ` ( G o.func F ) ) ` x ) = ( ( 1st ` G ) ` ( ( 1st ` F ) ` x ) ) )  | 
						
						
							| 43 | 
							
								20 22 39 28
							 | 
							cofu1 | 
							 |-  ( ( ph /\ ( x e. ( Base ` C ) /\ y e. ( Base ` C ) ) ) -> ( ( 1st ` ( G o.func F ) ) ` y ) = ( ( 1st ` G ) ` ( ( 1st ` F ) ` y ) ) )  | 
						
						
							| 44 | 
							
								42 43
							 | 
							oveq12d | 
							 |-  ( ( ph /\ ( x e. ( Base ` C ) /\ y e. ( Base ` C ) ) ) -> ( ( ( 1st ` ( G o.func F ) ) ` x ) ( Hom ` E ) ( ( 1st ` ( G o.func F ) ) ` y ) ) = ( ( ( 1st ` G ) ` ( ( 1st ` F ) ` x ) ) ( Hom ` E ) ( ( 1st ` G ) ` ( ( 1st ` F ) ` y ) ) ) )  | 
						
						
							| 45 | 
							
								40 41 44
							 | 
							foeq123d | 
							 |-  ( ( ph /\ ( x e. ( Base ` C ) /\ y e. ( Base ` C ) ) ) -> ( ( x ( 2nd ` ( G o.func F ) ) y ) : ( x ( Hom ` C ) y ) -onto-> ( ( ( 1st ` ( G o.func F ) ) ` x ) ( Hom ` E ) ( ( 1st ` ( G o.func F ) ) ` y ) ) <-> ( ( ( ( 1st ` F ) ` x ) ( 2nd ` G ) ( ( 1st ` F ) ` y ) ) o. ( x ( 2nd ` F ) y ) ) : ( x ( Hom ` C ) y ) -onto-> ( ( ( 1st ` G ) ` ( ( 1st ` F ) ` x ) ) ( Hom ` E ) ( ( 1st ` G ) ` ( ( 1st ` F ) ` y ) ) ) ) )  | 
						
						
							| 46 | 
							
								38 45
							 | 
							mpbird | 
							 |-  ( ( ph /\ ( x e. ( Base ` C ) /\ y e. ( Base ` C ) ) ) -> ( x ( 2nd ` ( G o.func F ) ) y ) : ( x ( Hom ` C ) y ) -onto-> ( ( ( 1st ` ( G o.func F ) ) ` x ) ( Hom ` E ) ( ( 1st ` ( G o.func F ) ) ` y ) ) )  | 
						
						
							| 47 | 
							
								46
							 | 
							ralrimivva | 
							 |-  ( ph -> A. x e. ( Base ` C ) A. y e. ( Base ` C ) ( x ( 2nd ` ( G o.func F ) ) y ) : ( x ( Hom ` C ) y ) -onto-> ( ( ( 1st ` ( G o.func F ) ) ` x ) ( Hom ` E ) ( ( 1st ` ( G o.func F ) ) ` y ) ) )  | 
						
						
							| 48 | 
							
								20 14 31
							 | 
							isfull2 | 
							 |-  ( ( 1st ` ( G o.func F ) ) ( C Full E ) ( 2nd ` ( G o.func F ) ) <-> ( ( 1st ` ( G o.func F ) ) ( C Func E ) ( 2nd ` ( G o.func F ) ) /\ A. x e. ( Base ` C ) A. y e. ( Base ` C ) ( x ( 2nd ` ( G o.func F ) ) y ) : ( x ( Hom ` C ) y ) -onto-> ( ( ( 1st ` ( G o.func F ) ) ` x ) ( Hom ` E ) ( ( 1st ` ( G o.func F ) ) ` y ) ) ) )  | 
						
						
							| 49 | 
							
								12 47 48
							 | 
							sylanbrc | 
							 |-  ( ph -> ( 1st ` ( G o.func F ) ) ( C Full E ) ( 2nd ` ( G o.func F ) ) )  | 
						
						
							| 50 | 
							
								
							 | 
							df-br | 
							 |-  ( ( 1st ` ( G o.func F ) ) ( C Full E ) ( 2nd ` ( G o.func F ) ) <-> <. ( 1st ` ( G o.func F ) ) , ( 2nd ` ( G o.func F ) ) >. e. ( C Full E ) )  | 
						
						
							| 51 | 
							
								49 50
							 | 
							sylib | 
							 |-  ( ph -> <. ( 1st ` ( G o.func F ) ) , ( 2nd ` ( G o.func F ) ) >. e. ( C Full E ) )  | 
						
						
							| 52 | 
							
								10 51
							 | 
							eqeltrd | 
							 |-  ( ph -> ( G o.func F ) e. ( C Full E ) )  |