Users' Mathboxes Mathbox for Scott Fenton < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >   Mathboxes  >  brrestrict Structured version   Visualization version   GIF version

Theorem brrestrict 33523
Description: Binary relation form of the Restrict function. (Contributed by Scott Fenton, 17-Apr-2014.) (Revised by Mario Carneiro, 19-Apr-2014.)
Hypotheses
Ref Expression
brrestrict.1 𝐴 ∈ V
brrestrict.2 𝐵 ∈ V
brrestrict.3 𝐶 ∈ V
Assertion
Ref Expression
brrestrict (⟨𝐴, 𝐵⟩Restrict𝐶𝐶 = (𝐴𝐵))

Proof of Theorem brrestrict
Dummy variables 𝑎 𝑏 𝑥 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 opex 5321 . . . . 5 𝐴, 𝐵⟩ ∈ V
2 brrestrict.3 . . . . 5 𝐶 ∈ V
31, 2brco 5705 . . . 4 (⟨𝐴, 𝐵⟩(Cap ∘ (1st ⊗ (Cart ∘ (2nd ⊗ (Range ∘ 1st )))))𝐶 ↔ ∃𝑥(⟨𝐴, 𝐵⟩(1st ⊗ (Cart ∘ (2nd ⊗ (Range ∘ 1st ))))𝑥𝑥Cap𝐶))
41brtxp2 33455 . . . . . . 7 (⟨𝐴, 𝐵⟩(1st ⊗ (Cart ∘ (2nd ⊗ (Range ∘ 1st ))))𝑥 ↔ ∃𝑎𝑏(𝑥 = ⟨𝑎, 𝑏⟩ ∧ ⟨𝐴, 𝐵⟩1st 𝑎 ∧ ⟨𝐴, 𝐵⟩(Cart ∘ (2nd ⊗ (Range ∘ 1st )))𝑏))
5 3anrot 1097 . . . . . . . . 9 ((𝑥 = ⟨𝑎, 𝑏⟩ ∧ ⟨𝐴, 𝐵⟩1st 𝑎 ∧ ⟨𝐴, 𝐵⟩(Cart ∘ (2nd ⊗ (Range ∘ 1st )))𝑏) ↔ (⟨𝐴, 𝐵⟩1st 𝑎 ∧ ⟨𝐴, 𝐵⟩(Cart ∘ (2nd ⊗ (Range ∘ 1st )))𝑏𝑥 = ⟨𝑎, 𝑏⟩))
6 brrestrict.1 . . . . . . . . . . 11 𝐴 ∈ V
7 brrestrict.2 . . . . . . . . . . 11 𝐵 ∈ V
86, 7br1steq 33127 . . . . . . . . . 10 (⟨𝐴, 𝐵⟩1st 𝑎𝑎 = 𝐴)
9 vex 3444 . . . . . . . . . . . 12 𝑏 ∈ V
101, 9brco 5705 . . . . . . . . . . 11 (⟨𝐴, 𝐵⟩(Cart ∘ (2nd ⊗ (Range ∘ 1st )))𝑏 ↔ ∃𝑥(⟨𝐴, 𝐵⟩(2nd ⊗ (Range ∘ 1st ))𝑥𝑥Cart𝑏))
111brtxp2 33455 . . . . . . . . . . . . . . 15 (⟨𝐴, 𝐵⟩(2nd ⊗ (Range ∘ 1st ))𝑥 ↔ ∃𝑎𝑏(𝑥 = ⟨𝑎, 𝑏⟩ ∧ ⟨𝐴, 𝐵⟩2nd 𝑎 ∧ ⟨𝐴, 𝐵⟩(Range ∘ 1st )𝑏))
12 3anrot 1097 . . . . . . . . . . . . . . . . 17 ((𝑥 = ⟨𝑎, 𝑏⟩ ∧ ⟨𝐴, 𝐵⟩2nd 𝑎 ∧ ⟨𝐴, 𝐵⟩(Range ∘ 1st )𝑏) ↔ (⟨𝐴, 𝐵⟩2nd 𝑎 ∧ ⟨𝐴, 𝐵⟩(Range ∘ 1st )𝑏𝑥 = ⟨𝑎, 𝑏⟩))
136, 7br2ndeq 33128 . . . . . . . . . . . . . . . . . 18 (⟨𝐴, 𝐵⟩2nd 𝑎𝑎 = 𝐵)
141, 9brco 5705 . . . . . . . . . . . . . . . . . . 19 (⟨𝐴, 𝐵⟩(Range ∘ 1st )𝑏 ↔ ∃𝑥(⟨𝐴, 𝐵⟩1st 𝑥𝑥Range𝑏))
156, 7br1steq 33127 . . . . . . . . . . . . . . . . . . . . . 22 (⟨𝐴, 𝐵⟩1st 𝑥𝑥 = 𝐴)
1615anbi1i 626 . . . . . . . . . . . . . . . . . . . . 21 ((⟨𝐴, 𝐵⟩1st 𝑥𝑥Range𝑏) ↔ (𝑥 = 𝐴𝑥Range𝑏))
1716exbii 1849 . . . . . . . . . . . . . . . . . . . 20 (∃𝑥(⟨𝐴, 𝐵⟩1st 𝑥𝑥Range𝑏) ↔ ∃𝑥(𝑥 = 𝐴𝑥Range𝑏))
18 breq1 5033 . . . . . . . . . . . . . . . . . . . . 21 (𝑥 = 𝐴 → (𝑥Range𝑏𝐴Range𝑏))
196, 18ceqsexv 3489 . . . . . . . . . . . . . . . . . . . 20 (∃𝑥(𝑥 = 𝐴𝑥Range𝑏) ↔ 𝐴Range𝑏)
2017, 19bitri 278 . . . . . . . . . . . . . . . . . . 19 (∃𝑥(⟨𝐴, 𝐵⟩1st 𝑥𝑥Range𝑏) ↔ 𝐴Range𝑏)
216, 9brrange 33508 . . . . . . . . . . . . . . . . . . 19 (𝐴Range𝑏𝑏 = ran 𝐴)
2214, 20, 213bitri 300 . . . . . . . . . . . . . . . . . 18 (⟨𝐴, 𝐵⟩(Range ∘ 1st )𝑏𝑏 = ran 𝐴)
23 biid 264 . . . . . . . . . . . . . . . . . 18 (𝑥 = ⟨𝑎, 𝑏⟩ ↔ 𝑥 = ⟨𝑎, 𝑏⟩)
2413, 22, 233anbi123i 1152 . . . . . . . . . . . . . . . . 17 ((⟨𝐴, 𝐵⟩2nd 𝑎 ∧ ⟨𝐴, 𝐵⟩(Range ∘ 1st )𝑏𝑥 = ⟨𝑎, 𝑏⟩) ↔ (𝑎 = 𝐵𝑏 = ran 𝐴𝑥 = ⟨𝑎, 𝑏⟩))
2512, 24bitri 278 . . . . . . . . . . . . . . . 16 ((𝑥 = ⟨𝑎, 𝑏⟩ ∧ ⟨𝐴, 𝐵⟩2nd 𝑎 ∧ ⟨𝐴, 𝐵⟩(Range ∘ 1st )𝑏) ↔ (𝑎 = 𝐵𝑏 = ran 𝐴𝑥 = ⟨𝑎, 𝑏⟩))
26252exbii 1850 . . . . . . . . . . . . . . 15 (∃𝑎𝑏(𝑥 = ⟨𝑎, 𝑏⟩ ∧ ⟨𝐴, 𝐵⟩2nd 𝑎 ∧ ⟨𝐴, 𝐵⟩(Range ∘ 1st )𝑏) ↔ ∃𝑎𝑏(𝑎 = 𝐵𝑏 = ran 𝐴𝑥 = ⟨𝑎, 𝑏⟩))
276rnex 7599 . . . . . . . . . . . . . . . 16 ran 𝐴 ∈ V
28 opeq1 4763 . . . . . . . . . . . . . . . . 17 (𝑎 = 𝐵 → ⟨𝑎, 𝑏⟩ = ⟨𝐵, 𝑏⟩)
2928eqeq2d 2809 . . . . . . . . . . . . . . . 16 (𝑎 = 𝐵 → (𝑥 = ⟨𝑎, 𝑏⟩ ↔ 𝑥 = ⟨𝐵, 𝑏⟩))
30 opeq2 4765 . . . . . . . . . . . . . . . . 17 (𝑏 = ran 𝐴 → ⟨𝐵, 𝑏⟩ = ⟨𝐵, ran 𝐴⟩)
3130eqeq2d 2809 . . . . . . . . . . . . . . . 16 (𝑏 = ran 𝐴 → (𝑥 = ⟨𝐵, 𝑏⟩ ↔ 𝑥 = ⟨𝐵, ran 𝐴⟩))
327, 27, 29, 31ceqsex2v 3492 . . . . . . . . . . . . . . 15 (∃𝑎𝑏(𝑎 = 𝐵𝑏 = ran 𝐴𝑥 = ⟨𝑎, 𝑏⟩) ↔ 𝑥 = ⟨𝐵, ran 𝐴⟩)
3311, 26, 323bitri 300 . . . . . . . . . . . . . 14 (⟨𝐴, 𝐵⟩(2nd ⊗ (Range ∘ 1st ))𝑥𝑥 = ⟨𝐵, ran 𝐴⟩)
3433anbi1i 626 . . . . . . . . . . . . 13 ((⟨𝐴, 𝐵⟩(2nd ⊗ (Range ∘ 1st ))𝑥𝑥Cart𝑏) ↔ (𝑥 = ⟨𝐵, ran 𝐴⟩ ∧ 𝑥Cart𝑏))
3534exbii 1849 . . . . . . . . . . . 12 (∃𝑥(⟨𝐴, 𝐵⟩(2nd ⊗ (Range ∘ 1st ))𝑥𝑥Cart𝑏) ↔ ∃𝑥(𝑥 = ⟨𝐵, ran 𝐴⟩ ∧ 𝑥Cart𝑏))
36 opex 5321 . . . . . . . . . . . . 13 𝐵, ran 𝐴⟩ ∈ V
37 breq1 5033 . . . . . . . . . . . . 13 (𝑥 = ⟨𝐵, ran 𝐴⟩ → (𝑥Cart𝑏 ↔ ⟨𝐵, ran 𝐴⟩Cart𝑏))
3836, 37ceqsexv 3489 . . . . . . . . . . . 12 (∃𝑥(𝑥 = ⟨𝐵, ran 𝐴⟩ ∧ 𝑥Cart𝑏) ↔ ⟨𝐵, ran 𝐴⟩Cart𝑏)
3935, 38bitri 278 . . . . . . . . . . 11 (∃𝑥(⟨𝐴, 𝐵⟩(2nd ⊗ (Range ∘ 1st ))𝑥𝑥Cart𝑏) ↔ ⟨𝐵, ran 𝐴⟩Cart𝑏)
407, 27, 9brcart 33506 . . . . . . . . . . 11 (⟨𝐵, ran 𝐴⟩Cart𝑏𝑏 = (𝐵 × ran 𝐴))
4110, 39, 403bitri 300 . . . . . . . . . 10 (⟨𝐴, 𝐵⟩(Cart ∘ (2nd ⊗ (Range ∘ 1st )))𝑏𝑏 = (𝐵 × ran 𝐴))
428, 41, 233anbi123i 1152 . . . . . . . . 9 ((⟨𝐴, 𝐵⟩1st 𝑎 ∧ ⟨𝐴, 𝐵⟩(Cart ∘ (2nd ⊗ (Range ∘ 1st )))𝑏𝑥 = ⟨𝑎, 𝑏⟩) ↔ (𝑎 = 𝐴𝑏 = (𝐵 × ran 𝐴) ∧ 𝑥 = ⟨𝑎, 𝑏⟩))
435, 42bitri 278 . . . . . . . 8 ((𝑥 = ⟨𝑎, 𝑏⟩ ∧ ⟨𝐴, 𝐵⟩1st 𝑎 ∧ ⟨𝐴, 𝐵⟩(Cart ∘ (2nd ⊗ (Range ∘ 1st )))𝑏) ↔ (𝑎 = 𝐴𝑏 = (𝐵 × ran 𝐴) ∧ 𝑥 = ⟨𝑎, 𝑏⟩))
44432exbii 1850 . . . . . . 7 (∃𝑎𝑏(𝑥 = ⟨𝑎, 𝑏⟩ ∧ ⟨𝐴, 𝐵⟩1st 𝑎 ∧ ⟨𝐴, 𝐵⟩(Cart ∘ (2nd ⊗ (Range ∘ 1st )))𝑏) ↔ ∃𝑎𝑏(𝑎 = 𝐴𝑏 = (𝐵 × ran 𝐴) ∧ 𝑥 = ⟨𝑎, 𝑏⟩))
457, 27xpex 7456 . . . . . . . 8 (𝐵 × ran 𝐴) ∈ V
46 opeq1 4763 . . . . . . . . 9 (𝑎 = 𝐴 → ⟨𝑎, 𝑏⟩ = ⟨𝐴, 𝑏⟩)
4746eqeq2d 2809 . . . . . . . 8 (𝑎 = 𝐴 → (𝑥 = ⟨𝑎, 𝑏⟩ ↔ 𝑥 = ⟨𝐴, 𝑏⟩))
48 opeq2 4765 . . . . . . . . 9 (𝑏 = (𝐵 × ran 𝐴) → ⟨𝐴, 𝑏⟩ = ⟨𝐴, (𝐵 × ran 𝐴)⟩)
4948eqeq2d 2809 . . . . . . . 8 (𝑏 = (𝐵 × ran 𝐴) → (𝑥 = ⟨𝐴, 𝑏⟩ ↔ 𝑥 = ⟨𝐴, (𝐵 × ran 𝐴)⟩))
506, 45, 47, 49ceqsex2v 3492 . . . . . . 7 (∃𝑎𝑏(𝑎 = 𝐴𝑏 = (𝐵 × ran 𝐴) ∧ 𝑥 = ⟨𝑎, 𝑏⟩) ↔ 𝑥 = ⟨𝐴, (𝐵 × ran 𝐴)⟩)
514, 44, 503bitri 300 . . . . . 6 (⟨𝐴, 𝐵⟩(1st ⊗ (Cart ∘ (2nd ⊗ (Range ∘ 1st ))))𝑥𝑥 = ⟨𝐴, (𝐵 × ran 𝐴)⟩)
5251anbi1i 626 . . . . 5 ((⟨𝐴, 𝐵⟩(1st ⊗ (Cart ∘ (2nd ⊗ (Range ∘ 1st ))))𝑥𝑥Cap𝐶) ↔ (𝑥 = ⟨𝐴, (𝐵 × ran 𝐴)⟩ ∧ 𝑥Cap𝐶))
5352exbii 1849 . . . 4 (∃𝑥(⟨𝐴, 𝐵⟩(1st ⊗ (Cart ∘ (2nd ⊗ (Range ∘ 1st ))))𝑥𝑥Cap𝐶) ↔ ∃𝑥(𝑥 = ⟨𝐴, (𝐵 × ran 𝐴)⟩ ∧ 𝑥Cap𝐶))
543, 53bitri 278 . . 3 (⟨𝐴, 𝐵⟩(Cap ∘ (1st ⊗ (Cart ∘ (2nd ⊗ (Range ∘ 1st )))))𝐶 ↔ ∃𝑥(𝑥 = ⟨𝐴, (𝐵 × ran 𝐴)⟩ ∧ 𝑥Cap𝐶))
55 opex 5321 . . . 4 𝐴, (𝐵 × ran 𝐴)⟩ ∈ V
56 breq1 5033 . . . 4 (𝑥 = ⟨𝐴, (𝐵 × ran 𝐴)⟩ → (𝑥Cap𝐶 ↔ ⟨𝐴, (𝐵 × ran 𝐴)⟩Cap𝐶))
5755, 56ceqsexv 3489 . . 3 (∃𝑥(𝑥 = ⟨𝐴, (𝐵 × ran 𝐴)⟩ ∧ 𝑥Cap𝐶) ↔ ⟨𝐴, (𝐵 × ran 𝐴)⟩Cap𝐶)
586, 45, 2brcap 33514 . . 3 (⟨𝐴, (𝐵 × ran 𝐴)⟩Cap𝐶𝐶 = (𝐴 ∩ (𝐵 × ran 𝐴)))
5954, 57, 583bitri 300 . 2 (⟨𝐴, 𝐵⟩(Cap ∘ (1st ⊗ (Cart ∘ (2nd ⊗ (Range ∘ 1st )))))𝐶𝐶 = (𝐴 ∩ (𝐵 × ran 𝐴)))
60 df-restrict 33445 . . 3 Restrict = (Cap ∘ (1st ⊗ (Cart ∘ (2nd ⊗ (Range ∘ 1st )))))
6160breqi 5036 . 2 (⟨𝐴, 𝐵⟩Restrict𝐶 ↔ ⟨𝐴, 𝐵⟩(Cap ∘ (1st ⊗ (Cart ∘ (2nd ⊗ (Range ∘ 1st )))))𝐶)
62 dfres3 5823 . . 3 (𝐴𝐵) = (𝐴 ∩ (𝐵 × ran 𝐴))
6362eqeq2i 2811 . 2 (𝐶 = (𝐴𝐵) ↔ 𝐶 = (𝐴 ∩ (𝐵 × ran 𝐴)))
6459, 61, 633bitr4i 306 1 (⟨𝐴, 𝐵⟩Restrict𝐶𝐶 = (𝐴𝐵))
Colors of variables: wff setvar class
Syntax hints:  wb 209  wa 399  w3a 1084   = wceq 1538  wex 1781  wcel 2111  Vcvv 3441  cin 3880  cop 4531   class class class wbr 5030   × cxp 5517  ran crn 5520  cres 5521  ccom 5523  1st c1st 7669  2nd c2nd 7670  ctxp 33404  Cartccart 33415  Rangecrange 33418  Capccap 33421  Restrictcrestrict 33425
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1797  ax-4 1811  ax-5 1911  ax-6 1970  ax-7 2015  ax-8 2113  ax-9 2121  ax-10 2142  ax-11 2158  ax-12 2175  ax-ext 2770  ax-sep 5167  ax-nul 5174  ax-pow 5231  ax-pr 5295  ax-un 7441
This theorem depends on definitions:  df-bi 210  df-an 400  df-or 845  df-3an 1086  df-tru 1541  df-ex 1782  df-nf 1786  df-sb 2070  df-mo 2598  df-eu 2629  df-clab 2777  df-cleq 2791  df-clel 2870  df-nfc 2938  df-ne 2988  df-ral 3111  df-rex 3112  df-rab 3115  df-v 3443  df-sbc 3721  df-dif 3884  df-un 3886  df-in 3888  df-ss 3898  df-symdif 4169  df-nul 4244  df-if 4426  df-pw 4499  df-sn 4526  df-pr 4528  df-op 4532  df-uni 4801  df-br 5031  df-opab 5093  df-mpt 5111  df-id 5425  df-eprel 5430  df-xp 5525  df-rel 5526  df-cnv 5527  df-co 5528  df-dm 5529  df-rn 5530  df-res 5531  df-ima 5532  df-iota 6283  df-fun 6326  df-fn 6327  df-f 6328  df-fo 6330  df-fv 6332  df-1st 7671  df-2nd 7672  df-txp 33428  df-pprod 33429  df-image 33438  df-cart 33439  df-range 33442  df-cap 33444  df-restrict 33445
This theorem is referenced by:  dfrecs2  33524
  Copyright terms: Public domain W3C validator