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

Theorem xp11 6141
Description: The Cartesian product of nonempty classes is a one-to-one "function" of its two "arguments". In other words, two Cartesian products, at least one with nonempty factors, are equal if and only if their respective factors are equal. (Contributed by NM, 31-May-2008.)
Assertion
Ref Expression
xp11 ((𝐴 ≠ ∅ ∧ 𝐵 ≠ ∅) → ((𝐴 × 𝐵) = (𝐶 × 𝐷) ↔ (𝐴 = 𝐶𝐵 = 𝐷)))

Proof of Theorem xp11
StepHypRef Expression
1 xpnz 6125 . . 3 ((𝐴 ≠ ∅ ∧ 𝐵 ≠ ∅) ↔ (𝐴 × 𝐵) ≠ ∅)
2 anidm 564 . . . . . 6 (((𝐴 × 𝐵) ≠ ∅ ∧ (𝐴 × 𝐵) ≠ ∅) ↔ (𝐴 × 𝐵) ≠ ∅)
3 neeq1 2995 . . . . . . 7 ((𝐴 × 𝐵) = (𝐶 × 𝐷) → ((𝐴 × 𝐵) ≠ ∅ ↔ (𝐶 × 𝐷) ≠ ∅))
43anbi2d 631 . . . . . 6 ((𝐴 × 𝐵) = (𝐶 × 𝐷) → (((𝐴 × 𝐵) ≠ ∅ ∧ (𝐴 × 𝐵) ≠ ∅) ↔ ((𝐴 × 𝐵) ≠ ∅ ∧ (𝐶 × 𝐷) ≠ ∅)))
52, 4bitr3id 285 . . . . 5 ((𝐴 × 𝐵) = (𝐶 × 𝐷) → ((𝐴 × 𝐵) ≠ ∅ ↔ ((𝐴 × 𝐵) ≠ ∅ ∧ (𝐶 × 𝐷) ≠ ∅)))
6 eqimss 3994 . . . . . . . 8 ((𝐴 × 𝐵) = (𝐶 × 𝐷) → (𝐴 × 𝐵) ⊆ (𝐶 × 𝐷))
7 ssxpb 6140 . . . . . . . 8 ((𝐴 × 𝐵) ≠ ∅ → ((𝐴 × 𝐵) ⊆ (𝐶 × 𝐷) ↔ (𝐴𝐶𝐵𝐷)))
86, 7syl5ibcom 245 . . . . . . 7 ((𝐴 × 𝐵) = (𝐶 × 𝐷) → ((𝐴 × 𝐵) ≠ ∅ → (𝐴𝐶𝐵𝐷)))
9 eqimss2 3995 . . . . . . . 8 ((𝐴 × 𝐵) = (𝐶 × 𝐷) → (𝐶 × 𝐷) ⊆ (𝐴 × 𝐵))
10 ssxpb 6140 . . . . . . . 8 ((𝐶 × 𝐷) ≠ ∅ → ((𝐶 × 𝐷) ⊆ (𝐴 × 𝐵) ↔ (𝐶𝐴𝐷𝐵)))
119, 10syl5ibcom 245 . . . . . . 7 ((𝐴 × 𝐵) = (𝐶 × 𝐷) → ((𝐶 × 𝐷) ≠ ∅ → (𝐶𝐴𝐷𝐵)))
128, 11anim12d 610 . . . . . 6 ((𝐴 × 𝐵) = (𝐶 × 𝐷) → (((𝐴 × 𝐵) ≠ ∅ ∧ (𝐶 × 𝐷) ≠ ∅) → ((𝐴𝐶𝐵𝐷) ∧ (𝐶𝐴𝐷𝐵))))
13 an4 657 . . . . . . 7 (((𝐴𝐶𝐵𝐷) ∧ (𝐶𝐴𝐷𝐵)) ↔ ((𝐴𝐶𝐶𝐴) ∧ (𝐵𝐷𝐷𝐵)))
14 eqss 3951 . . . . . . . 8 (𝐴 = 𝐶 ↔ (𝐴𝐶𝐶𝐴))
15 eqss 3951 . . . . . . . 8 (𝐵 = 𝐷 ↔ (𝐵𝐷𝐷𝐵))
1614, 15anbi12i 629 . . . . . . 7 ((𝐴 = 𝐶𝐵 = 𝐷) ↔ ((𝐴𝐶𝐶𝐴) ∧ (𝐵𝐷𝐷𝐵)))
1713, 16bitr4i 278 . . . . . 6 (((𝐴𝐶𝐵𝐷) ∧ (𝐶𝐴𝐷𝐵)) ↔ (𝐴 = 𝐶𝐵 = 𝐷))
1812, 17imbitrdi 251 . . . . 5 ((𝐴 × 𝐵) = (𝐶 × 𝐷) → (((𝐴 × 𝐵) ≠ ∅ ∧ (𝐶 × 𝐷) ≠ ∅) → (𝐴 = 𝐶𝐵 = 𝐷)))
195, 18sylbid 240 . . . 4 ((𝐴 × 𝐵) = (𝐶 × 𝐷) → ((𝐴 × 𝐵) ≠ ∅ → (𝐴 = 𝐶𝐵 = 𝐷)))
2019com12 32 . . 3 ((𝐴 × 𝐵) ≠ ∅ → ((𝐴 × 𝐵) = (𝐶 × 𝐷) → (𝐴 = 𝐶𝐵 = 𝐷)))
211, 20sylbi 217 . 2 ((𝐴 ≠ ∅ ∧ 𝐵 ≠ ∅) → ((𝐴 × 𝐵) = (𝐶 × 𝐷) → (𝐴 = 𝐶𝐵 = 𝐷)))
22 xpeq12 5657 . 2 ((𝐴 = 𝐶𝐵 = 𝐷) → (𝐴 × 𝐵) = (𝐶 × 𝐷))
2321, 22impbid1 225 1 ((𝐴 ≠ ∅ ∧ 𝐵 ≠ ∅) → ((𝐴 × 𝐵) = (𝐶 × 𝐷) ↔ (𝐴 = 𝐶𝐵 = 𝐷)))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wb 206  wa 395   = wceq 1542  wne 2933  wss 3903  c0 4287   × cxp 5630
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1797  ax-4 1811  ax-5 1912  ax-6 1969  ax-7 2010  ax-8 2116  ax-9 2124  ax-11 2163  ax-ext 2709  ax-sep 5243  ax-pr 5379
This theorem depends on definitions:  df-bi 207  df-an 396  df-or 849  df-3an 1089  df-tru 1545  df-fal 1555  df-ex 1782  df-sb 2069  df-clab 2716  df-cleq 2729  df-clel 2812  df-ne 2934  df-ral 3053  df-rex 3063  df-rab 3402  df-v 3444  df-dif 3906  df-un 3908  df-in 3910  df-ss 3920  df-nul 4288  df-if 4482  df-sn 4583  df-pr 4585  df-op 4589  df-br 5101  df-opab 5163  df-xp 5638  df-rel 5639  df-cnv 5640  df-dm 5642  df-rn 5643
This theorem is referenced by:  xpcan  6142  xpcan2  6143  fseqdom  9948  axcc2lem  10358  lmodfopnelem1  20861  xppss12  42598
  Copyright terms: Public domain W3C validator