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

Theorem xp11 6185
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 6168 . . 3 ((𝐴 ≠ ∅ ∧ 𝐵 ≠ ∅) ↔ (𝐴 × 𝐵) ≠ ∅)
2 anidm 575 . . . . . 6 (((𝐴 × 𝐵) ≠ ∅ ∧ (𝐴 × 𝐵) ≠ ∅) ↔ (𝐴 × 𝐵) ≠ ∅)
3 neeq1 3021 . . . . . . 7 ((𝐴 × 𝐵) = (𝐶 × 𝐷) → ((𝐴 × 𝐵) ≠ ∅ ↔ (𝐶 × 𝐷) ≠ ∅))
43anbi2d 642 . . . . . 6 ((𝐴 × 𝐵) = (𝐶 × 𝐷) → (((𝐴 × 𝐵) ≠ ∅ ∧ (𝐴 × 𝐵) ≠ ∅) ↔ ((𝐴 × 𝐵) ≠ ∅ ∧ (𝐶 × 𝐷) ≠ ∅)))
52, 4bitr3id 288 . . . . 5 ((𝐴 × 𝐵) = (𝐶 × 𝐷) → ((𝐴 × 𝐵) ≠ ∅ ↔ ((𝐴 × 𝐵) ≠ ∅ ∧ (𝐶 × 𝐷) ≠ ∅)))
6 eqimss 3971 . . . . . . . 8 ((𝐴 × 𝐵) = (𝐶 × 𝐷) → (𝐴 × 𝐵) ⊆ (𝐶 × 𝐷))
7 ssxpb 6184 . . . . . . . 8 ((𝐴 × 𝐵) ≠ ∅ → ((𝐴 × 𝐵) ⊆ (𝐶 × 𝐷) ↔ (𝐴 ⊆ 𝐶 ∧ 𝐵 ⊆ 𝐷)))
86, 7syl5ibcom 248 . . . . . . 7 ((𝐴 × 𝐵) = (𝐶 × 𝐷) → ((𝐴 × 𝐵) ≠ ∅ → (𝐴 ⊆ 𝐶 ∧ 𝐵 ⊆ 𝐷)))
9 eqimss2 3972 . . . . . . . 8 ((𝐴 × 𝐵) = (𝐶 × 𝐷) → (𝐶 × 𝐷) ⊆ (𝐴 × 𝐵))
10 ssxpb 6184 . . . . . . . 8 ((𝐶 × 𝐷) ≠ ∅ → ((𝐶 × 𝐷) ⊆ (𝐴 × 𝐵) ↔ (𝐶 ⊆ 𝐴 ∧ 𝐷 ⊆ 𝐵)))
119, 10syl5ibcom 248 . . . . . . 7 ((𝐴 × 𝐵) = (𝐶 × 𝐷) → ((𝐶 × 𝐷) ≠ ∅ → (𝐶 ⊆ 𝐴 ∧ 𝐷 ⊆ 𝐵)))
128, 11anim12d 621 . . . . . 6 ((𝐴 × 𝐵) = (𝐶 × 𝐷) → (((𝐴 × 𝐵) ≠ ∅ ∧ (𝐶 × 𝐷) ≠ ∅) → ((𝐴 ⊆ 𝐶 ∧ 𝐵 ⊆ 𝐷) ∧ (𝐶 ⊆ 𝐴 ∧ 𝐷 ⊆ 𝐵))))
13 an4 669 . . . . . . 7 (((𝐴 ⊆ 𝐶 ∧ 𝐵 ⊆ 𝐷) ∧ (𝐶 ⊆ 𝐴 ∧ 𝐷 ⊆ 𝐵)) ↔ ((𝐴 ⊆ 𝐶 ∧ 𝐶 ⊆ 𝐴) ∧ (𝐵 ⊆ 𝐷 ∧ 𝐷 ⊆ 𝐵)))
14 eqss 3928 . . . . . . . 8 (𝐴 = 𝐶 ↔ (𝐴 ⊆ 𝐶 ∧ 𝐶 ⊆ 𝐴))
15 eqss 3928 . . . . . . . 8 (𝐵 = 𝐷 ↔ (𝐵 ⊆ 𝐷 ∧ 𝐷 ⊆ 𝐵))
1614, 15anbi12i 640 . . . . . . 7 ((𝐴 = 𝐶 ∧ 𝐵 = 𝐷) ↔ ((𝐴 ⊆ 𝐶 ∧ 𝐶 ⊆ 𝐴) ∧ (𝐵 ⊆ 𝐷 ∧ 𝐷 ⊆ 𝐵)))
1713, 16bitr4i 281 . . . . . 6 (((𝐴 ⊆ 𝐶 ∧ 𝐵 ⊆ 𝐷) ∧ (𝐶 ⊆ 𝐴 ∧ 𝐷 ⊆ 𝐵)) ↔ (𝐴 = 𝐶 ∧ 𝐵 = 𝐷))
1812, 17imbitrdi 254 . . . . 5 ((𝐴 × 𝐵) = (𝐶 × 𝐷) → (((𝐴 × 𝐵) ≠ ∅ ∧ (𝐶 × 𝐷) ≠ ∅) → (𝐴 = 𝐶 ∧ 𝐵 = 𝐷)))
195, 18sylbid 243 . . . 4 ((𝐴 × 𝐵) = (𝐶 × 𝐷) → ((𝐴 × 𝐵) ≠ ∅ → (𝐴 = 𝐶 ∧ 𝐵 = 𝐷)))
2019com12 33 . . 3 ((𝐴 × 𝐵) ≠ ∅ → ((𝐴 × 𝐵) = (𝐶 × 𝐷) → (𝐴 = 𝐶 ∧ 𝐵 = 𝐷)))
211, 20sylbi 220 . 2 ((𝐴 ≠ ∅ ∧ 𝐵 ≠ ∅) → ((𝐴 × 𝐵) = (𝐶 × 𝐷) → (𝐴 = 𝐶 ∧ 𝐵 = 𝐷)))
22 xpeq12 5683 . 2 ((𝐴 = 𝐶 ∧ 𝐵 = 𝐷) → (𝐴 × 𝐵) = (𝐶 × 𝐷))
2321, 22impbid1 228 1 ((𝐴 ≠ ∅ ∧ 𝐵 ≠ ∅) → ((𝐴 × 𝐵) = (𝐶 × 𝐷) ↔ (𝐴 = 𝐶 ∧ 𝐵 = 𝐷)))
Colors of variables:    wff setvar class
This proof depends on syntax axioms:   → wi 4   ↔ wb 209   ∧ wa 401   = wceq 1570   ≠ wne 2959   ⊆ wss 3900  ∅c0 4281   × cxp 5656
This proof depends on axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1828  ax-4 1842  ax-5 1945  ax-6 2002  ax-7 2043  ax-8 2149  ax-9 2157  ax-ext 2735  ax-sep 5255  ax-pr 5398
This proof depends on definitions:  df-bi 210  df-an 402  df-or 862  df-3an 1105  df-tru 1573  df-fal 1583  df-ex 1813  df-sb 2102  df-clab 2742  df-cleq 2755  df-clel 2839  df-ne 2960  df-ral 3081  df-rex 3091  df-rab 3417  df-v 3456  df-ss 3901  df-dif 4050  df-in 4094  df-un 4154  df-nul 4282  df-if 4486  df-sn 4589  df-pr 4591  df-op 4841  df-br 5109  df-opab 5174  df-xp 5664  df-rel 5665  df-cnv 5666  df-dm 5668  df-rn 5669
This theorem is used by:  xpcan  6186  xpcan2  6187  fseqdom  10144  axcc2lem  10553  degenmgmnfn  19186  lmodfopnelem1  21224  xppss12  43550
  Copyright terms: Public domain W3C validator