Metamath Proof Explorer


Theorem hashmap

Description: The size of the set exponential of two finite sets is the exponential of their sizes. (This is the original motivation behind the notation for set exponentiation.) (Contributed by Mario Carneiro, 5-Aug-2014) (Proof shortened by AV, 18-Jul-2022)

Ref Expression
Assertion hashmap A Fin B Fin A B = A B

Proof

Step Hyp Ref Expression
1 oveq2 x = A x = A
2 1 fveq2d x = A x = A
3 fveq2 x = x =
4 3 oveq2d x = A x = A
5 2 4 eqeq12d x = A x = A x A = A
6 5 imbi2d x = A Fin A x = A x A Fin A = A
7 oveq2 x = y A x = A y
8 7 fveq2d x = y A x = A y
9 fveq2 x = y x = y
10 9 oveq2d x = y A x = A y
11 8 10 eqeq12d x = y A x = A x A y = A y
12 11 imbi2d x = y A Fin A x = A x A Fin A y = A y
13 oveq2 x = y z A x = A y z
14 13 fveq2d x = y z A x = A y z
15 fveq2 x = y z x = y z
16 15 oveq2d x = y z A x = A y z
17 14 16 eqeq12d x = y z A x = A x A y z = A y z
18 17 imbi2d x = y z A Fin A x = A x A Fin A y z = A y z
19 oveq2 x = B A x = A B
20 19 fveq2d x = B A x = A B
21 fveq2 x = B x = B
22 21 oveq2d x = B A x = A B
23 20 22 eqeq12d x = B A x = A x A B = A B
24 23 imbi2d x = B A Fin A x = A x A Fin A B = A B
25 hashcl A Fin A 0
26 25 nn0cnd A Fin A
27 26 exp0d A Fin A 0 = 1
28 hash0 = 0
29 28 oveq2i A = A 0
30 29 a1i A Fin A = A 0
31 mapdm0 A Fin A =
32 31 fveq2d A Fin A =
33 0ex V
34 hashsng V = 1
35 33 34 mp1i A Fin = 1
36 32 35 eqtrd A Fin A = 1
37 27 30 36 3eqtr4rd A Fin A = A
38 oveq1 A y = A y A y A = A y A
39 vex y V
40 39 a1i A Fin y Fin ¬ z y y V
41 snex z V
42 41 a1i A Fin y Fin ¬ z y z V
43 elex A Fin A V
44 43 adantr A Fin y Fin ¬ z y A V
45 simprr A Fin y Fin ¬ z y ¬ z y
46 disjsn y z = ¬ z y
47 45 46 sylibr A Fin y Fin ¬ z y y z =
48 mapunen y V z V A V y z = A y z A y × A z
49 40 42 44 47 48 syl31anc A Fin y Fin ¬ z y A y z A y × A z
50 simpl A Fin y Fin ¬ z y A Fin
51 simprl A Fin y Fin ¬ z y y Fin
52 snfi z Fin
53 unfi y Fin z Fin y z Fin
54 51 52 53 sylancl A Fin y Fin ¬ z y y z Fin
55 mapfi A Fin y z Fin A y z Fin
56 50 54 55 syl2anc A Fin y Fin ¬ z y A y z Fin
57 mapfi A Fin y Fin A y Fin
58 57 adantrr A Fin y Fin ¬ z y A y Fin
59 mapfi A Fin z Fin A z Fin
60 50 52 59 sylancl A Fin y Fin ¬ z y A z Fin
61 xpfi A y Fin A z Fin A y × A z Fin
62 58 60 61 syl2anc A Fin y Fin ¬ z y A y × A z Fin
63 hashen A y z Fin A y × A z Fin A y z = A y × A z A y z A y × A z
64 56 62 63 syl2anc A Fin y Fin ¬ z y A y z = A y × A z A y z A y × A z
65 49 64 mpbird A Fin y Fin ¬ z y A y z = A y × A z
66 hashxp A y Fin A z Fin A y × A z = A y A z
67 58 60 66 syl2anc A Fin y Fin ¬ z y A y × A z = A y A z
68 vex z V
69 68 a1i A Fin y Fin ¬ z y z V
70 50 69 mapsnend A Fin y Fin ¬ z y A z A
71 hashen A z Fin A Fin A z = A A z A
72 60 50 71 syl2anc A Fin y Fin ¬ z y A z = A A z A
73 70 72 mpbird A Fin y Fin ¬ z y A z = A
74 73 oveq2d A Fin y Fin ¬ z y A y A z = A y A
75 65 67 74 3eqtrd A Fin y Fin ¬ z y A y z = A y A
76 hashunsng z V y Fin ¬ z y y z = y + 1
77 76 elv y Fin ¬ z y y z = y + 1
78 77 adantl A Fin y Fin ¬ z y y z = y + 1
79 78 oveq2d A Fin y Fin ¬ z y A y z = A y + 1
80 26 adantr A Fin y Fin ¬ z y A
81 hashcl y Fin y 0
82 81 ad2antrl A Fin y Fin ¬ z y y 0
83 80 82 expp1d A Fin y Fin ¬ z y A y + 1 = A y A
84 79 83 eqtrd A Fin y Fin ¬ z y A y z = A y A
85 75 84 eqeq12d A Fin y Fin ¬ z y A y z = A y z A y A = A y A
86 38 85 syl5ibr A Fin y Fin ¬ z y A y = A y A y z = A y z
87 86 expcom y Fin ¬ z y A Fin A y = A y A y z = A y z
88 87 a2d y Fin ¬ z y A Fin A y = A y A Fin A y z = A y z
89 6 12 18 24 37 88 findcard2s B Fin A Fin A B = A B
90 89 impcom A Fin B Fin A B = A B