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 AFinBFinAB=AB

Proof

Step Hyp Ref Expression
1 oveq2 x=Ax=A
2 1 fveq2d x=Ax=A
3 fveq2 x=x=
4 3 oveq2d x=Ax=A
5 2 4 eqeq12d x=Ax=AxA=A
6 5 imbi2d x=AFinAx=AxAFinA=A
7 oveq2 x=yAx=Ay
8 7 fveq2d x=yAx=Ay
9 fveq2 x=yx=y
10 9 oveq2d x=yAx=Ay
11 8 10 eqeq12d x=yAx=AxAy=Ay
12 11 imbi2d x=yAFinAx=AxAFinAy=Ay
13 oveq2 x=yzAx=Ayz
14 13 fveq2d x=yzAx=Ayz
15 fveq2 x=yzx=yz
16 15 oveq2d x=yzAx=Ayz
17 14 16 eqeq12d x=yzAx=AxAyz=Ayz
18 17 imbi2d x=yzAFinAx=AxAFinAyz=Ayz
19 oveq2 x=BAx=AB
20 19 fveq2d x=BAx=AB
21 fveq2 x=Bx=B
22 21 oveq2d x=BAx=AB
23 20 22 eqeq12d x=BAx=AxAB=AB
24 23 imbi2d x=BAFinAx=AxAFinAB=AB
25 hashcl AFinA0
26 25 nn0cnd AFinA
27 26 exp0d AFinA0=1
28 hash0 =0
29 28 oveq2i A=A0
30 29 a1i AFinA=A0
31 mapdm0 AFinA=
32 31 fveq2d AFinA=
33 0ex V
34 hashsng V=1
35 33 34 mp1i AFin=1
36 32 35 eqtrd AFinA=1
37 27 30 36 3eqtr4rd AFinA=A
38 oveq1 Ay=AyAyA=AyA
39 vex yV
40 39 a1i AFinyFin¬zyyV
41 vsnex zV
42 41 a1i AFinyFin¬zyzV
43 elex AFinAV
44 43 adantr AFinyFin¬zyAV
45 simprr AFinyFin¬zy¬zy
46 disjsn yz=¬zy
47 45 46 sylibr AFinyFin¬zyyz=
48 mapunen yVzVAVyz=AyzAy×Az
49 40 42 44 47 48 syl31anc AFinyFin¬zyAyzAy×Az
50 simpl AFinyFin¬zyAFin
51 simprl AFinyFin¬zyyFin
52 snfi zFin
53 unfi yFinzFinyzFin
54 51 52 53 sylancl AFinyFin¬zyyzFin
55 mapfi AFinyzFinAyzFin
56 50 54 55 syl2anc AFinyFin¬zyAyzFin
57 mapfi AFinyFinAyFin
58 57 adantrr AFinyFin¬zyAyFin
59 mapfi AFinzFinAzFin
60 50 52 59 sylancl AFinyFin¬zyAzFin
61 xpfi AyFinAzFinAy×AzFin
62 58 60 61 syl2anc AFinyFin¬zyAy×AzFin
63 hashen AyzFinAy×AzFinAyz=Ay×AzAyzAy×Az
64 56 62 63 syl2anc AFinyFin¬zyAyz=Ay×AzAyzAy×Az
65 49 64 mpbird AFinyFin¬zyAyz=Ay×Az
66 hashxp AyFinAzFinAy×Az=AyAz
67 58 60 66 syl2anc AFinyFin¬zyAy×Az=AyAz
68 vex zV
69 68 a1i AFinyFin¬zyzV
70 50 69 mapsnend AFinyFin¬zyAzA
71 hashen AzFinAFinAz=AAzA
72 60 50 71 syl2anc AFinyFin¬zyAz=AAzA
73 70 72 mpbird AFinyFin¬zyAz=A
74 73 oveq2d AFinyFin¬zyAyAz=AyA
75 65 67 74 3eqtrd AFinyFin¬zyAyz=AyA
76 hashunsng zVyFin¬zyyz=y+1
77 76 elv yFin¬zyyz=y+1
78 77 adantl AFinyFin¬zyyz=y+1
79 78 oveq2d AFinyFin¬zyAyz=Ay+1
80 26 adantr AFinyFin¬zyA
81 hashcl yFiny0
82 81 ad2antrl AFinyFin¬zyy0
83 80 82 expp1d AFinyFin¬zyAy+1=AyA
84 79 83 eqtrd AFinyFin¬zyAyz=AyA
85 75 84 eqeq12d AFinyFin¬zyAyz=AyzAyA=AyA
86 38 85 imbitrrid AFinyFin¬zyAy=AyAyz=Ayz
87 86 expcom yFin¬zyAFinAy=AyAyz=Ayz
88 87 a2d yFin¬zyAFinAy=AyAFinAyz=Ayz
89 6 12 18 24 37 88 findcard2s BFinAFinAB=AB
90 89 impcom AFinBFinAB=AB