Metamath Proof Explorer


Theorem suppsnop

Description: The support of a singleton of an ordered pair. (Contributed by AV, 12-Apr-2019)

Ref Expression
Hypothesis suppsnop.f 𝐹 = { ⟨ 𝑋 , 𝑌 ⟩ }
Assertion suppsnop ( ( 𝑋𝑉𝑌𝑊𝑍𝑈 ) → ( 𝐹 supp 𝑍 ) = if ( 𝑌 = 𝑍 , ∅ , { 𝑋 } ) )

Proof

Step Hyp Ref Expression
1 suppsnop.f 𝐹 = { ⟨ 𝑋 , 𝑌 ⟩ }
2 f1osng ( ( 𝑋𝑉𝑌𝑊 ) → { ⟨ 𝑋 , 𝑌 ⟩ } : { 𝑋 } –1-1-onto→ { 𝑌 } )
3 f1of ( { ⟨ 𝑋 , 𝑌 ⟩ } : { 𝑋 } –1-1-onto→ { 𝑌 } → { ⟨ 𝑋 , 𝑌 ⟩ } : { 𝑋 } ⟶ { 𝑌 } )
4 2 3 syl ( ( 𝑋𝑉𝑌𝑊 ) → { ⟨ 𝑋 , 𝑌 ⟩ } : { 𝑋 } ⟶ { 𝑌 } )
5 4 3adant3 ( ( 𝑋𝑉𝑌𝑊𝑍𝑈 ) → { ⟨ 𝑋 , 𝑌 ⟩ } : { 𝑋 } ⟶ { 𝑌 } )
6 1 feq1i ( 𝐹 : { 𝑋 } ⟶ { 𝑌 } ↔ { ⟨ 𝑋 , 𝑌 ⟩ } : { 𝑋 } ⟶ { 𝑌 } )
7 5 6 sylibr ( ( 𝑋𝑉𝑌𝑊𝑍𝑈 ) → 𝐹 : { 𝑋 } ⟶ { 𝑌 } )
8 snex { 𝑋 } ∈ V
9 fex ( ( 𝐹 : { 𝑋 } ⟶ { 𝑌 } ∧ { 𝑋 } ∈ V ) → 𝐹 ∈ V )
10 7 8 9 sylancl ( ( 𝑋𝑉𝑌𝑊𝑍𝑈 ) → 𝐹 ∈ V )
11 simp3 ( ( 𝑋𝑉𝑌𝑊𝑍𝑈 ) → 𝑍𝑈 )
12 suppval ( ( 𝐹 ∈ V ∧ 𝑍𝑈 ) → ( 𝐹 supp 𝑍 ) = { 𝑥 ∈ dom 𝐹 ∣ ( 𝐹 “ { 𝑥 } ) ≠ { 𝑍 } } )
13 10 11 12 syl2anc ( ( 𝑋𝑉𝑌𝑊𝑍𝑈 ) → ( 𝐹 supp 𝑍 ) = { 𝑥 ∈ dom 𝐹 ∣ ( 𝐹 “ { 𝑥 } ) ≠ { 𝑍 } } )
14 7 fdmd ( ( 𝑋𝑉𝑌𝑊𝑍𝑈 ) → dom 𝐹 = { 𝑋 } )
15 14 rabeqdv ( ( 𝑋𝑉𝑌𝑊𝑍𝑈 ) → { 𝑥 ∈ dom 𝐹 ∣ ( 𝐹 “ { 𝑥 } ) ≠ { 𝑍 } } = { 𝑥 ∈ { 𝑋 } ∣ ( 𝐹 “ { 𝑥 } ) ≠ { 𝑍 } } )
16 sneq ( 𝑥 = 𝑋 → { 𝑥 } = { 𝑋 } )
17 16 imaeq2d ( 𝑥 = 𝑋 → ( 𝐹 “ { 𝑥 } ) = ( 𝐹 “ { 𝑋 } ) )
18 17 neeq1d ( 𝑥 = 𝑋 → ( ( 𝐹 “ { 𝑥 } ) ≠ { 𝑍 } ↔ ( 𝐹 “ { 𝑋 } ) ≠ { 𝑍 } ) )
19 18 rabsnif { 𝑥 ∈ { 𝑋 } ∣ ( 𝐹 “ { 𝑥 } ) ≠ { 𝑍 } } = if ( ( 𝐹 “ { 𝑋 } ) ≠ { 𝑍 } , { 𝑋 } , ∅ )
20 15 19 eqtrdi ( ( 𝑋𝑉𝑌𝑊𝑍𝑈 ) → { 𝑥 ∈ dom 𝐹 ∣ ( 𝐹 “ { 𝑥 } ) ≠ { 𝑍 } } = if ( ( 𝐹 “ { 𝑋 } ) ≠ { 𝑍 } , { 𝑋 } , ∅ ) )
21 7 ffnd ( ( 𝑋𝑉𝑌𝑊𝑍𝑈 ) → 𝐹 Fn { 𝑋 } )
22 snidg ( 𝑋𝑉𝑋 ∈ { 𝑋 } )
23 22 3ad2ant1 ( ( 𝑋𝑉𝑌𝑊𝑍𝑈 ) → 𝑋 ∈ { 𝑋 } )
24 fnsnfv ( ( 𝐹 Fn { 𝑋 } ∧ 𝑋 ∈ { 𝑋 } ) → { ( 𝐹𝑋 ) } = ( 𝐹 “ { 𝑋 } ) )
25 24 eqcomd ( ( 𝐹 Fn { 𝑋 } ∧ 𝑋 ∈ { 𝑋 } ) → ( 𝐹 “ { 𝑋 } ) = { ( 𝐹𝑋 ) } )
26 21 23 25 syl2anc ( ( 𝑋𝑉𝑌𝑊𝑍𝑈 ) → ( 𝐹 “ { 𝑋 } ) = { ( 𝐹𝑋 ) } )
27 26 neeq1d ( ( 𝑋𝑉𝑌𝑊𝑍𝑈 ) → ( ( 𝐹 “ { 𝑋 } ) ≠ { 𝑍 } ↔ { ( 𝐹𝑋 ) } ≠ { 𝑍 } ) )
28 1 fveq1i ( 𝐹𝑋 ) = ( { ⟨ 𝑋 , 𝑌 ⟩ } ‘ 𝑋 )
29 fvsng ( ( 𝑋𝑉𝑌𝑊 ) → ( { ⟨ 𝑋 , 𝑌 ⟩ } ‘ 𝑋 ) = 𝑌 )
30 29 3adant3 ( ( 𝑋𝑉𝑌𝑊𝑍𝑈 ) → ( { ⟨ 𝑋 , 𝑌 ⟩ } ‘ 𝑋 ) = 𝑌 )
31 28 30 syl5eq ( ( 𝑋𝑉𝑌𝑊𝑍𝑈 ) → ( 𝐹𝑋 ) = 𝑌 )
32 31 sneqd ( ( 𝑋𝑉𝑌𝑊𝑍𝑈 ) → { ( 𝐹𝑋 ) } = { 𝑌 } )
33 32 neeq1d ( ( 𝑋𝑉𝑌𝑊𝑍𝑈 ) → ( { ( 𝐹𝑋 ) } ≠ { 𝑍 } ↔ { 𝑌 } ≠ { 𝑍 } ) )
34 sneqbg ( 𝑌𝑊 → ( { 𝑌 } = { 𝑍 } ↔ 𝑌 = 𝑍 ) )
35 34 3ad2ant2 ( ( 𝑋𝑉𝑌𝑊𝑍𝑈 ) → ( { 𝑌 } = { 𝑍 } ↔ 𝑌 = 𝑍 ) )
36 35 necon3abid ( ( 𝑋𝑉𝑌𝑊𝑍𝑈 ) → ( { 𝑌 } ≠ { 𝑍 } ↔ ¬ 𝑌 = 𝑍 ) )
37 27 33 36 3bitrd ( ( 𝑋𝑉𝑌𝑊𝑍𝑈 ) → ( ( 𝐹 “ { 𝑋 } ) ≠ { 𝑍 } ↔ ¬ 𝑌 = 𝑍 ) )
38 37 ifbid ( ( 𝑋𝑉𝑌𝑊𝑍𝑈 ) → if ( ( 𝐹 “ { 𝑋 } ) ≠ { 𝑍 } , { 𝑋 } , ∅ ) = if ( ¬ 𝑌 = 𝑍 , { 𝑋 } , ∅ ) )
39 ifnot if ( ¬ 𝑌 = 𝑍 , { 𝑋 } , ∅ ) = if ( 𝑌 = 𝑍 , ∅ , { 𝑋 } )
40 38 39 eqtrdi ( ( 𝑋𝑉𝑌𝑊𝑍𝑈 ) → if ( ( 𝐹 “ { 𝑋 } ) ≠ { 𝑍 } , { 𝑋 } , ∅ ) = if ( 𝑌 = 𝑍 , ∅ , { 𝑋 } ) )
41 13 20 40 3eqtrd ( ( 𝑋𝑉𝑌𝑊𝑍𝑈 ) → ( 𝐹 supp 𝑍 ) = if ( 𝑌 = 𝑍 , ∅ , { 𝑋 } ) )