Metamath Proof Explorer < Previous   Next > Nearby theorems Mirrors  >  Home  >  MPE Home  >  Th. List  >  hashmap Structured version   Visualization version   GIF version

Theorem hashmap 13260
 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.)
Assertion
Ref Expression
hashmap ((𝐴 ∈ Fin ∧ 𝐵 ∈ Fin) → (#‘(𝐴𝑚 𝐵)) = ((#‘𝐴)↑(#‘𝐵)))

Proof of Theorem hashmap
Dummy variables 𝑥 𝑎 𝑦 𝑧 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 oveq1 6697 . . . . . 6 (𝑎 = 𝐴 → (𝑎𝑚 𝐵) = (𝐴𝑚 𝐵))
21fveq2d 6233 . . . . 5 (𝑎 = 𝐴 → (#‘(𝑎𝑚 𝐵)) = (#‘(𝐴𝑚 𝐵)))
3 fveq2 6229 . . . . . 6 (𝑎 = 𝐴 → (#‘𝑎) = (#‘𝐴))
43oveq1d 6705 . . . . 5 (𝑎 = 𝐴 → ((#‘𝑎)↑(#‘𝐵)) = ((#‘𝐴)↑(#‘𝐵)))
52, 4eqeq12d 2666 . . . 4 (𝑎 = 𝐴 → ((#‘(𝑎𝑚 𝐵)) = ((#‘𝑎)↑(#‘𝐵)) ↔ (#‘(𝐴𝑚 𝐵)) = ((#‘𝐴)↑(#‘𝐵))))
65imbi2d 329 . . 3 (𝑎 = 𝐴 → ((𝐵 ∈ Fin → (#‘(𝑎𝑚 𝐵)) = ((#‘𝑎)↑(#‘𝐵))) ↔ (𝐵 ∈ Fin → (#‘(𝐴𝑚 𝐵)) = ((#‘𝐴)↑(#‘𝐵)))))
7 oveq2 6698 . . . . . . . 8 (𝑥 = ∅ → (𝑎𝑚 𝑥) = (𝑎𝑚 ∅))
87fveq2d 6233 . . . . . . 7 (𝑥 = ∅ → (#‘(𝑎𝑚 𝑥)) = (#‘(𝑎𝑚 ∅)))
9 fveq2 6229 . . . . . . . 8 (𝑥 = ∅ → (#‘𝑥) = (#‘∅))
109oveq2d 6706 . . . . . . 7 (𝑥 = ∅ → ((#‘𝑎)↑(#‘𝑥)) = ((#‘𝑎)↑(#‘∅)))
118, 10eqeq12d 2666 . . . . . 6 (𝑥 = ∅ → ((#‘(𝑎𝑚 𝑥)) = ((#‘𝑎)↑(#‘𝑥)) ↔ (#‘(𝑎𝑚 ∅)) = ((#‘𝑎)↑(#‘∅))))
1211imbi2d 329 . . . . 5 (𝑥 = ∅ → ((𝑎 ∈ Fin → (#‘(𝑎𝑚 𝑥)) = ((#‘𝑎)↑(#‘𝑥))) ↔ (𝑎 ∈ Fin → (#‘(𝑎𝑚 ∅)) = ((#‘𝑎)↑(#‘∅)))))
13 oveq2 6698 . . . . . . . 8 (𝑥 = 𝑦 → (𝑎𝑚 𝑥) = (𝑎𝑚 𝑦))
1413fveq2d 6233 . . . . . . 7 (𝑥 = 𝑦 → (#‘(𝑎𝑚 𝑥)) = (#‘(𝑎𝑚 𝑦)))
15 fveq2 6229 . . . . . . . 8 (𝑥 = 𝑦 → (#‘𝑥) = (#‘𝑦))
1615oveq2d 6706 . . . . . . 7 (𝑥 = 𝑦 → ((#‘𝑎)↑(#‘𝑥)) = ((#‘𝑎)↑(#‘𝑦)))
1714, 16eqeq12d 2666 . . . . . 6 (𝑥 = 𝑦 → ((#‘(𝑎𝑚 𝑥)) = ((#‘𝑎)↑(#‘𝑥)) ↔ (#‘(𝑎𝑚 𝑦)) = ((#‘𝑎)↑(#‘𝑦))))
1817imbi2d 329 . . . . 5 (𝑥 = 𝑦 → ((𝑎 ∈ Fin → (#‘(𝑎𝑚 𝑥)) = ((#‘𝑎)↑(#‘𝑥))) ↔ (𝑎 ∈ Fin → (#‘(𝑎𝑚 𝑦)) = ((#‘𝑎)↑(#‘𝑦)))))
19 oveq2 6698 . . . . . . . 8 (𝑥 = (𝑦 ∪ {𝑧}) → (𝑎𝑚 𝑥) = (𝑎𝑚 (𝑦 ∪ {𝑧})))
2019fveq2d 6233 . . . . . . 7 (𝑥 = (𝑦 ∪ {𝑧}) → (#‘(𝑎𝑚 𝑥)) = (#‘(𝑎𝑚 (𝑦 ∪ {𝑧}))))
21 fveq2 6229 . . . . . . . 8 (𝑥 = (𝑦 ∪ {𝑧}) → (#‘𝑥) = (#‘(𝑦 ∪ {𝑧})))
2221oveq2d 6706 . . . . . . 7 (𝑥 = (𝑦 ∪ {𝑧}) → ((#‘𝑎)↑(#‘𝑥)) = ((#‘𝑎)↑(#‘(𝑦 ∪ {𝑧}))))
2320, 22eqeq12d 2666 . . . . . 6 (𝑥 = (𝑦 ∪ {𝑧}) → ((#‘(𝑎𝑚 𝑥)) = ((#‘𝑎)↑(#‘𝑥)) ↔ (#‘(𝑎𝑚 (𝑦 ∪ {𝑧}))) = ((#‘𝑎)↑(#‘(𝑦 ∪ {𝑧})))))
2423imbi2d 329 . . . . 5 (𝑥 = (𝑦 ∪ {𝑧}) → ((𝑎 ∈ Fin → (#‘(𝑎𝑚 𝑥)) = ((#‘𝑎)↑(#‘𝑥))) ↔ (𝑎 ∈ Fin → (#‘(𝑎𝑚 (𝑦 ∪ {𝑧}))) = ((#‘𝑎)↑(#‘(𝑦 ∪ {𝑧}))))))
25 oveq2 6698 . . . . . . . 8 (𝑥 = 𝐵 → (𝑎𝑚 𝑥) = (𝑎𝑚 𝐵))
2625fveq2d 6233 . . . . . . 7 (𝑥 = 𝐵 → (#‘(𝑎𝑚 𝑥)) = (#‘(𝑎𝑚 𝐵)))
27 fveq2 6229 . . . . . . . 8 (𝑥 = 𝐵 → (#‘𝑥) = (#‘𝐵))
2827oveq2d 6706 . . . . . . 7 (𝑥 = 𝐵 → ((#‘𝑎)↑(#‘𝑥)) = ((#‘𝑎)↑(#‘𝐵)))
2926, 28eqeq12d 2666 . . . . . 6 (𝑥 = 𝐵 → ((#‘(𝑎𝑚 𝑥)) = ((#‘𝑎)↑(#‘𝑥)) ↔ (#‘(𝑎𝑚 𝐵)) = ((#‘𝑎)↑(#‘𝐵))))
3029imbi2d 329 . . . . 5 (𝑥 = 𝐵 → ((𝑎 ∈ Fin → (#‘(𝑎𝑚 𝑥)) = ((#‘𝑎)↑(#‘𝑥))) ↔ (𝑎 ∈ Fin → (#‘(𝑎𝑚 𝐵)) = ((#‘𝑎)↑(#‘𝐵)))))
31 hashcl 13185 . . . . . . . . 9 (𝑎 ∈ Fin → (#‘𝑎) ∈ ℕ0)
3231nn0cnd 11391 . . . . . . . 8 (𝑎 ∈ Fin → (#‘𝑎) ∈ ℂ)
3332exp0d 13042 . . . . . . 7 (𝑎 ∈ Fin → ((#‘𝑎)↑0) = 1)
3433eqcomd 2657 . . . . . 6 (𝑎 ∈ Fin → 1 = ((#‘𝑎)↑0))
35 vex 3234 . . . . . . . . . 10 𝑎 ∈ V
36 map0e 7937 . . . . . . . . . 10 (𝑎 ∈ V → (𝑎𝑚 ∅) = 1𝑜)
3735, 36ax-mp 5 . . . . . . . . 9 (𝑎𝑚 ∅) = 1𝑜
38 df1o2 7617 . . . . . . . . 9 1𝑜 = {∅}
3937, 38eqtri 2673 . . . . . . . 8 (𝑎𝑚 ∅) = {∅}
4039fveq2i 6232 . . . . . . 7 (#‘(𝑎𝑚 ∅)) = (#‘{∅})
41 0ex 4823 . . . . . . . 8 ∅ ∈ V
42 hashsng 13197 . . . . . . . 8 (∅ ∈ V → (#‘{∅}) = 1)
4341, 42ax-mp 5 . . . . . . 7 (#‘{∅}) = 1
4440, 43eqtri 2673 . . . . . 6 (#‘(𝑎𝑚 ∅)) = 1
45 hash0 13196 . . . . . . 7 (#‘∅) = 0
4645oveq2i 6701 . . . . . 6 ((#‘𝑎)↑(#‘∅)) = ((#‘𝑎)↑0)
4734, 44, 463eqtr4g 2710 . . . . 5 (𝑎 ∈ Fin → (#‘(𝑎𝑚 ∅)) = ((#‘𝑎)↑(#‘∅)))
48 oveq1 6697 . . . . . . . 8 ((#‘(𝑎𝑚 𝑦)) = ((#‘𝑎)↑(#‘𝑦)) → ((#‘(𝑎𝑚 𝑦)) · (#‘𝑎)) = (((#‘𝑎)↑(#‘𝑦)) · (#‘𝑎)))
49 vex 3234 . . . . . . . . . . . . 13 𝑦 ∈ V
50 snex 4938 . . . . . . . . . . . . 13 {𝑧} ∈ V
5149, 50, 353pm3.2i 1259 . . . . . . . . . . . 12 (𝑦 ∈ V ∧ {𝑧} ∈ V ∧ 𝑎 ∈ V)
52 simprr 811 . . . . . . . . . . . . 13 ((𝑎 ∈ Fin ∧ (𝑦 ∈ Fin ∧ ¬ 𝑧𝑦)) → ¬ 𝑧𝑦)
53 disjsn 4278 . . . . . . . . . . . . 13 ((𝑦 ∩ {𝑧}) = ∅ ↔ ¬ 𝑧𝑦)
5452, 53sylibr 224 . . . . . . . . . . . 12 ((𝑎 ∈ Fin ∧ (𝑦 ∈ Fin ∧ ¬ 𝑧𝑦)) → (𝑦 ∩ {𝑧}) = ∅)
55 mapunen 8170 . . . . . . . . . . . 12 (((𝑦 ∈ V ∧ {𝑧} ∈ V ∧ 𝑎 ∈ V) ∧ (𝑦 ∩ {𝑧}) = ∅) → (𝑎𝑚 (𝑦 ∪ {𝑧})) ≈ ((𝑎𝑚 𝑦) × (𝑎𝑚 {𝑧})))
5651, 54, 55sylancr 696 . . . . . . . . . . 11 ((𝑎 ∈ Fin ∧ (𝑦 ∈ Fin ∧ ¬ 𝑧𝑦)) → (𝑎𝑚 (𝑦 ∪ {𝑧})) ≈ ((𝑎𝑚 𝑦) × (𝑎𝑚 {𝑧})))
57 simpl 472 . . . . . . . . . . . . 13 ((𝑎 ∈ Fin ∧ (𝑦 ∈ Fin ∧ ¬ 𝑧𝑦)) → 𝑎 ∈ Fin)
58 simprl 809 . . . . . . . . . . . . . 14 ((𝑎 ∈ Fin ∧ (𝑦 ∈ Fin ∧ ¬ 𝑧𝑦)) → 𝑦 ∈ Fin)
59 snfi 8079 . . . . . . . . . . . . . 14 {𝑧} ∈ Fin
60 unfi 8268 . . . . . . . . . . . . . 14 ((𝑦 ∈ Fin ∧ {𝑧} ∈ Fin) → (𝑦 ∪ {𝑧}) ∈ Fin)
6158, 59, 60sylancl 695 . . . . . . . . . . . . 13 ((𝑎 ∈ Fin ∧ (𝑦 ∈ Fin ∧ ¬ 𝑧𝑦)) → (𝑦 ∪ {𝑧}) ∈ Fin)
62 mapfi 8303 . . . . . . . . . . . . 13 ((𝑎 ∈ Fin ∧ (𝑦 ∪ {𝑧}) ∈ Fin) → (𝑎𝑚 (𝑦 ∪ {𝑧})) ∈ Fin)
6357, 61, 62syl2anc 694 . . . . . . . . . . . 12 ((𝑎 ∈ Fin ∧ (𝑦 ∈ Fin ∧ ¬ 𝑧𝑦)) → (𝑎𝑚 (𝑦 ∪ {𝑧})) ∈ Fin)
64 mapfi 8303 . . . . . . . . . . . . . 14 ((𝑎 ∈ Fin ∧ 𝑦 ∈ Fin) → (𝑎𝑚 𝑦) ∈ Fin)
6564adantrr 753 . . . . . . . . . . . . 13 ((𝑎 ∈ Fin ∧ (𝑦 ∈ Fin ∧ ¬ 𝑧𝑦)) → (𝑎𝑚 𝑦) ∈ Fin)
66 mapfi 8303 . . . . . . . . . . . . . 14 ((𝑎 ∈ Fin ∧ {𝑧} ∈ Fin) → (𝑎𝑚 {𝑧}) ∈ Fin)
6757, 59, 66sylancl 695 . . . . . . . . . . . . 13 ((𝑎 ∈ Fin ∧ (𝑦 ∈ Fin ∧ ¬ 𝑧𝑦)) → (𝑎𝑚 {𝑧}) ∈ Fin)
68 xpfi 8272 . . . . . . . . . . . . 13 (((𝑎𝑚 𝑦) ∈ Fin ∧ (𝑎𝑚 {𝑧}) ∈ Fin) → ((𝑎𝑚 𝑦) × (𝑎𝑚 {𝑧})) ∈ Fin)
6965, 67, 68syl2anc 694 . . . . . . . . . . . 12 ((𝑎 ∈ Fin ∧ (𝑦 ∈ Fin ∧ ¬ 𝑧𝑦)) → ((𝑎𝑚 𝑦) × (𝑎𝑚 {𝑧})) ∈ Fin)
70 hashen 13175 . . . . . . . . . . . 12 (((𝑎𝑚 (𝑦 ∪ {𝑧})) ∈ Fin ∧ ((𝑎𝑚 𝑦) × (𝑎𝑚 {𝑧})) ∈ Fin) → ((#‘(𝑎𝑚 (𝑦 ∪ {𝑧}))) = (#‘((𝑎𝑚 𝑦) × (𝑎𝑚 {𝑧}))) ↔ (𝑎𝑚 (𝑦 ∪ {𝑧})) ≈ ((𝑎𝑚 𝑦) × (𝑎𝑚 {𝑧}))))
7163, 69, 70syl2anc 694 . . . . . . . . . . 11 ((𝑎 ∈ Fin ∧ (𝑦 ∈ Fin ∧ ¬ 𝑧𝑦)) → ((#‘(𝑎𝑚 (𝑦 ∪ {𝑧}))) = (#‘((𝑎𝑚 𝑦) × (𝑎𝑚 {𝑧}))) ↔ (𝑎𝑚 (𝑦 ∪ {𝑧})) ≈ ((𝑎𝑚 𝑦) × (𝑎𝑚 {𝑧}))))
7256, 71mpbird 247 . . . . . . . . . 10 ((𝑎 ∈ Fin ∧ (𝑦 ∈ Fin ∧ ¬ 𝑧𝑦)) → (#‘(𝑎𝑚 (𝑦 ∪ {𝑧}))) = (#‘((𝑎𝑚 𝑦) × (𝑎𝑚 {𝑧}))))
73 hashxp 13259 . . . . . . . . . . . 12 (((𝑎𝑚 𝑦) ∈ Fin ∧ (𝑎𝑚 {𝑧}) ∈ Fin) → (#‘((𝑎𝑚 𝑦) × (𝑎𝑚 {𝑧}))) = ((#‘(𝑎𝑚 𝑦)) · (#‘(𝑎𝑚 {𝑧}))))
7465, 67, 73syl2anc 694 . . . . . . . . . . 11 ((𝑎 ∈ Fin ∧ (𝑦 ∈ Fin ∧ ¬ 𝑧𝑦)) → (#‘((𝑎𝑚 𝑦) × (𝑎𝑚 {𝑧}))) = ((#‘(𝑎𝑚 𝑦)) · (#‘(𝑎𝑚 {𝑧}))))
75 vex 3234 . . . . . . . . . . . . . 14 𝑧 ∈ V
7635, 75mapsnen 8076 . . . . . . . . . . . . 13 (𝑎𝑚 {𝑧}) ≈ 𝑎
77 hashen 13175 . . . . . . . . . . . . . 14 (((𝑎𝑚 {𝑧}) ∈ Fin ∧ 𝑎 ∈ Fin) → ((#‘(𝑎𝑚 {𝑧})) = (#‘𝑎) ↔ (𝑎𝑚 {𝑧}) ≈ 𝑎))
7867, 57, 77syl2anc 694 . . . . . . . . . . . . 13 ((𝑎 ∈ Fin ∧ (𝑦 ∈ Fin ∧ ¬ 𝑧𝑦)) → ((#‘(𝑎𝑚 {𝑧})) = (#‘𝑎) ↔ (𝑎𝑚 {𝑧}) ≈ 𝑎))
7976, 78mpbiri 248 . . . . . . . . . . . 12 ((𝑎 ∈ Fin ∧ (𝑦 ∈ Fin ∧ ¬ 𝑧𝑦)) → (#‘(𝑎𝑚 {𝑧})) = (#‘𝑎))
8079oveq2d 6706 . . . . . . . . . . 11 ((𝑎 ∈ Fin ∧ (𝑦 ∈ Fin ∧ ¬ 𝑧𝑦)) → ((#‘(𝑎𝑚 𝑦)) · (#‘(𝑎𝑚 {𝑧}))) = ((#‘(𝑎𝑚 𝑦)) · (#‘𝑎)))
8174, 80eqtrd 2685 . . . . . . . . . 10 ((𝑎 ∈ Fin ∧ (𝑦 ∈ Fin ∧ ¬ 𝑧𝑦)) → (#‘((𝑎𝑚 𝑦) × (𝑎𝑚 {𝑧}))) = ((#‘(𝑎𝑚 𝑦)) · (#‘𝑎)))
8272, 81eqtrd 2685 . . . . . . . . 9 ((𝑎 ∈ Fin ∧ (𝑦 ∈ Fin ∧ ¬ 𝑧𝑦)) → (#‘(𝑎𝑚 (𝑦 ∪ {𝑧}))) = ((#‘(𝑎𝑚 𝑦)) · (#‘𝑎)))
83 hashunsng 13219 . . . . . . . . . . . . 13 (𝑧 ∈ V → ((𝑦 ∈ Fin ∧ ¬ 𝑧𝑦) → (#‘(𝑦 ∪ {𝑧})) = ((#‘𝑦) + 1)))
8475, 83ax-mp 5 . . . . . . . . . . . 12 ((𝑦 ∈ Fin ∧ ¬ 𝑧𝑦) → (#‘(𝑦 ∪ {𝑧})) = ((#‘𝑦) + 1))
8584adantl 481 . . . . . . . . . . 11 ((𝑎 ∈ Fin ∧ (𝑦 ∈ Fin ∧ ¬ 𝑧𝑦)) → (#‘(𝑦 ∪ {𝑧})) = ((#‘𝑦) + 1))
8685oveq2d 6706 . . . . . . . . . 10 ((𝑎 ∈ Fin ∧ (𝑦 ∈ Fin ∧ ¬ 𝑧𝑦)) → ((#‘𝑎)↑(#‘(𝑦 ∪ {𝑧}))) = ((#‘𝑎)↑((#‘𝑦) + 1)))
8732adantr 480 . . . . . . . . . . 11 ((𝑎 ∈ Fin ∧ (𝑦 ∈ Fin ∧ ¬ 𝑧𝑦)) → (#‘𝑎) ∈ ℂ)
88 hashcl 13185 . . . . . . . . . . . 12 (𝑦 ∈ Fin → (#‘𝑦) ∈ ℕ0)
8988ad2antrl 764 . . . . . . . . . . 11 ((𝑎 ∈ Fin ∧ (𝑦 ∈ Fin ∧ ¬ 𝑧𝑦)) → (#‘𝑦) ∈ ℕ0)
9087, 89expp1d 13049 . . . . . . . . . 10 ((𝑎 ∈ Fin ∧ (𝑦 ∈ Fin ∧ ¬ 𝑧𝑦)) → ((#‘𝑎)↑((#‘𝑦) + 1)) = (((#‘𝑎)↑(#‘𝑦)) · (#‘𝑎)))
9186, 90eqtrd 2685 . . . . . . . . 9 ((𝑎 ∈ Fin ∧ (𝑦 ∈ Fin ∧ ¬ 𝑧𝑦)) → ((#‘𝑎)↑(#‘(𝑦 ∪ {𝑧}))) = (((#‘𝑎)↑(#‘𝑦)) · (#‘𝑎)))
9282, 91eqeq12d 2666 . . . . . . . 8 ((𝑎 ∈ Fin ∧ (𝑦 ∈ Fin ∧ ¬ 𝑧𝑦)) → ((#‘(𝑎𝑚 (𝑦 ∪ {𝑧}))) = ((#‘𝑎)↑(#‘(𝑦 ∪ {𝑧}))) ↔ ((#‘(𝑎𝑚 𝑦)) · (#‘𝑎)) = (((#‘𝑎)↑(#‘𝑦)) · (#‘𝑎))))
9348, 92syl5ibr 236 . . . . . . 7 ((𝑎 ∈ Fin ∧ (𝑦 ∈ Fin ∧ ¬ 𝑧𝑦)) → ((#‘(𝑎𝑚 𝑦)) = ((#‘𝑎)↑(#‘𝑦)) → (#‘(𝑎𝑚 (𝑦 ∪ {𝑧}))) = ((#‘𝑎)↑(#‘(𝑦 ∪ {𝑧})))))
9493expcom 450 . . . . . 6 ((𝑦 ∈ Fin ∧ ¬ 𝑧𝑦) → (𝑎 ∈ Fin → ((#‘(𝑎𝑚 𝑦)) = ((#‘𝑎)↑(#‘𝑦)) → (#‘(𝑎𝑚 (𝑦 ∪ {𝑧}))) = ((#‘𝑎)↑(#‘(𝑦 ∪ {𝑧}))))))
9594a2d 29 . . . . 5 ((𝑦 ∈ Fin ∧ ¬ 𝑧𝑦) → ((𝑎 ∈ Fin → (#‘(𝑎𝑚 𝑦)) = ((#‘𝑎)↑(#‘𝑦))) → (𝑎 ∈ Fin → (#‘(𝑎𝑚 (𝑦 ∪ {𝑧}))) = ((#‘𝑎)↑(#‘(𝑦 ∪ {𝑧}))))))
9612, 18, 24, 30, 47, 95findcard2s 8242 . . . 4 (𝐵 ∈ Fin → (𝑎 ∈ Fin → (#‘(𝑎𝑚 𝐵)) = ((#‘𝑎)↑(#‘𝐵))))
9796com12 32 . . 3 (𝑎 ∈ Fin → (𝐵 ∈ Fin → (#‘(𝑎𝑚 𝐵)) = ((#‘𝑎)↑(#‘𝐵))))
986, 97vtoclga 3303 . 2 (𝐴 ∈ Fin → (𝐵 ∈ Fin → (#‘(𝐴𝑚 𝐵)) = ((#‘𝐴)↑(#‘𝐵))))
9998imp 444 1 ((𝐴 ∈ Fin ∧ 𝐵 ∈ Fin) → (#‘(𝐴𝑚 𝐵)) = ((#‘𝐴)↑(#‘𝐵)))
 Colors of variables: wff setvar class Syntax hints:  ¬ wn 3   → wi 4   ↔ wb 196   ∧ wa 383   ∧ w3a 1054   = wceq 1523   ∈ wcel 2030  Vcvv 3231   ∪ cun 3605   ∩ cin 3606  ∅c0 3948  {csn 4210   class class class wbr 4685   × cxp 5141  ‘cfv 5926  (class class class)co 6690  1𝑜c1o 7598   ↑𝑚 cmap 7899   ≈ cen 7994  Fincfn 7997  ℂcc 9972  0cc0 9974  1c1 9975   + caddc 9977   · cmul 9979  ℕ0cn0 11330  ↑cexp 12900  #chash 13157 This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1762  ax-4 1777  ax-5 1879  ax-6 1945  ax-7 1981  ax-8 2032  ax-9 2039  ax-10 2059  ax-11 2074  ax-12 2087  ax-13 2282  ax-ext 2631  ax-rep 4804  ax-sep 4814  ax-nul 4822  ax-pow 4873  ax-pr 4936  ax-un 6991  ax-cnex 10030  ax-resscn 10031  ax-1cn 10032  ax-icn 10033  ax-addcl 10034  ax-addrcl 10035  ax-mulcl 10036  ax-mulrcl 10037  ax-mulcom 10038  ax-addass 10039  ax-mulass 10040  ax-distr 10041  ax-i2m1 10042  ax-1ne0 10043  ax-1rid 10044  ax-rnegex 10045  ax-rrecex 10046  ax-cnre 10047  ax-pre-lttri 10048  ax-pre-lttrn 10049  ax-pre-ltadd 10050  ax-pre-mulgt0 10051 This theorem depends on definitions:  df-bi 197  df-or 384  df-an 385  df-3or 1055  df-3an 1056  df-tru 1526  df-ex 1745  df-nf 1750  df-sb 1938  df-eu 2502  df-mo 2503  df-clab 2638  df-cleq 2644  df-clel 2647  df-nfc 2782  df-ne 2824  df-nel 2927  df-ral 2946  df-rex 2947  df-reu 2948  df-rmo 2949  df-rab 2950  df-v 3233  df-sbc 3469  df-csb 3567  df-dif 3610  df-un 3612  df-in 3614  df-ss 3621  df-pss 3623  df-nul 3949  df-if 4120  df-pw 4193  df-sn 4211  df-pr 4213  df-tp 4215  df-op 4217  df-uni 4469  df-int 4508  df-iun 4554  df-br 4686  df-opab 4746  df-mpt 4763  df-tr 4786  df-id 5053  df-eprel 5058  df-po 5064  df-so 5065  df-fr 5102  df-we 5104  df-xp 5149  df-rel 5150  df-cnv 5151  df-co 5152  df-dm 5153  df-rn 5154  df-res 5155  df-ima 5156  df-pred 5718  df-ord 5764  df-on 5765  df-lim 5766  df-suc 5767  df-iota 5889  df-fun 5928  df-fn 5929  df-f 5930  df-f1 5931  df-fo 5932  df-f1o 5933  df-fv 5934  df-riota 6651  df-ov 6693  df-oprab 6694  df-mpt2 6695  df-om 7108  df-1st 7210  df-2nd 7211  df-wrecs 7452  df-recs 7513  df-rdg 7551  df-1o 7605  df-2o 7606  df-oadd 7609  df-er 7787  df-map 7901  df-pm 7902  df-en 7998  df-dom 7999  df-sdom 8000  df-fin 8001  df-card 8803  df-cda 9028  df-pnf 10114  df-mnf 10115  df-xr 10116  df-ltxr 10117  df-le 10118  df-sub 10306  df-neg 10307  df-nn 11059  df-n0 11331  df-z 11416  df-uz 11726  df-fz 12365  df-seq 12842  df-exp 12901  df-hash 13158 This theorem is referenced by:  hashpw  13261  hashwrdn  13369  prmreclem2  15668  birthdaylem2  24724
 Copyright terms: Public domain W3C validator