Metamath Proof Explorer


Theorem mapfien

Description: A bijection of the base sets induces a bijection on the set of finitely supported functions. (Contributed by Mario Carneiro, 30-May-2015) (Revised by AV, 3-Jul-2019)

Ref Expression
Hypotheses mapfien.s 𝑆 = { 𝑥 ∈ ( 𝐵m 𝐴 ) ∣ 𝑥 finSupp 𝑍 }
mapfien.t 𝑇 = { 𝑥 ∈ ( 𝐷m 𝐶 ) ∣ 𝑥 finSupp 𝑊 }
mapfien.w 𝑊 = ( 𝐺𝑍 )
mapfien.f ( 𝜑𝐹 : 𝐶1-1-onto𝐴 )
mapfien.g ( 𝜑𝐺 : 𝐵1-1-onto𝐷 )
mapfien.a ( 𝜑𝐴 ∈ V )
mapfien.b ( 𝜑𝐵 ∈ V )
mapfien.c ( 𝜑𝐶 ∈ V )
mapfien.d ( 𝜑𝐷 ∈ V )
mapfien.z ( 𝜑𝑍𝐵 )
Assertion mapfien ( 𝜑 → ( 𝑓𝑆 ↦ ( 𝐺 ∘ ( 𝑓𝐹 ) ) ) : 𝑆1-1-onto𝑇 )

Proof

