Metamath Proof Explorer


Theorem imaelsetpreimafv

Description: The image of an element of the preimage of a function value is the singleton consisting of the function value at one of its elements. (Contributed by AV, 5-Mar-2024)

Ref Expression
Hypothesis setpreimafvex.p 𝑃 = { 𝑧 ∣ ∃ 𝑥𝐴 𝑧 = ( 𝐹 “ { ( 𝐹𝑥 ) } ) }
Assertion imaelsetpreimafv ( ( 𝐹 Fn 𝐴𝑆𝑃𝑋𝑆 ) → ( 𝐹𝑆 ) = { ( 𝐹𝑋 ) } )

Proof

Step Hyp Ref Expression
1 setpreimafvex.p 𝑃 = { 𝑧 ∣ ∃ 𝑥𝐴 𝑧 = ( 𝐹 “ { ( 𝐹𝑥 ) } ) }
2 1 fvelsetpreimafv ( ( 𝐹 Fn 𝐴𝑆𝑃 ) → ∃ 𝑥𝑆 𝑆 = ( 𝐹 “ { ( 𝐹𝑥 ) } ) )
3 fveq2 ( 𝑦 = 𝑥 → ( 𝐹𝑦 ) = ( 𝐹𝑥 ) )
4 3 sneqd ( 𝑦 = 𝑥 → { ( 𝐹𝑦 ) } = { ( 𝐹𝑥 ) } )
5 4 imaeq2d ( 𝑦 = 𝑥 → ( 𝐹 “ { ( 𝐹𝑦 ) } ) = ( 𝐹 “ { ( 𝐹𝑥 ) } ) )
6 5 eqeq2d ( 𝑦 = 𝑥 → ( 𝑆 = ( 𝐹 “ { ( 𝐹𝑦 ) } ) ↔ 𝑆 = ( 𝐹 “ { ( 𝐹𝑥 ) } ) ) )
7 6 cbvrexvw ( ∃ 𝑦𝑆 𝑆 = ( 𝐹 “ { ( 𝐹𝑦 ) } ) ↔ ∃ 𝑥𝑆 𝑆 = ( 𝐹 “ { ( 𝐹𝑥 ) } ) )
8 2 7 sylibr ( ( 𝐹 Fn 𝐴𝑆𝑃 ) → ∃ 𝑦𝑆 𝑆 = ( 𝐹 “ { ( 𝐹𝑦 ) } ) )
9 8 3adant3 ( ( 𝐹 Fn 𝐴𝑆𝑃𝑋𝑆 ) → ∃ 𝑦𝑆 𝑆 = ( 𝐹 “ { ( 𝐹𝑦 ) } ) )
10 imaeq2 ( 𝑆 = ( 𝐹 “ { ( 𝐹𝑦 ) } ) → ( 𝐹𝑆 ) = ( 𝐹 “ ( 𝐹 “ { ( 𝐹𝑦 ) } ) ) )
11 10 3ad2ant3 ( ( ( 𝐹 Fn 𝐴𝑆𝑃𝑋𝑆 ) ∧ 𝑦𝑆𝑆 = ( 𝐹 “ { ( 𝐹𝑦 ) } ) ) → ( 𝐹𝑆 ) = ( 𝐹 “ ( 𝐹 “ { ( 𝐹𝑦 ) } ) ) )
12 fnfun ( 𝐹 Fn 𝐴 → Fun 𝐹 )
13 funimacnv ( Fun 𝐹 → ( 𝐹 “ ( 𝐹 “ { ( 𝐹𝑦 ) } ) ) = ( { ( 𝐹𝑦 ) } ∩ ran 𝐹 ) )
14 12 13 syl ( 𝐹 Fn 𝐴 → ( 𝐹 “ ( 𝐹 “ { ( 𝐹𝑦 ) } ) ) = ( { ( 𝐹𝑦 ) } ∩ ran 𝐹 ) )
15 14 3ad2ant1 ( ( 𝐹 Fn 𝐴𝑆𝑃𝑋𝑆 ) → ( 𝐹 “ ( 𝐹 “ { ( 𝐹𝑦 ) } ) ) = ( { ( 𝐹𝑦 ) } ∩ ran 𝐹 ) )
16 15 3ad2ant1 ( ( ( 𝐹 Fn 𝐴𝑆𝑃𝑋𝑆 ) ∧ 𝑦𝑆𝑆 = ( 𝐹 “ { ( 𝐹𝑦 ) } ) ) → ( 𝐹 “ ( 𝐹 “ { ( 𝐹𝑦 ) } ) ) = ( { ( 𝐹𝑦 ) } ∩ ran 𝐹 ) )
17 1 elsetpreimafvbi ( ( 𝐹 Fn 𝐴𝑆𝑃𝑋𝑆 ) → ( 𝑦𝑆 ↔ ( 𝑦𝐴 ∧ ( 𝐹𝑦 ) = ( 𝐹𝑋 ) ) ) )
18 fnfvelrn ( ( 𝐹 Fn 𝐴𝑦𝐴 ) → ( 𝐹𝑦 ) ∈ ran 𝐹 )
19 18 snssd ( ( 𝐹 Fn 𝐴𝑦𝐴 ) → { ( 𝐹𝑦 ) } ⊆ ran 𝐹 )
20 df-ss ( { ( 𝐹𝑦 ) } ⊆ ran 𝐹 ↔ ( { ( 𝐹𝑦 ) } ∩ ran 𝐹 ) = { ( 𝐹𝑦 ) } )
21 19 20 sylib ( ( 𝐹 Fn 𝐴𝑦𝐴 ) → ( { ( 𝐹𝑦 ) } ∩ ran 𝐹 ) = { ( 𝐹𝑦 ) } )
22 21 3adant3 ( ( 𝐹 Fn 𝐴𝑦𝐴 ∧ ( 𝐹𝑦 ) = ( 𝐹𝑋 ) ) → ( { ( 𝐹𝑦 ) } ∩ ran 𝐹 ) = { ( 𝐹𝑦 ) } )
23 simp3 ( ( 𝐹 Fn 𝐴𝑦𝐴 ∧ ( 𝐹𝑦 ) = ( 𝐹𝑋 ) ) → ( 𝐹𝑦 ) = ( 𝐹𝑋 ) )
24 23 sneqd ( ( 𝐹 Fn 𝐴𝑦𝐴 ∧ ( 𝐹𝑦 ) = ( 𝐹𝑋 ) ) → { ( 𝐹𝑦 ) } = { ( 𝐹𝑋 ) } )
25 22 24 eqtrd ( ( 𝐹 Fn 𝐴𝑦𝐴 ∧ ( 𝐹𝑦 ) = ( 𝐹𝑋 ) ) → ( { ( 𝐹𝑦 ) } ∩ ran 𝐹 ) = { ( 𝐹𝑋 ) } )
26 25 3expib ( 𝐹 Fn 𝐴 → ( ( 𝑦𝐴 ∧ ( 𝐹𝑦 ) = ( 𝐹𝑋 ) ) → ( { ( 𝐹𝑦 ) } ∩ ran 𝐹 ) = { ( 𝐹𝑋 ) } ) )
27 26 3ad2ant1 ( ( 𝐹 Fn 𝐴𝑆𝑃𝑋𝑆 ) → ( ( 𝑦𝐴 ∧ ( 𝐹𝑦 ) = ( 𝐹𝑋 ) ) → ( { ( 𝐹𝑦 ) } ∩ ran 𝐹 ) = { ( 𝐹𝑋 ) } ) )
28 17 27 sylbid ( ( 𝐹 Fn 𝐴𝑆𝑃𝑋𝑆 ) → ( 𝑦𝑆 → ( { ( 𝐹𝑦 ) } ∩ ran 𝐹 ) = { ( 𝐹𝑋 ) } ) )
29 28 imp ( ( ( 𝐹 Fn 𝐴𝑆𝑃𝑋𝑆 ) ∧ 𝑦𝑆 ) → ( { ( 𝐹𝑦 ) } ∩ ran 𝐹 ) = { ( 𝐹𝑋 ) } )
30 29 3adant3 ( ( ( 𝐹 Fn 𝐴𝑆𝑃𝑋𝑆 ) ∧ 𝑦𝑆𝑆 = ( 𝐹 “ { ( 𝐹𝑦 ) } ) ) → ( { ( 𝐹𝑦 ) } ∩ ran 𝐹 ) = { ( 𝐹𝑋 ) } )
31 11 16 30 3eqtrd ( ( ( 𝐹 Fn 𝐴𝑆𝑃𝑋𝑆 ) ∧ 𝑦𝑆𝑆 = ( 𝐹 “ { ( 𝐹𝑦 ) } ) ) → ( 𝐹𝑆 ) = { ( 𝐹𝑋 ) } )
32 31 rexlimdv3a ( ( 𝐹 Fn 𝐴𝑆𝑃𝑋𝑆 ) → ( ∃ 𝑦𝑆 𝑆 = ( 𝐹 “ { ( 𝐹𝑦 ) } ) → ( 𝐹𝑆 ) = { ( 𝐹𝑋 ) } ) )
33 9 32 mpd ( ( 𝐹 Fn 𝐴𝑆𝑃𝑋𝑆 ) → ( 𝐹𝑆 ) = { ( 𝐹𝑋 ) } )