Step | Hyp | Ref
| Expression |
1 | | xpeq1 5052 |
. . . 4
⊢ (𝑥 = ∅ → (𝑥 × 𝐵) = (∅ × 𝐵)) |
2 | 1 | fveq2d 6107 |
. . 3
⊢ (𝑥 = ∅ →
(#‘(𝑥 × 𝐵)) = (#‘(∅ ×
𝐵))) |
3 | | fveq2 6103 |
. . . 4
⊢ (𝑥 = ∅ → (#‘𝑥) =
(#‘∅)) |
4 | 3 | oveq1d 6564 |
. . 3
⊢ (𝑥 = ∅ →
((#‘𝑥) ·
(#‘𝐵)) =
((#‘∅) · (#‘𝐵))) |
5 | 2, 4 | eqeq12d 2625 |
. 2
⊢ (𝑥 = ∅ →
((#‘(𝑥 × 𝐵)) = ((#‘𝑥) · (#‘𝐵)) ↔ (#‘(∅
× 𝐵)) =
((#‘∅) · (#‘𝐵)))) |
6 | | xpeq1 5052 |
. . . 4
⊢ (𝑥 = 𝑦 → (𝑥 × 𝐵) = (𝑦 × 𝐵)) |
7 | 6 | fveq2d 6107 |
. . 3
⊢ (𝑥 = 𝑦 → (#‘(𝑥 × 𝐵)) = (#‘(𝑦 × 𝐵))) |
8 | | fveq2 6103 |
. . . 4
⊢ (𝑥 = 𝑦 → (#‘𝑥) = (#‘𝑦)) |
9 | 8 | oveq1d 6564 |
. . 3
⊢ (𝑥 = 𝑦 → ((#‘𝑥) · (#‘𝐵)) = ((#‘𝑦) · (#‘𝐵))) |
10 | 7, 9 | eqeq12d 2625 |
. 2
⊢ (𝑥 = 𝑦 → ((#‘(𝑥 × 𝐵)) = ((#‘𝑥) · (#‘𝐵)) ↔ (#‘(𝑦 × 𝐵)) = ((#‘𝑦) · (#‘𝐵)))) |
11 | | xpeq1 5052 |
. . . 4
⊢ (𝑥 = (𝑦 ∪ {𝑧}) → (𝑥 × 𝐵) = ((𝑦 ∪ {𝑧}) × 𝐵)) |
12 | 11 | fveq2d 6107 |
. . 3
⊢ (𝑥 = (𝑦 ∪ {𝑧}) → (#‘(𝑥 × 𝐵)) = (#‘((𝑦 ∪ {𝑧}) × 𝐵))) |
13 | | fveq2 6103 |
. . . 4
⊢ (𝑥 = (𝑦 ∪ {𝑧}) → (#‘𝑥) = (#‘(𝑦 ∪ {𝑧}))) |
14 | 13 | oveq1d 6564 |
. . 3
⊢ (𝑥 = (𝑦 ∪ {𝑧}) → ((#‘𝑥) · (#‘𝐵)) = ((#‘(𝑦 ∪ {𝑧})) · (#‘𝐵))) |
15 | 12, 14 | eqeq12d 2625 |
. 2
⊢ (𝑥 = (𝑦 ∪ {𝑧}) → ((#‘(𝑥 × 𝐵)) = ((#‘𝑥) · (#‘𝐵)) ↔ (#‘((𝑦 ∪ {𝑧}) × 𝐵)) = ((#‘(𝑦 ∪ {𝑧})) · (#‘𝐵)))) |
16 | | xpeq1 5052 |
. . . 4
⊢ (𝑥 = 𝐴 → (𝑥 × 𝐵) = (𝐴 × 𝐵)) |
17 | 16 | fveq2d 6107 |
. . 3
⊢ (𝑥 = 𝐴 → (#‘(𝑥 × 𝐵)) = (#‘(𝐴 × 𝐵))) |
18 | | fveq2 6103 |
. . . 4
⊢ (𝑥 = 𝐴 → (#‘𝑥) = (#‘𝐴)) |
19 | 18 | oveq1d 6564 |
. . 3
⊢ (𝑥 = 𝐴 → ((#‘𝑥) · (#‘𝐵)) = ((#‘𝐴) · (#‘𝐵))) |
20 | 17, 19 | eqeq12d 2625 |
. 2
⊢ (𝑥 = 𝐴 → ((#‘(𝑥 × 𝐵)) = ((#‘𝑥) · (#‘𝐵)) ↔ (#‘(𝐴 × 𝐵)) = ((#‘𝐴) · (#‘𝐵)))) |
21 | | hashxplem.1 |
. . . 4
⊢ 𝐵 ∈ Fin |
22 | | hashcl 13009 |
. . . . . 6
⊢ (𝐵 ∈ Fin →
(#‘𝐵) ∈
ℕ0) |
23 | 22 | nn0cnd 11230 |
. . . . 5
⊢ (𝐵 ∈ Fin →
(#‘𝐵) ∈
ℂ) |
24 | 23 | mul02d 10113 |
. . . 4
⊢ (𝐵 ∈ Fin → (0 ·
(#‘𝐵)) =
0) |
25 | 21, 24 | ax-mp 5 |
. . 3
⊢ (0
· (#‘𝐵)) =
0 |
26 | | hash0 13019 |
. . . 4
⊢
(#‘∅) = 0 |
27 | 26 | oveq1i 6559 |
. . 3
⊢
((#‘∅) · (#‘𝐵)) = (0 · (#‘𝐵)) |
28 | | 0xp 5122 |
. . . . 5
⊢ (∅
× 𝐵) =
∅ |
29 | 28 | fveq2i 6106 |
. . . 4
⊢
(#‘(∅ × 𝐵)) = (#‘∅) |
30 | 29, 26 | eqtri 2632 |
. . 3
⊢
(#‘(∅ × 𝐵)) = 0 |
31 | 25, 27, 30 | 3eqtr4ri 2643 |
. 2
⊢
(#‘(∅ × 𝐵)) = ((#‘∅) ·
(#‘𝐵)) |
32 | | oveq1 6556 |
. . . . 5
⊢
((#‘(𝑦 ×
𝐵)) = ((#‘𝑦) · (#‘𝐵)) → ((#‘(𝑦 × 𝐵)) + (#‘𝐵)) = (((#‘𝑦) · (#‘𝐵)) + (#‘𝐵))) |
33 | 32 | adantl 481 |
. . . 4
⊢ (((𝑦 ∈ Fin ∧ ¬ 𝑧 ∈ 𝑦) ∧ (#‘(𝑦 × 𝐵)) = ((#‘𝑦) · (#‘𝐵))) → ((#‘(𝑦 × 𝐵)) + (#‘𝐵)) = (((#‘𝑦) · (#‘𝐵)) + (#‘𝐵))) |
34 | | xpundir 5095 |
. . . . . . 7
⊢ ((𝑦 ∪ {𝑧}) × 𝐵) = ((𝑦 × 𝐵) ∪ ({𝑧} × 𝐵)) |
35 | 34 | fveq2i 6106 |
. . . . . 6
⊢
(#‘((𝑦 ∪
{𝑧}) × 𝐵)) = (#‘((𝑦 × 𝐵) ∪ ({𝑧} × 𝐵))) |
36 | | xpfi 8116 |
. . . . . . . . 9
⊢ ((𝑦 ∈ Fin ∧ 𝐵 ∈ Fin) → (𝑦 × 𝐵) ∈ Fin) |
37 | 21, 36 | mpan2 703 |
. . . . . . . 8
⊢ (𝑦 ∈ Fin → (𝑦 × 𝐵) ∈ Fin) |
38 | | inxp 5176 |
. . . . . . . . 9
⊢ ((𝑦 × 𝐵) ∩ ({𝑧} × 𝐵)) = ((𝑦 ∩ {𝑧}) × (𝐵 ∩ 𝐵)) |
39 | | disjsn 4192 |
. . . . . . . . . . . 12
⊢ ((𝑦 ∩ {𝑧}) = ∅ ↔ ¬ 𝑧 ∈ 𝑦) |
40 | 39 | biimpri 217 |
. . . . . . . . . . 11
⊢ (¬
𝑧 ∈ 𝑦 → (𝑦 ∩ {𝑧}) = ∅) |
41 | 40 | xpeq1d 5062 |
. . . . . . . . . 10
⊢ (¬
𝑧 ∈ 𝑦 → ((𝑦 ∩ {𝑧}) × (𝐵 ∩ 𝐵)) = (∅ × (𝐵 ∩ 𝐵))) |
42 | | 0xp 5122 |
. . . . . . . . . 10
⊢ (∅
× (𝐵 ∩ 𝐵)) = ∅ |
43 | 41, 42 | syl6eq 2660 |
. . . . . . . . 9
⊢ (¬
𝑧 ∈ 𝑦 → ((𝑦 ∩ {𝑧}) × (𝐵 ∩ 𝐵)) = ∅) |
44 | 38, 43 | syl5eq 2656 |
. . . . . . . 8
⊢ (¬
𝑧 ∈ 𝑦 → ((𝑦 × 𝐵) ∩ ({𝑧} × 𝐵)) = ∅) |
45 | | snfi 7923 |
. . . . . . . . . 10
⊢ {𝑧} ∈ Fin |
46 | | xpfi 8116 |
. . . . . . . . . 10
⊢ (({𝑧} ∈ Fin ∧ 𝐵 ∈ Fin) → ({𝑧} × 𝐵) ∈ Fin) |
47 | 45, 21, 46 | mp2an 704 |
. . . . . . . . 9
⊢ ({𝑧} × 𝐵) ∈ Fin |
48 | | hashun 13032 |
. . . . . . . . 9
⊢ (((𝑦 × 𝐵) ∈ Fin ∧ ({𝑧} × 𝐵) ∈ Fin ∧ ((𝑦 × 𝐵) ∩ ({𝑧} × 𝐵)) = ∅) → (#‘((𝑦 × 𝐵) ∪ ({𝑧} × 𝐵))) = ((#‘(𝑦 × 𝐵)) + (#‘({𝑧} × 𝐵)))) |
49 | 47, 48 | mp3an2 1404 |
. . . . . . . 8
⊢ (((𝑦 × 𝐵) ∈ Fin ∧ ((𝑦 × 𝐵) ∩ ({𝑧} × 𝐵)) = ∅) → (#‘((𝑦 × 𝐵) ∪ ({𝑧} × 𝐵))) = ((#‘(𝑦 × 𝐵)) + (#‘({𝑧} × 𝐵)))) |
50 | 37, 44, 49 | syl2an 493 |
. . . . . . 7
⊢ ((𝑦 ∈ Fin ∧ ¬ 𝑧 ∈ 𝑦) → (#‘((𝑦 × 𝐵) ∪ ({𝑧} × 𝐵))) = ((#‘(𝑦 × 𝐵)) + (#‘({𝑧} × 𝐵)))) |
51 | | snex 4835 |
. . . . . . . . . . 11
⊢ {𝑧} ∈ V |
52 | 21 | elexi 3186 |
. . . . . . . . . . 11
⊢ 𝐵 ∈ V |
53 | 51, 52 | xpcomen 7936 |
. . . . . . . . . 10
⊢ ({𝑧} × 𝐵) ≈ (𝐵 × {𝑧}) |
54 | | vex 3176 |
. . . . . . . . . . 11
⊢ 𝑧 ∈ V |
55 | 52, 54 | xpsnen 7929 |
. . . . . . . . . 10
⊢ (𝐵 × {𝑧}) ≈ 𝐵 |
56 | 53, 55 | entri 7896 |
. . . . . . . . 9
⊢ ({𝑧} × 𝐵) ≈ 𝐵 |
57 | | hashen 12997 |
. . . . . . . . . 10
⊢ ((({𝑧} × 𝐵) ∈ Fin ∧ 𝐵 ∈ Fin) → ((#‘({𝑧} × 𝐵)) = (#‘𝐵) ↔ ({𝑧} × 𝐵) ≈ 𝐵)) |
58 | 47, 21, 57 | mp2an 704 |
. . . . . . . . 9
⊢
((#‘({𝑧}
× 𝐵)) =
(#‘𝐵) ↔ ({𝑧} × 𝐵) ≈ 𝐵) |
59 | 56, 58 | mpbir 220 |
. . . . . . . 8
⊢
(#‘({𝑧}
× 𝐵)) =
(#‘𝐵) |
60 | 59 | oveq2i 6560 |
. . . . . . 7
⊢
((#‘(𝑦 ×
𝐵)) + (#‘({𝑧} × 𝐵))) = ((#‘(𝑦 × 𝐵)) + (#‘𝐵)) |
61 | 50, 60 | syl6eq 2660 |
. . . . . 6
⊢ ((𝑦 ∈ Fin ∧ ¬ 𝑧 ∈ 𝑦) → (#‘((𝑦 × 𝐵) ∪ ({𝑧} × 𝐵))) = ((#‘(𝑦 × 𝐵)) + (#‘𝐵))) |
62 | 35, 61 | syl5eq 2656 |
. . . . 5
⊢ ((𝑦 ∈ Fin ∧ ¬ 𝑧 ∈ 𝑦) → (#‘((𝑦 ∪ {𝑧}) × 𝐵)) = ((#‘(𝑦 × 𝐵)) + (#‘𝐵))) |
63 | 62 | adantr 480 |
. . . 4
⊢ (((𝑦 ∈ Fin ∧ ¬ 𝑧 ∈ 𝑦) ∧ (#‘(𝑦 × 𝐵)) = ((#‘𝑦) · (#‘𝐵))) → (#‘((𝑦 ∪ {𝑧}) × 𝐵)) = ((#‘(𝑦 × 𝐵)) + (#‘𝐵))) |
64 | | hashunsng 13042 |
. . . . . . . 8
⊢ (𝑧 ∈ V → ((𝑦 ∈ Fin ∧ ¬ 𝑧 ∈ 𝑦) → (#‘(𝑦 ∪ {𝑧})) = ((#‘𝑦) + 1))) |
65 | 54, 64 | ax-mp 5 |
. . . . . . 7
⊢ ((𝑦 ∈ Fin ∧ ¬ 𝑧 ∈ 𝑦) → (#‘(𝑦 ∪ {𝑧})) = ((#‘𝑦) + 1)) |
66 | 65 | oveq1d 6564 |
. . . . . 6
⊢ ((𝑦 ∈ Fin ∧ ¬ 𝑧 ∈ 𝑦) → ((#‘(𝑦 ∪ {𝑧})) · (#‘𝐵)) = (((#‘𝑦) + 1) · (#‘𝐵))) |
67 | | hashcl 13009 |
. . . . . . . . . 10
⊢ (𝑦 ∈ Fin →
(#‘𝑦) ∈
ℕ0) |
68 | 67 | nn0cnd 11230 |
. . . . . . . . 9
⊢ (𝑦 ∈ Fin →
(#‘𝑦) ∈
ℂ) |
69 | | ax-1cn 9873 |
. . . . . . . . . 10
⊢ 1 ∈
ℂ |
70 | | nn0cn 11179 |
. . . . . . . . . . 11
⊢
((#‘𝐵) ∈
ℕ0 → (#‘𝐵) ∈ ℂ) |
71 | 21, 22, 70 | mp2b 10 |
. . . . . . . . . 10
⊢
(#‘𝐵) ∈
ℂ |
72 | | adddir 9910 |
. . . . . . . . . 10
⊢
(((#‘𝑦) ∈
ℂ ∧ 1 ∈ ℂ ∧ (#‘𝐵) ∈ ℂ) → (((#‘𝑦) + 1) · (#‘𝐵)) = (((#‘𝑦) · (#‘𝐵)) + (1 · (#‘𝐵)))) |
73 | 69, 71, 72 | mp3an23 1408 |
. . . . . . . . 9
⊢
((#‘𝑦) ∈
ℂ → (((#‘𝑦) + 1) · (#‘𝐵)) = (((#‘𝑦) · (#‘𝐵)) + (1 · (#‘𝐵)))) |
74 | 68, 73 | syl 17 |
. . . . . . . 8
⊢ (𝑦 ∈ Fin →
(((#‘𝑦) + 1) ·
(#‘𝐵)) =
(((#‘𝑦) ·
(#‘𝐵)) + (1 ·
(#‘𝐵)))) |
75 | 71 | mulid2i 9922 |
. . . . . . . . 9
⊢ (1
· (#‘𝐵)) =
(#‘𝐵) |
76 | 75 | oveq2i 6560 |
. . . . . . . 8
⊢
(((#‘𝑦)
· (#‘𝐵)) + (1
· (#‘𝐵))) =
(((#‘𝑦) ·
(#‘𝐵)) +
(#‘𝐵)) |
77 | 74, 76 | syl6eq 2660 |
. . . . . . 7
⊢ (𝑦 ∈ Fin →
(((#‘𝑦) + 1) ·
(#‘𝐵)) =
(((#‘𝑦) ·
(#‘𝐵)) +
(#‘𝐵))) |
78 | 77 | adantr 480 |
. . . . . 6
⊢ ((𝑦 ∈ Fin ∧ ¬ 𝑧 ∈ 𝑦) → (((#‘𝑦) + 1) · (#‘𝐵)) = (((#‘𝑦) · (#‘𝐵)) + (#‘𝐵))) |
79 | 66, 78 | eqtrd 2644 |
. . . . 5
⊢ ((𝑦 ∈ Fin ∧ ¬ 𝑧 ∈ 𝑦) → ((#‘(𝑦 ∪ {𝑧})) · (#‘𝐵)) = (((#‘𝑦) · (#‘𝐵)) + (#‘𝐵))) |
80 | 79 | adantr 480 |
. . . 4
⊢ (((𝑦 ∈ Fin ∧ ¬ 𝑧 ∈ 𝑦) ∧ (#‘(𝑦 × 𝐵)) = ((#‘𝑦) · (#‘𝐵))) → ((#‘(𝑦 ∪ {𝑧})) · (#‘𝐵)) = (((#‘𝑦) · (#‘𝐵)) + (#‘𝐵))) |
81 | 33, 63, 80 | 3eqtr4d 2654 |
. . 3
⊢ (((𝑦 ∈ Fin ∧ ¬ 𝑧 ∈ 𝑦) ∧ (#‘(𝑦 × 𝐵)) = ((#‘𝑦) · (#‘𝐵))) → (#‘((𝑦 ∪ {𝑧}) × 𝐵)) = ((#‘(𝑦 ∪ {𝑧})) · (#‘𝐵))) |
82 | 81 | ex 449 |
. 2
⊢ ((𝑦 ∈ Fin ∧ ¬ 𝑧 ∈ 𝑦) → ((#‘(𝑦 × 𝐵)) = ((#‘𝑦) · (#‘𝐵)) → (#‘((𝑦 ∪ {𝑧}) × 𝐵)) = ((#‘(𝑦 ∪ {𝑧})) · (#‘𝐵)))) |
83 | 5, 10, 15, 20, 31, 82 | findcard2s 8086 |
1
⊢ (𝐴 ∈ Fin →
(#‘(𝐴 × 𝐵)) = ((#‘𝐴) · (#‘𝐵))) |