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

Theorem 2mo 2674
Description: Two ways of expressing "there exists at most one ordered pair 𝑥, 𝑦 such that 𝜑(𝑥, 𝑦) holds. See also 2mo2 2673. (Contributed by NM, 2-Feb-2005.) (Revised by Mario Carneiro, 17-Oct-2016.) (Proof shortened by Wolf Lammen, 2-Nov-2019.)
Assertion
Ref Expression
2mo (∃𝑧𝑤𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤)) ↔ ∀𝑥𝑦𝑧𝑤((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)))
Distinct variable groups:   𝑥,𝑦,𝑧,𝑤   𝜑,𝑧,𝑤
Allowed substitution hints:   𝜑(𝑥,𝑦)

Proof of Theorem 2mo
StepHypRef Expression
1 2mo2 2673 . . . 4 ((∃*𝑥𝑦𝜑 ∧ ∃*𝑦𝑥𝜑) ↔ ∃𝑧𝑤𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤)))
2 nfmo1 2566 . . . . . . 7 𝑥∃*𝑥𝑦𝜑
3 nftru 1767 . . . . . . . . 9 𝑦
4 nfe1 2085 . . . . . . . . . 10 𝑥𝑥𝜑
54a1i 11 . . . . . . . . 9 (⊤ → Ⅎ𝑥𝑥𝜑)
63, 5nfmodv 2568 . . . . . . . 8 (⊤ → Ⅎ𝑥∃*𝑦𝑥𝜑)
76mptru 1514 . . . . . . 7 𝑥∃*𝑦𝑥𝜑
82, 7nfan 1862 . . . . . 6 𝑥(∃*𝑥𝑦𝜑 ∧ ∃*𝑦𝑥𝜑)
9 nftru 1767 . . . . . . . . . 10 𝑥
10 nfe1 2085 . . . . . . . . . . 11 𝑦𝑦𝜑
1110a1i 11 . . . . . . . . . 10 (⊤ → Ⅎ𝑦𝑦𝜑)
129, 11nfmodv 2568 . . . . . . . . 9 (⊤ → Ⅎ𝑦∃*𝑥𝑦𝜑)
1312mptru 1514 . . . . . . . 8 𝑦∃*𝑥𝑦𝜑
14 nfmo1 2566 . . . . . . . 8 𝑦∃*𝑦𝑥𝜑
1513, 14nfan 1862 . . . . . . 7 𝑦(∃*𝑥𝑦𝜑 ∧ ∃*𝑦𝑥𝜑)
16 19.8a 2107 . . . . . . . . 9 (𝜑 → ∃𝑦𝜑)
17 spsbe 2031 . . . . . . . . . 10 ([𝑤 / 𝑦]𝜑 → ∃𝑦𝜑)
1817sbimi 2023 . . . . . . . . 9 ([𝑧 / 𝑥][𝑤 / 𝑦]𝜑 → [𝑧 / 𝑥]∃𝑦𝜑)
19 nfv 1873 . . . . . . . . . . . 12 𝑧𝑦𝜑
2019mo3 2573 . . . . . . . . . . 11 (∃*𝑥𝑦𝜑 ↔ ∀𝑥𝑧((∃𝑦𝜑 ∧ [𝑧 / 𝑥]∃𝑦𝜑) → 𝑥 = 𝑧))
2120biimpi 208 . . . . . . . . . 10 (∃*𝑥𝑦𝜑 → ∀𝑥𝑧((∃𝑦𝜑 ∧ [𝑧 / 𝑥]∃𝑦𝜑) → 𝑥 = 𝑧))
222119.21bbi 2116 . . . . . . . . 9 (∃*𝑥𝑦𝜑 → ((∃𝑦𝜑 ∧ [𝑧 / 𝑥]∃𝑦𝜑) → 𝑥 = 𝑧))
2316, 18, 22syl2ani 597 . . . . . . . 8 (∃*𝑥𝑦𝜑 → ((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → 𝑥 = 𝑧))
24 19.8a 2107 . . . . . . . . 9 (𝜑 → ∃𝑥𝜑)
25 sbcom2 2408 . . . . . . . . . 10 ([𝑧 / 𝑥][𝑤 / 𝑦]𝜑 ↔ [𝑤 / 𝑦][𝑧 / 𝑥]𝜑)
26 spsbe 2031 . . . . . . . . . . 11 ([𝑧 / 𝑥]𝜑 → ∃𝑥𝜑)
2726sbimi 2023 . . . . . . . . . 10 ([𝑤 / 𝑦][𝑧 / 𝑥]𝜑 → [𝑤 / 𝑦]∃𝑥𝜑)
2825, 27sylbi 209 . . . . . . . . 9 ([𝑧 / 𝑥][𝑤 / 𝑦]𝜑 → [𝑤 / 𝑦]∃𝑥𝜑)
29 nfv 1873 . . . . . . . . . . . 12 𝑤𝑥𝜑
3029mo3 2573 . . . . . . . . . . 11 (∃*𝑦𝑥𝜑 ↔ ∀𝑦𝑤((∃𝑥𝜑 ∧ [𝑤 / 𝑦]∃𝑥𝜑) → 𝑦 = 𝑤))
3130biimpi 208 . . . . . . . . . 10 (∃*𝑦𝑥𝜑 → ∀𝑦𝑤((∃𝑥𝜑 ∧ [𝑤 / 𝑦]∃𝑥𝜑) → 𝑦 = 𝑤))
323119.21bbi 2116 . . . . . . . . 9 (∃*𝑦𝑥𝜑 → ((∃𝑥𝜑 ∧ [𝑤 / 𝑦]∃𝑥𝜑) → 𝑦 = 𝑤))
3324, 28, 32syl2ani 597 . . . . . . . 8 (∃*𝑦𝑥𝜑 → ((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → 𝑦 = 𝑤))
3423, 33anim12ii 608 . . . . . . 7 ((∃*𝑥𝑦𝜑 ∧ ∃*𝑦𝑥𝜑) → ((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)))
3515, 34alrimi 2141 . . . . . 6 ((∃*𝑥𝑦𝜑 ∧ ∃*𝑦𝑥𝜑) → ∀𝑦((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)))
368, 35alrimi 2141 . . . . 5 ((∃*𝑥𝑦𝜑 ∧ ∃*𝑦𝑥𝜑) → ∀𝑥𝑦((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)))
3736alrimivv 1887 . . . 4 ((∃*𝑥𝑦𝜑 ∧ ∃*𝑦𝑥𝜑) → ∀𝑧𝑤𝑥𝑦((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)))
381, 37sylbir 227 . . 3 (∃𝑧𝑤𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤)) → ∀𝑧𝑤𝑥𝑦((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)))
39 nfs1v 2200 . . . . . . . 8 𝑥[𝑧 / 𝑥][𝑤 / 𝑦]𝜑
40 nfs1v 2200 . . . . . . . . . 10 𝑦[𝑤 / 𝑦]𝜑
4140nfsbv 2268 . . . . . . . . 9 𝑦[𝑧 / 𝑥][𝑤 / 𝑦]𝜑
42 pm3.21 464 . . . . . . . . . 10 ([𝑧 / 𝑥][𝑤 / 𝑦]𝜑 → (𝜑 → (𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑)))
4342imim1d 82 . . . . . . . . 9 ([𝑧 / 𝑥][𝑤 / 𝑦]𝜑 → (((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)) → (𝜑 → (𝑥 = 𝑧𝑦 = 𝑤))))
4441, 43alimd 2140 . . . . . . . 8 ([𝑧 / 𝑥][𝑤 / 𝑦]𝜑 → (∀𝑦((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)) → ∀𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤))))
4539, 44alimd 2140 . . . . . . 7 ([𝑧 / 𝑥][𝑤 / 𝑦]𝜑 → (∀𝑥𝑦((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)) → ∀𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤))))
4645com12 32 . . . . . 6 (∀𝑥𝑦((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)) → ([𝑧 / 𝑥][𝑤 / 𝑦]𝜑 → ∀𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤))))
4746aleximi 1794 . . . . 5 (∀𝑤𝑥𝑦((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)) → (∃𝑤[𝑧 / 𝑥][𝑤 / 𝑦]𝜑 → ∃𝑤𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤))))
4847aleximi 1794 . . . 4 (∀𝑧𝑤𝑥𝑦((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)) → (∃𝑧𝑤[𝑧 / 𝑥][𝑤 / 𝑦]𝜑 → ∃𝑧𝑤𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤))))
49 2nexaln 1792 . . . . . 6 (¬ ∃𝑥𝑦𝜑 ↔ ∀𝑥𝑦 ¬ 𝜑)
50 nfv 1873 . . . . . . 7 𝑤𝜑
51 nfv 1873 . . . . . . 7 𝑧𝜑
5250, 512sb8ev 2286 . . . . . 6 (∃𝑥𝑦𝜑 ↔ ∃𝑧𝑤[𝑧 / 𝑥][𝑤 / 𝑦]𝜑)
5349, 52xchnxbi 324 . . . . 5 (¬ ∃𝑧𝑤[𝑧 / 𝑥][𝑤 / 𝑦]𝜑 ↔ ∀𝑥𝑦 ¬ 𝜑)
54 pm2.21 121 . . . . . . . . 9 𝜑 → (𝜑 → (𝑥 = 𝑧𝑦 = 𝑤)))
55542alimi 1775 . . . . . . . 8 (∀𝑥𝑦 ¬ 𝜑 → ∀𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤)))
56552eximi 1798 . . . . . . 7 (∃𝑧𝑤𝑥𝑦 ¬ 𝜑 → ∃𝑧𝑤𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤)))
575619.23bi 2117 . . . . . 6 (∃𝑤𝑥𝑦 ¬ 𝜑 → ∃𝑧𝑤𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤)))
585719.23bi 2117 . . . . 5 (∀𝑥𝑦 ¬ 𝜑 → ∃𝑧𝑤𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤)))
5953, 58sylbi 209 . . . 4 (¬ ∃𝑧𝑤[𝑧 / 𝑥][𝑤 / 𝑦]𝜑 → ∃𝑧𝑤𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤)))
6048, 59pm2.61d1 173 . . 3 (∀𝑧𝑤𝑥𝑦((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)) → ∃𝑧𝑤𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤)))
6138, 60impbii 201 . 2 (∃𝑧𝑤𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤)) ↔ ∀𝑧𝑤𝑥𝑦((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)))
62 alrot4 2095 . 2 (∀𝑧𝑤𝑥𝑦((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)) ↔ ∀𝑥𝑦𝑧𝑤((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)))
6361, 62bitri 267 1 (∃𝑧𝑤𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤)) ↔ ∀𝑥𝑦𝑧𝑤((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 198  wa 387  wal 1505  wtru 1508  wex 1742  wnf 1746  [wsb 2013  ∃*wmo 2542
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1758  ax-4 1772  ax-5 1869  ax-6 1928  ax-7 1964  ax-10 2077  ax-11 2091  ax-12 2104
This theorem depends on definitions:  df-bi 199  df-an 388  df-or 834  df-tru 1510  df-ex 1743  df-nf 1747  df-sb 2014  df-mo 2544
This theorem is referenced by:  2mos  2675
  Copyright terms: Public domain W3C validator