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

Theorem xpassen 3344
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 2488 . . 3 |- (A X. B) e. V
4 xpassen.3 . . 3 |- C e. V
53, 4xpex 2488 . 2 |- ((A X. B) X. C) e. V
6 opex 1893 . . 3 |- <.U.dom {U.dom {x}}, <.U.ran {U.dom {x}}, U.ran {x}>.>. e. V
76a1i 7 . 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 1893 . . 3 |- <.<.U.dom {y}, U.dom {U.ran {y}}>., U.ran {U.ran {y}}>. e. V
98a1i 7 . 2 |- (y e. (A X. (B X. C)) -> <.<.U.dom {y}, U.dom {U.ran {y}}>., U.ran {U.ran {y}}>. e. V)
10 opeq12 1878 . . . . . . . . . . 11 |- ((z = U.dom {U.dom {x}} /\ <.w, v>. = <.U.ran {U.dom {x}}, U.ran {x}>.) -> <.z, <.w, v>.>. = <.U.dom {U.dom {x}}, <.U.ran {U.dom {x}}, U.ran {x}>.>.)
11 sneq 1816 . . . . . . . . . . . . . . . . 17 |- (x = <.<.z, w>., v>. -> {x} = {<.<.z, w>., v>.})
1211dmeqd 2533 . . . . . . . . . . . . . . . 16 |- (x = <.<.z, w>., v>. -> dom {x} = dom {<.<.z, w>., v>.})
1312unieqd 1929 . . . . . . . . . . . . . . 15 |- (x = <.<.z, w>., v>. -> U.dom {x} = U.dom {<.<.z, w>., v>.})
1413sneqd 1818 . . . . . . . . . . . . . 14 |- (x = <.<.z, w>., v>. -> {U.dom {x}} = {U.dom {<.<.z, w>., v>.}})
1514dmeqd 2533 . . . . . . . . . . . . 13 |- (x = <.<.z, w>., v>. -> dom {U.dom {x}} = dom {U.dom {<.<.z, w>., v>.}})
1615unieqd 1929 . . . . . . . . . . . 12 |- (x = <.<.z, w>., v>. -> U.dom {U.dom {x}} = U.dom {U.dom {<.<.z, w>., v>.}})
17 opex 1893 . . . . . . . . . . . . . . . . 17 |- <.z, w>. e. V
1817op1sta 2635 . . . . . . . . . . . . . . . 16 |- U.dom {<.<.z, w>., v>.} = <.z, w>.
1918sneqi 1817 . . . . . . . . . . . . . . 15 |- {U.dom {<.<.z, w>., v>.}} = {<.z, w>.}
2019dmeqi 2532 . . . . . . . . . . . . . 14 |- dom {U.dom {<.<.z, w>., v>.}} = dom {<.z, w>.}
2120unieqi 1928 . . . . . . . . . . . . 13 |- U.dom {U.dom {<.<.z, w>., v>.}} = U.dom {<.z, w>.}
22 visset 1350 . . . . . . . . . . . . . 14 |- z e. V
2322op1sta 2635 . . . . . . . . . . . . 13 |- U.dom {<.z, w>.} = z
2421, 23eqtr 1119 . . . . . . . . . . . 12 |- U.dom {U.dom {<.<.z, w>., v>.}} = z
2516, 24syl6req 1141 . . . . . . . . . . 11 |- (x = <.<.z, w>., v>. -> z = U.dom {U.dom {x}})
26 opeq12 1878 . . . . . . . . . . . 12 |- ((w = U.ran {U.dom {x}} /\ v = U.ran {x}) -> <.w, v>. = <.U.ran {U.dom {x}}, U.ran {x}>.)
2714rneqd 2557 . . . . . . . . . . . . . 14 |- (x = <.<.z, w>., v>. -> ran {U.dom {x}} = ran {U.dom {<.<.z, w>., v>.}})
2827unieqd 1929 . . . . . . . . . . . . 13 |- (x = <.<.z, w>., v>. -> U.ran {U.dom {x}} = U.ran {U.dom {<.<.z, w>., v>.}})
2919rneqi 2556 . . . . . . . . . . . . . . 15 |- ran {U.dom {<.<.z, w>., v>.}} = ran {<.z, w>.}
3029unieqi 1928 . . . . . . . . . . . . . 14 |- U.ran {U.dom {<.<.z, w>., v>.}} = U.ran {<.z, w>.}
31 visset 1350 . . . . . . . . . . . . . . 15 |- w e. V
3222, 31op2nda 2639 . . . . . . . . . . . . . 14 |- U.ran {<.z, w>.} = w
3330, 32eqtr 1119 . . . . . . . . . . . . 13 |- U.ran {U.dom {<.<.z, w>., v>.}} = w
3428, 33syl6req 1141 . . . . . . . . . . . 12 |- (x = <.<.z, w>., v>. -> w = U.ran {U.dom {x}})
3511rneqd 2557 . . . . . . . . . . . . . 14 |- (x = <.<.z, w>., v>. -> ran {x} = ran {<.<.z, w>., v>.})
3635unieqd 1929 . . . . . . . . . . . . 13 |- (x = <.<.z, w>., v>. -> U.ran {x} = U.ran {<.<.z, w>., v>.})
37 visset 1350 . . . . . . . . . . . . . 14 |- v e. V
3817, 37op2nda 2639 . . . . . . . . . . . . 13 |- U.ran {<.<.z, w>., v>.} = v
3936, 38syl6req 1141 . . . . . . . . . . . 12 |- (x = <.<.z, w>., v>. -> v = U.ran {x})
4026, 34, 39sylanc 361 . . . . . . . . . . 11 |- (x = <.<.z, w>., v>. -> <.w, v>. = <.U.ran {U.dom {x}}, U.ran {x}>.)
4110, 25, 40sylanc 361 . . . . . . . . . 10 |- (x = <.<.z, w>., v>. -> <.z, <.w, v>.>. = <.U.dom {U.dom {x}}, <.U.ran {U.dom {x}}, U.ran {x}>.>.)
42 opeq12 1878 . . . . . . . . . . 11 |- ((<.z, w>. = <.U.dom {y}, U.dom {U.ran {y}}>. /\ v = U.ran {U.ran {y}}) -> <.<.z, w>., v>. = <.<.U.dom {y}, U.dom {U.ran {y}}>., U.ran {U.ran {y}}>.)
43 opeq12 1878 . . . . . . . . . . . 12 |- ((z = U.dom {y} /\ w = U.dom {U.ran {y}}) -> <.z, w>. = <.U.dom {y}, U.dom {U.ran {y}}>.)
44 sneq 1816 . . . . . . . . . . . . . . 15 |- (y = <.z, <.w, v>.>. -> {y} = {<.z, <.w, v>.>.})
4544dmeqd 2533 . . . . . . . . . . . . . 14 |- (y = <.z, <.w, v>.>. -> dom {y} = dom {<.z, <.w, v>.>.})
4645unieqd 1929 . . . . . . . . . . . . 13 |- (y = <.z, <.w, v>.>. -> U.dom {y} = U.dom {<.z, <.w, v>.>.})
4722op1sta 2635 . . . . . . . . . . . . 13 |- U.dom {<.z, <.w, v>.>.} = z
4846, 47syl6req 1141 . . . . . . . . . . . 12 |- (y = <.z, <.w, v>.>. -> z = U.dom {y})
4944rneqd 2557 . . . . . . . . . . . . . . . . 17 |- (y = <.z, <.w, v>.>. -> ran {y} = ran {<.z, <.w, v>.>.})
5049unieqd 1929 . . . . . . . . . . . . . . . 16 |- (y = <.z, <.w, v>.>. -> U.ran {y} = U.ran {<.z, <.w, v>.>.})
5150sneqd 1818 . . . . . . . . . . . . . . 15 |- (y = <.z, <.w, v>.>. -> {U.ran {y}} = {U.ran {<.z, <.w, v>.>.}})
5251dmeqd 2533 . . . . . . . . . . . . . 14 |- (y = <.z, <.w, v>.>. -> dom {U.ran {y}} = dom {U.ran {<.z, <.w, v>.>.}})
5352unieqd 1929 . . . . . . . . . . . . 13 |- (y = <.z, <.w, v>.>. -> U.dom {U.ran {y}} = U.dom {U.ran {<.z, <.w, v>.>.}})
54 opex 1893 . . . . . . . . . . . . . . . . . 18 |- <.w, v>. e. V
5522, 54op2nda 2639 . . . . . . . . . . . . . . . . 17 |- U.ran {<.z, <.w, v>.>.} = <.w, v>.
5655sneqi 1817 . . . . . . . . . . . . . . . 16 |- {U.ran {<.z, <.w, v>.>.}} = {<.w, v>.}
5756dmeqi 2532 . . . . . . . . . . . . . . 15 |- dom {U.ran {<.z, <.w, v>.>.}} = dom {<.w, v>.}
5857unieqi 1928 . . . . . . . . . . . . . 14 |- U.dom {U.ran {<.z, <.w, v>.>.}} = U.dom {<.w, v>.}
5931op1sta 2635 . . . . . . . . . . . . . 14 |- U.dom {<.w, v>.} = w
6058, 59eqtr 1119 . . . . . . . . . . . . 13 |- U.dom {U.ran {<.z, <.w, v>.>.}} = w
6153, 60syl6req 1141 . . . . . . . . . . . 12 |- (y = <.z, <.w, v>.>. -> w = U.dom {U.ran {y}})
6243, 48, 61sylanc 361 . . . . . . . . . . 11 |- (y = <.z, <.w, v>.>. -> <.z, w>. = <.U.dom {y}, U.dom {U.ran {y}}>.)
6351rneqd 2557 . . . . . . . . . . . . 13 |- (y = <.z, <.w, v>.>. -> ran {U.ran {y}} = ran {U.ran {<.z, <.w, v>.>.}})
6463unieqd 1929 . . . . . . . . . . . 12 |- (y = <.z, <.w, v>.>. -> U.ran {U.ran {y}} = U.ran {U.ran {<.z, <.w, v>.>.}})
6556rneqi 2556 . . . . . . . . . . . . . 14 |- ran {U.ran {<.z, <.w, v>.>.}} = ran {<.w, v>.}
6665unieqi 1928 . . . . . . . . . . . . 13 |- U.ran {U.ran {<.z, <.w, v>.>.}} = U.ran {<.w, v>.}
6731, 37op2nda 2639 . . . . . . . . . . . . 13 |- U.ran {<.w, v>.} = v
6866, 67eqtr 1119 . . . . . . . . . . . 12 |- U.ran {U.ran {<.z, <.w, v>.>.}} = v
6964, 68syl6req 1141 . . . . . . . . . . 11 |- (y = <.z, <.w, v>.>. -> v = U.ran {U.ran {y}})
7042, 62, 69sylanc 361 . . . . . . . . . 10