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 33405
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 5348 . . . . 5 𝐴, 𝐵⟩ ∈ V
2 brrestrict.3 . . . . 5 𝐶 ∈ V
31, 2brco 5735 . . . 4 (⟨𝐴, 𝐵⟩(Cap ∘ (1st ⊗ (Cart ∘ (2nd ⊗ (Range ∘ 1st )))))𝐶 ↔ ∃𝑥(⟨𝐴, 𝐵⟩(1st ⊗ (Cart ∘ (2nd ⊗ (Range ∘ 1st ))))𝑥𝑥Cap𝐶))
41brtxp2 33337 . . . . . . 7 (⟨𝐴, 𝐵⟩(1st ⊗ (Cart ∘ (2nd ⊗ (Range ∘ 1st ))))𝑥 ↔ ∃𝑎𝑏(𝑥 = ⟨𝑎, 𝑏⟩ ∧ ⟨𝐴, 𝐵⟩1st 𝑎 ∧ ⟨𝐴, 𝐵⟩(Cart ∘ (2nd ⊗ (Range ∘ 1st )))𝑏))
5 3anrot 1096 . . . . . . . . 9 ((𝑥 = ⟨𝑎, 𝑏⟩ ∧ ⟨𝐴, 𝐵⟩1st 𝑎 ∧ ⟨𝐴, 𝐵⟩(Cart ∘ (2nd ⊗ (Range ∘ 1st )))𝑏) ↔ (⟨𝐴, 𝐵⟩1st 𝑎 ∧ ⟨𝐴, 𝐵⟩(Cart ∘ (2nd ⊗ (Range ∘ 1st )))𝑏𝑥 = ⟨𝑎, 𝑏⟩))
6 brrestrict.1 . . . . . . . . . . 11 𝐴 ∈ V
7 brrestrict.2 . . . . . . . . . . 11 𝐵 ∈ V
86, 7br1steq 33009 . . . . . . . . . 10 (⟨𝐴, 𝐵⟩1st 𝑎𝑎 = 𝐴)
9 vex 3497 . . . . . . . . . . . 12 𝑏 ∈ V
101, 9brco 5735 . . . . . . . . . . 11 (⟨𝐴, 𝐵⟩(Cart ∘ (2nd ⊗ (Range ∘ 1st )))𝑏 ↔ ∃𝑥(⟨𝐴, 𝐵⟩(2nd ⊗ (Range ∘ 1st ))𝑥𝑥Cart𝑏))
111brtxp2 33337 . . . . . . . . . . . . . . 15 (⟨𝐴, 𝐵⟩(2nd ⊗ (Range ∘ 1st ))𝑥 ↔ ∃𝑎𝑏(𝑥 = ⟨𝑎, 𝑏⟩ ∧ ⟨𝐴, 𝐵⟩2nd 𝑎 ∧ ⟨𝐴, 𝐵⟩(Range ∘ 1st )𝑏))
12 3anrot 1096 . . . . . . . . . . . . . . . . 17 ((𝑥 = ⟨𝑎, 𝑏⟩ ∧ ⟨𝐴, 𝐵⟩2nd 𝑎 ∧ ⟨𝐴, 𝐵⟩(Range ∘ 1st )𝑏) ↔ (⟨𝐴, 𝐵⟩2nd 𝑎 ∧ ⟨𝐴, 𝐵⟩(Range ∘ 1st )𝑏𝑥 = ⟨𝑎, 𝑏⟩))
136, 7br2ndeq 33010 . . . . . . . . . . . . . . . . . 18 (⟨𝐴, 𝐵⟩2nd 𝑎𝑎 = 𝐵)
141, 9brco 5735 . . . . . . . . . . . . . . . . . . 19 (⟨𝐴, 𝐵⟩(Range ∘ 1st )𝑏 ↔ ∃𝑥(⟨𝐴, 𝐵⟩1st 𝑥𝑥Range𝑏))
156, 7br1steq 33009 . . . . . . . . . . . . . . . . . . . . . 22 (⟨𝐴, 𝐵⟩1st 𝑥𝑥 = 𝐴)
1615anbi1i 625 . . . . . . . . . . . . . . . . . . . . 21 ((⟨𝐴, 𝐵⟩1st 𝑥𝑥Range𝑏) ↔ (𝑥 = 𝐴𝑥Range𝑏))
1716exbii 1844 . . . . . . . . . . . . . . . . . . . 20 (∃𝑥(⟨𝐴, 𝐵⟩1st 𝑥𝑥Range𝑏) ↔ ∃𝑥(𝑥 = 𝐴𝑥Range𝑏))
18 breq1 5061 . . . . . . . . . . . . . . . . . . . . 21 (𝑥 = 𝐴 → (𝑥Range𝑏𝐴Range𝑏))
196, 18ceqsexv 3541 . . . . . . . . . . . . . . . . . . . 20 (∃𝑥(𝑥 = 𝐴𝑥Range𝑏) ↔ 𝐴Range𝑏)
2017, 19bitri 277 . . . . . . . . . . . . . . . . . . 19 (∃𝑥(⟨𝐴, 𝐵⟩1st 𝑥𝑥Range𝑏) ↔ 𝐴Range𝑏)
216, 9brrange 33390 . . . . . . . . . . . . . . . . . . 19 (𝐴Range𝑏𝑏 = ran 𝐴)
2214, 20, 213bitri 299 . . . . . . . . . . . . . . . . . 18 (⟨𝐴, 𝐵⟩(Range ∘ 1st )𝑏𝑏 = ran 𝐴)
23 biid 263 . . . . . . . . . . . . . . . . . 18 (𝑥 = ⟨𝑎, 𝑏⟩ ↔ 𝑥 = ⟨𝑎, 𝑏⟩)
2413, 22, 233anbi123i 1151 . . . . . . . . . . . . . . . . 17 ((⟨𝐴, 𝐵⟩2nd 𝑎 ∧ ⟨𝐴, 𝐵⟩(Range ∘ 1st )𝑏𝑥 = ⟨𝑎, 𝑏⟩) ↔ (𝑎 = 𝐵𝑏 = ran 𝐴𝑥 = ⟨𝑎, 𝑏⟩))
2512, 24bitri 277 . . . . . . . . . . . . . . . 16 ((𝑥 = ⟨𝑎, 𝑏⟩ ∧ ⟨𝐴, 𝐵⟩2nd 𝑎 ∧ ⟨𝐴, 𝐵⟩(Range ∘ 1st )𝑏) ↔ (𝑎 = 𝐵𝑏 = ran 𝐴𝑥 = ⟨𝑎, 𝑏⟩))
26252exbii 1845 . . . . . . . . . . . . . . 15 (∃𝑎𝑏(𝑥 = ⟨𝑎, 𝑏⟩ ∧ ⟨𝐴, 𝐵⟩2nd 𝑎 ∧ ⟨𝐴, 𝐵⟩(Range ∘ 1st )𝑏) ↔ ∃𝑎𝑏(𝑎 = 𝐵𝑏 = ran 𝐴𝑥 = ⟨𝑎, 𝑏⟩))
276rnex 7611 . . . . . . . . . . . . . . . 16 ran 𝐴 ∈ V
28 opeq1 4796 . . . . . . . . . . . . . . . . 17 (𝑎 = 𝐵 → ⟨𝑎, 𝑏⟩ = ⟨𝐵, 𝑏⟩)
2928eqeq2d 2832 . . . . . . . . . . . . . . . 16 (𝑎 = 𝐵 → (𝑥 = ⟨𝑎, 𝑏⟩ ↔ 𝑥 = ⟨𝐵, 𝑏⟩))
30 opeq2 4797 . . . . . . . . . . . . . . . . 17 (𝑏 = ran 𝐴 → ⟨𝐵, 𝑏⟩ = ⟨𝐵, ran 𝐴⟩)
3130eqeq2d 2832 . . . . . . . . . . . . . . . 16 (𝑏 = ran 𝐴 → (𝑥 = ⟨𝐵, 𝑏⟩ ↔ 𝑥 = ⟨𝐵, ran 𝐴⟩))
327, 27, 29, 31ceqsex2v 3544 . . . . . . . . . . . . . . 15 (∃𝑎𝑏(𝑎 = 𝐵𝑏 = ran 𝐴𝑥 = ⟨𝑎, 𝑏⟩) ↔ 𝑥 = ⟨𝐵, ran 𝐴⟩)
3311, 26, 323bitri 299 . . . . . . . . . . . . . 14 (⟨𝐴, 𝐵⟩(2nd ⊗ (Range ∘ 1st ))𝑥𝑥 = ⟨𝐵, ran 𝐴⟩)
3433anbi1i 625 . . . . . . . . . . . . 13 ((⟨𝐴, 𝐵⟩(2nd ⊗ (Range ∘ 1st ))𝑥𝑥Cart𝑏) ↔ (𝑥 = ⟨𝐵, ran 𝐴⟩ ∧ 𝑥Cart𝑏))
3534exbii 1844 . . . . . . . . . . . 12 (∃𝑥(⟨𝐴, 𝐵⟩(2nd ⊗ (Range ∘ 1st ))𝑥𝑥Cart𝑏) ↔ ∃𝑥(𝑥 = ⟨𝐵, ran 𝐴⟩ ∧ 𝑥Cart𝑏))
36 opex 5348 . . . . . . . . . . . . 13 𝐵, ran 𝐴⟩ ∈ V
37 breq1 5061 . . . . . . . . . . . . 13 (𝑥 = ⟨𝐵, ran 𝐴⟩ → (𝑥Cart𝑏 ↔ ⟨𝐵, ran 𝐴⟩Cart𝑏))
3836, 37ceqsexv 3541 . . . . . . . . . . . 12 (∃𝑥(𝑥 = ⟨𝐵, ran 𝐴⟩ ∧ 𝑥Cart𝑏) ↔ ⟨𝐵, ran 𝐴⟩Cart𝑏)
3935, 38bitri 277 . . . . . . . . . . 11 (∃𝑥(⟨𝐴, 𝐵⟩(2nd ⊗ (Range ∘ 1st ))𝑥𝑥Cart𝑏) ↔ ⟨𝐵, ran 𝐴⟩Cart𝑏)
407, 27, 9brcart 33388 . . . . . . . . . . 11 (⟨𝐵, ran 𝐴⟩Cart𝑏𝑏 = (𝐵 × ran 𝐴))
4110, 39, 403bitri 299 . . . . . . . . . 10 (⟨𝐴, 𝐵⟩(Cart ∘ (2nd ⊗ (Range ∘ 1st )))𝑏𝑏 = (𝐵 × ran 𝐴))
428, 41, 233anbi123i 1151 . . . . . . . . 9 ((⟨𝐴, 𝐵⟩1st 𝑎 ∧ ⟨𝐴, 𝐵⟩(Cart ∘ (2nd ⊗ (Range ∘ 1st )))𝑏𝑥 = ⟨𝑎, 𝑏⟩) ↔ (𝑎 = 𝐴𝑏 = (𝐵 × ran 𝐴) ∧ 𝑥 = ⟨𝑎, 𝑏⟩))
435, 42bitri 277 . . . . . . . 8 ((𝑥 = ⟨𝑎, 𝑏⟩ ∧ ⟨𝐴, 𝐵⟩1st 𝑎 ∧ ⟨𝐴, 𝐵⟩(Cart ∘ (2nd ⊗ (Range ∘ 1st )))𝑏) ↔ (𝑎 = 𝐴𝑏 = (𝐵 × ran 𝐴) ∧ 𝑥 = ⟨𝑎, 𝑏⟩))
44432exbii 1845 . . . . . . 7 (∃𝑎𝑏(𝑥 = ⟨𝑎, 𝑏⟩ ∧ ⟨𝐴, 𝐵⟩1st 𝑎 ∧ ⟨𝐴, 𝐵⟩(Cart ∘ (2nd ⊗ (Range ∘ 1st )))𝑏) ↔ ∃𝑎𝑏(𝑎 = 𝐴𝑏 = (𝐵 × ran 𝐴) ∧ 𝑥 = ⟨𝑎, 𝑏⟩))
457, 27xpex 7470 . . . . . . . 8 (𝐵 × ran 𝐴) ∈ V
46 opeq1 4796 . . . . . . . . 9 (𝑎 = 𝐴 → ⟨𝑎, 𝑏⟩ = ⟨𝐴, 𝑏⟩)
4746eqeq2d 2832 . . . . . . . 8 (𝑎 = 𝐴 → (𝑥 = ⟨𝑎, 𝑏⟩ ↔ 𝑥 = ⟨𝐴, 𝑏⟩))
48 opeq2 4797 . . . . . . . . 9 (𝑏 = (𝐵 × ran 𝐴) → ⟨𝐴, 𝑏⟩ = ⟨𝐴, (𝐵 × ran 𝐴)⟩)
4948eqeq2d 2832 . . . . . . . 8 (𝑏 = (𝐵 × ran 𝐴) → (𝑥 = ⟨𝐴, 𝑏⟩ ↔ 𝑥 = ⟨𝐴, (𝐵 × ran 𝐴)⟩))
506, 45, 47, 49ceqsex2v 3544 . . . . . . 7 (∃𝑎𝑏(𝑎 = 𝐴𝑏 = (𝐵 × ran 𝐴) ∧ 𝑥 = ⟨𝑎, 𝑏⟩) ↔ 𝑥 = ⟨𝐴, (𝐵 × ran 𝐴)⟩)
514, 44, 503bitri 299 . . . . . 6 (⟨𝐴, 𝐵⟩(1st ⊗ (Cart ∘ (2nd ⊗ (Range ∘ 1st ))))𝑥𝑥 = ⟨𝐴, (𝐵 × ran 𝐴)⟩)
5251anbi1i 625 . . . . 5 ((⟨𝐴, 𝐵⟩(1st ⊗ (Cart ∘ (2nd ⊗ (Range ∘ 1st ))))𝑥𝑥Cap𝐶) ↔ (𝑥 = ⟨𝐴, (𝐵 × ran 𝐴)⟩ ∧ 𝑥Cap𝐶))
5352exbii 1844 . . . 4 (∃𝑥(⟨𝐴, 𝐵⟩(1st ⊗ (Cart ∘ (2nd ⊗ (Range ∘ 1st ))))𝑥𝑥Cap𝐶) ↔ ∃𝑥(𝑥 = ⟨𝐴, (𝐵 × ran 𝐴)⟩ ∧ 𝑥Cap𝐶))
543, 53bitri 277 . . 3 (⟨𝐴, 𝐵⟩(Cap ∘ (1st ⊗ (Cart ∘ (2nd ⊗ (Range ∘ 1st )))))𝐶 ↔ ∃𝑥(𝑥 = ⟨𝐴, (𝐵 × ran 𝐴)⟩ ∧ 𝑥Cap𝐶))
55 opex 5348 . . . 4 𝐴, (𝐵 × ran 𝐴)⟩ ∈ V
56 breq1 5061 . . . 4 (𝑥 = ⟨𝐴, (𝐵 × ran 𝐴)⟩ → (𝑥Cap𝐶 ↔ ⟨𝐴, (𝐵 × ran 𝐴)⟩Cap𝐶))
5755, 56ceqsexv 3541 . . 3 (∃𝑥(𝑥 = ⟨𝐴, (𝐵 × ran 𝐴)⟩ ∧ 𝑥Cap𝐶) ↔ ⟨𝐴, (𝐵 × ran 𝐴)⟩Cap𝐶)
586, 45, 2brcap 33396 . . 3 (⟨𝐴, (𝐵 × ran 𝐴)⟩Cap𝐶𝐶 = (𝐴 ∩ (𝐵 × ran 𝐴)))
5954, 57, 583bitri 299 . 2 (⟨𝐴, 𝐵⟩(Cap ∘ (1st ⊗ (Cart ∘ (2nd ⊗ (Range ∘ 1st )))))𝐶𝐶 = (𝐴 ∩ (𝐵 × ran 𝐴)))
60 df-restrict 33327 . . 3 Restrict = (Cap ∘ (1st ⊗ (Cart ∘ (2nd ⊗ (Range ∘ 1st )))))
6160breqi 5064 . 2 (⟨𝐴, 𝐵⟩Restrict𝐶 ↔ ⟨𝐴, 𝐵⟩(Cap ∘ (1st ⊗ (Cart ∘ (2nd ⊗ (Range ∘ 1st )))))𝐶)
62 dfres3 5852 . . 3 (𝐴𝐵) = (𝐴 ∩ (𝐵 × ran 𝐴))
6362eqeq2i 2834 . 2 (𝐶 = (𝐴𝐵) ↔ 𝐶 = (𝐴 ∩ (𝐵 × ran 𝐴)))
6459, 61, 633bitr4i 305 1 (⟨𝐴, 𝐵⟩Restrict𝐶𝐶 = (𝐴𝐵))
Colors of variables: wff setvar class
Syntax hints:  wb 208  wa 398  w3a 1083   = wceq 1533  wex 1776  wcel 2110  Vcvv 3494  cin 3934  cop 4566   class class class wbr 5058   × cxp 5547  ran crn 5550  cres 5551  ccom 5553  1st c1st 7681  2nd c2nd 7682  ctxp 33286  Cartccart 33297  Rangecrange 33300  Capccap 33303  Restrictcrestrict 33307
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1792  ax-4 1806  ax-5 1907  ax-6 1966  ax-7 2011  ax-8 2112  ax-9 2120  ax-10 2141  ax-11 2157  ax-12 2173  ax-ext 2793  ax-sep 5195  ax-nul 5202  ax-pow 5258  ax-pr 5321  ax-un 7455
This theorem depends on definitions:  df-bi 209  df-an 399  df-or 844  df-3an 1085  df-tru 1536  df-ex 1777  df-nf 1781  df-sb 2066  df-mo 2618  df-eu 2650  df-clab 2800  df-cleq 2814  df-clel 2893  df-nfc 2963  df-ne 3017  df-ral 3143  df-rex 3144  df-rab 3147  df-v 3496  df-sbc 3772  df-dif 3938  df-un 3940  df-in 3942  df-ss 3951  df-symdif 4218  df-nul 4291  df-if 4467  df-pw 4540  df-sn 4561  df-pr 4563  df-op 4567  df-uni 4832  df-br 5059  df-opab 5121  df-mpt 5139  df-id 5454  df-eprel 5459  df-xp 5555  df-rel 5556  df-cnv 5557  df-co 5558  df-dm 5559  df-rn 5560  df-res 5561  df-ima 5562  df-iota 6308  df-fun 6351  df-fn 6352  df-f 6353  df-fo 6355  df-fv 6357  df-1st 7683  df-2nd 7684  df-txp 33310  df-pprod 33311  df-image 33320  df-cart 33321  df-range 33324  df-cap 33326  df-restrict 33327
This theorem is referenced by:  dfrecs2  33406
  Copyright terms: Public domain W3C validator