Metamath Proof Explorer


Theorem brapply

Description: Binary relation form of the Apply function. (Contributed by Scott Fenton, 12-Apr-2014) (Revised by Mario Carneiro, 19-Apr-2014) (Proof shortened by Peter Mazsa, 2-Oct-2022)

Ref Expression
Hypotheses brapply.1 𝐴 ∈ V
brapply.2 𝐵 ∈ V
brapply.3 𝐶 ∈ V
Assertion brapply ( ⟨ 𝐴 , 𝐵 ⟩ Apply 𝐶𝐶 = ( 𝐴𝐵 ) )

Proof

Step Hyp Ref Expression
1 brapply.1 𝐴 ∈ V
2 brapply.2 𝐵 ∈ V
3 brapply.3 𝐶 ∈ V
4 snex { ( 𝐴 “ { 𝐵 } ) } ∈ V
5 4 inex1 ( { ( 𝐴 “ { 𝐵 } ) } ∩ Singletons ) ∈ V
6 unieq ( 𝑥 = ( { ( 𝐴 “ { 𝐵 } ) } ∩ Singletons ) → 𝑥 = ( { ( 𝐴 “ { 𝐵 } ) } ∩ Singletons ) )
7 6 unieqd ( 𝑥 = ( { ( 𝐴 “ { 𝐵 } ) } ∩ Singletons ) → 𝑥 = ( { ( 𝐴 “ { 𝐵 } ) } ∩ Singletons ) )
8 7 eqeq2d ( 𝑥 = ( { ( 𝐴 “ { 𝐵 } ) } ∩ Singletons ) → ( 𝐶 = 𝑥𝐶 = ( { ( 𝐴 “ { 𝐵 } ) } ∩ Singletons ) ) )
9 5 8 ceqsexv ( ∃ 𝑥 ( 𝑥 = ( { ( 𝐴 “ { 𝐵 } ) } ∩ Singletons ) ∧ 𝐶 = 𝑥 ) ↔ 𝐶 = ( { ( 𝐴 “ { 𝐵 } ) } ∩ Singletons ) )
10 df-apply Apply = ( ( Bigcup Bigcup ) ∘ ( ( ( V × V ) ∖ ran ( ( V ⊗ E ) △ ( ( E ↾ Singletons ) ⊗ V ) ) ) ∘ ( ( Singleton ∘ Img ) ∘ pprod ( I , Singleton ) ) ) )
11 10 breqi ( ⟨ 𝐴 , 𝐵 ⟩ Apply 𝐶 ↔ ⟨ 𝐴 , 𝐵 ⟩ ( ( Bigcup Bigcup ) ∘ ( ( ( V × V ) ∖ ran ( ( V ⊗ E ) △ ( ( E ↾ Singletons ) ⊗ V ) ) ) ∘ ( ( Singleton ∘ Img ) ∘ pprod ( I , Singleton ) ) ) ) 𝐶 )
12 opex 𝐴 , 𝐵 ⟩ ∈ V
13 12 3 brco ( ⟨ 𝐴 , 𝐵 ⟩ ( ( Bigcup Bigcup ) ∘ ( ( ( V × V ) ∖ ran ( ( V ⊗ E ) △ ( ( E ↾ Singletons ) ⊗ V ) ) ) ∘ ( ( Singleton ∘ Img ) ∘ pprod ( I , Singleton ) ) ) ) 𝐶 ↔ ∃ 𝑥 ( ⟨ 𝐴 , 𝐵 ⟩ ( ( ( V × V ) ∖ ran ( ( V ⊗ E ) △ ( ( E ↾ Singletons ) ⊗ V ) ) ) ∘ ( ( Singleton ∘ Img ) ∘ pprod ( I , Singleton ) ) ) 𝑥𝑥 ( Bigcup Bigcup ) 𝐶 ) )
14 vex 𝑥 ∈ V
15 12 14 brco ( ⟨ 𝐴 , 𝐵 ⟩ ( ( ( V × V ) ∖ ran ( ( V ⊗ E ) △ ( ( E ↾ Singletons ) ⊗ V ) ) ) ∘ ( ( Singleton ∘ Img ) ∘ pprod ( I , Singleton ) ) ) 𝑥 ↔ ∃ 𝑦 ( ⟨ 𝐴 , 𝐵 ⟩ ( ( Singleton ∘ Img ) ∘ pprod ( I , Singleton ) ) 𝑦𝑦 ( ( V × V ) ∖ ran ( ( V ⊗ E ) △ ( ( E ↾ Singletons ) ⊗ V ) ) ) 𝑥 ) )
16 vex 𝑦 ∈ V
17 12 16 brco ( ⟨ 𝐴 , 𝐵 ⟩ ( ( Singleton ∘ Img ) ∘ pprod ( I , Singleton ) ) 𝑦 ↔ ∃ 𝑧 ( ⟨ 𝐴 , 𝐵 ⟩ pprod ( I , Singleton ) 𝑧𝑧 ( Singleton ∘ Img ) 𝑦 ) )
18 vex 𝑧 ∈ V
19 1 2 18 brpprod3a ( ⟨ 𝐴 , 𝐵 ⟩ pprod ( I , Singleton ) 𝑧 ↔ ∃ 𝑎𝑏 ( 𝑧 = ⟨ 𝑎 , 𝑏 ⟩ ∧ 𝐴 I 𝑎𝐵 Singleton 𝑏 ) )
20 3anrot ( ( 𝑧 = ⟨ 𝑎 , 𝑏 ⟩ ∧ 𝐴 I 𝑎𝐵 Singleton 𝑏 ) ↔ ( 𝐴 I 𝑎𝐵 Singleton 𝑏𝑧 = ⟨ 𝑎 , 𝑏 ⟩ ) )
21 vex 𝑎 ∈ V
22 21 ideq ( 𝐴 I 𝑎𝐴 = 𝑎 )
23 eqcom ( 𝐴 = 𝑎𝑎 = 𝐴 )
24 22 23 bitri ( 𝐴 I 𝑎𝑎 = 𝐴 )
25 vex 𝑏 ∈ V
26 2 25 brsingle ( 𝐵 Singleton 𝑏𝑏 = { 𝐵 } )
27 biid ( 𝑧 = ⟨ 𝑎 , 𝑏 ⟩ ↔ 𝑧 = ⟨ 𝑎 , 𝑏 ⟩ )
28 24 26 27 3anbi123i ( ( 𝐴 I 𝑎𝐵 Singleton 𝑏𝑧 = ⟨ 𝑎 , 𝑏 ⟩ ) ↔ ( 𝑎 = 𝐴𝑏 = { 𝐵 } ∧ 𝑧 = ⟨ 𝑎 , 𝑏 ⟩ ) )
29 20 28 bitri ( ( 𝑧 = ⟨ 𝑎 , 𝑏 ⟩ ∧ 𝐴 I 𝑎𝐵 Singleton 𝑏 ) ↔ ( 𝑎 = 𝐴𝑏 = { 𝐵 } ∧ 𝑧 = ⟨ 𝑎 , 𝑏 ⟩ ) )
30 29 2exbii ( ∃ 𝑎𝑏 ( 𝑧 = ⟨ 𝑎 , 𝑏 ⟩ ∧ 𝐴 I 𝑎𝐵 Singleton 𝑏 ) ↔ ∃ 𝑎𝑏 ( 𝑎 = 𝐴𝑏 = { 𝐵 } ∧ 𝑧 = ⟨ 𝑎 , 𝑏 ⟩ ) )
31 snex { 𝐵 } ∈ V
32 opeq1 ( 𝑎 = 𝐴 → ⟨ 𝑎 , 𝑏 ⟩ = ⟨ 𝐴 , 𝑏 ⟩ )
33 32 eqeq2d ( 𝑎 = 𝐴 → ( 𝑧 = ⟨ 𝑎 , 𝑏 ⟩ ↔ 𝑧 = ⟨ 𝐴 , 𝑏 ⟩ ) )
34 opeq2 ( 𝑏 = { 𝐵 } → ⟨ 𝐴 , 𝑏 ⟩ = ⟨ 𝐴 , { 𝐵 } ⟩ )
35 34 eqeq2d ( 𝑏 = { 𝐵 } → ( 𝑧 = ⟨ 𝐴 , 𝑏 ⟩ ↔ 𝑧 = ⟨ 𝐴 , { 𝐵 } ⟩ ) )
36 1 31 33 35 ceqsex2v ( ∃ 𝑎𝑏 ( 𝑎 = 𝐴𝑏 = { 𝐵 } ∧ 𝑧 = ⟨ 𝑎 , 𝑏 ⟩ ) ↔ 𝑧 = ⟨ 𝐴 , { 𝐵 } ⟩ )
37 19 30 36 3bitri ( ⟨ 𝐴 , 𝐵 ⟩ pprod ( I , Singleton ) 𝑧𝑧 = ⟨ 𝐴 , { 𝐵 } ⟩ )
38 37 anbi1i ( ( ⟨ 𝐴 , 𝐵 ⟩ pprod ( I , Singleton ) 𝑧𝑧 ( Singleton ∘ Img ) 𝑦 ) ↔ ( 𝑧 = ⟨ 𝐴 , { 𝐵 } ⟩ ∧ 𝑧 ( Singleton ∘ Img ) 𝑦 ) )
39 38 exbii ( ∃ 𝑧 ( ⟨ 𝐴 , 𝐵 ⟩ pprod ( I , Singleton ) 𝑧𝑧 ( Singleton ∘ Img ) 𝑦 ) ↔ ∃ 𝑧 ( 𝑧 = ⟨ 𝐴 , { 𝐵 } ⟩ ∧ 𝑧 ( Singleton ∘ Img ) 𝑦 ) )
40 opex 𝐴 , { 𝐵 } ⟩ ∈ V
41 breq1 ( 𝑧 = ⟨ 𝐴 , { 𝐵 } ⟩ → ( 𝑧 ( Singleton ∘ Img ) 𝑦 ↔ ⟨ 𝐴 , { 𝐵 } ⟩ ( Singleton ∘ Img ) 𝑦 ) )
42 40 41 ceqsexv ( ∃ 𝑧 ( 𝑧 = ⟨ 𝐴 , { 𝐵 } ⟩ ∧ 𝑧 ( Singleton ∘ Img ) 𝑦 ) ↔ ⟨ 𝐴 , { 𝐵 } ⟩ ( Singleton ∘ Img ) 𝑦 )
43 40 16 brco ( ⟨ 𝐴 , { 𝐵 } ⟩ ( Singleton ∘ Img ) 𝑦 ↔ ∃ 𝑥 ( ⟨ 𝐴 , { 𝐵 } ⟩ Img 𝑥𝑥 Singleton 𝑦 ) )
44 1 31 14 brimg ( ⟨ 𝐴 , { 𝐵 } ⟩ Img 𝑥𝑥 = ( 𝐴 “ { 𝐵 } ) )
45 14 16 brsingle ( 𝑥 Singleton 𝑦𝑦 = { 𝑥 } )
46 44 45 anbi12i ( ( ⟨ 𝐴 , { 𝐵 } ⟩ Img 𝑥𝑥 Singleton 𝑦 ) ↔ ( 𝑥 = ( 𝐴 “ { 𝐵 } ) ∧ 𝑦 = { 𝑥 } ) )
47 46 exbii ( ∃ 𝑥 ( ⟨ 𝐴 , { 𝐵 } ⟩ Img 𝑥𝑥 Singleton 𝑦 ) ↔ ∃ 𝑥 ( 𝑥 = ( 𝐴 “ { 𝐵 } ) ∧ 𝑦 = { 𝑥 } ) )
48 1 imaex ( 𝐴 “ { 𝐵 } ) ∈ V
49 sneq ( 𝑥 = ( 𝐴 “ { 𝐵 } ) → { 𝑥 } = { ( 𝐴 “ { 𝐵 } ) } )
50 49 eqeq2d ( 𝑥 = ( 𝐴 “ { 𝐵 } ) → ( 𝑦 = { 𝑥 } ↔ 𝑦 = { ( 𝐴 “ { 𝐵 } ) } ) )
51 48 50 ceqsexv ( ∃ 𝑥 ( 𝑥 = ( 𝐴 “ { 𝐵 } ) ∧ 𝑦 = { 𝑥 } ) ↔ 𝑦 = { ( 𝐴 “ { 𝐵 } ) } )
52 47 51 bitri ( ∃ 𝑥 ( ⟨ 𝐴 , { 𝐵 } ⟩ Img 𝑥𝑥 Singleton 𝑦 ) ↔ 𝑦 = { ( 𝐴 “ { 𝐵 } ) } )
53 42 43 52 3bitri ( ∃ 𝑧 ( 𝑧 = ⟨ 𝐴 , { 𝐵 } ⟩ ∧ 𝑧 ( Singleton ∘ Img ) 𝑦 ) ↔ 𝑦 = { ( 𝐴 “ { 𝐵 } ) } )
54 17 39 53 3bitri ( ⟨ 𝐴 , 𝐵 ⟩ ( ( Singleton ∘ Img ) ∘ pprod ( I , Singleton ) ) 𝑦𝑦 = { ( 𝐴 “ { 𝐵 } ) } )
55 eqid ( ( V × V ) ∖ ran ( ( V ⊗ E ) △ ( ( E ↾ Singletons ) ⊗ V ) ) ) = ( ( V × V ) ∖ ran ( ( V ⊗ E ) △ ( ( E ↾ Singletons ) ⊗ V ) ) )
56 brxp ( 𝑦 ( V × V ) 𝑥 ↔ ( 𝑦 ∈ V ∧ 𝑥 ∈ V ) )
57 16 14 56 mpbir2an 𝑦 ( V × V ) 𝑥
58 epel ( 𝑧 E 𝑦𝑧𝑦 )
59 58 anbi1ci ( ( 𝑧 Singletons 𝑧 E 𝑦 ) ↔ ( 𝑧𝑦𝑧 Singletons ) )
60 16 brresi ( 𝑧 ( E ↾ Singletons ) 𝑦 ↔ ( 𝑧 Singletons 𝑧 E 𝑦 ) )
61 elin ( 𝑧 ∈ ( 𝑦 Singletons ) ↔ ( 𝑧𝑦𝑧 Singletons ) )
62 59 60 61 3bitr4ri ( 𝑧 ∈ ( 𝑦 Singletons ) ↔ 𝑧 ( E ↾ Singletons ) 𝑦 )
63 16 14 55 57 62 brtxpsd3 ( 𝑦 ( ( V × V ) ∖ ran ( ( V ⊗ E ) △ ( ( E ↾ Singletons ) ⊗ V ) ) ) 𝑥𝑥 = ( 𝑦 Singletons ) )
64 54 63 anbi12i ( ( ⟨ 𝐴 , 𝐵 ⟩ ( ( Singleton ∘ Img ) ∘ pprod ( I , Singleton ) ) 𝑦𝑦 ( ( V × V ) ∖ ran ( ( V ⊗ E ) △ ( ( E ↾ Singletons ) ⊗ V ) ) ) 𝑥 ) ↔ ( 𝑦 = { ( 𝐴 “ { 𝐵 } ) } ∧ 𝑥 = ( 𝑦 Singletons ) ) )
65 64 exbii ( ∃ 𝑦 ( ⟨ 𝐴 , 𝐵 ⟩ ( ( Singleton ∘ Img ) ∘ pprod ( I , Singleton ) ) 𝑦𝑦 ( ( V × V ) ∖ ran ( ( V ⊗ E ) △ ( ( E ↾ Singletons ) ⊗ V ) ) ) 𝑥 ) ↔ ∃ 𝑦 ( 𝑦 = { ( 𝐴 “ { 𝐵 } ) } ∧ 𝑥 = ( 𝑦 Singletons ) ) )
66 ineq1 ( 𝑦 = { ( 𝐴 “ { 𝐵 } ) } → ( 𝑦 Singletons ) = ( { ( 𝐴 “ { 𝐵 } ) } ∩ Singletons ) )
67 66 eqeq2d ( 𝑦 = { ( 𝐴 “ { 𝐵 } ) } → ( 𝑥 = ( 𝑦 Singletons ) ↔ 𝑥 = ( { ( 𝐴 “ { 𝐵 } ) } ∩ Singletons ) ) )
68 4 67 ceqsexv ( ∃ 𝑦 ( 𝑦 = { ( 𝐴 “ { 𝐵 } ) } ∧ 𝑥 = ( 𝑦 Singletons ) ) ↔ 𝑥 = ( { ( 𝐴 “ { 𝐵 } ) } ∩ Singletons ) )
69 15 65 68 3bitri ( ⟨ 𝐴 , 𝐵 ⟩ ( ( ( V × V ) ∖ ran ( ( V ⊗ E ) △ ( ( E ↾ Singletons ) ⊗ V ) ) ) ∘ ( ( Singleton ∘ Img ) ∘ pprod ( I , Singleton ) ) ) 𝑥𝑥 = ( { ( 𝐴 “ { 𝐵 } ) } ∩ Singletons ) )
70 14 3 brco ( 𝑥 ( Bigcup Bigcup ) 𝐶 ↔ ∃ 𝑦 ( 𝑥 Bigcup 𝑦𝑦 Bigcup 𝐶 ) )
71 16 brbigcup ( 𝑥 Bigcup 𝑦 𝑥 = 𝑦 )
72 eqcom ( 𝑥 = 𝑦𝑦 = 𝑥 )
73 71 72 bitri ( 𝑥 Bigcup 𝑦𝑦 = 𝑥 )
74 3 brbigcup ( 𝑦 Bigcup 𝐶 𝑦 = 𝐶 )
75 eqcom ( 𝑦 = 𝐶𝐶 = 𝑦 )
76 74 75 bitri ( 𝑦 Bigcup 𝐶𝐶 = 𝑦 )
77 73 76 anbi12i ( ( 𝑥 Bigcup 𝑦𝑦 Bigcup 𝐶 ) ↔ ( 𝑦 = 𝑥𝐶 = 𝑦 ) )
78 77 exbii ( ∃ 𝑦 ( 𝑥 Bigcup 𝑦𝑦 Bigcup 𝐶 ) ↔ ∃ 𝑦 ( 𝑦 = 𝑥𝐶 = 𝑦 ) )
79 vuniex 𝑥 ∈ V
80 unieq ( 𝑦 = 𝑥 𝑦 = 𝑥 )
81 80 eqeq2d ( 𝑦 = 𝑥 → ( 𝐶 = 𝑦𝐶 = 𝑥 ) )
82 79 81 ceqsexv ( ∃ 𝑦 ( 𝑦 = 𝑥𝐶 = 𝑦 ) ↔ 𝐶 = 𝑥 )
83 70 78 82 3bitri ( 𝑥 ( Bigcup Bigcup ) 𝐶𝐶 = 𝑥 )
84 69 83 anbi12i ( ( ⟨ 𝐴 , 𝐵 ⟩ ( ( ( V × V ) ∖ ran ( ( V ⊗ E ) △ ( ( E ↾ Singletons ) ⊗ V ) ) ) ∘ ( ( Singleton ∘ Img ) ∘ pprod ( I , Singleton ) ) ) 𝑥𝑥 ( Bigcup Bigcup ) 𝐶 ) ↔ ( 𝑥 = ( { ( 𝐴 “ { 𝐵 } ) } ∩ Singletons ) ∧ 𝐶 = 𝑥 ) )
85 84 exbii ( ∃ 𝑥 ( ⟨ 𝐴 , 𝐵 ⟩ ( ( ( V × V ) ∖ ran ( ( V ⊗ E ) △ ( ( E ↾ Singletons ) ⊗ V ) ) ) ∘ ( ( Singleton ∘ Img ) ∘ pprod ( I , Singleton ) ) ) 𝑥𝑥 ( Bigcup Bigcup ) 𝐶 ) ↔ ∃ 𝑥 ( 𝑥 = ( { ( 𝐴 “ { 𝐵 } ) } ∩ Singletons ) ∧ 𝐶 = 𝑥 ) )
86 11 13 85 3bitri ( ⟨ 𝐴 , 𝐵 ⟩ Apply 𝐶 ↔ ∃ 𝑥 ( 𝑥 = ( { ( 𝐴 “ { 𝐵 } ) } ∩ Singletons ) ∧ 𝐶 = 𝑥 ) )
87 dffv5 ( 𝐴𝐵 ) = ( { ( 𝐴 “ { 𝐵 } ) } ∩ Singletons )
88 87 eqeq2i ( 𝐶 = ( 𝐴𝐵 ) ↔ 𝐶 = ( { ( 𝐴 “ { 𝐵 } ) } ∩ Singletons ) )
89 9 86 88 3bitr4i ( ⟨ 𝐴 , 𝐵 ⟩ Apply 𝐶𝐶 = ( 𝐴𝐵 ) )