| Step | Hyp | Ref | Expression | 
|---|
| 1 |  | cofurid.1 | . . . . . 6
⊢ 𝐼 =
(idfunc‘𝐶) | 
| 2 |  | eqid 2736 | . . . . . 6
⊢
(Base‘𝐶) =
(Base‘𝐶) | 
| 3 |  | cofulid.g | . . . . . . . 8
⊢ (𝜑 → 𝐹 ∈ (𝐶 Func 𝐷)) | 
| 4 |  | funcrcl 17909 | . . . . . . . 8
⊢ (𝐹 ∈ (𝐶 Func 𝐷) → (𝐶 ∈ Cat ∧ 𝐷 ∈ Cat)) | 
| 5 | 3, 4 | syl 17 | . . . . . . 7
⊢ (𝜑 → (𝐶 ∈ Cat ∧ 𝐷 ∈ Cat)) | 
| 6 | 5 | simpld 494 | . . . . . 6
⊢ (𝜑 → 𝐶 ∈ Cat) | 
| 7 | 1, 2, 6 | idfu1st 17925 | . . . . 5
⊢ (𝜑 → (1st
‘𝐼) = ( I ↾
(Base‘𝐶))) | 
| 8 | 7 | coeq2d 5872 | . . . 4
⊢ (𝜑 → ((1st
‘𝐹) ∘
(1st ‘𝐼))
= ((1st ‘𝐹) ∘ ( I ↾ (Base‘𝐶)))) | 
| 9 |  | eqid 2736 | . . . . . 6
⊢
(Base‘𝐷) =
(Base‘𝐷) | 
| 10 |  | relfunc 17908 | . . . . . . 7
⊢ Rel
(𝐶 Func 𝐷) | 
| 11 |  | 1st2ndbr 8068 | . . . . . . 7
⊢ ((Rel
(𝐶 Func 𝐷) ∧ 𝐹 ∈ (𝐶 Func 𝐷)) → (1st ‘𝐹)(𝐶 Func 𝐷)(2nd ‘𝐹)) | 
| 12 | 10, 3, 11 | sylancr 587 | . . . . . 6
⊢ (𝜑 → (1st
‘𝐹)(𝐶 Func 𝐷)(2nd ‘𝐹)) | 
| 13 | 2, 9, 12 | funcf1 17912 | . . . . 5
⊢ (𝜑 → (1st
‘𝐹):(Base‘𝐶)⟶(Base‘𝐷)) | 
| 14 |  | fcoi1 6781 | . . . . 5
⊢
((1st ‘𝐹):(Base‘𝐶)⟶(Base‘𝐷) → ((1st ‘𝐹) ∘ ( I ↾
(Base‘𝐶))) =
(1st ‘𝐹)) | 
| 15 | 13, 14 | syl 17 | . . . 4
⊢ (𝜑 → ((1st
‘𝐹) ∘ ( I
↾ (Base‘𝐶))) =
(1st ‘𝐹)) | 
| 16 | 8, 15 | eqtrd 2776 | . . 3
⊢ (𝜑 → ((1st
‘𝐹) ∘
(1st ‘𝐼))
= (1st ‘𝐹)) | 
| 17 | 7 | 3ad2ant1 1133 | . . . . . . . . . 10
⊢ ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (1st ‘𝐼) = ( I ↾
(Base‘𝐶))) | 
| 18 | 17 | fveq1d 6907 | . . . . . . . . 9
⊢ ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((1st ‘𝐼)‘𝑥) = (( I ↾ (Base‘𝐶))‘𝑥)) | 
| 19 |  | fvresi 7194 | . . . . . . . . . 10
⊢ (𝑥 ∈ (Base‘𝐶) → (( I ↾
(Base‘𝐶))‘𝑥) = 𝑥) | 
| 20 | 19 | 3ad2ant2 1134 | . . . . . . . . 9
⊢ ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (( I ↾ (Base‘𝐶))‘𝑥) = 𝑥) | 
| 21 | 18, 20 | eqtrd 2776 | . . . . . . . 8
⊢ ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((1st ‘𝐼)‘𝑥) = 𝑥) | 
| 22 | 17 | fveq1d 6907 | . . . . . . . . 9
⊢ ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((1st ‘𝐼)‘𝑦) = (( I ↾ (Base‘𝐶))‘𝑦)) | 
| 23 |  | fvresi 7194 | . . . . . . . . . 10
⊢ (𝑦 ∈ (Base‘𝐶) → (( I ↾
(Base‘𝐶))‘𝑦) = 𝑦) | 
| 24 | 23 | 3ad2ant3 1135 | . . . . . . . . 9
⊢ ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (( I ↾ (Base‘𝐶))‘𝑦) = 𝑦) | 
| 25 | 22, 24 | eqtrd 2776 | . . . . . . . 8
⊢ ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((1st ‘𝐼)‘𝑦) = 𝑦) | 
| 26 | 21, 25 | oveq12d 7450 | . . . . . . 7
⊢ ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (((1st ‘𝐼)‘𝑥)(2nd ‘𝐹)((1st ‘𝐼)‘𝑦)) = (𝑥(2nd ‘𝐹)𝑦)) | 
| 27 | 6 | 3ad2ant1 1133 | . . . . . . . 8
⊢ ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → 𝐶 ∈ Cat) | 
| 28 |  | eqid 2736 | . . . . . . . 8
⊢ (Hom
‘𝐶) = (Hom
‘𝐶) | 
| 29 |  | simp2 1137 | . . . . . . . 8
⊢ ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → 𝑥 ∈ (Base‘𝐶)) | 
| 30 |  | simp3 1138 | . . . . . . . 8
⊢ ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → 𝑦 ∈ (Base‘𝐶)) | 
| 31 | 1, 2, 27, 28, 29, 30 | idfu2nd 17923 | . . . . . . 7
⊢ ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (𝑥(2nd ‘𝐼)𝑦) = ( I ↾ (𝑥(Hom ‘𝐶)𝑦))) | 
| 32 | 26, 31 | coeq12d 5874 | . . . . . 6
⊢ ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((((1st ‘𝐼)‘𝑥)(2nd ‘𝐹)((1st ‘𝐼)‘𝑦)) ∘ (𝑥(2nd ‘𝐼)𝑦)) = ((𝑥(2nd ‘𝐹)𝑦) ∘ ( I ↾ (𝑥(Hom ‘𝐶)𝑦)))) | 
| 33 |  | eqid 2736 | . . . . . . . 8
⊢ (Hom
‘𝐷) = (Hom
‘𝐷) | 
| 34 | 12 | 3ad2ant1 1133 | . . . . . . . 8
⊢ ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (1st ‘𝐹)(𝐶 Func 𝐷)(2nd ‘𝐹)) | 
| 35 | 2, 28, 33, 34, 29, 30 | funcf2 17914 | . . . . . . 7
⊢ ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (𝑥(2nd ‘𝐹)𝑦):(𝑥(Hom ‘𝐶)𝑦)⟶(((1st ‘𝐹)‘𝑥)(Hom ‘𝐷)((1st ‘𝐹)‘𝑦))) | 
| 36 |  | fcoi1 6781 | . . . . . . 7
⊢ ((𝑥(2nd ‘𝐹)𝑦):(𝑥(Hom ‘𝐶)𝑦)⟶(((1st ‘𝐹)‘𝑥)(Hom ‘𝐷)((1st ‘𝐹)‘𝑦)) → ((𝑥(2nd ‘𝐹)𝑦) ∘ ( I ↾ (𝑥(Hom ‘𝐶)𝑦))) = (𝑥(2nd ‘𝐹)𝑦)) | 
| 37 | 35, 36 | syl 17 | . . . . . 6
⊢ ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((𝑥(2nd ‘𝐹)𝑦) ∘ ( I ↾ (𝑥(Hom ‘𝐶)𝑦))) = (𝑥(2nd ‘𝐹)𝑦)) | 
| 38 | 32, 37 | eqtrd 2776 | . . . . 5
⊢ ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((((1st ‘𝐼)‘𝑥)(2nd ‘𝐹)((1st ‘𝐼)‘𝑦)) ∘ (𝑥(2nd ‘𝐼)𝑦)) = (𝑥(2nd ‘𝐹)𝑦)) | 
| 39 | 38 | mpoeq3dva 7511 | . . . 4
⊢ (𝜑 → (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ ((((1st ‘𝐼)‘𝑥)(2nd ‘𝐹)((1st ‘𝐼)‘𝑦)) ∘ (𝑥(2nd ‘𝐼)𝑦))) = (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ (𝑥(2nd ‘𝐹)𝑦))) | 
| 40 | 2, 12 | funcfn2 17915 | . . . . 5
⊢ (𝜑 → (2nd
‘𝐹) Fn
((Base‘𝐶) ×
(Base‘𝐶))) | 
| 41 |  | fnov 7565 | . . . . 5
⊢
((2nd ‘𝐹) Fn ((Base‘𝐶) × (Base‘𝐶)) ↔ (2nd ‘𝐹) = (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ (𝑥(2nd ‘𝐹)𝑦))) | 
| 42 | 40, 41 | sylib 218 | . . . 4
⊢ (𝜑 → (2nd
‘𝐹) = (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ (𝑥(2nd ‘𝐹)𝑦))) | 
| 43 | 39, 42 | eqtr4d 2779 | . . 3
⊢ (𝜑 → (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ ((((1st ‘𝐼)‘𝑥)(2nd ‘𝐹)((1st ‘𝐼)‘𝑦)) ∘ (𝑥(2nd ‘𝐼)𝑦))) = (2nd ‘𝐹)) | 
| 44 | 16, 43 | opeq12d 4880 | . 2
⊢ (𝜑 → 〈((1st
‘𝐹) ∘
(1st ‘𝐼)),
(𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ ((((1st ‘𝐼)‘𝑥)(2nd ‘𝐹)((1st ‘𝐼)‘𝑦)) ∘ (𝑥(2nd ‘𝐼)𝑦)))〉 = 〈(1st
‘𝐹), (2nd
‘𝐹)〉) | 
| 45 | 1 | idfucl 17927 | . . . 4
⊢ (𝐶 ∈ Cat → 𝐼 ∈ (𝐶 Func 𝐶)) | 
| 46 | 6, 45 | syl 17 | . . 3
⊢ (𝜑 → 𝐼 ∈ (𝐶 Func 𝐶)) | 
| 47 | 2, 46, 3 | cofuval 17928 | . 2
⊢ (𝜑 → (𝐹 ∘func 𝐼) = 〈((1st
‘𝐹) ∘
(1st ‘𝐼)),
(𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ ((((1st ‘𝐼)‘𝑥)(2nd ‘𝐹)((1st ‘𝐼)‘𝑦)) ∘ (𝑥(2nd ‘𝐼)𝑦)))〉) | 
| 48 |  | 1st2nd 8065 | . . 3
⊢ ((Rel
(𝐶 Func 𝐷) ∧ 𝐹 ∈ (𝐶 Func 𝐷)) → 𝐹 = 〈(1st ‘𝐹), (2nd ‘𝐹)〉) | 
| 49 | 10, 3, 48 | sylancr 587 | . 2
⊢ (𝜑 → 𝐹 = 〈(1st ‘𝐹), (2nd ‘𝐹)〉) | 
| 50 | 44, 47, 49 | 3eqtr4d 2786 | 1
⊢ (𝜑 → (𝐹 ∘func 𝐼) = 𝐹) |