Metamath Proof Explorer


Theorem mptsnunlem

Description: This is the core of the proof of mptsnun , but to avoid the distinct variables on the definitions, we split this proof into two. (Contributed by ML, 16-Jul-2020)

Ref Expression
Hypotheses mptsnun.f 𝐹 = ( 𝑥𝐴 ↦ { 𝑥 } )
mptsnun.r 𝑅 = { 𝑢 ∣ ∃ 𝑥𝐴 𝑢 = { 𝑥 } }
Assertion mptsnunlem ( 𝐵𝐴𝐵 = ( 𝐹𝐵 ) )

Proof

Step Hyp Ref Expression
1 mptsnun.f 𝐹 = ( 𝑥𝐴 ↦ { 𝑥 } )
2 mptsnun.r 𝑅 = { 𝑢 ∣ ∃ 𝑥𝐴 𝑢 = { 𝑥 } }
3 df-ima ( 𝐹𝐵 ) = ran ( 𝐹𝐵 )
4 1 reseq1i ( 𝐹𝐵 ) = ( ( 𝑥𝐴 ↦ { 𝑥 } ) ↾ 𝐵 )
5 resmpt ( 𝐵𝐴 → ( ( 𝑥𝐴 ↦ { 𝑥 } ) ↾ 𝐵 ) = ( 𝑥𝐵 ↦ { 𝑥 } ) )
6 4 5 syl5eq ( 𝐵𝐴 → ( 𝐹𝐵 ) = ( 𝑥𝐵 ↦ { 𝑥 } ) )
7 6 rneqd ( 𝐵𝐴 → ran ( 𝐹𝐵 ) = ran ( 𝑥𝐵 ↦ { 𝑥 } ) )
8 rnmptsn ran ( 𝑥𝐵 ↦ { 𝑥 } ) = { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } }
9 7 8 eqtrdi ( 𝐵𝐴 → ran ( 𝐹𝐵 ) = { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } )
10 3 9 syl5eq ( 𝐵𝐴 → ( 𝐹𝐵 ) = { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } )
11 10 unieqd ( 𝐵𝐴 ( 𝐹𝐵 ) = { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } )
12 11 eleq2d ( 𝐵𝐴 → ( 𝑥 ( 𝐹𝐵 ) ↔ 𝑥 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } ) )
13 eleq1w ( 𝑧 = 𝑥 → ( 𝑧𝐵𝑥𝐵 ) )
14 eluniab ( 𝑧 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } ↔ ∃ 𝑢 ( 𝑧𝑢 ∧ ∃ 𝑥𝐵 𝑢 = { 𝑥 } ) )
15 ancom ( ( 𝑧𝑢 ∧ ∃ 𝑥𝐵 𝑢 = { 𝑥 } ) ↔ ( ∃ 𝑥𝐵 𝑢 = { 𝑥 } ∧ 𝑧𝑢 ) )
16 r19.41v ( ∃ 𝑥𝐵 ( 𝑢 = { 𝑥 } ∧ 𝑧𝑢 ) ↔ ( ∃ 𝑥𝐵 𝑢 = { 𝑥 } ∧ 𝑧𝑢 ) )
17 df-rex ( ∃ 𝑥𝐵 ( 𝑢 = { 𝑥 } ∧ 𝑧𝑢 ) ↔ ∃ 𝑥 ( 𝑥𝐵 ∧ ( 𝑢 = { 𝑥 } ∧ 𝑧𝑢 ) ) )
18 15 16 17 3bitr2i ( ( 𝑧𝑢 ∧ ∃ 𝑥𝐵 𝑢 = { 𝑥 } ) ↔ ∃ 𝑥 ( 𝑥𝐵 ∧ ( 𝑢 = { 𝑥 } ∧ 𝑧𝑢 ) ) )
19 eleq2 ( 𝑢 = { 𝑥 } → ( 𝑧𝑢𝑧 ∈ { 𝑥 } ) )
20 19 anbi2d ( 𝑢 = { 𝑥 } → ( ( 𝑢 = { 𝑥 } ∧ 𝑧𝑢 ) ↔ ( 𝑢 = { 𝑥 } ∧ 𝑧 ∈ { 𝑥 } ) ) )
21 20 adantr ( ( 𝑢 = { 𝑥 } ∧ 𝑧𝑢 ) → ( ( 𝑢 = { 𝑥 } ∧ 𝑧𝑢 ) ↔ ( 𝑢 = { 𝑥 } ∧ 𝑧 ∈ { 𝑥 } ) ) )
22 21 ibi ( ( 𝑢 = { 𝑥 } ∧ 𝑧𝑢 ) → ( 𝑢 = { 𝑥 } ∧ 𝑧 ∈ { 𝑥 } ) )
23 22 anim2i ( ( 𝑥𝐵 ∧ ( 𝑢 = { 𝑥 } ∧ 𝑧𝑢 ) ) → ( 𝑥𝐵 ∧ ( 𝑢 = { 𝑥 } ∧ 𝑧 ∈ { 𝑥 } ) ) )
24 23 eximi ( ∃ 𝑥 ( 𝑥𝐵 ∧ ( 𝑢 = { 𝑥 } ∧ 𝑧𝑢 ) ) → ∃ 𝑥 ( 𝑥𝐵 ∧ ( 𝑢 = { 𝑥 } ∧ 𝑧 ∈ { 𝑥 } ) ) )
25 18 24 sylbi ( ( 𝑧𝑢 ∧ ∃ 𝑥𝐵 𝑢 = { 𝑥 } ) → ∃ 𝑥 ( 𝑥𝐵 ∧ ( 𝑢 = { 𝑥 } ∧ 𝑧 ∈ { 𝑥 } ) ) )
26 an12 ( ( 𝑥𝐵 ∧ ( 𝑢 = { 𝑥 } ∧ 𝑧 ∈ { 𝑥 } ) ) ↔ ( 𝑢 = { 𝑥 } ∧ ( 𝑥𝐵𝑧 ∈ { 𝑥 } ) ) )
27 26 exbii ( ∃ 𝑥 ( 𝑥𝐵 ∧ ( 𝑢 = { 𝑥 } ∧ 𝑧 ∈ { 𝑥 } ) ) ↔ ∃ 𝑥 ( 𝑢 = { 𝑥 } ∧ ( 𝑥𝐵𝑧 ∈ { 𝑥 } ) ) )
28 exsimpr ( ∃ 𝑥 ( 𝑢 = { 𝑥 } ∧ ( 𝑥𝐵𝑧 ∈ { 𝑥 } ) ) → ∃ 𝑥 ( 𝑥𝐵𝑧 ∈ { 𝑥 } ) )
29 27 28 sylbi ( ∃ 𝑥 ( 𝑥𝐵 ∧ ( 𝑢 = { 𝑥 } ∧ 𝑧 ∈ { 𝑥 } ) ) → ∃ 𝑥 ( 𝑥𝐵𝑧 ∈ { 𝑥 } ) )
30 25 29 syl ( ( 𝑧𝑢 ∧ ∃ 𝑥𝐵 𝑢 = { 𝑥 } ) → ∃ 𝑥 ( 𝑥𝐵𝑧 ∈ { 𝑥 } ) )
31 30 exlimiv ( ∃ 𝑢 ( 𝑧𝑢 ∧ ∃ 𝑥𝐵 𝑢 = { 𝑥 } ) → ∃ 𝑥 ( 𝑥𝐵𝑧 ∈ { 𝑥 } ) )
32 14 31 sylbi ( 𝑧 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } → ∃ 𝑥 ( 𝑥𝐵𝑧 ∈ { 𝑥 } ) )
33 velsn ( 𝑧 ∈ { 𝑥 } ↔ 𝑧 = 𝑥 )
34 33 anbi2i ( ( 𝑥𝐵𝑧 ∈ { 𝑥 } ) ↔ ( 𝑥𝐵𝑧 = 𝑥 ) )
35 34 exbii ( ∃ 𝑥 ( 𝑥𝐵𝑧 ∈ { 𝑥 } ) ↔ ∃ 𝑥 ( 𝑥𝐵𝑧 = 𝑥 ) )
36 32 35 sylib ( 𝑧 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } → ∃ 𝑥 ( 𝑥𝐵𝑧 = 𝑥 ) )
37 13 biimparc ( ( 𝑥𝐵𝑧 = 𝑥 ) → 𝑧𝐵 )
38 37 exlimiv ( ∃ 𝑥 ( 𝑥𝐵𝑧 = 𝑥 ) → 𝑧𝐵 )
39 36 38 syl ( 𝑧 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } → 𝑧𝐵 )
40 13 39 vtoclga ( 𝑥 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } → 𝑥𝐵 )
41 equid 𝑥 = 𝑥
42 eqid { 𝑥 } = { 𝑥 }
43 snex { 𝑥 } ∈ V
44 sbcg ( { 𝑥 } ∈ V → ( [ { 𝑥 } / 𝑢 ] 𝑥𝐵𝑥𝐵 ) )
45 43 44 ax-mp ( [ { 𝑥 } / 𝑢 ] 𝑥𝐵𝑥𝐵 )
46 eqsbc1 ( { 𝑥 } ∈ V → ( [ { 𝑥 } / 𝑢 ] 𝑢 = { 𝑥 } ↔ { 𝑥 } = { 𝑥 } ) )
47 43 46 ax-mp ( [ { 𝑥 } / 𝑢 ] 𝑢 = { 𝑥 } ↔ { 𝑥 } = { 𝑥 } )
48 19 adantl ( ( 𝑥𝐵𝑢 = { 𝑥 } ) → ( 𝑧𝑢𝑧 ∈ { 𝑥 } ) )
49 df-rex ( ∃ 𝑥𝐵 𝑢 = { 𝑥 } ↔ ∃ 𝑥 ( 𝑥𝐵𝑢 = { 𝑥 } ) )
50 14 biimpri ( ∃ 𝑢 ( 𝑧𝑢 ∧ ∃ 𝑥𝐵 𝑢 = { 𝑥 } ) → 𝑧 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } )
51 50 19.23bi ( ( 𝑧𝑢 ∧ ∃ 𝑥𝐵 𝑢 = { 𝑥 } ) → 𝑧 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } )
52 51 expcom ( ∃ 𝑥𝐵 𝑢 = { 𝑥 } → ( 𝑧𝑢𝑧 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } ) )
53 49 52 sylbir ( ∃ 𝑥 ( 𝑥𝐵𝑢 = { 𝑥 } ) → ( 𝑧𝑢𝑧 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } ) )
54 53 19.23bi ( ( 𝑥𝐵𝑢 = { 𝑥 } ) → ( 𝑧𝑢𝑧 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } ) )
55 48 54 sylbird ( ( 𝑥𝐵𝑢 = { 𝑥 } ) → ( 𝑧 ∈ { 𝑥 } → 𝑧 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } ) )
56 55 sbcth ( { 𝑥 } ∈ V → [ { 𝑥 } / 𝑢 ] ( ( 𝑥𝐵𝑢 = { 𝑥 } ) → ( 𝑧 ∈ { 𝑥 } → 𝑧 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } ) ) )
57 43 56 ax-mp [ { 𝑥 } / 𝑢 ] ( ( 𝑥𝐵𝑢 = { 𝑥 } ) → ( 𝑧 ∈ { 𝑥 } → 𝑧 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } ) )
58 sbcimg ( { 𝑥 } ∈ V → ( [ { 𝑥 } / 𝑢 ] ( ( 𝑥𝐵𝑢 = { 𝑥 } ) → ( 𝑧 ∈ { 𝑥 } → 𝑧 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } ) ) ↔ ( [ { 𝑥 } / 𝑢 ] ( 𝑥𝐵𝑢 = { 𝑥 } ) → [ { 𝑥 } / 𝑢 ] ( 𝑧 ∈ { 𝑥 } → 𝑧 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } ) ) ) )
59 43 58 ax-mp ( [ { 𝑥 } / 𝑢 ] ( ( 𝑥𝐵𝑢 = { 𝑥 } ) → ( 𝑧 ∈ { 𝑥 } → 𝑧 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } ) ) ↔ ( [ { 𝑥 } / 𝑢 ] ( 𝑥𝐵𝑢 = { 𝑥 } ) → [ { 𝑥 } / 𝑢 ] ( 𝑧 ∈ { 𝑥 } → 𝑧 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } ) ) )
60 57 59 mpbi ( [ { 𝑥 } / 𝑢 ] ( 𝑥𝐵𝑢 = { 𝑥 } ) → [ { 𝑥 } / 𝑢 ] ( 𝑧 ∈ { 𝑥 } → 𝑧 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } ) )
61 sbcan ( [ { 𝑥 } / 𝑢 ] ( 𝑥𝐵𝑢 = { 𝑥 } ) ↔ ( [ { 𝑥 } / 𝑢 ] 𝑥𝐵[ { 𝑥 } / 𝑢 ] 𝑢 = { 𝑥 } ) )
62 nfv 𝑢 𝑧 ∈ { 𝑥 }
63 nfab1 𝑢 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } }
64 63 nfuni 𝑢 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } }
65 64 nfcri 𝑢 𝑧 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } }
66 62 65 nfim 𝑢 ( 𝑧 ∈ { 𝑥 } → 𝑧 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } )
67 43 66 sbcgfi ( [ { 𝑥 } / 𝑢 ] ( 𝑧 ∈ { 𝑥 } → 𝑧 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } ) ↔ ( 𝑧 ∈ { 𝑥 } → 𝑧 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } ) )
68 60 61 67 3imtr3i ( ( [ { 𝑥 } / 𝑢 ] 𝑥𝐵[ { 𝑥 } / 𝑢 ] 𝑢 = { 𝑥 } ) → ( 𝑧 ∈ { 𝑥 } → 𝑧 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } ) )
69 45 47 68 syl2anbr ( ( 𝑥𝐵 ∧ { 𝑥 } = { 𝑥 } ) → ( 𝑧 ∈ { 𝑥 } → 𝑧 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } ) )
70 42 69 mpan2 ( 𝑥𝐵 → ( 𝑧 ∈ { 𝑥 } → 𝑧 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } ) )
71 33 70 syl5bir ( 𝑥𝐵 → ( 𝑧 = 𝑥𝑧 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } ) )
72 eleq1w ( 𝑧 = 𝑥 → ( 𝑧 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } ↔ 𝑥 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } ) )
73 71 72 mpbidi ( 𝑥𝐵 → ( 𝑧 = 𝑥𝑥 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } ) )
74 73 com12 ( 𝑧 = 𝑥 → ( 𝑥𝐵𝑥 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } ) )
75 74 sbimi ( [ 𝑥 / 𝑧 ] 𝑧 = 𝑥 → [ 𝑥 / 𝑧 ] ( 𝑥𝐵𝑥 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } ) )
76 equsb3 ( [ 𝑥 / 𝑧 ] 𝑧 = 𝑥𝑥 = 𝑥 )
77 sbv ( [ 𝑥 / 𝑧 ] ( 𝑥𝐵𝑥 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } ) ↔ ( 𝑥𝐵𝑥 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } ) )
78 75 76 77 3imtr3i ( 𝑥 = 𝑥 → ( 𝑥𝐵𝑥 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } ) )
79 41 78 ax-mp ( 𝑥𝐵𝑥 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } )
80 40 79 impbii ( 𝑥 { 𝑢 ∣ ∃ 𝑥𝐵 𝑢 = { 𝑥 } } ↔ 𝑥𝐵 )
81 12 80 bitrdi ( 𝐵𝐴 → ( 𝑥 ( 𝐹𝐵 ) ↔ 𝑥𝐵 ) )
82 81 eqrdv ( 𝐵𝐴 ( 𝐹𝐵 ) = 𝐵 )
83 82 eqcomd ( 𝐵𝐴𝐵 = ( 𝐹𝐵 ) )