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

Theorem 2mo 2689
Description: Two equivalent expressions for double "at most one." (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 2688 . . . 4 ((∃*𝑥𝑦𝜑 ∧ ∃*𝑦𝑥𝜑) ↔ ∃𝑧𝑤𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤)))
2 nfmo1 2618 . . . . . . 7 𝑥∃*𝑥𝑦𝜑
3 nfe1 2176 . . . . . . . 8 𝑥𝑥𝜑
43nfmo 2624 . . . . . . 7 𝑥∃*𝑦𝑥𝜑
52, 4nfan 1977 . . . . . 6 𝑥(∃*𝑥𝑦𝜑 ∧ ∃*𝑦𝑥𝜑)
6 nfe1 2176 . . . . . . . . 9 𝑦𝑦𝜑
76nfmo 2624 . . . . . . . 8 𝑦∃*𝑥𝑦𝜑
8 nfmo1 2618 . . . . . . . 8 𝑦∃*𝑦𝑥𝜑
97, 8nfan 1977 . . . . . . 7 𝑦(∃*𝑥𝑦𝜑 ∧ ∃*𝑦𝑥𝜑)
10 19.8a 2199 . . . . . . . . 9 (𝜑 → ∃𝑦𝜑)
11 spsbe 2050 . . . . . . . . . 10 ([𝑤 / 𝑦]𝜑 → ∃𝑦𝜑)
1211sbimi 2052 . . . . . . . . 9 ([𝑧 / 𝑥][𝑤 / 𝑦]𝜑 → [𝑧 / 𝑥]∃𝑦𝜑)
13 nfv 1992 . . . . . . . . . . . 12 𝑧𝑦𝜑
1413mo3 2645 . . . . . . . . . . 11 (∃*𝑥𝑦𝜑 ↔ ∀𝑥𝑧((∃𝑦𝜑 ∧ [𝑧 / 𝑥]∃𝑦𝜑) → 𝑥 = 𝑧))
1514biimpi 206 . . . . . . . . . 10 (∃*𝑥𝑦𝜑 → ∀𝑥𝑧((∃𝑦𝜑 ∧ [𝑧 / 𝑥]∃𝑦𝜑) → 𝑥 = 𝑧))
161519.21bbi 2207 . . . . . . . . 9 (∃*𝑥𝑦𝜑 → ((∃𝑦𝜑 ∧ [𝑧 / 𝑥]∃𝑦𝜑) → 𝑥 = 𝑧))
1710, 12, 16syl2ani 691 . . . . . . . 8 (∃*𝑥𝑦𝜑 → ((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → 𝑥 = 𝑧))
18 19.8a 2199 . . . . . . . . 9 (𝜑 → ∃𝑥𝜑)
19 sbcom2 2582 . . . . . . . . . 10 ([𝑧 / 𝑥][𝑤 / 𝑦]𝜑 ↔ [𝑤 / 𝑦][𝑧 / 𝑥]𝜑)
20 spsbe 2050 . . . . . . . . . . 11 ([𝑧 / 𝑥]𝜑 → ∃𝑥𝜑)
2120sbimi 2052 . . . . . . . . . 10 ([𝑤 / 𝑦][𝑧 / 𝑥]𝜑 → [𝑤 / 𝑦]∃𝑥𝜑)
2219, 21sylbi 207 . . . . . . . . 9 ([𝑧 / 𝑥][𝑤 / 𝑦]𝜑 → [𝑤 / 𝑦]∃𝑥𝜑)
23 nfv 1992 . . . . . . . . . . . 12 𝑤𝑥𝜑
2423mo3 2645 . . . . . . . . . . 11 (∃*𝑦𝑥𝜑 ↔ ∀𝑦𝑤((∃𝑥𝜑 ∧ [𝑤 / 𝑦]∃𝑥𝜑) → 𝑦 = 𝑤))
2524biimpi 206 . . . . . . . . . 10 (∃*𝑦𝑥𝜑 → ∀𝑦𝑤((∃𝑥𝜑 ∧ [𝑤 / 𝑦]∃𝑥𝜑) → 𝑦 = 𝑤))
262519.21bbi 2207 . . . . . . . . 9 (∃*𝑦𝑥𝜑 → ((∃𝑥𝜑 ∧ [𝑤 / 𝑦]∃𝑥𝜑) → 𝑦 = 𝑤))
2718, 22, 26syl2ani 691 . . . . . . . 8 (∃*𝑦𝑥𝜑 → ((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → 𝑦 = 𝑤))
2817, 27anim12ii 595 . . . . . . 7 ((∃*𝑥𝑦𝜑 ∧ ∃*𝑦𝑥𝜑) → ((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)))
299, 28alrimi 2229 . . . . . 6 ((∃*𝑥𝑦𝜑 ∧ ∃*𝑦𝑥𝜑) → ∀𝑦((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)))
305, 29alrimi 2229 . . . . 5 ((∃*𝑥𝑦𝜑 ∧ ∃*𝑦𝑥𝜑) → ∀𝑥𝑦((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)))
3130alrimivv 2005 . . . 4 ((∃*𝑥𝑦𝜑 ∧ ∃*𝑦𝑥𝜑) → ∀𝑧𝑤𝑥𝑦((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)))
321, 31sylbir 225 . . 3 (∃𝑧𝑤𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤)) → ∀𝑧𝑤𝑥𝑦((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)))
33 nfs1v 2574 . . . . . . . 8 𝑥[𝑧 / 𝑥][𝑤 / 𝑦]𝜑
34 nfs1v 2574 . . . . . . . . . 10 𝑦[𝑤 / 𝑦]𝜑
3534nfsb 2577 . . . . . . . . 9 𝑦[𝑧 / 𝑥][𝑤 / 𝑦]𝜑
36 pm3.21 463 . . . . . . . . . 10 ([𝑧 / 𝑥][𝑤 / 𝑦]𝜑 → (𝜑 → (𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑)))
3736imim1d 82 . . . . . . . . 9 ([𝑧 / 𝑥][𝑤 / 𝑦]𝜑 → (((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)) → (𝜑 → (𝑥 = 𝑧𝑦 = 𝑤))))
3835, 37alimd 2228 . . . . . . . 8 ([𝑧 / 𝑥][𝑤 / 𝑦]𝜑 → (∀𝑦((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)) → ∀𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤))))
3933, 38alimd 2228 . . . . . . 7 ([𝑧 / 𝑥][𝑤 / 𝑦]𝜑 → (∀𝑥𝑦((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)) → ∀𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤))))
4039com12 32 . . . . . 6 (∀𝑥𝑦((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)) → ([𝑧 / 𝑥][𝑤 / 𝑦]𝜑 → ∀𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤))))
4140aleximi 1908 . . . . 5 (∀𝑤𝑥𝑦((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)) → (∃𝑤[𝑧 / 𝑥][𝑤 / 𝑦]𝜑 → ∃𝑤𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤))))
4241aleximi 1908 . . . 4 (∀𝑧𝑤𝑥𝑦((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)) → (∃𝑧𝑤[𝑧 / 𝑥][𝑤 / 𝑦]𝜑 → ∃𝑧𝑤𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤))))
43 2nexaln 1906 . . . . . 6 (¬ ∃𝑥𝑦𝜑 ↔ ∀𝑥𝑦 ¬ 𝜑)
44 2sb8e 2604 . . . . . 6 (∃𝑥𝑦𝜑 ↔ ∃𝑧𝑤[𝑧 / 𝑥][𝑤 / 𝑦]𝜑)
4543, 44xchnxbi 321 . . . . 5 (¬ ∃𝑧𝑤[𝑧 / 𝑥][𝑤 / 𝑦]𝜑 ↔ ∀𝑥𝑦 ¬ 𝜑)
46 pm2.21 120 . . . . . . . . 9 𝜑 → (𝜑 → (𝑥 = 𝑧𝑦 = 𝑤)))
47462alimi 1889 . . . . . . . 8 (∀𝑥𝑦 ¬ 𝜑 → ∀𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤)))
48472eximi 1912 . . . . . . 7 (∃𝑧𝑤𝑥𝑦 ¬ 𝜑 → ∃𝑧𝑤𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤)))
494819.23bi 2208 . . . . . 6 (∃𝑤𝑥𝑦 ¬ 𝜑 → ∃𝑧𝑤𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤)))
504919.23bi 2208 . . . . 5 (∀𝑥𝑦 ¬ 𝜑 → ∃𝑧𝑤𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤)))
5145, 50sylbi 207 . . . 4 (¬ ∃𝑧𝑤[𝑧 / 𝑥][𝑤 / 𝑦]𝜑 → ∃𝑧𝑤𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤)))
5242, 51pm2.61d1 171 . . 3 (∀𝑧𝑤𝑥𝑦((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)) → ∃𝑧𝑤𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤)))
5332, 52impbii 199 . 2 (∃𝑧𝑤𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤)) ↔ ∀𝑧𝑤𝑥𝑦((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)))
54 alrot4 2188 . 2 (∀𝑧𝑤𝑥𝑦((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)) ↔ ∀𝑥𝑦𝑧𝑤((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)))
5553, 54bitri 264 1 (∃𝑧𝑤𝑥𝑦(𝜑 → (𝑥 = 𝑧𝑦 = 𝑤)) ↔ ∀𝑥𝑦𝑧𝑤((𝜑 ∧ [𝑧 / 𝑥][𝑤 / 𝑦]𝜑) → (𝑥 = 𝑧𝑦 = 𝑤)))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 196  wa 383  wal 1630  wex 1853  [wsb 2046  ∃*wmo 2608
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1871  ax-4 1886  ax-5 1988  ax-6 2054  ax-7 2090  ax-10 2168  ax-11 2183  ax-12 2196  ax-13 2391
This theorem depends on definitions:  df-bi 197  df-or 384  df-an 385  df-tru 1635  df-ex 1854  df-nf 1859  df-sb 2047  df-eu 2611  df-mo 2612
This theorem is referenced by:  2mos  2690
  Copyright terms: Public domain W3C validator