HomeHome Metamath Proof Explorer < Previous   Next >
Related theorems
GIF version

Theorem xpassen 4447
Description: Associative law for equinumerosity of cross product. Proposition 4.22(e) of [Mendelson] p. 254.
Hypotheses
Ref Expression
xpassen.1 A V
xpassen.2 B V
xpassen.3 C V
Assertion
Ref Expression
xpassen ((A × B) × C) ≈ (A × (B × C))

Proof of Theorem xpassen
StepHypRef Expression
1 xpassen.1 . . . 4 A V
2 xpassen.2 . . . 4 B V
31, 2xpex 3266 . . 3 (A × B) V
4 xpassen.3 . . 3 C V
53, 4xpex 3266 . 2 ((A × B) × C) V
6 opex 2788 . . 3 dom {dom { x}}, ran {dom { x}}, ran { x} V
76a1i 8 . 2 (x ((A × B) × C) → dom {dom { x}}, ran {dom { x}}, ran { x} V)
8 opex 2788 . . 3 dom { y}, dom {ran { y}}, ran {ran { y}} V
98a1i 8 . 2 (y (A × (B × C)) → dom { y}, dom {ran { y}}, ran {ran { y}} V)
10 sneq 2421 . . . . . . . . . . . . . . . . 17 (x = z, w, v → {x} = {z, w, v})
1110dmeqd 3319 . . . . . . . . . . . . . . . 16 (x = z, w, v → dom { x} = dom {z, w, v})
1211unieqd 2516 . . . . . . . . . . . . . . 15 (x = z, w, vdom { x} = dom {z, w, v})
1312sneqd 2423 . . . . . . . . . . . . . 14 (x = z, w, v → {dom { x}} = {dom {z, w, v}})
1413dmeqd 3319 . . . . . . . . . . . . 13 (x = z, w, v → dom {dom { x}} = dom {dom {z, w, v}})
1514unieqd 2516 . . . . . . . . . . . 12 (x = z, w, vdom {dom { x}} = dom {dom {z, w, v}})
16 opex 2788 . . . . . . . . . . . . . . . . 17 z, w V
1716op1sta 3454 . . . . . . . . . . . . . . . 16 dom {z, w, v} = z, w
1817sneqi 2422 . . . . . . . . . . . . . . 15 {dom {z, w, v}} = {z, w}
1918dmeqi 3318 . . . . . . . . . . . . . 14 dom {dom {z, w, v}} = dom {z, w}
2019unieqi 2515 . . . . . . . . . . . . 13 dom {dom {z, w, v}} = dom {z, w}
21 visset 1816 . . . . . . . . . . . . . 14 z V
2221op1sta 3454 . . . . . . . . . . . . 13 dom {z, w} = z
2320, 22eqtr 1498 . . . . . . . . . . . 12 dom {dom {z, w, v}} = z
2415, 23syl6req 1527 . . . . . . . . . . 11 (x = z, w, vz = dom {dom { x}})
2513rneqd 3347 . . . . . . . . . . . . . 14 (x = z, w, v → ran {dom { x}} = ran {dom {z, w, v}})
2625unieqd 2516 . . . . . . . . . . . . 13 (x = z, w, vran {dom { x}} = ran {dom {z, w, v}})
2718rneqi 3346 . . . . . . . . . . . . . . 15 ran {dom {z, w, v}} = ran {z, w}
2827unieqi 2515 . . . . . . . . . . . . . 14 ran {dom {z, w, v}} = ran {z, w}
29 visset 1816 . . . . . . . . . . . . . . 15 w V
3021, 29op2nda 3458 . . . . . . . . . . . . . 14 ran {z, w} = w
3128, 30eqtr 1498 . . . . . . . . . . . . 13 ran {dom {z, w, v}} = w
3226, 31syl6req 1527 . . . . . . . . . . . 12 (x = z, w, vw = ran {dom { x}})
3310rneqd 3347 . . . . . . . . . . . . . 14 (x = z, w, v → ran { x} = ran {z, w, v})
3433unieqd 2516 . . . . . . . . . . . . 13 (x = z, w, vran { x} = ran {z, w, v})
35 visset 1816 . . . . . . . . . . . . . 14 v V
3616, 35op2nda 3458 . . . . . . . . . . . . 13 ran {z, w, v} = v
3734, 36syl6req 1527 . . . . . . . . . . . 12 (x = z, w, vv = ran { x})
3832, 37opeq12d 2499 . . . . . . . . . . 11 (x = z, w, vw, v = ran {dom { x}}, ran { x})
3924, 38opeq12d 2499 . . . . . . . . . 10 (x = z, w, vz, w, v = dom {dom { x}}, ran {dom { x}}, ran { x})
40 sneq 2421 . . . . . . . . . . . . . . 15 (y = z, w, v → {y} = {z, w, v})
4140dmeqd 3319 . . . . . . . . . . . . . 14 (y = z, w, v → dom { y} = dom {z, w, v})
4241unieqd 2516 . . . . . . . . . . . . 13 (y = z, w, vdom { y} = dom {z, w, v})
4321op1sta 3454 . . . . . . . . . . . . 13 dom {z, w, v} = z
4442, 43syl6req 1527 . . . . . . . . . . . 12 (y = z, w, vz = dom { y})
4540rneqd 3347 . . . . . . . . . . . . . . . . 17 (y = z, w, v → ran { y} = ran {z, w, v})
4645unieqd 2516 . . . . . . . . . . . . . . . 16 (y = z, w, vran { y} = ran {z, w, v})
4746sneqd 2423 . . . . . . . . . . . . . . 15 (y = z, w, v → {ran { y}} = {ran {z, w, v}})
4847dmeqd 3319 . . . . . . . . . . . . . 14 (y = z, w, v → dom {ran { y}} = dom {ran {z, w, v}})
4948unieqd 2516 . . . . . . . . . . . . 13 (y = z, w, vdom {ran { y}} = dom {ran {z, w, v}})
50 opex 2788 . . . . . . . . . . . . . . . . . 18 w, v V
5121, 50op2nda 3458 . . . . . . . . . . . . . . . . 17 ran {z, w, v} = w, v
5251sneqi 2422 . . . . . . . . . . . . . . . 16 {ran {z, w, v}} = {w, v}
5352dmeqi 3318 . . . . . . . . . . . . . . 15 dom {ran {z, w, v}} = dom {w, v}
5453unieqi 2515 . . . . . . . . . . . . . 14 dom {ran {z, w, v}} = dom {w, v}
5529op1sta 3454 . . . . . . . . . . . . . 14 dom {w, v} = w
5654, 55eqtr 1498 . . . . . . . . . . . . 13 dom {ran {z, w, v}} = w
5749, 56syl6req 1527 . . . . . . . . . . . 12 (y = z, w, vw = dom {ran { y}})
5844, 57opeq12d 2499 . . . . . . . . . . 11 (y = z, w, vz, w = dom { y}, dom {ran { y}})
5947rneqd 3347 . . . . . . . . . . . . 13 (y = z, w, v → ran {ran { y}} = ran {ran {z, w, v}})
6059unieqd 2516 . . . . . . . . . . . 12 (y = z, w, vran {ran { y}} = ran {ran {z, w, v}})
6152rneqi 3346 . . . . . . . . . . . . . 14 ran {ran {z, w, v}} = ran {w, v}
6261unieqi 2515 . . . . . . . . . . . . 13 ran {ran {z, w, v}} = ran {w, v}
6329, 35op2nda 3458 . . . . . . . . . . . . 13 ran {w, v} = v
6462, 63eqtr 1498 . . . . . . . . . . . 12 ran {ran {z, w, v}} = v
6560, 64syl6req 1527 . . . . . . . . . . 11 (y = z, w, vv = ran {ran { y}})
6658, 65opeq12d 2499 . . . . . . . . . 10 (y = z, w, vz, w, v = dom { y}, dom {ran { y}}, ran {ran { y}})
6739, 66eq2tr 1536 . . . . . . . . 9 ((x = z, w, v y = dom {dom { x}}, ran {dom { x}}, ran { x}) ↔ (y = z, w, v x = dom { y}, dom {ran { y}}, ran {ran { y}}))
68 anass 441 . . . . . . . . 9 (((z A w B) v C) ↔ (z A (w B v C)))
6967, 68anbi12i 484 . . . . . . . 8 (((x = z, w, v y = dom {dom { x}}, ran {dom { x}}, ran { x}) ((z A w B) v C)) ↔ ((y = z, w, v x = dom { y}, dom {ran { y}}, ran {ran { y}}) (z A (w B v C))))
70 an23 487 . . . . . . . 8 (((x = z, w, v ((z A w B) v C)) y = dom {dom { x}}, ran {dom { x}}, ran { x}) ↔ ((x = z, w, v y = dom {dom { x}}, ran {dom { x}}, ran { x}) ((z A w B) v C)))
71 an23 487 . . . . . . . 8 (((y = z, w, v (z A (w B v C))) x = dom { y}, dom {ran { y}}, ran {ran { y}}) ↔ ((y = z, w, v x = dom { y}, dom {ran { y}}, ran {ran { y}}) (z A (w B v C))))
7269, 70, 713bitr4 183 . . . . . . 7 (((x = z, w, v ((z A w B) v C)) y = dom {dom { x}}, ran {dom { x}}, ran { x}) ↔ ((y = z, w, v (z A (w B v C))) x = dom { y}, dom {ran { y}}, ran {ran { y}}))
7372exbii 1053 . . . . . 6 (v((x = z, w, v ((z A w B) v C)) y = dom {dom { x}}, ran {dom { x}}, ran { x}) ↔ v((y = z, w, v (z A (w B v C))) x = dom { y}, dom {ran { y}}, ran {ran { y}}))
74 19.41v 1307 . . . . . 6 (v((x = z, w, v ((z A w B) v C)) y = dom {dom { x}}, ran {dom { x}}, ran { x}) ↔ (v(x = z, w, v ((z A w B) v C)) y = dom {dom { x}}, ran {dom { x}}, ran { x}))
75 19.41v 1307 . . . . . 6 (v((y = z, w, v (z A (w B v C))) x = dom { y}, dom {ran { y}}, ran {ran { y}}) ↔ (v(y = z, w, v (z A (w B v C))) x = dom { y}, dom {ran { y}}, ran {ran { y}}))
7673, 74, 753bitr3 181 . . . . 5 ((v(x = z, w, v ((z A w B) v C)) y = dom {dom { x}}, ran {dom { x}}, ran { x}) ↔ (v(y = z, w, v (z A (w B v C))) x = dom { y}, dom {ran { y}}, ran {ran { y}}))
77762exbii 1054 . . . 4 (zw(v(x = z, w, v ((z A w B) v C)) y = dom {dom { x}}, ran {dom { x}}, ran { x}) ↔ zw(v(y = z, w, v (z A (w B v C))) x = dom { y}, dom {ran { y}}, ran {ran { y}}))
78 19.41vv 1308 . . . 4 (zw(v(x = z, w, v ((z A w B) v C)) y = dom {dom { x}}, ran {dom { x}}, ran { x}) ↔ (zwv(x = z, w, v ((z A w B) v C)) y = dom {dom { x}}, ran {dom { x}}, ran { x}))
79 19.41vv 1308 . . . 4 (zw(v(y = z, w, v (z A (w B v C))) x = dom { y}, dom {ran { y}}, ran {ran { y}}) ↔ (zwv(y = z, w, v (z A (w B v C))) x = dom { y}, dom {ran { y}}, ran {ran { y}}))
8077, 78, 793bitr3 181 . . 3 ((zwv(x = z, w, v ((z A w B) v C)) y = dom {dom { x}}, ran {dom { x}}, ran { x}) ↔ (zwv(y = z, w, v (z A (w B v C))) x = dom { y}, dom {ran { y}}, ran {ran { y}}))
81 elxp 3208 . . . . 5 (x ((A × B) × C) ↔ uv(x = u, v (u (A × B) v C)))
82 excom 1048 . . . . 5 (uv(x = u, v (u (A × B) v C)) ↔ vu(x = u, v (u (A × B) v C)))
83 elxp 3208 . . . . . . . . 9 (u (A × B) ↔ zw(u = z, w (z A w B)))
8483anbi1i 483 . . . . . . . 8 ((u (A × B) (x = u, v v C)) ↔ (zw(u = z, w (z A w B)) (x = u, v v C)))
85 an12 486 . . . . . . . 8 ((x = u, v (u (A × B) v C)) ↔ (u (A × B) (x = u, v v C)))
86 19.41vv 1308 . . . . . . . 8 (zw((u = z, w (z A w B)) (x = u, v v C)) ↔ (zw(u = z, w (z A w B)) (x = u, v v C)))
8784, 85, 863bitr4 183 . . . . . . 7 ((x = u, v (u (A × B) v C)) ↔ zw((u = z, w (z A w B)) (x = u, v v C)))
88872exbii 1054 . . . . . 6 (vu(x = u, v (u (A × B) v C)) ↔ vuzw((u = z, w (z A w B)) (x = u, v v C)))
89 exrot4 1102 . . . . . 6 (vuzw((u = z, w (z A w B)) (x = u, v v C)) ↔ zwvu((u = z, w (z A w B)) (x = u, v v C)))
90 anass 441 . . . . . . . . 9 (((u = z, w (z A w B)) (x = u, v v C)) ↔ (u = z, w ((z A w B) (x = u, v v C))))
9190exbii 1053 . . . . . . . 8 (u((u = z, w (z A w B)) (x = u, v v C)) ↔ u(u = z, w ((z A w B) (x = u, v v C))))
92 opeq1 2491 . . . . . . . . . . . 12 (u = z, wu, v = z, w, v)
9392eqeq2d 1489 . . . . . . . . . . 11 (u = z, w → (x = u, vx = z, w, v))
9493anbi1d 619 . . . . . . . . . 10 (u = z, w → ((x = u, v v C) ↔ (x = z, w, v v C)))
9594anbi2d 618 . . . . . . . . 9 (u = z, w → (((z A w B) (x = u, v v C)) ↔ ((z A w B) (x = z, w, v v C))))
9616, 95ceqsexv 1838 . . . . . . . 8 (u(u = z, w ((z A w B) (x = u, v v C))) ↔ ((z A w B) (x = z, w, v v C)))
97 an12 486 . . . . . . . 8 (((z A w B) (x = z, w, v v C)) ↔ (x = z, w, v ((z A w B) v C)))
9891, 96, 973bitr 177 . . . . . . 7 (u((u = z, w (z A w B)) (x = u, v v C)) ↔ (x = z, w, v ((z A w B) v C)))
99983exbi 1055 . . . . . 6 (zwvu((u = z, w (z A w B)) (x = u, v v C)) ↔ zwv(x = z, w, v ((z A w B) v C)))
10088, 89, 993bitr 177 . . . . 5 (vu(x = u, v (u (A × B) v C)) ↔ zwv(x = z, w, v ((z A w B) v C)))
10181, 82, 1003bitr 177 . . . 4 (x ((A × B) × C) ↔ zwv(x = z, w, v ((z A w &isin