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

Theorem hashxplem 13408
 Description: Lemma for hashxp 13409. (Contributed by Paul Chapman, 30-Nov-2012.)
Hypothesis
Ref Expression
hashxplem.1 𝐵 ∈ Fin
Assertion
Ref Expression
hashxplem (𝐴 ∈ Fin → (♯‘(𝐴 × 𝐵)) = ((♯‘𝐴) · (♯‘𝐵)))

Proof of Theorem hashxplem
Dummy variables 𝑥 𝑦 𝑧 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 xpeq1 5276 . . . 4 (𝑥 = ∅ → (𝑥 × 𝐵) = (∅ × 𝐵))
21fveq2d 6352 . . 3 (𝑥 = ∅ → (♯‘(𝑥 × 𝐵)) = (♯‘(∅ × 𝐵)))
3 fveq2 6348 . . . 4 (𝑥 = ∅ → (♯‘𝑥) = (♯‘∅))
43oveq1d 6824 . . 3 (𝑥 = ∅ → ((♯‘𝑥) · (♯‘𝐵)) = ((♯‘∅) · (♯‘𝐵)))
52, 4eqeq12d 2771 . 2 (𝑥 = ∅ → ((♯‘(𝑥 × 𝐵)) = ((♯‘𝑥) · (♯‘𝐵)) ↔ (♯‘(∅ × 𝐵)) = ((♯‘∅) · (♯‘𝐵))))
6 xpeq1 5276 . . . 4 (𝑥 = 𝑦 → (𝑥 × 𝐵) = (𝑦 × 𝐵))
76fveq2d 6352 . . 3 (𝑥 = 𝑦 → (♯‘(𝑥 × 𝐵)) = (♯‘(𝑦 × 𝐵)))
8 fveq2 6348 . . . 4 (𝑥 = 𝑦 → (♯‘𝑥) = (♯‘𝑦))
98oveq1d 6824 . . 3 (𝑥 = 𝑦 → ((♯‘𝑥) · (♯‘𝐵)) = ((♯‘𝑦) · (♯‘𝐵)))
107, 9eqeq12d 2771 . 2 (𝑥 = 𝑦 → ((♯‘(𝑥 × 𝐵)) = ((♯‘𝑥) · (♯‘𝐵)) ↔ (♯‘(𝑦 × 𝐵)) = ((♯‘𝑦) · (♯‘𝐵))))
11 xpeq1 5276 . . . 4 (𝑥 = (𝑦 ∪ {𝑧}) → (𝑥 × 𝐵) = ((𝑦 ∪ {𝑧}) × 𝐵))
1211fveq2d 6352 . . 3 (𝑥 = (𝑦 ∪ {𝑧}) → (♯‘(𝑥 × 𝐵)) = (♯‘((𝑦 ∪ {𝑧}) × 𝐵)))
13 fveq2 6348 . . . 4 (𝑥 = (𝑦 ∪ {𝑧}) → (♯‘𝑥) = (♯‘(𝑦 ∪ {𝑧})))
1413oveq1d 6824 . . 3 (𝑥 = (𝑦 ∪ {𝑧}) → ((♯‘𝑥) · (♯‘𝐵)) = ((♯‘(𝑦 ∪ {𝑧})) · (♯‘𝐵)))
1512, 14eqeq12d 2771 . 2 (𝑥 = (𝑦 ∪ {𝑧}) → ((♯‘(𝑥 × 𝐵)) = ((♯‘𝑥) · (♯‘𝐵)) ↔ (♯‘((𝑦 ∪ {𝑧}) × 𝐵)) = ((♯‘(𝑦 ∪ {𝑧})) · (♯‘𝐵))))
16 xpeq1 5276 . . . 4 (𝑥 = 𝐴 → (𝑥 × 𝐵) = (𝐴 × 𝐵))
1716fveq2d 6352 . . 3 (𝑥 = 𝐴 → (♯‘(𝑥 × 𝐵)) = (♯‘(𝐴 × 𝐵)))
18 fveq2 6348 . . . 4 (𝑥 = 𝐴 → (♯‘𝑥) = (♯‘𝐴))
1918oveq1d 6824 . . 3 (𝑥 = 𝐴 → ((♯‘𝑥) · (♯‘𝐵)) = ((♯‘𝐴) · (♯‘𝐵)))
2017, 19eqeq12d 2771 . 2 (𝑥 = 𝐴 → ((♯‘(𝑥 × 𝐵)) = ((♯‘𝑥) · (♯‘𝐵)) ↔ (♯‘(𝐴 × 𝐵)) = ((♯‘𝐴) · (♯‘𝐵))))
21 hashxplem.1 . . . 4 𝐵 ∈ Fin
22 hashcl 13335 . . . . . 6 (𝐵 ∈ Fin → (♯‘𝐵) ∈ ℕ0)
2322nn0cnd 11541 . . . . 5 (𝐵 ∈ Fin → (♯‘𝐵) ∈ ℂ)
2423mul02d 10422 . . . 4 (𝐵 ∈ Fin → (0 · (♯‘𝐵)) = 0)
2521, 24ax-mp 5 . . 3 (0 · (♯‘𝐵)) = 0
26 hash0 13346 . . . 4 (♯‘∅) = 0
2726oveq1i 6819 . . 3 ((♯‘∅) · (♯‘𝐵)) = (0 · (♯‘𝐵))
28 0xp 5352 . . . . 5 (∅ × 𝐵) = ∅
2928fveq2i 6351 . . . 4 (♯‘(∅ × 𝐵)) = (♯‘∅)
3029, 26eqtri 2778 . . 3 (♯‘(∅ × 𝐵)) = 0
3125, 27, 303eqtr4ri 2789 . 2 (♯‘(∅ × 𝐵)) = ((♯‘∅) · (♯‘𝐵))
32 oveq1 6816 . . . . 5 ((♯‘(𝑦 × 𝐵)) = ((♯‘𝑦) · (♯‘𝐵)) → ((♯‘(𝑦 × 𝐵)) + (♯‘𝐵)) = (((♯‘𝑦) · (♯‘𝐵)) + (♯‘𝐵)))
3332adantl 473 . . . 4 (((𝑦 ∈ Fin ∧ ¬ 𝑧𝑦) ∧ (♯‘(𝑦 × 𝐵)) = ((♯‘𝑦) · (♯‘𝐵))) → ((♯‘(𝑦 × 𝐵)) + (♯‘𝐵)) = (((♯‘𝑦) · (♯‘𝐵)) + (♯‘𝐵)))
34 xpundir 5325 . . . . . . 7 ((𝑦 ∪ {𝑧}) × 𝐵) = ((𝑦 × 𝐵) ∪ ({𝑧} × 𝐵))
3534fveq2i 6351 . . . . . 6 (♯‘((𝑦 ∪ {𝑧}) × 𝐵)) = (♯‘((𝑦 × 𝐵) ∪ ({𝑧} × 𝐵)))
36 xpfi 8392 . . . . . . . . 9 ((𝑦 ∈ Fin ∧ 𝐵 ∈ Fin) → (𝑦 × 𝐵) ∈ Fin)
3721, 36mpan2 709 . . . . . . . 8 (𝑦 ∈ Fin → (𝑦 × 𝐵) ∈ Fin)
38 inxp 5406 . . . . . . . . 9 ((𝑦 × 𝐵) ∩ ({𝑧} × 𝐵)) = ((𝑦 ∩ {𝑧}) × (𝐵𝐵))
39 disjsn 4386 . . . . . . . . . . . 12 ((𝑦 ∩ {𝑧}) = ∅ ↔ ¬ 𝑧𝑦)
4039biimpri 218 . . . . . . . . . . 11 𝑧𝑦 → (𝑦 ∩ {𝑧}) = ∅)
4140xpeq1d 5291 . . . . . . . . . 10 𝑧𝑦 → ((𝑦 ∩ {𝑧}) × (𝐵𝐵)) = (∅ × (𝐵𝐵)))
42 0xp 5352 . . . . . . . . . 10 (∅ × (𝐵𝐵)) = ∅
4341, 42syl6eq 2806 . . . . . . . . 9 𝑧𝑦 → ((𝑦 ∩ {𝑧}) × (𝐵𝐵)) = ∅)
4438, 43syl5eq 2802 . . . . . . . 8 𝑧𝑦 → ((𝑦 × 𝐵) ∩ ({𝑧} × 𝐵)) = ∅)
45 snfi 8199 . . . . . . . . . 10 {𝑧} ∈ Fin
46 xpfi 8392 . . . . . . . . . 10 (({𝑧} ∈ Fin ∧ 𝐵 ∈ Fin) → ({𝑧} × 𝐵) ∈ Fin)
4745, 21, 46mp2an 710 . . . . . . . . 9 ({𝑧} × 𝐵) ∈ Fin
48 hashun 13359 . . . . . . . . 9 (((𝑦 × 𝐵) ∈ Fin ∧ ({𝑧} × 𝐵) ∈ Fin ∧ ((𝑦 × 𝐵) ∩ ({𝑧} × 𝐵)) = ∅) → (♯‘((𝑦 × 𝐵) ∪ ({𝑧} × 𝐵))) = ((♯‘(𝑦 × 𝐵)) + (♯‘({𝑧} × 𝐵))))
4947, 48mp3an2 1557 . . . . . . . 8 (((𝑦 × 𝐵) ∈ Fin ∧ ((𝑦 × 𝐵) ∩ ({𝑧} × 𝐵)) = ∅) → (♯‘((𝑦 × 𝐵) ∪ ({𝑧} × 𝐵))) = ((♯‘(𝑦 × 𝐵)) + (♯‘({𝑧} × 𝐵))))
5037, 44, 49syl2an 495 . . . . . . 7 ((𝑦 ∈ Fin ∧ ¬ 𝑧𝑦) → (♯‘((𝑦 × 𝐵) ∪ ({𝑧} × 𝐵))) = ((♯‘(𝑦 × 𝐵)) + (♯‘({𝑧} × 𝐵))))
51 snex 5053 . . . . . . . . . . 11 {𝑧} ∈ V
5221elexi 3349 . . . . . . . . . . 11 𝐵 ∈ V
5351, 52xpcomen 8212 . . . . . . . . . 10 ({𝑧} × 𝐵) ≈ (𝐵 × {𝑧})
54 vex 3339 . . . . . . . . . . 11 𝑧 ∈ V
5552, 54xpsnen 8205 . . . . . . . . . 10 (𝐵 × {𝑧}) ≈ 𝐵
5653, 55entri 8171 . . . . . . . . 9 ({𝑧} × 𝐵) ≈ 𝐵
57 hashen 13325 . . . . . . . . . 10 ((({𝑧} × 𝐵) ∈ Fin ∧ 𝐵 ∈ Fin) → ((♯‘({𝑧} × 𝐵)) = (♯‘𝐵) ↔ ({𝑧} × 𝐵) ≈ 𝐵))
5847, 21, 57mp2an 710 . . . . . . . . 9 ((♯‘({𝑧} × 𝐵)) = (♯‘𝐵) ↔ ({𝑧} × 𝐵) ≈ 𝐵)
5956, 58mpbir 221 . . . . . . . 8 (♯‘({𝑧} × 𝐵)) = (♯‘𝐵)
6059oveq2i 6820 . . . . . . 7 ((♯‘(𝑦 × 𝐵)) + (♯‘({𝑧} × 𝐵))) = ((♯‘(𝑦 × 𝐵)) + (♯‘𝐵))
6150, 60syl6eq 2806 . . . . . 6 ((𝑦 ∈ Fin ∧ ¬ 𝑧𝑦) → (♯‘((𝑦 × 𝐵) ∪ ({𝑧} × 𝐵))) = ((♯‘(𝑦 × 𝐵)) + (♯‘𝐵)))
6235, 61syl5eq 2802 . . . . 5 ((𝑦 ∈ Fin ∧ ¬ 𝑧𝑦) → (♯‘((𝑦 ∪ {𝑧}) × 𝐵)) = ((♯‘(𝑦 × 𝐵)) + (♯‘𝐵)))
6362adantr 472 . . . 4 (((𝑦 ∈ Fin ∧ ¬ 𝑧𝑦) ∧ (♯‘(𝑦 × 𝐵)) = ((♯‘𝑦) · (♯‘𝐵))) → (♯‘((𝑦 ∪ {𝑧}) × 𝐵)) = ((♯‘(𝑦 × 𝐵)) + (♯‘𝐵)))
64 hashunsng 13369 . . . . . . . 8 (𝑧 ∈ V → ((𝑦 ∈ Fin ∧ ¬ 𝑧𝑦) → (♯‘(𝑦 ∪ {𝑧})) = ((♯‘𝑦) + 1)))
6554, 64ax-mp 5 . . . . . . 7 ((𝑦 ∈ Fin ∧ ¬ 𝑧𝑦) → (♯‘(𝑦 ∪ {𝑧})) = ((♯‘𝑦) + 1))
6665oveq1d 6824 . . . . . 6 ((𝑦 ∈ Fin ∧ ¬ 𝑧𝑦) → ((♯‘(𝑦 ∪ {𝑧})) · (♯‘𝐵)) = (((♯‘𝑦) + 1) · (♯‘𝐵)))
67 hashcl 13335 . . . . . . . . . 10 (𝑦 ∈ Fin → (♯‘𝑦) ∈ ℕ0)
6867nn0cnd 11541 . . . . . . . . 9 (𝑦 ∈ Fin → (♯‘𝑦) ∈ ℂ)
69 ax-1cn 10182 . . . . . . . . . 10 1 ∈ ℂ
70 nn0cn 11490 . . . . . . . . . . 11 ((♯‘𝐵) ∈ ℕ0 → (♯‘𝐵) ∈ ℂ)
7121, 22, 70mp2b 10 . . . . . . . . . 10 (♯‘𝐵) ∈ ℂ
72 adddir 10219 . . . . . . . . . 10 (((♯‘𝑦) ∈ ℂ ∧ 1 ∈ ℂ ∧ (♯‘𝐵) ∈ ℂ) → (((♯‘𝑦) + 1) · (♯‘𝐵)) = (((♯‘𝑦) · (♯‘𝐵)) + (1 · (♯‘𝐵))))
7369, 71, 72mp3an23 1561 . . . . . . . . 9 ((♯‘𝑦) ∈ ℂ → (((♯‘𝑦) + 1) · (♯‘𝐵)) = (((♯‘𝑦) · (♯‘𝐵)) + (1 · (♯‘𝐵))))
7468, 73syl 17 . . . . . . . 8 (𝑦 ∈ Fin → (((♯‘𝑦) + 1) · (♯‘𝐵)) = (((♯‘𝑦) · (♯‘𝐵)) + (1 · (♯‘𝐵))))
7571mulid2i 10231 . . . . . . . . 9 (1 · (♯‘𝐵)) = (♯‘𝐵)
7675oveq2i 6820 . . . . . . . 8 (((♯‘𝑦) · (♯‘𝐵)) + (1 · (♯‘𝐵))) = (((♯‘𝑦) · (♯‘𝐵)) + (♯‘𝐵))
7774, 76syl6eq 2806 . . . . . . 7 (𝑦 ∈ Fin → (((♯‘𝑦) + 1) · (♯‘𝐵)) = (((♯‘𝑦) · (♯‘𝐵)) + (♯‘𝐵)))
7877adantr 472 . . . . . 6 ((𝑦 ∈ Fin ∧ ¬ 𝑧𝑦) → (((♯‘𝑦) + 1) · (♯‘𝐵)) = (((♯‘𝑦) · (♯‘𝐵)) + (♯‘𝐵)))
7966, 78eqtrd 2790 . . . . 5 ((𝑦 ∈ Fin ∧ ¬ 𝑧𝑦) → ((♯‘(𝑦 ∪ {𝑧})) · (♯‘𝐵)) = (((♯‘𝑦) · (♯‘𝐵)) + (♯‘𝐵)))
8079adantr 472 . . . 4 (((𝑦 ∈ Fin ∧ ¬ 𝑧𝑦) ∧ (♯‘(𝑦 × 𝐵)) = ((♯‘𝑦) · (♯‘𝐵))) → ((♯‘(𝑦 ∪ {𝑧})) · (♯‘𝐵)) = (((♯‘𝑦) · (♯‘𝐵)) + (♯‘𝐵)))
8133, 63, 803eqtr4d 2800 . . 3 (((𝑦 ∈ Fin ∧ ¬ 𝑧𝑦) ∧ (♯‘(𝑦 × 𝐵)) = ((♯‘𝑦) · (♯‘𝐵))) → (♯‘((𝑦 ∪ {𝑧}) × 𝐵)) = ((♯‘(𝑦 ∪ {𝑧})) · (♯‘𝐵)))
8281ex 449 . 2 ((𝑦 ∈ Fin ∧ ¬ 𝑧𝑦) → ((♯‘(𝑦 × 𝐵)) = ((♯‘𝑦) · (♯‘𝐵)) → (♯‘((𝑦 ∪ {𝑧}) × 𝐵)) = ((♯‘(𝑦 ∪ {𝑧})) · (♯‘𝐵))))
835, 10, 15, 20, 31, 82findcard2s 8362 1 (𝐴 ∈ Fin → (♯‘(𝐴 × 𝐵)) = ((♯‘𝐴) · (♯‘𝐵)))
 Colors of variables: wff setvar class Syntax hints:  ¬ wn 3   → wi 4   ↔ wb 196   ∧ wa 383   = wceq 1628   ∈ wcel 2135  Vcvv 3336   ∪ cun 3709   ∩ cin 3710  ∅c0 4054  {csn 4317   class class class wbr 4800   × cxp 5260  ‘cfv 6045  (class class class)co 6809   ≈ cen 8114  Fincfn 8117  ℂcc 10122  0cc0 10124  1c1 10125   + caddc 10127   · cmul 10129  ℕ0cn0 11480  ♯chash 13307 This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1867  ax-4 1882  ax-5 1984  ax-6 2050  ax-7 2086  ax-8 2137  ax-9 2144  ax-10 2164  ax-11 2179  ax-12 2192  ax-13 2387  ax-ext 2736  ax-rep 4919  ax-sep 4929  ax-nul 4937  ax-pow 4988  ax-pr 5051  ax-un 7110  ax-cnex 10180  ax-resscn 10181  ax-1cn 10182  ax-icn 10183  ax-addcl 10184  ax-addrcl 10185  ax-mulcl 10186  ax-mulrcl 10187  ax-mulcom 10188  ax-addass 10189  ax-mulass 10190  ax-distr 10191  ax-i2m1 10192  ax-1ne0 10193  ax-1rid 10194  ax-rnegex 10195  ax-rrecex 10196  ax-cnre 10197  ax-pre-lttri 10198  ax-pre-lttrn 10199  ax-pre-ltadd 10200  ax-pre-mulgt0 10201 This theorem depends on definitions:  df-bi 197  df-or 384  df-an 385  df-3or 1073  df-3an 1074  df-tru 1631  df-ex 1850  df-nf 1855  df-sb 2043  df-eu 2607  df-mo 2608  df-clab 2743  df-cleq 2749  df-clel 2752  df-nfc 2887  df-ne 2929  df-nel 3032  df-ral 3051  df-rex 3052  df-reu 3053  df-rmo 3054  df-rab 3055  df-v 3338  df-sbc 3573  df-csb 3671  df-dif 3714  df-un 3716  df-in 3718  df-ss 3725  df-pss 3727  df-nul 4055  df-if 4227  df-pw 4300  df-sn 4318  df-pr 4320  df-tp 4322  df-op 4324  df-uni 4585  df-int 4624  df-iun 4670  df-br 4801  df-opab 4861  df-mpt 4878  df-tr 4901  df-id 5170  df-eprel 5175  df-po 5183  df-so 5184  df-fr 5221  df-we 5223  df-xp 5268  df-rel 5269  df-cnv 5270  df-co 5271  df-dm 5272  df-rn 5273  df-res 5274  df-ima 5275  df-pred 5837  df-ord 5883  df-on 5884  df-lim 5885  df-suc 5886  df-iota 6008  df-fun 6047  df-fn 6048  df-f 6049  df-f1 6050  df-fo 6051  df-f1o 6052  df-fv 6053  df-riota 6770  df-ov 6812  df-oprab 6813  df-mpt2 6814  df-om 7227  df-1st 7329  df-2nd 7330  df-wrecs 7572  df-recs 7633  df-rdg 7671  df-1o 7725  df-oadd 7729  df-er 7907  df-en 8118  df-dom 8119  df-sdom 8120  df-fin 8121  df-card 8951  df-cda 9178  df-pnf 10264  df-mnf 10265  df-xr 10266  df-ltxr 10267  df-le 10268  df-sub 10456  df-neg 10457  df-nn 11209  df-n0 11481  df-z 11566  df-uz 11876  df-fz 12516  df-hash 13308 This theorem is referenced by:  hashxp  13409
 Copyright terms: Public domain W3C validator