Step Hyp Ref Expression
1 mapfien.s 𝑆 = { 𝑥 ∈ ( 𝐵m 𝐴 ) ∣ 𝑥 finSupp 𝑍 }
2 mapfien.t 𝑇 = { 𝑥 ∈ ( 𝐷m 𝐶 ) ∣ 𝑥 finSupp 𝑊 }
3 mapfien.w 𝑊 = ( 𝐺𝑍 )
4 mapfien.f ( 𝜑𝐹 : 𝐶1-1-onto𝐴 )
5 mapfien.g ( 𝜑𝐺 : 𝐵1-1-onto𝐷 )
6 mapfien.a ( 𝜑𝐴 ∈ V )
7 mapfien.b ( 𝜑𝐵 ∈ V )
8 mapfien.c ( 𝜑𝐶 ∈ V )
9 mapfien.d ( 𝜑𝐷 ∈ V )
10 mapfien.z ( 𝜑𝑍𝐵 )
11 eqid ( 𝑓𝑆 ↦ ( 𝐺 ∘ ( 𝑓𝐹 ) ) ) = ( 𝑓𝑆 ↦ ( 𝐺 ∘ ( 𝑓𝐹 ) ) )
12 f1of ( 𝐺 : 𝐵1-1-onto𝐷𝐺 : 𝐵𝐷 )
13 5 12 syl ( 𝜑𝐺 : 𝐵𝐷 )
14 13 adantr ( ( 𝜑𝑓𝑆 ) → 𝐺 : 𝐵𝐷 )
15 breq1 ( 𝑥 = 𝑓 → ( 𝑥 finSupp 𝑍𝑓 finSupp 𝑍 ) )
16 15 1 elrab2 ( 𝑓𝑆 ↔ ( 𝑓 ∈ ( 𝐵m 𝐴 ) ∧ 𝑓 finSupp 𝑍 ) )
17 16 simplbi ( 𝑓𝑆𝑓 ∈ ( 𝐵m 𝐴 ) )
18 17 adantl ( ( 𝜑𝑓𝑆 ) → 𝑓 ∈ ( 𝐵m 𝐴 ) )
19 elmapi ( 𝑓 ∈ ( 𝐵m 𝐴 ) → 𝑓 : 𝐴𝐵 )
20 18 19 syl ( ( 𝜑𝑓𝑆 ) → 𝑓 : 𝐴𝐵 )
21 f1of ( 𝐹 : 𝐶1-1-onto𝐴𝐹 : 𝐶𝐴 )
22 4 21 syl ( 𝜑𝐹 : 𝐶𝐴 )
23 22 adantr ( ( 𝜑𝑓𝑆 ) → 𝐹 : 𝐶𝐴 )
24 fco ( ( 𝑓 : 𝐴𝐵𝐹 : 𝐶𝐴 ) → ( 𝑓𝐹 ) : 𝐶𝐵 )
25 20 23 24 syl2anc ( ( 𝜑𝑓𝑆 ) → ( 𝑓𝐹 ) : 𝐶𝐵 )
26 fco ( ( 𝐺 : 𝐵𝐷 ∧ ( 𝑓𝐹 ) : 𝐶𝐵 ) → ( 𝐺 ∘ ( 𝑓𝐹 ) ) : 𝐶𝐷 )
27 14 25 26 syl2anc ( ( 𝜑𝑓𝑆 ) → ( 𝐺 ∘ ( 𝑓𝐹 ) ) : 𝐶𝐷 )
28 9 8 elmapd ( 𝜑 → ( ( 𝐺 ∘ ( 𝑓𝐹 ) ) ∈ ( 𝐷m 𝐶 ) ↔ ( 𝐺 ∘ ( 𝑓𝐹 ) ) : 𝐶𝐷 ) )
29 28 adantr ( ( 𝜑𝑓𝑆 ) → ( ( 𝐺 ∘ ( 𝑓𝐹 ) ) ∈ ( 𝐷m 𝐶 ) ↔ ( 𝐺 ∘ ( 𝑓𝐹 ) ) : 𝐶𝐷 ) )
30 27 29 mpbird ( ( 𝜑𝑓𝑆 ) → ( 𝐺 ∘ ( 𝑓𝐹 ) ) ∈ ( 𝐷m 𝐶 ) )
31 1 2 3 4 5 6 7 8 9 10 mapfienlem1 ( ( 𝜑𝑓𝑆 ) → ( 𝐺 ∘ ( 𝑓𝐹 ) ) finSupp 𝑊 )
32 breq1 ( 𝑥 = ( 𝐺 ∘ ( 𝑓𝐹 ) ) → ( 𝑥 finSupp 𝑊 ↔ ( 𝐺 ∘ ( 𝑓𝐹 ) ) finSupp 𝑊 ) )
33 32 2 elrab2 ( ( 𝐺 ∘ ( 𝑓𝐹 ) ) ∈ 𝑇 ↔ ( ( 𝐺 ∘ ( 𝑓𝐹 ) ) ∈ ( 𝐷m 𝐶 ) ∧ ( 𝐺 ∘ ( 𝑓𝐹 ) ) finSupp 𝑊 ) )
34 30 31 33 sylanbrc ( ( 𝜑𝑓𝑆 ) → ( 𝐺 ∘ ( 𝑓𝐹 ) ) ∈ 𝑇 )
35 1 2 3 4 5 6 7 8 9 10 mapfienlem3 ( ( 𝜑𝑔𝑇 ) → ( ( 𝐺𝑔 ) ∘ 𝐹 ) ∈ 𝑆 )
36 coass ( ( ( 𝐺𝑔 ) ∘ 𝐹 ) ∘ 𝐹 ) = ( ( 𝐺𝑔 ) ∘ ( 𝐹𝐹 ) )
37 4 adantr ( ( 𝜑 ∧ ( 𝑓𝑆𝑔𝑇 ) ) → 𝐹 : 𝐶1-1-onto𝐴 )
38 f1ococnv1 ( 𝐹 : 𝐶1-1-onto𝐴 → ( 𝐹𝐹 ) = ( I ↾ 𝐶 ) )
39 37 38 syl ( ( 𝜑 ∧ ( 𝑓𝑆𝑔𝑇 ) ) → ( 𝐹𝐹 ) = ( I ↾ 𝐶 ) )
40 39 coeq2d ( ( 𝜑 ∧ ( 𝑓𝑆𝑔𝑇 ) ) → ( ( 𝐺𝑔 ) ∘ ( 𝐹𝐹 ) ) = ( ( 𝐺𝑔 ) ∘ ( I ↾ 𝐶 ) ) )
41 f1ocnv ( 𝐺 : 𝐵1-1-onto𝐷 𝐺 : 𝐷1-1-onto𝐵 )
42 f1of ( 𝐺 : 𝐷1-1-onto𝐵 𝐺 : 𝐷𝐵 )
43 5 41 42 3syl ( 𝜑 𝐺 : 𝐷𝐵 )
44 43 adantr ( ( 𝜑𝑔𝑇 ) → 𝐺 : 𝐷𝐵 )
45 simpr ( ( 𝜑𝑔𝑇 ) → 𝑔𝑇 )
46 breq1 ( 𝑥 = 𝑔 → ( 𝑥 finSupp 𝑊𝑔 finSupp 𝑊 ) )
47 46 2 elrab2 ( 𝑔𝑇 ↔ ( 𝑔 ∈ ( 𝐷m 𝐶 ) ∧ 𝑔 finSupp 𝑊 ) )
48 45 47 sylib ( ( 𝜑𝑔𝑇 ) → ( 𝑔 ∈ ( 𝐷m 𝐶 ) ∧ 𝑔 finSupp 𝑊 ) )
49 48 simpld ( ( 𝜑𝑔𝑇 ) → 𝑔 ∈ ( 𝐷m 𝐶 ) )
50 elmapi ( 𝑔 ∈ ( 𝐷m 𝐶 ) → 𝑔 : 𝐶𝐷 )
51 49 50 syl ( ( 𝜑𝑔𝑇 ) → 𝑔 : 𝐶𝐷 )
52 fco ( ( 𝐺 : 𝐷𝐵𝑔 : 𝐶𝐷 ) → ( 𝐺𝑔 ) : 𝐶𝐵 )
53 44 51 52 syl2anc ( ( 𝜑𝑔𝑇 ) → ( 𝐺𝑔 ) : 𝐶𝐵 )
54 53 adantrl ( ( 𝜑 ∧ ( 𝑓𝑆𝑔𝑇 ) ) → ( 𝐺𝑔 ) : 𝐶𝐵 )
55 fcoi1 ( ( 𝐺𝑔 ) : 𝐶𝐵 → ( ( 𝐺𝑔 ) ∘ ( I ↾ 𝐶 ) ) = ( 𝐺𝑔 ) )
56 54 55 syl ( ( 𝜑 ∧ ( 𝑓𝑆𝑔𝑇 ) ) → ( ( 𝐺𝑔 ) ∘ ( I ↾ 𝐶 ) ) = ( 𝐺𝑔 ) )
57 40 56 eqtrd ( ( 𝜑 ∧ ( 𝑓𝑆𝑔𝑇 ) ) → ( ( 𝐺𝑔 ) ∘ ( 𝐹𝐹 ) ) = ( 𝐺𝑔 ) )
58 36 57 syl5eq ( ( 𝜑 ∧ ( 𝑓𝑆𝑔𝑇 ) ) → ( ( ( 𝐺𝑔 ) ∘ 𝐹 ) ∘ 𝐹 ) = ( 𝐺𝑔 ) )
59 58 eqeq2d ( ( 𝜑 ∧ ( 𝑓𝑆𝑔𝑇 ) ) → ( ( 𝑓𝐹 ) = ( ( ( 𝐺𝑔 ) ∘ 𝐹 ) ∘ 𝐹 ) ↔ ( 𝑓𝐹 ) = ( 𝐺𝑔 ) ) )
60 coass ( ( 𝐺𝐺 ) ∘ ( 𝑓𝐹 ) ) = ( 𝐺 ∘ ( 𝐺 ∘ ( 𝑓𝐹 ) ) )
61 5 adantr ( ( 𝜑 ∧ ( 𝑓𝑆𝑔𝑇 ) ) → 𝐺 : 𝐵1-1-onto𝐷 )
62 f1ococnv1 ( 𝐺 : 𝐵1-1-onto𝐷 → ( 𝐺𝐺 ) = ( I ↾ 𝐵 ) )
63 61 62 syl ( ( 𝜑 ∧ ( 𝑓𝑆𝑔𝑇 ) ) → ( 𝐺𝐺 ) = ( I ↾ 𝐵 ) )
64 63 coeq1d ( ( 𝜑 ∧ ( 𝑓𝑆𝑔𝑇 ) ) → ( ( 𝐺𝐺 ) ∘ ( 𝑓𝐹 ) ) = ( ( I ↾ 𝐵 ) ∘ ( 𝑓𝐹 ) ) )
65 25 adantrr ( ( 𝜑 ∧ ( 𝑓𝑆𝑔𝑇 ) ) → ( 𝑓𝐹 ) : 𝐶𝐵 )
66 fcoi2 ( ( 𝑓𝐹 ) : 𝐶𝐵 → ( ( I ↾ 𝐵 ) ∘ ( 𝑓𝐹 ) ) = ( 𝑓𝐹 ) )
67 65 66 syl ( ( 𝜑 ∧ ( 𝑓𝑆𝑔𝑇 ) ) → ( ( I ↾ 𝐵 ) ∘ ( 𝑓𝐹 ) ) = ( 𝑓𝐹 ) )
68 64 67 eqtrd ( ( 𝜑 ∧ ( 𝑓𝑆𝑔𝑇 ) ) → ( ( 𝐺𝐺 ) ∘ ( 𝑓𝐹 ) ) = ( 𝑓𝐹 ) )
69 60 68 syl5eqr ( ( 𝜑 ∧ ( 𝑓𝑆𝑔𝑇 ) ) → ( 𝐺 ∘ ( 𝐺 ∘ ( 𝑓𝐹 ) ) ) = ( 𝑓𝐹 ) )
70 69 eqeq2d ( ( 𝜑 ∧ ( 𝑓𝑆𝑔𝑇 ) ) → ( ( 𝐺𝑔 ) = ( 𝐺 ∘ ( 𝐺 ∘ ( 𝑓𝐹 ) ) ) ↔ ( 𝐺𝑔 ) = ( 𝑓𝐹 ) ) )
71 eqcom ( ( 𝐺𝑔 ) = ( 𝑓𝐹 ) ↔ ( 𝑓𝐹 ) = ( 𝐺𝑔 ) )
72 70 71 syl6bb ( ( 𝜑 ∧ ( 𝑓𝑆𝑔𝑇 ) ) → ( ( 𝐺𝑔 ) = ( 𝐺 ∘ ( 𝐺 ∘ ( 𝑓𝐹 ) ) ) ↔ ( 𝑓𝐹 ) = ( 𝐺𝑔 ) ) )
73 59 72 bitr4d ( ( 𝜑 ∧ ( 𝑓𝑆𝑔𝑇 ) ) → ( ( 𝑓𝐹 ) = ( ( ( 𝐺𝑔 ) ∘ 𝐹 ) ∘ 𝐹 ) ↔ ( 𝐺𝑔 ) = ( 𝐺 ∘ ( 𝐺 ∘ ( 𝑓𝐹 ) ) ) ) )
74 f1ofo ( 𝐹 : 𝐶1-1-onto𝐴𝐹 : 𝐶onto𝐴 )
75 37 74 syl ( ( 𝜑 ∧ ( 𝑓𝑆𝑔𝑇 ) ) → 𝐹 : 𝐶onto𝐴 )
76 ffn ( 𝑓 : 𝐴𝐵𝑓 Fn 𝐴 )
77 18 19 76 3syl ( ( 𝜑𝑓𝑆 ) → 𝑓 Fn 𝐴 )
78 77 adantrr ( ( 𝜑 ∧ ( 𝑓𝑆𝑔𝑇 ) ) → 𝑓 Fn 𝐴 )
79 f1ocnv ( 𝐹 : 𝐶1-1-onto𝐴 𝐹 : 𝐴1-1-onto𝐶 )
80 f1of ( 𝐹 : 𝐴1-1-onto𝐶 𝐹 : 𝐴𝐶 )
81 4 79 80 3syl ( 𝜑 𝐹 : 𝐴𝐶 )
82 81 adantr ( ( 𝜑𝑔𝑇 ) → 𝐹 : 𝐴𝐶 )
83 fco ( ( ( 𝐺𝑔 ) : 𝐶𝐵 𝐹 : 𝐴𝐶 ) → ( ( 𝐺𝑔 ) ∘ 𝐹 ) : 𝐴𝐵 )
84 53 82 83 syl2anc ( ( 𝜑𝑔𝑇 ) → ( ( 𝐺𝑔 ) ∘ 𝐹 ) : 𝐴𝐵 )
85 84 ffnd ( ( 𝜑𝑔𝑇 ) → ( ( 𝐺𝑔 ) ∘ 𝐹 ) Fn 𝐴 )
86 85 adantrl ( ( 𝜑 ∧ ( 𝑓𝑆𝑔𝑇 ) ) → ( ( 𝐺𝑔 ) ∘ 𝐹 ) Fn 𝐴 )
87 cocan2 ( ( 𝐹 : 𝐶onto𝐴𝑓 Fn 𝐴 ∧ ( ( 𝐺𝑔 ) ∘ 𝐹 ) Fn 𝐴 ) → ( ( 𝑓𝐹 ) = ( ( ( 𝐺𝑔 ) ∘ 𝐹 ) ∘ 𝐹 ) ↔ 𝑓 = ( ( 𝐺𝑔 ) ∘ 𝐹 ) ) )
88 75 78 86 87 syl3anc ( ( 𝜑 ∧ ( 𝑓𝑆𝑔𝑇 ) ) → ( ( 𝑓𝐹 ) = ( ( ( 𝐺𝑔 ) ∘ 𝐹 ) ∘ 𝐹 ) ↔ 𝑓 = ( ( 𝐺𝑔 ) ∘ 𝐹 ) ) )
89 5 41 syl ( 𝜑 𝐺 : 𝐷1-1-onto𝐵 )
90 89 adantr ( ( 𝜑 ∧ ( 𝑓𝑆𝑔𝑇 ) ) → 𝐺 : 𝐷1-1-onto𝐵 )
91 f1of1 ( 𝐺 : 𝐷1-1-onto𝐵 𝐺 : 𝐷1-1𝐵 )
92 90 91 syl ( ( 𝜑 ∧ ( 𝑓𝑆𝑔𝑇 ) ) → 𝐺 : 𝐷1-1𝐵 )
93 51 adantrl ( ( 𝜑 ∧ ( 𝑓𝑆𝑔𝑇 ) ) → 𝑔 : 𝐶𝐷 )
94 27 adantrr ( ( 𝜑 ∧ ( 𝑓𝑆𝑔𝑇 ) ) → ( 𝐺 ∘ ( 𝑓𝐹 ) ) : 𝐶𝐷 )
95 cocan1 ( ( 𝐺 : 𝐷1-1𝐵𝑔 : 𝐶𝐷 ∧ ( 𝐺 ∘ ( 𝑓𝐹 ) ) : 𝐶𝐷 ) → ( ( 𝐺𝑔 ) = ( 𝐺 ∘ ( 𝐺 ∘ ( 𝑓𝐹 ) ) ) ↔ 𝑔 = ( 𝐺 ∘ ( 𝑓𝐹 ) ) ) )
96 92 93 94 95 syl3anc ( ( 𝜑 ∧ ( 𝑓𝑆𝑔𝑇 ) ) → ( ( 𝐺𝑔 ) = ( 𝐺 ∘ ( 𝐺 ∘ ( 𝑓𝐹 ) ) ) ↔ 𝑔 = ( 𝐺 ∘ ( 𝑓𝐹 ) ) ) )
97 73 88 96 3bitr3d ( ( 𝜑 ∧ ( 𝑓𝑆𝑔𝑇 ) ) → ( 𝑓 = ( ( 𝐺𝑔 ) ∘ 𝐹 ) ↔ 𝑔 = ( 𝐺 ∘ ( 𝑓𝐹 ) ) ) )
98 11 34 35 97 f1o2d ( 𝜑 → ( 𝑓𝑆 ↦ ( 𝐺 ∘ ( 𝑓𝐹 ) ) ) : 𝑆1-1-onto𝑇 )