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

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

Proof of Theorem xpassen
StepHypRef Expression
1 xpassen.1 . . . 4 |- A e. V
2 xpassen.2 . . . 4 |- B e. V
31, 2xpex 3260 . . 3 |- (A X. B) e. V
4 xpassen.3 . . 3 |- C e. V
53, 4xpex 3260 . 2 |- ((A X. B) X. C) e. V
6 opex 2782 . . 3 |- <.U.dom {U.dom { x}}, <.U.ran {U.dom { x}}, U.ran { x}>.>. e. V
76a1i 8 . 2 |- (x e. ((A X. B) X. C) -> <.U.dom {U.dom { x}}, <.U.ran {U.dom { x}}, U.ran { x}>.>. e. V)
8 opex 2782 . . 3 |- <.<.U.dom { y}, U.dom {U.ran { y}}>., U.ran {U.ran { y}}>. e. V
98a1i 8 . 2 |- (y e. (A X. (B X. C)) -> <.<.U.dom { y}, U.dom {U.ran { y}}>., U.ran {U.ran { y}}>. e. V)
10 sneq 2417 . . . . . . . . . . . . . . . . 17 |- (x = <.<.z, w>., v>. -> {x} = {<.<.z, w>., v>.})
1110dmeqd 3313 . . . . . . . . . . . . . . . 16 |- (x = <.<.z, w>., v>. -> dom { x} = dom {<.<.z, w>., v>.})
1211unieqd 2512 . . . . . . . . . . . . . . 15 |- (x = <.<.z, w>., v>. -> U.dom { x} = U.dom {<.<.z, w>., v>.})
1312sneqd 2419 . . . . . . . . . . . . . 14 |- (x = <.<.z, w>., v>. -> {U.dom { x}} = {U.dom {<.<.z, w>., v>.}})
1413dmeqd 3313 . . . . . . . . . . . . 13 |- (x = <.<.z, w>., v>. -> dom {U.dom { x}} = dom {U.dom {<.<.z, w>., v>.}})
1514unieqd 2512 . . . . . . . . . . . 12 |- (x = <.<.z, w>., v>. -> U.dom {U.dom { x}} = U.dom {U.dom {<.<.z, w>., v>.}})
16 opex 2782 . . . . . . . . . . . . . . . . 17 |- <.z, w>. e. V
1716op1sta 3448 . . . . . . . . . . . . . . . 16 |- U.dom {<.<.z, w>., v>.} = <.z, w>.
1817sneqi 2418 . . . . . . . . . . . . . . 15 |- {U.dom {<.<.z, w>., v>.}} = {<.z, w>.}
1918dmeqi 3312 . . . . . . . . . . . . . 14 |- dom {U.dom {<.<.z, w>., v>.}} = dom {<.z, w>.}
2019unieqi 2511 . . . . . . . . . . . . 13 |- U.dom {U.dom {<.<.z, w>., v>.}} = U.dom {<.z, w>.}
21 visset 1813 . . . . . . . . . . . . . 14 |- z e. V
2221op1sta 3448 . . . . . . . . . . . . 13 |- U.dom {<.z, w>.} = z
2320, 22eqtr 1495 . . . . . . . . . . . 12 |- U.dom {U.dom {<.<.z, w>., v>.}} = z
2415, 23syl6req 1524 . . . . . . . . . . 11 |- (x = <.<.z, w>., v>. -> z = U.dom {U.dom { x}})
2513rneqd 3341 . . . . . . . . . . . . . 14 |- (x = <.<.z, w>., v>. -> ran {U.dom { x}} = ran {U.dom {<.<.z, w>., v>.}})
2625unieqd 2512 . . . . . . . . . . . . 13 |- (x = <.<.z, w>., v>. -> U.ran {U.dom { x}} = U.ran {U.dom {<.<.z, w>., v>.}})
2718rneqi 3340 . . . . . . . . . . . . . . 15 |- ran {U.dom {<.<.z, w>., v>.}} = ran {<.z, w>.}
2827unieqi 2511 . . . . . . . . . . . . . 14 |- U.ran {U.dom {<.<.z, w>., v>.}} = U.ran {<.z, w>.}
29 visset 1813 . . . . . . . . . . . . . . 15 |- w e. V
3021, 29op2nda 3452 . . . . . . . . . . . . . 14 |- U.ran {<.z, w>.} = w
3128, 30eqtr 1495 . . . . . . . . . . . . 13 |- U.ran {U.dom {<.<.z, w>., v>.}} = w
3226, 31syl6req 1524 . . . . . . . . . . . 12 |- (x = <.<.z, w>., v>. -> w = U.ran {U.dom { x}})
3310rneqd 3341 . . . . . . . . . . . . . 14 |- (x = <.<.z, w>., v>. -> ran { x} = ran {<.<.z, w>., v>.})
3433unieqd 2512 . . . . . . . . . . . . 13 |- (x = <.<.z, w>., v>. -> U.ran { x} = U.ran {<.<.z, w>., v>.})
35 visset 1813 . . . . . . . . . . . . . 14 |- v e. V
3616, 35op2nda 3452 . . . . . . . . . . . . 13 |- U.ran {<.<.z, w>., v>.} = v
3734, 36syl6req 1524 . . . . . . . . . . . 12 |- (x = <.<.z, w>., v>. -> v = U.ran { x})
3832, 37opeq12d 2495 . . . . . . . . . . 11 |- (x = <.<.z, w>., v>. -> <.w, v>. = <.U.ran {U.dom { x}}, U.ran { x}>.)
3924, 38opeq12d 2495 . . . . . . . . . 10 |- (x = <.<.z, w>., v>. -> <.z, <.w, v>.>. = <.U.dom {U.dom { x}}, <.U.ran {U.dom { x}}, U.ran { x}>.>.)
40 sneq 2417 . . . . . . . . . . . . . . 15 |- (y = <.z, <.w, v>.>. -> {y} = {<.z, <.w, v>.>.})
4140dmeqd 3313 . . . . . . . . . . . . . 14 |- (y = <.z, <.w, v>.>. -> dom { y} = dom {<.z, <.w, v>.>.})
4241unieqd 2512 . . . . . . . . . . . . 13 |- (y = <.z, <.w, v>.>. -> U.dom { y} = U.dom {<.z, <.w, v>.>.})
4321op1sta 3448 . . . . . . . . . . . . 13 |- U.dom {<.z, <.w, v>.>.} = z
4442, 43syl6req 1524 . . . . . . . . . . . 12 |- (y = <.z, <.w, v>.>. -> z = U.dom { y})
4540rneqd 3341 . . . . . . . . . . . . . . . . 17 |- (y = <.z, <.w, v>.>. -> ran { y} = ran {<.z, <.w, v>.>.})
4645unieqd 2512 . . . . . . . . . . . . . . . 16 |- (y = <.z, <.w, v>.>. -> U.ran { y} = U.ran {<.z, <.w, v>.>.})
4746sneqd 2419 . . . . . . . . . . . . . . 15 |- (y = <.z, <.w, v>.>. -> {U.ran { y}} = {U.ran {<.z, <.w, v>.>.}})
4847dmeqd 3313 . . . . . . . . . . . . . 14 |- (y = <.z, <.w, v>.>. -> dom {U.ran { y}} = dom {U.ran {<.z, <.w, v>.>.}})
4948unieqd 2512 . . . . . . . . . . . . 13 |- (y = <.z, <.w, v>.>. -> U.dom {U.ran { y}} = U.dom {U.ran {<.z, <.w, v>.>.}})
50 opex 2782 . . . . . . . . . . . . . . . . . 18 |- <.w, v>. e. V
5121, 50op2nda 3452 . . . . . . . . . . . . . . . . 17 |- U.ran {<.z, <.w, v>.>.} = <.w, v>.
5251sneqi 2418 . . . . . . . . . . . . . . . 16 |- {U.ran {<.z, <.w, v>.>.}} = {<.w, v>.}
5352dmeqi 3312 . . . . . . . . . . . . . . 15 |- dom {U.ran {<.z, <.w, v>.>.}} = dom {<.w, v>.}
5453unieqi 2511 . . . . . . . . . . . . . 14 |- U.dom {U.ran {<.z, <.w, v>.>.}} = U.dom {<.w, v>.}
5529op1sta 3448 . . . . . . . . . . . . . 14 |- U.dom {<.w, v>.} = w
5654, 55eqtr 1495 . . . . . . . . . . . . 13 |- U.dom {U.ran {<.z, <.w, v>.>.}} = w
5749, 56syl6req 1524 . . . . . . . . . . . 12 |- (y = <.z, <.w, v>.>. -> w = U.dom {U.ran { y}})
5844, 57opeq12d 2495 . . . . . . . . . . 11 |- (y = <.z, <.w, v>.>. -> <.z, w>. = <.U.dom { y}, U.dom {U.ran { y}}>.)
5947rneqd 3341 . . . . . . . . . . . . 13 |- (y = <.z, <.w, v>.>. -> ran {U.ran { y}} = ran {U.ran {<.z, <.w, v>.>.}})
6059unieqd 2512 . . . . . . . . . . . 12 |- (y = <.z, <.w, v>.>. -> U.ran {U.ran { y}} = U.ran {U.ran {<.z, <.w, v>.>.}})
6152rneqi 3340 . . . . . . . . . . . . . 14 |- ran {U.ran {<.z, <.w, v>.>.}} = ran {<.w, v>.}
6261unieqi 2511 . . . . . . . . . . . . 13 |- U.ran {U.ran {<.z, <.w, v>.>.}} = U.ran {<.w, v>.}
6329, 35op2nda 3452 . . . . . . . . . . . . 13 |- U.ran {<.w, v>.} = v
6462, 63eqtr 1495 . . . . . . . . . . . 12 |- U.ran {U.ran {<.z, <.w, v>.>.}} = v
6560, 64syl6req 1524 . . . . . . . . . . 11 |- (y = <.z, <.w, v>.>. -> v = U.ran {U.ran { y}})
6658, 65opeq12d 2495 . . . . . . . . . 10 |- (y = <.z, <.w, v>.>. -> <.<.z, w>., v>. = <.<.U.dom { y}, U.dom {U.ran { y}}>., U.ran {U.ran { y}}>.)
6739, 66eq2tr 1533 . . . . . . . . 9 |- ((x = <.<.z, w>., v>. /\ y = <.U.dom {U.dom { x}}, <.U.ran {U.dom { x}}, U.ran { x}>.>.) <-> (y = <.z, <.w, v>.>. /\ x = <.<.U.dom { y}, U.dom {U.ran { y}}>., U.ran {U.ran { y}}>.))
68 anass 439 . . . . . . . . 9 |- (((z e. A /\ w e. B) /\ v e. C) <-> (z e. A /\ (w e. B /\ v e. C)))
6967, 68anbi12i 482 . . . . . . . 8 |- (((x = <.<.z