| Step | Hyp | Ref | Expression | 
						
							| 1 |  | brrestrict.1 | ⊢ 𝐴  ∈  V | 
						
							| 2 |  | brrestrict.2 | ⊢ 𝐵  ∈  V | 
						
							| 3 |  | brrestrict.3 | ⊢ 𝐶  ∈  V | 
						
							| 4 |  | opex | ⊢ 〈 𝐴 ,  𝐵 〉  ∈  V | 
						
							| 5 | 4 3 | brco | ⊢ ( 〈 𝐴 ,  𝐵 〉 ( Cap  ∘  ( 1st   ⊗  ( Cart  ∘  ( 2nd   ⊗  ( Range  ∘  1st  ) ) ) ) ) 𝐶  ↔  ∃ 𝑥 ( 〈 𝐴 ,  𝐵 〉 ( 1st   ⊗  ( Cart  ∘  ( 2nd   ⊗  ( Range  ∘  1st  ) ) ) ) 𝑥  ∧  𝑥 Cap 𝐶 ) ) | 
						
							| 6 | 4 | brtxp2 | ⊢ ( 〈 𝐴 ,  𝐵 〉 ( 1st   ⊗  ( Cart  ∘  ( 2nd   ⊗  ( Range  ∘  1st  ) ) ) ) 𝑥  ↔  ∃ 𝑎 ∃ 𝑏 ( 𝑥  =  〈 𝑎 ,  𝑏 〉  ∧  〈 𝐴 ,  𝐵 〉 1st  𝑎  ∧  〈 𝐴 ,  𝐵 〉 ( Cart  ∘  ( 2nd   ⊗  ( Range  ∘  1st  ) ) ) 𝑏 ) ) | 
						
							| 7 |  | 3anrot | ⊢ ( ( 𝑥  =  〈 𝑎 ,  𝑏 〉  ∧  〈 𝐴 ,  𝐵 〉 1st  𝑎  ∧  〈 𝐴 ,  𝐵 〉 ( Cart  ∘  ( 2nd   ⊗  ( Range  ∘  1st  ) ) ) 𝑏 )  ↔  ( 〈 𝐴 ,  𝐵 〉 1st  𝑎  ∧  〈 𝐴 ,  𝐵 〉 ( Cart  ∘  ( 2nd   ⊗  ( Range  ∘  1st  ) ) ) 𝑏  ∧  𝑥  =  〈 𝑎 ,  𝑏 〉 ) ) | 
						
							| 8 | 1 2 | br1steq | ⊢ ( 〈 𝐴 ,  𝐵 〉 1st  𝑎  ↔  𝑎  =  𝐴 ) | 
						
							| 9 |  | vex | ⊢ 𝑏  ∈  V | 
						
							| 10 | 4 9 | brco | ⊢ ( 〈 𝐴 ,  𝐵 〉 ( Cart  ∘  ( 2nd   ⊗  ( Range  ∘  1st  ) ) ) 𝑏  ↔  ∃ 𝑥 ( 〈 𝐴 ,  𝐵 〉 ( 2nd   ⊗  ( Range  ∘  1st  ) ) 𝑥  ∧  𝑥 Cart 𝑏 ) ) | 
						
							| 11 | 4 | brtxp2 | ⊢ ( 〈 𝐴 ,  𝐵 〉 ( 2nd   ⊗  ( Range  ∘  1st  ) ) 𝑥  ↔  ∃ 𝑎 ∃ 𝑏 ( 𝑥  =  〈 𝑎 ,  𝑏 〉  ∧  〈 𝐴 ,  𝐵 〉 2nd  𝑎  ∧  〈 𝐴 ,  𝐵 〉 ( Range  ∘  1st  ) 𝑏 ) ) | 
						
							| 12 |  | 3anrot | ⊢ ( ( 𝑥  =  〈 𝑎 ,  𝑏 〉  ∧  〈 𝐴 ,  𝐵 〉 2nd  𝑎  ∧  〈 𝐴 ,  𝐵 〉 ( Range  ∘  1st  ) 𝑏 )  ↔  ( 〈 𝐴 ,  𝐵 〉 2nd  𝑎  ∧  〈 𝐴 ,  𝐵 〉 ( Range  ∘  1st  ) 𝑏  ∧  𝑥  =  〈 𝑎 ,  𝑏 〉 ) ) | 
						
							| 13 | 1 2 | br2ndeq | ⊢ ( 〈 𝐴 ,  𝐵 〉 2nd  𝑎  ↔  𝑎  =  𝐵 ) | 
						
							| 14 | 4 9 | brco | ⊢ ( 〈 𝐴 ,  𝐵 〉 ( Range  ∘  1st  ) 𝑏  ↔  ∃ 𝑥 ( 〈 𝐴 ,  𝐵 〉 1st  𝑥  ∧  𝑥 Range 𝑏 ) ) | 
						
							| 15 | 1 2 | br1steq | ⊢ ( 〈 𝐴 ,  𝐵 〉 1st  𝑥  ↔  𝑥  =  𝐴 ) | 
						
							| 16 | 15 | anbi1i | ⊢ ( ( 〈 𝐴 ,  𝐵 〉 1st  𝑥  ∧  𝑥 Range 𝑏 )  ↔  ( 𝑥  =  𝐴  ∧  𝑥 Range 𝑏 ) ) | 
						
							| 17 | 16 | exbii | ⊢ ( ∃ 𝑥 ( 〈 𝐴 ,  𝐵 〉 1st  𝑥  ∧  𝑥 Range 𝑏 )  ↔  ∃ 𝑥 ( 𝑥  =  𝐴  ∧  𝑥 Range 𝑏 ) ) | 
						
							| 18 |  | breq1 | ⊢ ( 𝑥  =  𝐴  →  ( 𝑥 Range 𝑏  ↔  𝐴 Range 𝑏 ) ) | 
						
							| 19 | 1 18 | ceqsexv | ⊢ ( ∃ 𝑥 ( 𝑥  =  𝐴  ∧  𝑥 Range 𝑏 )  ↔  𝐴 Range 𝑏 ) | 
						
							| 20 | 17 19 | bitri | ⊢ ( ∃ 𝑥 ( 〈 𝐴 ,  𝐵 〉 1st  𝑥  ∧  𝑥 Range 𝑏 )  ↔  𝐴 Range 𝑏 ) | 
						
							| 21 | 1 9 | brrange | ⊢ ( 𝐴 Range 𝑏  ↔  𝑏  =  ran  𝐴 ) | 
						
							| 22 | 14 20 21 | 3bitri | ⊢ ( 〈 𝐴 ,  𝐵 〉 ( Range  ∘  1st  ) 𝑏  ↔  𝑏  =  ran  𝐴 ) | 
						
							| 23 |  | biid | ⊢ ( 𝑥  =  〈 𝑎 ,  𝑏 〉  ↔  𝑥  =  〈 𝑎 ,  𝑏 〉 ) | 
						
							| 24 | 13 22 23 | 3anbi123i | ⊢ ( ( 〈 𝐴 ,  𝐵 〉 2nd  𝑎  ∧  〈 𝐴 ,  𝐵 〉 ( Range  ∘  1st  ) 𝑏  ∧  𝑥  =  〈 𝑎 ,  𝑏 〉 )  ↔  ( 𝑎  =  𝐵  ∧  𝑏  =  ran  𝐴  ∧  𝑥  =  〈 𝑎 ,  𝑏 〉 ) ) | 
						
							| 25 | 12 24 | bitri | ⊢ ( ( 𝑥  =  〈 𝑎 ,  𝑏 〉  ∧  〈 𝐴 ,  𝐵 〉 2nd  𝑎  ∧  〈 𝐴 ,  𝐵 〉 ( Range  ∘  1st  ) 𝑏 )  ↔  ( 𝑎  =  𝐵  ∧  𝑏  =  ran  𝐴  ∧  𝑥  =  〈 𝑎 ,  𝑏 〉 ) ) | 
						
							| 26 | 25 | 2exbii | ⊢ ( ∃ 𝑎 ∃ 𝑏 ( 𝑥  =  〈 𝑎 ,  𝑏 〉  ∧  〈 𝐴 ,  𝐵 〉 2nd  𝑎  ∧  〈 𝐴 ,  𝐵 〉 ( Range  ∘  1st  ) 𝑏 )  ↔  ∃ 𝑎 ∃ 𝑏 ( 𝑎  =  𝐵  ∧  𝑏  =  ran  𝐴  ∧  𝑥  =  〈 𝑎 ,  𝑏 〉 ) ) | 
						
							| 27 | 1 | rnex | ⊢ ran  𝐴  ∈  V | 
						
							| 28 |  | opeq1 | ⊢ ( 𝑎  =  𝐵  →  〈 𝑎 ,  𝑏 〉  =  〈 𝐵 ,  𝑏 〉 ) | 
						
							| 29 | 28 | eqeq2d | ⊢ ( 𝑎  =  𝐵  →  ( 𝑥  =  〈 𝑎 ,  𝑏 〉  ↔  𝑥  =  〈 𝐵 ,  𝑏 〉 ) ) | 
						
							| 30 |  | opeq2 | ⊢ ( 𝑏  =  ran  𝐴  →  〈 𝐵 ,  𝑏 〉  =  〈 𝐵 ,  ran  𝐴 〉 ) | 
						
							| 31 | 30 | eqeq2d | ⊢ ( 𝑏  =  ran  𝐴  →  ( 𝑥  =  〈 𝐵 ,  𝑏 〉  ↔  𝑥  =  〈 𝐵 ,  ran  𝐴 〉 ) ) | 
						
							| 32 | 2 27 29 31 | ceqsex2v | ⊢ ( ∃ 𝑎 ∃ 𝑏 ( 𝑎  =  𝐵  ∧  𝑏  =  ran  𝐴  ∧  𝑥  =  〈 𝑎 ,  𝑏 〉 )  ↔  𝑥  =  〈 𝐵 ,  ran  𝐴 〉 ) | 
						
							| 33 | 11 26 32 | 3bitri | ⊢ ( 〈 𝐴 ,  𝐵 〉 ( 2nd   ⊗  ( Range  ∘  1st  ) ) 𝑥  ↔  𝑥  =  〈 𝐵 ,  ran  𝐴 〉 ) | 
						
							| 34 | 33 | anbi1i | ⊢ ( ( 〈 𝐴 ,  𝐵 〉 ( 2nd   ⊗  ( Range  ∘  1st  ) ) 𝑥  ∧  𝑥 Cart 𝑏 )  ↔  ( 𝑥  =  〈 𝐵 ,  ran  𝐴 〉  ∧  𝑥 Cart 𝑏 ) ) | 
						
							| 35 | 34 | exbii | ⊢ ( ∃ 𝑥 ( 〈 𝐴 ,  𝐵 〉 ( 2nd   ⊗  ( Range  ∘  1st  ) ) 𝑥  ∧  𝑥 Cart 𝑏 )  ↔  ∃ 𝑥 ( 𝑥  =  〈 𝐵 ,  ran  𝐴 〉  ∧  𝑥 Cart 𝑏 ) ) | 
						
							| 36 |  | opex | ⊢ 〈 𝐵 ,  ran  𝐴 〉  ∈  V | 
						
							| 37 |  | breq1 | ⊢ ( 𝑥  =  〈 𝐵 ,  ran  𝐴 〉  →  ( 𝑥 Cart 𝑏  ↔  〈 𝐵 ,  ran  𝐴 〉 Cart 𝑏 ) ) | 
						
							| 38 | 36 37 | ceqsexv | ⊢ ( ∃ 𝑥 ( 𝑥  =  〈 𝐵 ,  ran  𝐴 〉  ∧  𝑥 Cart 𝑏 )  ↔  〈 𝐵 ,  ran  𝐴 〉 Cart 𝑏 ) | 
						
							| 39 | 35 38 | bitri | ⊢ ( ∃ 𝑥 ( 〈 𝐴 ,  𝐵 〉 ( 2nd   ⊗  ( Range  ∘  1st  ) ) 𝑥  ∧  𝑥 Cart 𝑏 )  ↔  〈 𝐵 ,  ran  𝐴 〉 Cart 𝑏 ) | 
						
							| 40 | 2 27 9 | brcart | ⊢ ( 〈 𝐵 ,  ran  𝐴 〉 Cart 𝑏  ↔  𝑏  =  ( 𝐵  ×  ran  𝐴 ) ) | 
						
							| 41 | 10 39 40 | 3bitri | ⊢ ( 〈 𝐴 ,  𝐵 〉 ( Cart  ∘  ( 2nd   ⊗  ( Range  ∘  1st  ) ) ) 𝑏  ↔  𝑏  =  ( 𝐵  ×  ran  𝐴 ) ) | 
						
							| 42 | 8 41 23 | 3anbi123i | ⊢ ( ( 〈 𝐴 ,  𝐵 〉 1st  𝑎  ∧  〈 𝐴 ,  𝐵 〉 ( Cart  ∘  ( 2nd   ⊗  ( Range  ∘  1st  ) ) ) 𝑏  ∧  𝑥  =  〈 𝑎 ,  𝑏 〉 )  ↔  ( 𝑎  =  𝐴  ∧  𝑏  =  ( 𝐵  ×  ran  𝐴 )  ∧  𝑥  =  〈 𝑎 ,  𝑏 〉 ) ) | 
						
							| 43 | 7 42 | bitri | ⊢ ( ( 𝑥  =  〈 𝑎 ,  𝑏 〉  ∧  〈 𝐴 ,  𝐵 〉 1st  𝑎  ∧  〈 𝐴 ,  𝐵 〉 ( Cart  ∘  ( 2nd   ⊗  ( Range  ∘  1st  ) ) ) 𝑏 )  ↔  ( 𝑎  =  𝐴  ∧  𝑏  =  ( 𝐵  ×  ran  𝐴 )  ∧  𝑥  =  〈 𝑎 ,  𝑏 〉 ) ) | 
						
							| 44 | 43 | 2exbii | ⊢ ( ∃ 𝑎 ∃ 𝑏 ( 𝑥  =  〈 𝑎 ,  𝑏 〉  ∧  〈 𝐴 ,  𝐵 〉 1st  𝑎  ∧  〈 𝐴 ,  𝐵 〉 ( Cart  ∘  ( 2nd   ⊗  ( Range  ∘  1st  ) ) ) 𝑏 )  ↔  ∃ 𝑎 ∃ 𝑏 ( 𝑎  =  𝐴  ∧  𝑏  =  ( 𝐵  ×  ran  𝐴 )  ∧  𝑥  =  〈 𝑎 ,  𝑏 〉 ) ) | 
						
							| 45 | 2 27 | xpex | ⊢ ( 𝐵  ×  ran  𝐴 )  ∈  V | 
						
							| 46 |  | opeq1 | ⊢ ( 𝑎  =  𝐴  →  〈 𝑎 ,  𝑏 〉  =  〈 𝐴 ,  𝑏 〉 ) | 
						
							| 47 | 46 | eqeq2d | ⊢ ( 𝑎  =  𝐴  →  ( 𝑥  =  〈 𝑎 ,  𝑏 〉  ↔  𝑥  =  〈 𝐴 ,  𝑏 〉 ) ) | 
						
							| 48 |  | opeq2 | ⊢ ( 𝑏  =  ( 𝐵  ×  ran  𝐴 )  →  〈 𝐴 ,  𝑏 〉  =  〈 𝐴 ,  ( 𝐵  ×  ran  𝐴 ) 〉 ) | 
						
							| 49 | 48 | eqeq2d | ⊢ ( 𝑏  =  ( 𝐵  ×  ran  𝐴 )  →  ( 𝑥  =  〈 𝐴 ,  𝑏 〉  ↔  𝑥  =  〈 𝐴 ,  ( 𝐵  ×  ran  𝐴 ) 〉 ) ) | 
						
							| 50 | 1 45 47 49 | ceqsex2v | ⊢ ( ∃ 𝑎 ∃ 𝑏 ( 𝑎  =  𝐴  ∧  𝑏  =  ( 𝐵  ×  ran  𝐴 )  ∧  𝑥  =  〈 𝑎 ,  𝑏 〉 )  ↔  𝑥  =  〈 𝐴 ,  ( 𝐵  ×  ran  𝐴 ) 〉 ) | 
						
							| 51 | 6 44 50 | 3bitri | ⊢ ( 〈 𝐴 ,  𝐵 〉 ( 1st   ⊗  ( Cart  ∘  ( 2nd   ⊗  ( Range  ∘  1st  ) ) ) ) 𝑥  ↔  𝑥  =  〈 𝐴 ,  ( 𝐵  ×  ran  𝐴 ) 〉 ) | 
						
							| 52 | 51 | anbi1i | ⊢ ( ( 〈 𝐴 ,  𝐵 〉 ( 1st   ⊗  ( Cart  ∘  ( 2nd   ⊗  ( Range  ∘  1st  ) ) ) ) 𝑥  ∧  𝑥 Cap 𝐶 )  ↔  ( 𝑥  =  〈 𝐴 ,  ( 𝐵  ×  ran  𝐴 ) 〉  ∧  𝑥 Cap 𝐶 ) ) | 
						
							| 53 | 52 | exbii | ⊢ ( ∃ 𝑥 ( 〈 𝐴 ,  𝐵 〉 ( 1st   ⊗  ( Cart  ∘  ( 2nd   ⊗  ( Range  ∘  1st  ) ) ) ) 𝑥  ∧  𝑥 Cap 𝐶 )  ↔  ∃ 𝑥 ( 𝑥  =  〈 𝐴 ,  ( 𝐵  ×  ran  𝐴 ) 〉  ∧  𝑥 Cap 𝐶 ) ) | 
						
							| 54 | 5 53 | bitri | ⊢ ( 〈 𝐴 ,  𝐵 〉 ( Cap  ∘  ( 1st   ⊗  ( Cart  ∘  ( 2nd   ⊗  ( Range  ∘  1st  ) ) ) ) ) 𝐶  ↔  ∃ 𝑥 ( 𝑥  =  〈 𝐴 ,  ( 𝐵  ×  ran  𝐴 ) 〉  ∧  𝑥 Cap 𝐶 ) ) | 
						
							| 55 |  | opex | ⊢ 〈 𝐴 ,  ( 𝐵  ×  ran  𝐴 ) 〉  ∈  V | 
						
							| 56 |  | breq1 | ⊢ ( 𝑥  =  〈 𝐴 ,  ( 𝐵  ×  ran  𝐴 ) 〉  →  ( 𝑥 Cap 𝐶  ↔  〈 𝐴 ,  ( 𝐵  ×  ran  𝐴 ) 〉 Cap 𝐶 ) ) | 
						
							| 57 | 55 56 | ceqsexv | ⊢ ( ∃ 𝑥 ( 𝑥  =  〈 𝐴 ,  ( 𝐵  ×  ran  𝐴 ) 〉  ∧  𝑥 Cap 𝐶 )  ↔  〈 𝐴 ,  ( 𝐵  ×  ran  𝐴 ) 〉 Cap 𝐶 ) | 
						
							| 58 | 1 45 3 | brcap | ⊢ ( 〈 𝐴 ,  ( 𝐵  ×  ran  𝐴 ) 〉 Cap 𝐶  ↔  𝐶  =  ( 𝐴  ∩  ( 𝐵  ×  ran  𝐴 ) ) ) | 
						
							| 59 | 54 57 58 | 3bitri | ⊢ ( 〈 𝐴 ,  𝐵 〉 ( Cap  ∘  ( 1st   ⊗  ( Cart  ∘  ( 2nd   ⊗  ( Range  ∘  1st  ) ) ) ) ) 𝐶  ↔  𝐶  =  ( 𝐴  ∩  ( 𝐵  ×  ran  𝐴 ) ) ) | 
						
							| 60 |  | df-restrict | ⊢ Restrict  =  ( Cap  ∘  ( 1st   ⊗  ( Cart  ∘  ( 2nd   ⊗  ( Range  ∘  1st  ) ) ) ) ) | 
						
							| 61 | 60 | breqi | ⊢ ( 〈 𝐴 ,  𝐵 〉 Restrict 𝐶  ↔  〈 𝐴 ,  𝐵 〉 ( Cap  ∘  ( 1st   ⊗  ( Cart  ∘  ( 2nd   ⊗  ( Range  ∘  1st  ) ) ) ) ) 𝐶 ) | 
						
							| 62 |  | dfres3 | ⊢ ( 𝐴  ↾  𝐵 )  =  ( 𝐴  ∩  ( 𝐵  ×  ran  𝐴 ) ) | 
						
							| 63 | 62 | eqeq2i | ⊢ ( 𝐶  =  ( 𝐴  ↾  𝐵 )  ↔  𝐶  =  ( 𝐴  ∩  ( 𝐵  ×  ran  𝐴 ) ) ) | 
						
							| 64 | 59 61 63 | 3bitr4i | ⊢ ( 〈 𝐴 ,  𝐵 〉 Restrict 𝐶  ↔  𝐶  =  ( 𝐴  ↾  𝐵 ) ) |