Metamath Proof Explorer


Theorem mapsnd

Description: The value of set exponentiation with a singleton exponent. Theorem 98 of Suppes p. 89. (Contributed by NM, 10-Dec-2003) (Revised by Glauco Siliprandi, 24-Dec-2020)

Ref Expression
Hypotheses mapsnd.1 ( 𝜑𝐴𝑉 )
mapsnd.2 ( 𝜑𝐵𝑊 )
Assertion mapsnd ( 𝜑 → ( 𝐴m { 𝐵 } ) = { 𝑓 ∣ ∃ 𝑦𝐴 𝑓 = { ⟨ 𝐵 , 𝑦 ⟩ } } )

Proof

Step Hyp Ref Expression
1 mapsnd.1 ( 𝜑𝐴𝑉 )
2 mapsnd.2 ( 𝜑𝐵𝑊 )
3 snex { 𝐵 } ∈ V
4 3 a1i ( 𝜑 → { 𝐵 } ∈ V )
5 1 4 elmapd ( 𝜑 → ( 𝑓 ∈ ( 𝐴m { 𝐵 } ) ↔ 𝑓 : { 𝐵 } ⟶ 𝐴 ) )
6 ffn ( 𝑓 : { 𝐵 } ⟶ 𝐴𝑓 Fn { 𝐵 } )
7 snidg ( 𝐵𝑊𝐵 ∈ { 𝐵 } )
8 2 7 syl ( 𝜑𝐵 ∈ { 𝐵 } )
9 fneu ( ( 𝑓 Fn { 𝐵 } ∧ 𝐵 ∈ { 𝐵 } ) → ∃! 𝑦 𝐵 𝑓 𝑦 )
10 6 8 9 syl2anr ( ( 𝜑𝑓 : { 𝐵 } ⟶ 𝐴 ) → ∃! 𝑦 𝐵 𝑓 𝑦 )
11 euabsn ( ∃! 𝑦 𝐵 𝑓 𝑦 ↔ ∃ 𝑦 { 𝑦𝐵 𝑓 𝑦 } = { 𝑦 } )
12 frel ( 𝑓 : { 𝐵 } ⟶ 𝐴 → Rel 𝑓 )
13 relimasn ( Rel 𝑓 → ( 𝑓 “ { 𝐵 } ) = { 𝑦𝐵 𝑓 𝑦 } )
14 12 13 syl ( 𝑓 : { 𝐵 } ⟶ 𝐴 → ( 𝑓 “ { 𝐵 } ) = { 𝑦𝐵 𝑓 𝑦 } )
15 fdm ( 𝑓 : { 𝐵 } ⟶ 𝐴 → dom 𝑓 = { 𝐵 } )
16 15 imaeq2d ( 𝑓 : { 𝐵 } ⟶ 𝐴 → ( 𝑓 “ dom 𝑓 ) = ( 𝑓 “ { 𝐵 } ) )
17 imadmrn ( 𝑓 “ dom 𝑓 ) = ran 𝑓
18 16 17 eqtr3di ( 𝑓 : { 𝐵 } ⟶ 𝐴 → ( 𝑓 “ { 𝐵 } ) = ran 𝑓 )
19 14 18 eqtr3d ( 𝑓 : { 𝐵 } ⟶ 𝐴 → { 𝑦𝐵 𝑓 𝑦 } = ran 𝑓 )
20 19 eqeq1d ( 𝑓 : { 𝐵 } ⟶ 𝐴 → ( { 𝑦𝐵 𝑓 𝑦 } = { 𝑦 } ↔ ran 𝑓 = { 𝑦 } ) )
21 20 exbidv ( 𝑓 : { 𝐵 } ⟶ 𝐴 → ( ∃ 𝑦 { 𝑦𝐵 𝑓 𝑦 } = { 𝑦 } ↔ ∃ 𝑦 ran 𝑓 = { 𝑦 } ) )
22 11 21 bitrid ( 𝑓 : { 𝐵 } ⟶ 𝐴 → ( ∃! 𝑦 𝐵 𝑓 𝑦 ↔ ∃ 𝑦 ran 𝑓 = { 𝑦 } ) )
23 22 adantl ( ( 𝜑𝑓 : { 𝐵 } ⟶ 𝐴 ) → ( ∃! 𝑦 𝐵 𝑓 𝑦 ↔ ∃ 𝑦 ran 𝑓 = { 𝑦 } ) )
24 10 23 mpbid ( ( 𝜑𝑓 : { 𝐵 } ⟶ 𝐴 ) → ∃ 𝑦 ran 𝑓 = { 𝑦 } )
25 frn ( 𝑓 : { 𝐵 } ⟶ 𝐴 → ran 𝑓𝐴 )
26 25 sseld ( 𝑓 : { 𝐵 } ⟶ 𝐴 → ( 𝑦 ∈ ran 𝑓𝑦𝐴 ) )
27 vsnid 𝑦 ∈ { 𝑦 }
28 eleq2 ( ran 𝑓 = { 𝑦 } → ( 𝑦 ∈ ran 𝑓𝑦 ∈ { 𝑦 } ) )
29 27 28 mpbiri ( ran 𝑓 = { 𝑦 } → 𝑦 ∈ ran 𝑓 )
30 26 29 impel ( ( 𝑓 : { 𝐵 } ⟶ 𝐴 ∧ ran 𝑓 = { 𝑦 } ) → 𝑦𝐴 )
31 30 adantll ( ( ( 𝜑𝑓 : { 𝐵 } ⟶ 𝐴 ) ∧ ran 𝑓 = { 𝑦 } ) → 𝑦𝐴 )
32 ffrn ( 𝑓 : { 𝐵 } ⟶ 𝐴𝑓 : { 𝐵 } ⟶ ran 𝑓 )
33 feq3 ( ran 𝑓 = { 𝑦 } → ( 𝑓 : { 𝐵 } ⟶ ran 𝑓𝑓 : { 𝐵 } ⟶ { 𝑦 } ) )
34 32 33 syl5ibcom ( 𝑓 : { 𝐵 } ⟶ 𝐴 → ( ran 𝑓 = { 𝑦 } → 𝑓 : { 𝐵 } ⟶ { 𝑦 } ) )
35 34 imp ( ( 𝑓 : { 𝐵 } ⟶ 𝐴 ∧ ran 𝑓 = { 𝑦 } ) → 𝑓 : { 𝐵 } ⟶ { 𝑦 } )
36 35 adantll ( ( ( 𝜑𝑓 : { 𝐵 } ⟶ 𝐴 ) ∧ ran 𝑓 = { 𝑦 } ) → 𝑓 : { 𝐵 } ⟶ { 𝑦 } )
37 2 ad2antrr ( ( ( 𝜑𝑓 : { 𝐵 } ⟶ 𝐴 ) ∧ ran 𝑓 = { 𝑦 } ) → 𝐵𝑊 )
38 vex 𝑦 ∈ V
39 fsng ( ( 𝐵𝑊𝑦 ∈ V ) → ( 𝑓 : { 𝐵 } ⟶ { 𝑦 } ↔ 𝑓 = { ⟨ 𝐵 , 𝑦 ⟩ } ) )
40 37 38 39 sylancl ( ( ( 𝜑𝑓 : { 𝐵 } ⟶ 𝐴 ) ∧ ran 𝑓 = { 𝑦 } ) → ( 𝑓 : { 𝐵 } ⟶ { 𝑦 } ↔ 𝑓 = { ⟨ 𝐵 , 𝑦 ⟩ } ) )
41 36 40 mpbid ( ( ( 𝜑𝑓 : { 𝐵 } ⟶ 𝐴 ) ∧ ran 𝑓 = { 𝑦 } ) → 𝑓 = { ⟨ 𝐵 , 𝑦 ⟩ } )
42 31 41 jca ( ( ( 𝜑𝑓 : { 𝐵 } ⟶ 𝐴 ) ∧ ran 𝑓 = { 𝑦 } ) → ( 𝑦𝐴𝑓 = { ⟨ 𝐵 , 𝑦 ⟩ } ) )
43 42 ex ( ( 𝜑𝑓 : { 𝐵 } ⟶ 𝐴 ) → ( ran 𝑓 = { 𝑦 } → ( 𝑦𝐴𝑓 = { ⟨ 𝐵 , 𝑦 ⟩ } ) ) )
44 43 eximdv ( ( 𝜑𝑓 : { 𝐵 } ⟶ 𝐴 ) → ( ∃ 𝑦 ran 𝑓 = { 𝑦 } → ∃ 𝑦 ( 𝑦𝐴𝑓 = { ⟨ 𝐵 , 𝑦 ⟩ } ) ) )
45 24 44 mpd ( ( 𝜑𝑓 : { 𝐵 } ⟶ 𝐴 ) → ∃ 𝑦 ( 𝑦𝐴𝑓 = { ⟨ 𝐵 , 𝑦 ⟩ } ) )
46 df-rex ( ∃ 𝑦𝐴 𝑓 = { ⟨ 𝐵 , 𝑦 ⟩ } ↔ ∃ 𝑦 ( 𝑦𝐴𝑓 = { ⟨ 𝐵 , 𝑦 ⟩ } ) )
47 45 46 sylibr ( ( 𝜑𝑓 : { 𝐵 } ⟶ 𝐴 ) → ∃ 𝑦𝐴 𝑓 = { ⟨ 𝐵 , 𝑦 ⟩ } )
48 47 ex ( 𝜑 → ( 𝑓 : { 𝐵 } ⟶ 𝐴 → ∃ 𝑦𝐴 𝑓 = { ⟨ 𝐵 , 𝑦 ⟩ } ) )
49 f1osng ( ( 𝐵𝑊𝑦 ∈ V ) → { ⟨ 𝐵 , 𝑦 ⟩ } : { 𝐵 } –1-1-onto→ { 𝑦 } )
50 2 38 49 sylancl ( 𝜑 → { ⟨ 𝐵 , 𝑦 ⟩ } : { 𝐵 } –1-1-onto→ { 𝑦 } )
51 50 adantr ( ( 𝜑𝑓 = { ⟨ 𝐵 , 𝑦 ⟩ } ) → { ⟨ 𝐵 , 𝑦 ⟩ } : { 𝐵 } –1-1-onto→ { 𝑦 } )
52 f1oeq1 ( 𝑓 = { ⟨ 𝐵 , 𝑦 ⟩ } → ( 𝑓 : { 𝐵 } –1-1-onto→ { 𝑦 } ↔ { ⟨ 𝐵 , 𝑦 ⟩ } : { 𝐵 } –1-1-onto→ { 𝑦 } ) )
53 52 bicomd ( 𝑓 = { ⟨ 𝐵 , 𝑦 ⟩ } → ( { ⟨ 𝐵 , 𝑦 ⟩ } : { 𝐵 } –1-1-onto→ { 𝑦 } ↔ 𝑓 : { 𝐵 } –1-1-onto→ { 𝑦 } ) )
54 53 adantl ( ( 𝜑𝑓 = { ⟨ 𝐵 , 𝑦 ⟩ } ) → ( { ⟨ 𝐵 , 𝑦 ⟩ } : { 𝐵 } –1-1-onto→ { 𝑦 } ↔ 𝑓 : { 𝐵 } –1-1-onto→ { 𝑦 } ) )
55 51 54 mpbid ( ( 𝜑𝑓 = { ⟨ 𝐵 , 𝑦 ⟩ } ) → 𝑓 : { 𝐵 } –1-1-onto→ { 𝑦 } )
56 f1of ( 𝑓 : { 𝐵 } –1-1-onto→ { 𝑦 } → 𝑓 : { 𝐵 } ⟶ { 𝑦 } )
57 55 56 syl ( ( 𝜑𝑓 = { ⟨ 𝐵 , 𝑦 ⟩ } ) → 𝑓 : { 𝐵 } ⟶ { 𝑦 } )
58 57 3adant2 ( ( 𝜑𝑦𝐴𝑓 = { ⟨ 𝐵 , 𝑦 ⟩ } ) → 𝑓 : { 𝐵 } ⟶ { 𝑦 } )
59 snssi ( 𝑦𝐴 → { 𝑦 } ⊆ 𝐴 )
60 59 3ad2ant2 ( ( 𝜑𝑦𝐴𝑓 = { ⟨ 𝐵 , 𝑦 ⟩ } ) → { 𝑦 } ⊆ 𝐴 )
61 58 60 fssd ( ( 𝜑𝑦𝐴𝑓 = { ⟨ 𝐵 , 𝑦 ⟩ } ) → 𝑓 : { 𝐵 } ⟶ 𝐴 )
62 61 rexlimdv3a ( 𝜑 → ( ∃ 𝑦𝐴 𝑓 = { ⟨ 𝐵 , 𝑦 ⟩ } → 𝑓 : { 𝐵 } ⟶ 𝐴 ) )
63 48 62 impbid ( 𝜑 → ( 𝑓 : { 𝐵 } ⟶ 𝐴 ↔ ∃ 𝑦𝐴 𝑓 = { ⟨ 𝐵 , 𝑦 ⟩ } ) )
64 5 63 bitrd ( 𝜑 → ( 𝑓 ∈ ( 𝐴m { 𝐵 } ) ↔ ∃ 𝑦𝐴 𝑓 = { ⟨ 𝐵 , 𝑦 ⟩ } ) )
65 64 abbi2dv ( 𝜑 → ( 𝐴m { 𝐵 } ) = { 𝑓 ∣ ∃ 𝑦𝐴 𝑓 = { ⟨ 𝐵 , 𝑦 ⟩ } } )