Users' Mathboxes Mathbox for Thierry Arnoux < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >   Mathboxes  >  mpomptxf Structured version   Visualization version   GIF version

Theorem mpomptxf 33099
Description: Express a two-argument function as a one-argument function, or vice-versa. In this version 𝐵(𝑥) is not assumed to be constant w.r.t 𝑥. (Contributed by Mario Carneiro, 29-Dec-2014.) (Revised by Thierry Arnoux, 31-Mar-2018.)
Hypotheses
Ref Expression
mpomptxf.0 𝑥𝐶
mpomptxf.1 𝑦𝐶
mpomptxf.2 (𝑧 = ⟨𝑥, 𝑦⟩ → 𝐶 = 𝐷)
Assertion
Ref Expression
mpomptxf (𝑧 𝑥𝐴 ({𝑥} × 𝐵) ↦ 𝐶) = (𝑥𝐴, 𝑦𝐵𝐷)
Distinct variable groups:   𝑥,𝑦,𝑧,𝐴   𝑦,𝐵,𝑧   𝑧,𝐷
Allowed substitution hints:   𝐵(𝑥)   𝐶(𝑥, 𝑦, 𝑧)   𝐷(𝑥, 𝑦)

Proof of Theorem mpomptxf
Dummy variable 𝑤 is distinct from all other variables.
StepHypRef Expression
1 df-mpt 5195 . 2 (𝑧 𝑥𝐴 ({𝑥} × 𝐵) ↦ 𝐶) = {⟨𝑧, 𝑤⟩ ∣ (𝑧 𝑥𝐴 ({𝑥} × 𝐵) ∧ 𝑤 = 𝐶)}
2 df-mpo 7425 . . 3 (𝑥𝐴, 𝑦𝐵𝐷) = {⟨⟨𝑥, 𝑦⟩, 𝑤⟩ ∣ ((𝑥𝐴𝑦𝐵) ∧ 𝑤 = 𝐷)}
3 eliunxp 5825 . . . . . . 7 (𝑧 𝑥𝐴 ({𝑥} × 𝐵) ↔ ∃𝑥𝑦(𝑧 = ⟨𝑥, 𝑦⟩ ∧ (𝑥𝐴𝑦𝐵)))
43anbi1i 636 . . . . . 6 ((𝑧 𝑥𝐴 ({𝑥} × 𝐵) ∧ 𝑤 = 𝐶) ↔ (∃𝑥𝑦(𝑧 = ⟨𝑥, 𝑦⟩ ∧ (𝑥𝐴𝑦𝐵)) ∧ 𝑤 = 𝐶))
5 mpomptxf.1 . . . . . . . . . 10 𝑦𝐶
65nfeq2 2944 . . . . . . . . 9 𝑦 𝑤 = 𝐶
7619.41 2274 . . . . . . . 8 (∃𝑦((𝑧 = ⟨𝑥, 𝑦⟩ ∧ (𝑥𝐴𝑦𝐵)) ∧ 𝑤 = 𝐶) ↔ (∃𝑦(𝑧 = ⟨𝑥, 𝑦⟩ ∧ (𝑥𝐴𝑦𝐵)) ∧ 𝑤 = 𝐶))
87exbii 1881 . . . . . . 7 (∃𝑥𝑦((𝑧 = ⟨𝑥, 𝑦⟩ ∧ (𝑥𝐴𝑦𝐵)) ∧ 𝑤 = 𝐶) ↔ ∃𝑥(∃𝑦(𝑧 = ⟨𝑥, 𝑦⟩ ∧ (𝑥𝐴𝑦𝐵)) ∧ 𝑤 = 𝐶))
9 mpomptxf.0 . . . . . . . . 9 𝑥𝐶
109nfeq2 2944 . . . . . . . 8 𝑥 𝑤 = 𝐶
111019.41 2274 . . . . . . 7 (∃𝑥(∃𝑦(𝑧 = ⟨𝑥, 𝑦⟩ ∧ (𝑥𝐴𝑦𝐵)) ∧ 𝑤 = 𝐶) ↔ (∃𝑥𝑦(𝑧 = ⟨𝑥, 𝑦⟩ ∧ (𝑥𝐴𝑦𝐵)) ∧ 𝑤 = 𝐶))
128, 11bitri 278 . . . . . 6 (∃𝑥𝑦((𝑧 = ⟨𝑥, 𝑦⟩ ∧ (𝑥𝐴𝑦𝐵)) ∧ 𝑤 = 𝐶) ↔ (∃𝑥𝑦(𝑧 = ⟨𝑥, 𝑦⟩ ∧ (𝑥𝐴𝑦𝐵)) ∧ 𝑤 = 𝐶))
13 anass 474 . . . . . . . 8 (((𝑧 = ⟨𝑥, 𝑦⟩ ∧ (𝑥𝐴𝑦𝐵)) ∧ 𝑤 = 𝐶) ↔ (𝑧 = ⟨𝑥, 𝑦⟩ ∧ ((𝑥𝐴𝑦𝐵) ∧ 𝑤 = 𝐶)))
14 mpomptxf.2 . . . . . . . . . . 11 (𝑧 = ⟨𝑥, 𝑦⟩ → 𝐶 = 𝐷)
1514eqeq2d 2776 . . . . . . . . . 10 (𝑧 = ⟨𝑥, 𝑦⟩ → (𝑤 = 𝐶𝑤 = 𝐷))
1615anbi2d 642 . . . . . . . . 9 (𝑧 = ⟨𝑥, 𝑦⟩ → (((𝑥𝐴𝑦𝐵) ∧ 𝑤 = 𝐶) ↔ ((𝑥𝐴𝑦𝐵) ∧ 𝑤 = 𝐷)))
1716pm5.32i 585 . . . . . . . 8 ((𝑧 = ⟨𝑥, 𝑦⟩ ∧ ((𝑥𝐴𝑦𝐵) ∧ 𝑤 = 𝐶)) ↔ (𝑧 = ⟨𝑥, 𝑦⟩ ∧ ((𝑥𝐴𝑦𝐵) ∧ 𝑤 = 𝐷)))
1813, 17bitri 278 . . . . . . 7 (((𝑧 = ⟨𝑥, 𝑦⟩ ∧ (𝑥𝐴𝑦𝐵)) ∧ 𝑤 = 𝐶) ↔ (𝑧 = ⟨𝑥, 𝑦⟩ ∧ ((𝑥𝐴𝑦𝐵) ∧ 𝑤 = 𝐷)))
19182exbii 1882 . . . . . 6 (∃𝑥𝑦((𝑧 = ⟨𝑥, 𝑦⟩ ∧ (𝑥𝐴𝑦𝐵)) ∧ 𝑤 = 𝐶) ↔ ∃𝑥𝑦(𝑧 = ⟨𝑥, 𝑦⟩ ∧ ((𝑥𝐴𝑦𝐵) ∧ 𝑤 = 𝐷)))
204, 12, 193bitr2i 302 . . . . 5 ((𝑧 𝑥𝐴 ({𝑥} × 𝐵) ∧ 𝑤 = 𝐶) ↔ ∃𝑥𝑦(𝑧 = ⟨𝑥, 𝑦⟩ ∧ ((𝑥𝐴𝑦𝐵) ∧ 𝑤 = 𝐷)))
2120opabbii 5180 . . . 4 {⟨𝑧, 𝑤⟩ ∣ (𝑧 𝑥𝐴 ({𝑥} × 𝐵) ∧ 𝑤 = 𝐶)} = {⟨𝑧, 𝑤⟩ ∣ ∃𝑥𝑦(𝑧 = ⟨𝑥, 𝑦⟩ ∧ ((𝑥𝐴𝑦𝐵) ∧ 𝑤 = 𝐷))}
22 dfoprab2 7478 . . . 4 {⟨⟨𝑥, 𝑦⟩, 𝑤⟩ ∣ ((𝑥𝐴𝑦𝐵) ∧ 𝑤 = 𝐷)} = {⟨𝑧, 𝑤⟩ ∣ ∃𝑥𝑦(𝑧 = ⟨𝑥, 𝑦⟩ ∧ ((𝑥𝐴𝑦𝐵) ∧ 𝑤 = 𝐷))}
2321, 22eqtr4i 2791 . . 3 {⟨𝑧, 𝑤⟩ ∣ (𝑧 𝑥𝐴 ({𝑥} × 𝐵) ∧ 𝑤 = 𝐶)} = {⟨⟨𝑥, 𝑦⟩, 𝑤⟩ ∣ ((𝑥𝐴𝑦𝐵) ∧ 𝑤 = 𝐷)}
242, 23eqtr4i 2791 . 2 (𝑥𝐴, 𝑦𝐵𝐷) = {⟨𝑧, 𝑤⟩ ∣ (𝑧 𝑥𝐴 ({𝑥} × 𝐵) ∧ 𝑤 = 𝐶)}
251, 24eqtr4i 2791 1 (𝑧 𝑥𝐴 ({𝑥} × 𝐵) ↦ 𝐶) = (𝑥𝐴, 𝑦𝐵𝐷)
Colors of variables:    wff setvar class
This proof depends on syntax axioms:  wi 4  wa 401   = wceq 1570  wex 1812  wcel 2146  wnfc 2912  {csn 4591  cop 4597   ciun 4958  {copab 5175  cmpt 5194   × cxp 5661  {coprab 7421  cmpo 7422
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 1943  ax-6 2000  ax-7 2041  ax-8 2148  ax-9 2156  ax-10 2179  ax-11 2195  ax-12 2216  ax-ext 2737  ax-sep 5259  ax-pr 5406
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-nf 1817  df-sb 2100  df-clab 2744  df-cleq 2757  df-clel 2840  df-nfc 2914  df-ral 3082  df-rex 3092  df-rab 3419  df-v 3459  df-sbc 3747  df-csb 3855  df-dif 3909  df-un 3911  df-in 3913  df-ss 3923  df-nul 4287  df-if 4490  df-sn 4592  df-pr 4594  df-op 4598  df-iun 4960  df-opab 5176  df-mpt 5195  df-xp 5669  df-rel 5670  df-oprab 7424  df-mpo 7425
This theorem is used by:  gsummpt2co  33437
  Copyright terms: Public domain W3C validator