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 33183
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 5187 . 2 (𝑧 𝑥𝐴 ({𝑥} × 𝐵) ↦ 𝐶) = {⟨𝑧, 𝑤⟩ ∣ (𝑧 𝑥𝐴 ({𝑥} × 𝐵) ∧ 𝑤 = 𝐶)}
2 df-mpo 7421 . . 3 (𝑥𝐴, 𝑦𝐵𝐷) = {⟨⟨𝑥, 𝑦⟩, 𝑤⟩ ∣ ((𝑥𝐴𝑦𝐵) ∧ 𝑤 = 𝐷)}
3 eliunxp 5818 . . . . . . 7 (𝑧 𝑥𝐴 ({𝑥} × 𝐵) ↔ ∃𝑥𝑦(𝑧 = ⟨𝑥, 𝑦⟩ ∧ (𝑥𝐴𝑦𝐵)))
43anbi1i 636 . . . . . 6 ((𝑧 𝑥𝐴 ({𝑥} × 𝐵) ∧ 𝑤 = 𝐶) ↔ (∃𝑥𝑦(𝑧 = ⟨𝑥, 𝑦⟩ ∧ (𝑥𝐴𝑦𝐵)) ∧ 𝑤 = 𝐶))
5 mpomptxf.1 . . . . . . . . . 10 𝑦𝐶
65nfeq2 2939 . . . . . . . . 9 𝑦 𝑤 = 𝐶
7619.41 2271 . . . . . . . 8 (∃𝑦((𝑧 = ⟨𝑥, 𝑦⟩ ∧ (𝑥𝐴𝑦𝐵)) ∧ 𝑤 = 𝐶) ↔ (∃𝑦(𝑧 = ⟨𝑥, 𝑦⟩ ∧ (𝑥𝐴𝑦𝐵)) ∧ 𝑤 = 𝐶))
87exbii 1881 . . . . . . 7 (∃𝑥𝑦((𝑧 = ⟨𝑥, 𝑦⟩ ∧ (𝑥𝐴𝑦𝐵)) ∧ 𝑤 = 𝐶) ↔ ∃𝑥(∃𝑦(𝑧 = ⟨𝑥, 𝑦⟩ ∧ (𝑥𝐴𝑦𝐵)) ∧ 𝑤 = 𝐶))
9 mpomptxf.0 . . . . . . . . 9 𝑥𝐶
109nfeq2 2939 . . . . . . . 8 𝑥 𝑤 = 𝐶
111019.41 2271 . . . . . . 7 (∃𝑥(∃𝑦(𝑧 = ⟨𝑥, 𝑦⟩ ∧ (𝑥𝐴𝑦𝐵)) ∧ 𝑤 = 𝐶) ↔ (∃𝑥𝑦(𝑧 = ⟨𝑥, 𝑦⟩ ∧ (𝑥𝐴𝑦𝐵)) ∧ 𝑤 = 𝐶))
128, 11bitri 278 . . . . . 6 (∃𝑥𝑦((𝑧 = ⟨𝑥, 𝑦⟩ ∧ (𝑥𝐴𝑦𝐵)) ∧ 𝑤 = 𝐶) ↔ (∃𝑥𝑦(𝑧 = ⟨𝑥, 𝑦⟩ ∧ (𝑥𝐴𝑦𝐵)) ∧ 𝑤 = 𝐶))
13 anass 474 . . . . . . . 8 (((𝑧 = ⟨𝑥, 𝑦⟩ ∧ (𝑥𝐴𝑦𝐵)) ∧ 𝑤 = 𝐶) ↔ (𝑧 = ⟨𝑥, 𝑦⟩ ∧ ((𝑥𝐴𝑦𝐵) ∧ 𝑤 = 𝐶)))
14 mpomptxf.2 . . . . . . . . . . 11 (𝑧 = ⟨𝑥, 𝑦⟩ → 𝐶 = 𝐷)
1514eqeq2d 2771 . . . . . . . . . 10 (𝑧 = ⟨𝑥, 𝑦⟩ → (𝑤 = 𝐶𝑤 = 𝐷))
1615anbi2d 642 . . . . . . . . 9 (𝑧 = ⟨𝑥, 𝑦⟩ → (((𝑥𝐴𝑦𝐵) ∧ 𝑤 = 𝐶) ↔ ((𝑥𝐴𝑦𝐵) ∧ 𝑤 = 𝐷)))
1716pm5.32i 585 . . . . . . . 8 ((𝑧 = ⟨𝑥, 𝑦⟩ ∧ ((𝑥𝐴𝑦𝐵) ∧ 𝑤 = 𝐶)) ↔ (𝑧 = ⟨𝑥, 𝑦⟩ ∧ ((𝑥𝐴𝑦𝐵) ∧ 𝑤 = 𝐷)))
1813, 17bitri 278 . . . . . . 7 (((𝑧 = ⟨𝑥, 𝑦⟩ ∧ (𝑥𝐴𝑦𝐵)) ∧ 𝑤 = 𝐶) ↔ (𝑧 = ⟨𝑥, 𝑦⟩ ∧ ((𝑥𝐴𝑦𝐵) ∧ 𝑤 = 𝐷)))
19182exbii 1882 . . . . . 6 (∃𝑥𝑦((𝑧 = ⟨𝑥, 𝑦⟩ ∧ (𝑥𝐴𝑦𝐵)) ∧ 𝑤 = 𝐶) ↔ ∃𝑥𝑦(𝑧 = ⟨𝑥, 𝑦⟩ ∧ ((𝑥𝐴𝑦𝐵) ∧ 𝑤 = 𝐷)))
204, 12, 193bitr2i 302 . . . . 5 ((𝑧 𝑥𝐴 ({𝑥} × 𝐵) ∧ 𝑤 = 𝐶) ↔ ∃𝑥𝑦(𝑧 = ⟨𝑥, 𝑦⟩ ∧ ((𝑥𝐴𝑦𝐵) ∧ 𝑤 = 𝐷)))
2120opabbii 5172 . . . 4 {⟨𝑧, 𝑤⟩ ∣ (𝑧 𝑥𝐴 ({𝑥} × 𝐵) ∧ 𝑤 = 𝐶)} = {⟨𝑧, 𝑤⟩ ∣ ∃𝑥𝑦(𝑧 = ⟨𝑥, 𝑦⟩ ∧ ((𝑥𝐴𝑦𝐵) ∧ 𝑤 = 𝐷))}
22 dfoprab2 7474 . . . 4 {⟨⟨𝑥, 𝑦⟩, 𝑤⟩ ∣ ((𝑥𝐴𝑦𝐵) ∧ 𝑤 = 𝐷)} = {⟨𝑧, 𝑤⟩ ∣ ∃𝑥𝑦(𝑧 = ⟨𝑥, 𝑦⟩ ∧ ((𝑥𝐴𝑦𝐵) ∧ 𝑤 = 𝐷))}
2321, 22eqtr4i 2786 . . 3 {⟨𝑧, 𝑤⟩ ∣ (𝑧 𝑥𝐴 ({𝑥} × 𝐵) ∧ 𝑤 = 𝐶)} = {⟨⟨𝑥, 𝑦⟩, 𝑤⟩ ∣ ((𝑥𝐴𝑦𝐵) ∧ 𝑤 = 𝐷)}
242, 23eqtr4i 2786 . 2 (𝑥𝐴, 𝑦𝐵𝐷) = {⟨𝑧, 𝑤⟩ ∣ (𝑧 𝑥𝐴 ({𝑥} × 𝐵) ∧ 𝑤 = 𝐶)}
251, 24eqtr4i 2786 1 (𝑧 𝑥𝐴 ({𝑥} × 𝐵) ↦ 𝐶) = (𝑥𝐴, 𝑦𝐵𝐷)
Colors of variables:    wff setvar class
This proof depends on syntax axioms:  wi 4  wa 401   = wceq 1570  wex 1812  wcel 2145  wnfc 2907  {csn 4584  cop 4590   ciun 4951  {copab 5167  cmpt 5186   × cxp 5653  {coprab 7417  cmpo 7418
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 2147  ax-9 2155  ax-10 2178  ax-11 2194  ax-12 2213  ax-ext 2732  ax-sep 5251  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-nf 1817  df-sb 2100  df-clab 2739  df-cleq 2752  df-clel 2835  df-nfc 2909  df-ral 3077  df-rex 3087  df-rab 3413  df-v 3452  df-sbc 3740  df-csb 3848  df-dif 3902  df-un 3904  df-in 3906  df-ss 3916  df-nul 4280  df-if 4483  df-sn 4585  df-pr 4587  df-op 4591  df-iun 4953  df-opab 5168  df-mpt 5187  df-xp 5661  df-rel 5662  df-oprab 7420  df-mpo 7421
This theorem is used by:  gsummpt2co  33520
  Copyright terms: Public domain W3C validator