Metamath Proof Explorer


Theorem hashfacenOLD

Description: Obsolete version of hashfacen as of 7-Aug-2024. (Contributed by Mario Carneiro, 21-Jan-2015) (Proof modification is discouraged.) (New usage is discouraged.)

Ref Expression
Assertion hashfacenOLD ( ( 𝐴𝐵𝐶𝐷 ) → { 𝑓𝑓 : 𝐴1-1-onto𝐶 } ≈ { 𝑓𝑓 : 𝐵1-1-onto𝐷 } )

Proof

Step Hyp Ref Expression
1 bren ( 𝐴𝐵 ↔ ∃ 𝑔 𝑔 : 𝐴1-1-onto𝐵 )
2 bren ( 𝐶𝐷 ↔ ∃ : 𝐶1-1-onto𝐷 )
3 exdistrv ( ∃ 𝑔 ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ↔ ( ∃ 𝑔 𝑔 : 𝐴1-1-onto𝐵 ∧ ∃ : 𝐶1-1-onto𝐷 ) )
4 f1of ( 𝑓 : 𝐴1-1-onto𝐶𝑓 : 𝐴𝐶 )
5 f1odm ( : 𝐶1-1-onto𝐷 → dom = 𝐶 )
6 vex ∈ V
7 6 dmex dom ∈ V
8 5 7 eqeltrrdi ( : 𝐶1-1-onto𝐷𝐶 ∈ V )
9 f1odm ( 𝑔 : 𝐴1-1-onto𝐵 → dom 𝑔 = 𝐴 )
10 vex 𝑔 ∈ V
11 10 dmex dom 𝑔 ∈ V
12 9 11 eqeltrrdi ( 𝑔 : 𝐴1-1-onto𝐵𝐴 ∈ V )
13 elmapg ( ( 𝐶 ∈ V ∧ 𝐴 ∈ V ) → ( 𝑓 ∈ ( 𝐶m 𝐴 ) ↔ 𝑓 : 𝐴𝐶 ) )
14 8 12 13 syl2anr ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) → ( 𝑓 ∈ ( 𝐶m 𝐴 ) ↔ 𝑓 : 𝐴𝐶 ) )
15 4 14 syl5ibr ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) → ( 𝑓 : 𝐴1-1-onto𝐶𝑓 ∈ ( 𝐶m 𝐴 ) ) )
16 15 abssdv ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) → { 𝑓𝑓 : 𝐴1-1-onto𝐶 } ⊆ ( 𝐶m 𝐴 ) )
17 ovex ( 𝐶m 𝐴 ) ∈ V
18 17 ssex ( { 𝑓𝑓 : 𝐴1-1-onto𝐶 } ⊆ ( 𝐶m 𝐴 ) → { 𝑓𝑓 : 𝐴1-1-onto𝐶 } ∈ V )
19 16 18 syl ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) → { 𝑓𝑓 : 𝐴1-1-onto𝐶 } ∈ V )
20 f1of ( 𝑓 : 𝐵1-1-onto𝐷𝑓 : 𝐵𝐷 )
21 f1ofo ( : 𝐶1-1-onto𝐷 : 𝐶onto𝐷 )
22 forn ( : 𝐶onto𝐷 → ran = 𝐷 )
23 21 22 syl ( : 𝐶1-1-onto𝐷 → ran = 𝐷 )
24 6 rnex ran ∈ V
25 23 24 eqeltrrdi ( : 𝐶1-1-onto𝐷𝐷 ∈ V )
26 f1ofo ( 𝑔 : 𝐴1-1-onto𝐵𝑔 : 𝐴onto𝐵 )
27 forn ( 𝑔 : 𝐴onto𝐵 → ran 𝑔 = 𝐵 )
28 26 27 syl ( 𝑔 : 𝐴1-1-onto𝐵 → ran 𝑔 = 𝐵 )
29 10 rnex ran 𝑔 ∈ V
30 28 29 eqeltrrdi ( 𝑔 : 𝐴1-1-onto𝐵𝐵 ∈ V )
31 elmapg ( ( 𝐷 ∈ V ∧ 𝐵 ∈ V ) → ( 𝑓 ∈ ( 𝐷m 𝐵 ) ↔ 𝑓 : 𝐵𝐷 ) )
32 25 30 31 syl2anr ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) → ( 𝑓 ∈ ( 𝐷m 𝐵 ) ↔ 𝑓 : 𝐵𝐷 ) )
33 20 32 syl5ibr ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) → ( 𝑓 : 𝐵1-1-onto𝐷𝑓 ∈ ( 𝐷m 𝐵 ) ) )
34 33 abssdv ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) → { 𝑓𝑓 : 𝐵1-1-onto𝐷 } ⊆ ( 𝐷m 𝐵 ) )
35 ovex ( 𝐷m 𝐵 ) ∈ V
36 35 ssex ( { 𝑓𝑓 : 𝐵1-1-onto𝐷 } ⊆ ( 𝐷m 𝐵 ) → { 𝑓𝑓 : 𝐵1-1-onto𝐷 } ∈ V )
37 34 36 syl ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) → { 𝑓𝑓 : 𝐵1-1-onto𝐷 } ∈ V )
38 f1oco ( ( : 𝐶1-1-onto𝐷𝑥 : 𝐴1-1-onto𝐶 ) → ( 𝑥 ) : 𝐴1-1-onto𝐷 )
39 38 adantll ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ 𝑥 : 𝐴1-1-onto𝐶 ) → ( 𝑥 ) : 𝐴1-1-onto𝐷 )
40 f1ocnv ( 𝑔 : 𝐴1-1-onto𝐵 𝑔 : 𝐵1-1-onto𝐴 )
41 40 ad2antrr ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ 𝑥 : 𝐴1-1-onto𝐶 ) → 𝑔 : 𝐵1-1-onto𝐴 )
42 f1oco ( ( ( 𝑥 ) : 𝐴1-1-onto𝐷 𝑔 : 𝐵1-1-onto𝐴 ) → ( ( 𝑥 ) ∘ 𝑔 ) : 𝐵1-1-onto𝐷 )
43 39 41 42 syl2anc ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ 𝑥 : 𝐴1-1-onto𝐶 ) → ( ( 𝑥 ) ∘ 𝑔 ) : 𝐵1-1-onto𝐷 )
44 43 ex ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) → ( 𝑥 : 𝐴1-1-onto𝐶 → ( ( 𝑥 ) ∘ 𝑔 ) : 𝐵1-1-onto𝐷 ) )
45 vex 𝑥 ∈ V
46 f1oeq1 ( 𝑓 = 𝑥 → ( 𝑓 : 𝐴1-1-onto𝐶𝑥 : 𝐴1-1-onto𝐶 ) )
47 45 46 elab ( 𝑥 ∈ { 𝑓𝑓 : 𝐴1-1-onto𝐶 } ↔ 𝑥 : 𝐴1-1-onto𝐶 )
48 6 45 coex ( 𝑥 ) ∈ V
49 10 cnvex 𝑔 ∈ V
50 48 49 coex ( ( 𝑥 ) ∘ 𝑔 ) ∈ V
51 f1oeq1 ( 𝑓 = ( ( 𝑥 ) ∘ 𝑔 ) → ( 𝑓 : 𝐵1-1-onto𝐷 ↔ ( ( 𝑥 ) ∘ 𝑔 ) : 𝐵1-1-onto𝐷 ) )
52 50 51 elab ( ( ( 𝑥 ) ∘ 𝑔 ) ∈ { 𝑓𝑓 : 𝐵1-1-onto𝐷 } ↔ ( ( 𝑥 ) ∘ 𝑔 ) : 𝐵1-1-onto𝐷 )
53 44 47 52 3imtr4g ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) → ( 𝑥 ∈ { 𝑓𝑓 : 𝐴1-1-onto𝐶 } → ( ( 𝑥 ) ∘ 𝑔 ) ∈ { 𝑓𝑓 : 𝐵1-1-onto𝐷 } ) )
54 f1ocnv ( : 𝐶1-1-onto𝐷 : 𝐷1-1-onto𝐶 )
55 54 ad2antlr ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ 𝑦 : 𝐵1-1-onto𝐷 ) → : 𝐷1-1-onto𝐶 )
56 f1oco ( ( 𝑦 : 𝐵1-1-onto𝐷𝑔 : 𝐴1-1-onto𝐵 ) → ( 𝑦𝑔 ) : 𝐴1-1-onto𝐷 )
57 56 ancoms ( ( 𝑔 : 𝐴1-1-onto𝐵𝑦 : 𝐵1-1-onto𝐷 ) → ( 𝑦𝑔 ) : 𝐴1-1-onto𝐷 )
58 57 adantlr ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ 𝑦 : 𝐵1-1-onto𝐷 ) → ( 𝑦𝑔 ) : 𝐴1-1-onto𝐷 )
59 f1oco ( ( : 𝐷1-1-onto𝐶 ∧ ( 𝑦𝑔 ) : 𝐴1-1-onto𝐷 ) → ( ∘ ( 𝑦𝑔 ) ) : 𝐴1-1-onto𝐶 )
60 55 58 59 syl2anc ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ 𝑦 : 𝐵1-1-onto𝐷 ) → ( ∘ ( 𝑦𝑔 ) ) : 𝐴1-1-onto𝐶 )
61 60 ex ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) → ( 𝑦 : 𝐵1-1-onto𝐷 → ( ∘ ( 𝑦𝑔 ) ) : 𝐴1-1-onto𝐶 ) )
62 vex 𝑦 ∈ V
63 f1oeq1 ( 𝑓 = 𝑦 → ( 𝑓 : 𝐵1-1-onto𝐷𝑦 : 𝐵1-1-onto𝐷 ) )
64 62 63 elab ( 𝑦 ∈ { 𝑓𝑓 : 𝐵1-1-onto𝐷 } ↔ 𝑦 : 𝐵1-1-onto𝐷 )
65 6 cnvex ∈ V
66 62 10 coex ( 𝑦𝑔 ) ∈ V
67 65 66 coex ( ∘ ( 𝑦𝑔 ) ) ∈ V
68 f1oeq1 ( 𝑓 = ( ∘ ( 𝑦𝑔 ) ) → ( 𝑓 : 𝐴1-1-onto𝐶 ↔ ( ∘ ( 𝑦𝑔 ) ) : 𝐴1-1-onto𝐶 ) )
69 67 68 elab ( ( ∘ ( 𝑦𝑔 ) ) ∈ { 𝑓𝑓 : 𝐴1-1-onto𝐶 } ↔ ( ∘ ( 𝑦𝑔 ) ) : 𝐴1-1-onto𝐶 )
70 61 64 69 3imtr4g ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) → ( 𝑦 ∈ { 𝑓𝑓 : 𝐵1-1-onto𝐷 } → ( ∘ ( 𝑦𝑔 ) ) ∈ { 𝑓𝑓 : 𝐴1-1-onto𝐶 } ) )
71 47 64 anbi12i ( ( 𝑥 ∈ { 𝑓𝑓 : 𝐴1-1-onto𝐶 } ∧ 𝑦 ∈ { 𝑓𝑓 : 𝐵1-1-onto𝐷 } ) ↔ ( 𝑥 : 𝐴1-1-onto𝐶𝑦 : 𝐵1-1-onto𝐷 ) )
72 coass ( ( ( 𝑥 ) ∘ 𝑔 ) ∘ 𝑔 ) = ( ( 𝑥 ) ∘ ( 𝑔𝑔 ) )
73 f1ococnv1 ( 𝑔 : 𝐴1-1-onto𝐵 → ( 𝑔𝑔 ) = ( I ↾ 𝐴 ) )
74 73 ad2antrr ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ ( 𝑥 : 𝐴1-1-onto𝐶𝑦 : 𝐵1-1-onto𝐷 ) ) → ( 𝑔𝑔 ) = ( I ↾ 𝐴 ) )
75 74 coeq2d ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ ( 𝑥 : 𝐴1-1-onto𝐶𝑦 : 𝐵1-1-onto𝐷 ) ) → ( ( 𝑥 ) ∘ ( 𝑔𝑔 ) ) = ( ( 𝑥 ) ∘ ( I ↾ 𝐴 ) ) )
76 39 adantrr ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ ( 𝑥 : 𝐴1-1-onto𝐶𝑦 : 𝐵1-1-onto𝐷 ) ) → ( 𝑥 ) : 𝐴1-1-onto𝐷 )
77 f1of ( ( 𝑥 ) : 𝐴1-1-onto𝐷 → ( 𝑥 ) : 𝐴𝐷 )
78 fcoi1 ( ( 𝑥 ) : 𝐴𝐷 → ( ( 𝑥 ) ∘ ( I ↾ 𝐴 ) ) = ( 𝑥 ) )
79 76 77 78 3syl ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ ( 𝑥 : 𝐴1-1-onto𝐶𝑦 : 𝐵1-1-onto𝐷 ) ) → ( ( 𝑥 ) ∘ ( I ↾ 𝐴 ) ) = ( 𝑥 ) )
80 75 79 eqtrd ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ ( 𝑥 : 𝐴1-1-onto𝐶𝑦 : 𝐵1-1-onto𝐷 ) ) → ( ( 𝑥 ) ∘ ( 𝑔𝑔 ) ) = ( 𝑥 ) )
81 72 80 eqtr2id ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ ( 𝑥 : 𝐴1-1-onto𝐶𝑦 : 𝐵1-1-onto𝐷 ) ) → ( 𝑥 ) = ( ( ( 𝑥 ) ∘ 𝑔 ) ∘ 𝑔 ) )
82 coass ( ( ) ∘ ( 𝑦𝑔 ) ) = ( ∘ ( ∘ ( 𝑦𝑔 ) ) )
83 f1ococnv2 ( : 𝐶1-1-onto𝐷 → ( ) = ( I ↾ 𝐷 ) )
84 83 ad2antlr ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ ( 𝑥 : 𝐴1-1-onto𝐶𝑦 : 𝐵1-1-onto𝐷 ) ) → ( ) = ( I ↾ 𝐷 ) )
85 84 coeq1d ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ ( 𝑥 : 𝐴1-1-onto𝐶𝑦 : 𝐵1-1-onto𝐷 ) ) → ( ( ) ∘ ( 𝑦𝑔 ) ) = ( ( I ↾ 𝐷 ) ∘ ( 𝑦𝑔 ) ) )
86 58 adantrl ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ ( 𝑥 : 𝐴1-1-onto𝐶𝑦 : 𝐵1-1-onto𝐷 ) ) → ( 𝑦𝑔 ) : 𝐴1-1-onto𝐷 )
87 f1of ( ( 𝑦𝑔 ) : 𝐴1-1-onto𝐷 → ( 𝑦𝑔 ) : 𝐴𝐷 )
88 fcoi2 ( ( 𝑦𝑔 ) : 𝐴𝐷 → ( ( I ↾ 𝐷 ) ∘ ( 𝑦𝑔 ) ) = ( 𝑦𝑔 ) )
89 86 87 88 3syl ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ ( 𝑥 : 𝐴1-1-onto𝐶𝑦 : 𝐵1-1-onto𝐷 ) ) → ( ( I ↾ 𝐷 ) ∘ ( 𝑦𝑔 ) ) = ( 𝑦𝑔 ) )
90 85 89 eqtrd ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ ( 𝑥 : 𝐴1-1-onto𝐶𝑦 : 𝐵1-1-onto𝐷 ) ) → ( ( ) ∘ ( 𝑦𝑔 ) ) = ( 𝑦𝑔 ) )
91 82 90 eqtr3id ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ ( 𝑥 : 𝐴1-1-onto𝐶𝑦 : 𝐵1-1-onto𝐷 ) ) → ( ∘ ( ∘ ( 𝑦𝑔 ) ) ) = ( 𝑦𝑔 ) )
92 81 91 eqeq12d ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ ( 𝑥 : 𝐴1-1-onto𝐶𝑦 : 𝐵1-1-onto𝐷 ) ) → ( ( 𝑥 ) = ( ∘ ( ∘ ( 𝑦𝑔 ) ) ) ↔ ( ( ( 𝑥 ) ∘ 𝑔 ) ∘ 𝑔 ) = ( 𝑦𝑔 ) ) )
93 eqcom ( ( ( ( 𝑥 ) ∘ 𝑔 ) ∘ 𝑔 ) = ( 𝑦𝑔 ) ↔ ( 𝑦𝑔 ) = ( ( ( 𝑥 ) ∘ 𝑔 ) ∘ 𝑔 ) )
94 92 93 bitrdi ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ ( 𝑥 : 𝐴1-1-onto𝐶𝑦 : 𝐵1-1-onto𝐷 ) ) → ( ( 𝑥 ) = ( ∘ ( ∘ ( 𝑦𝑔 ) ) ) ↔ ( 𝑦𝑔 ) = ( ( ( 𝑥 ) ∘ 𝑔 ) ∘ 𝑔 ) ) )
95 f1of1 ( : 𝐶1-1-onto𝐷 : 𝐶1-1𝐷 )
96 95 ad2antlr ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ ( 𝑥 : 𝐴1-1-onto𝐶𝑦 : 𝐵1-1-onto𝐷 ) ) → : 𝐶1-1𝐷 )
97 f1of ( 𝑥 : 𝐴1-1-onto𝐶𝑥 : 𝐴𝐶 )
98 97 ad2antrl ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ ( 𝑥 : 𝐴1-1-onto𝐶𝑦 : 𝐵1-1-onto𝐷 ) ) → 𝑥 : 𝐴𝐶 )
99 60 adantrl ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ ( 𝑥 : 𝐴1-1-onto𝐶𝑦 : 𝐵1-1-onto𝐷 ) ) → ( ∘ ( 𝑦𝑔 ) ) : 𝐴1-1-onto𝐶 )
100 f1of ( ( ∘ ( 𝑦𝑔 ) ) : 𝐴1-1-onto𝐶 → ( ∘ ( 𝑦𝑔 ) ) : 𝐴𝐶 )
101 99 100 syl ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ ( 𝑥 : 𝐴1-1-onto𝐶𝑦 : 𝐵1-1-onto𝐷 ) ) → ( ∘ ( 𝑦𝑔 ) ) : 𝐴𝐶 )
102 cocan1 ( ( : 𝐶1-1𝐷𝑥 : 𝐴𝐶 ∧ ( ∘ ( 𝑦𝑔 ) ) : 𝐴𝐶 ) → ( ( 𝑥 ) = ( ∘ ( ∘ ( 𝑦𝑔 ) ) ) ↔ 𝑥 = ( ∘ ( 𝑦𝑔 ) ) ) )
103 96 98 101 102 syl3anc ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ ( 𝑥 : 𝐴1-1-onto𝐶𝑦 : 𝐵1-1-onto𝐷 ) ) → ( ( 𝑥 ) = ( ∘ ( ∘ ( 𝑦𝑔 ) ) ) ↔ 𝑥 = ( ∘ ( 𝑦𝑔 ) ) ) )
104 26 ad2antrr ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ ( 𝑥 : 𝐴1-1-onto𝐶𝑦 : 𝐵1-1-onto𝐷 ) ) → 𝑔 : 𝐴onto𝐵 )
105 f1ofn ( 𝑦 : 𝐵1-1-onto𝐷𝑦 Fn 𝐵 )
106 105 ad2antll ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ ( 𝑥 : 𝐴1-1-onto𝐶𝑦 : 𝐵1-1-onto𝐷 ) ) → 𝑦 Fn 𝐵 )
107 43 adantrr ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ ( 𝑥 : 𝐴1-1-onto𝐶𝑦 : 𝐵1-1-onto𝐷 ) ) → ( ( 𝑥 ) ∘ 𝑔 ) : 𝐵1-1-onto𝐷 )
108 f1ofn ( ( ( 𝑥 ) ∘ 𝑔 ) : 𝐵1-1-onto𝐷 → ( ( 𝑥 ) ∘ 𝑔 ) Fn 𝐵 )
109 107 108 syl ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ ( 𝑥 : 𝐴1-1-onto𝐶𝑦 : 𝐵1-1-onto𝐷 ) ) → ( ( 𝑥 ) ∘ 𝑔 ) Fn 𝐵 )
110 cocan2 ( ( 𝑔 : 𝐴onto𝐵𝑦 Fn 𝐵 ∧ ( ( 𝑥 ) ∘ 𝑔 ) Fn 𝐵 ) → ( ( 𝑦𝑔 ) = ( ( ( 𝑥 ) ∘ 𝑔 ) ∘ 𝑔 ) ↔ 𝑦 = ( ( 𝑥 ) ∘ 𝑔 ) ) )
111 104 106 109 110 syl3anc ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ ( 𝑥 : 𝐴1-1-onto𝐶𝑦 : 𝐵1-1-onto𝐷 ) ) → ( ( 𝑦𝑔 ) = ( ( ( 𝑥 ) ∘ 𝑔 ) ∘ 𝑔 ) ↔ 𝑦 = ( ( 𝑥 ) ∘ 𝑔 ) ) )
112 94 103 111 3bitr3d ( ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) ∧ ( 𝑥 : 𝐴1-1-onto𝐶𝑦 : 𝐵1-1-onto𝐷 ) ) → ( 𝑥 = ( ∘ ( 𝑦𝑔 ) ) ↔ 𝑦 = ( ( 𝑥 ) ∘ 𝑔 ) ) )
113 112 ex ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) → ( ( 𝑥 : 𝐴1-1-onto𝐶𝑦 : 𝐵1-1-onto𝐷 ) → ( 𝑥 = ( ∘ ( 𝑦𝑔 ) ) ↔ 𝑦 = ( ( 𝑥 ) ∘ 𝑔 ) ) ) )
114 71 113 syl5bi ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) → ( ( 𝑥 ∈ { 𝑓𝑓 : 𝐴1-1-onto𝐶 } ∧ 𝑦 ∈ { 𝑓𝑓 : 𝐵1-1-onto𝐷 } ) → ( 𝑥 = ( ∘ ( 𝑦𝑔 ) ) ↔ 𝑦 = ( ( 𝑥 ) ∘ 𝑔 ) ) ) )
115 19 37 53 70 114 en3d ( ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) → { 𝑓𝑓 : 𝐴1-1-onto𝐶 } ≈ { 𝑓𝑓 : 𝐵1-1-onto𝐷 } )
116 115 exlimivv ( ∃ 𝑔 ( 𝑔 : 𝐴1-1-onto𝐵 : 𝐶1-1-onto𝐷 ) → { 𝑓𝑓 : 𝐴1-1-onto𝐶 } ≈ { 𝑓𝑓 : 𝐵1-1-onto𝐷 } )
117 3 116 sylbir ( ( ∃ 𝑔 𝑔 : 𝐴1-1-onto𝐵 ∧ ∃ : 𝐶1-1-onto𝐷 ) → { 𝑓𝑓 : 𝐴1-1-onto𝐶 } ≈ { 𝑓𝑓 : 𝐵1-1-onto𝐷 } )
118 1 2 117 syl2anb ( ( 𝐴𝐵𝐶𝐷 ) → { 𝑓𝑓 : 𝐴1-1-onto𝐶 } ≈ { 𝑓𝑓 : 𝐵1-1-onto𝐷 } )