Metamath Proof Explorer


Theorem mptiffisupp

Description: Conditions for a mapping function defined with a conditional to have finite support. (Contributed by Thierry Arnoux, 20-Feb-2025)

Ref Expression
Hypotheses mptiffisupp.f 𝐹 = ( 𝑥𝐴 ↦ if ( 𝑥𝐵 , 𝐶 , 𝑍 ) )
mptiffisupp.a ( 𝜑𝐴𝑈 )
mptiffisupp.b ( 𝜑𝐵 ∈ Fin )
mptiffisupp.c ( ( 𝜑𝑥𝐵 ) → 𝐶𝑉 )
mptiffisupp.z ( 𝜑𝑍𝑊 )
Assertion mptiffisupp ( 𝜑𝐹 finSupp 𝑍 )

Proof

Step Hyp Ref Expression
1 mptiffisupp.f 𝐹 = ( 𝑥𝐴 ↦ if ( 𝑥𝐵 , 𝐶 , 𝑍 ) )
2 mptiffisupp.a ( 𝜑𝐴𝑈 )
3 mptiffisupp.b ( 𝜑𝐵 ∈ Fin )
4 mptiffisupp.c ( ( 𝜑𝑥𝐵 ) → 𝐶𝑉 )
5 mptiffisupp.z ( 𝜑𝑍𝑊 )
6 2 mptexd ( 𝜑 → ( 𝑥𝐴 ↦ if ( 𝑥𝐵 , 𝐶 , 𝑍 ) ) ∈ V )
7 1 6 eqeltrid ( 𝜑𝐹 ∈ V )
8 1 funmpt2 Fun 𝐹
9 8 a1i ( 𝜑 → Fun 𝐹 )
10 partfun ( 𝑥𝐴 ↦ if ( 𝑥𝐵 , 𝐶 , 𝑍 ) ) = ( ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝐶 ) ∪ ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) )
11 1 10 eqtri 𝐹 = ( ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝐶 ) ∪ ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) )
12 11 oveq1i ( 𝐹 supp 𝑍 ) = ( ( ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝐶 ) ∪ ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) ) supp 𝑍 )
13 inss2 ( 𝐴𝐵 ) ⊆ 𝐵
14 13 a1i ( 𝜑 → ( 𝐴𝐵 ) ⊆ 𝐵 )
15 14 sselda ( ( 𝜑𝑥 ∈ ( 𝐴𝐵 ) ) → 𝑥𝐵 )
16 15 4 syldan ( ( 𝜑𝑥 ∈ ( 𝐴𝐵 ) ) → 𝐶𝑉 )
17 16 fmpttd ( 𝜑 → ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝐶 ) : ( 𝐴𝐵 ) ⟶ 𝑉 )
18 incom ( 𝐵𝐴 ) = ( 𝐴𝐵 )
19 infi ( 𝐵 ∈ Fin → ( 𝐵𝐴 ) ∈ Fin )
20 3 19 syl ( 𝜑 → ( 𝐵𝐴 ) ∈ Fin )
21 18 20 eqeltrrid ( 𝜑 → ( 𝐴𝐵 ) ∈ Fin )
22 17 21 5 fidmfisupp ( 𝜑 → ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝐶 ) finSupp 𝑍 )
23 difexg ( 𝐴𝑈 → ( 𝐴𝐵 ) ∈ V )
24 mptexg ( ( 𝐴𝐵 ) ∈ V → ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) ∈ V )
25 2 23 24 3syl ( 𝜑 → ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) ∈ V )
26 funmpt Fun ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 )
27 26 a1i ( 𝜑 → Fun ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) )
28 supppreima ( ( Fun ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) ∧ ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) ∈ V ∧ 𝑍𝑊 ) → ( ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) supp 𝑍 ) = ( ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) “ ( ran ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) ∖ { 𝑍 } ) ) )
29 26 25 5 28 mp3an2i ( 𝜑 → ( ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) supp 𝑍 ) = ( ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) “ ( ran ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) ∖ { 𝑍 } ) ) )
30 simpr ( ( 𝜑 ∧ ( 𝐴𝐵 ) = ∅ ) → ( 𝐴𝐵 ) = ∅ )
31 30 mpteq1d ( ( 𝜑 ∧ ( 𝐴𝐵 ) = ∅ ) → ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) = ( 𝑥 ∈ ∅ ↦ 𝑍 ) )
32 mpt0 ( 𝑥 ∈ ∅ ↦ 𝑍 ) = ∅
33 31 32 eqtrdi ( ( 𝜑 ∧ ( 𝐴𝐵 ) = ∅ ) → ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) = ∅ )
34 33 cnveqd ( ( 𝜑 ∧ ( 𝐴𝐵 ) = ∅ ) → ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) = ∅ )
35 cnv0 ∅ = ∅
36 34 35 eqtrdi ( ( 𝜑 ∧ ( 𝐴𝐵 ) = ∅ ) → ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) = ∅ )
37 36 imaeq1d ( ( 𝜑 ∧ ( 𝐴𝐵 ) = ∅ ) → ( ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) “ ( ran ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) ∖ { 𝑍 } ) ) = ( ∅ “ ( ran ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) ∖ { 𝑍 } ) ) )
38 0ima ( ∅ “ ( ran ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) ∖ { 𝑍 } ) ) = ∅
39 37 38 eqtrdi ( ( 𝜑 ∧ ( 𝐴𝐵 ) = ∅ ) → ( ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) “ ( ran ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) ∖ { 𝑍 } ) ) = ∅ )
40 eqid ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) = ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 )
41 simpr ( ( 𝜑 ∧ ( 𝐴𝐵 ) ≠ ∅ ) → ( 𝐴𝐵 ) ≠ ∅ )
42 40 41 rnmptc ( ( 𝜑 ∧ ( 𝐴𝐵 ) ≠ ∅ ) → ran ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) = { 𝑍 } )
43 42 difeq1d ( ( 𝜑 ∧ ( 𝐴𝐵 ) ≠ ∅ ) → ( ran ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) ∖ { 𝑍 } ) = ( { 𝑍 } ∖ { 𝑍 } ) )
44 difid ( { 𝑍 } ∖ { 𝑍 } ) = ∅
45 43 44 eqtrdi ( ( 𝜑 ∧ ( 𝐴𝐵 ) ≠ ∅ ) → ( ran ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) ∖ { 𝑍 } ) = ∅ )
46 45 imaeq2d ( ( 𝜑 ∧ ( 𝐴𝐵 ) ≠ ∅ ) → ( ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) “ ( ran ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) ∖ { 𝑍 } ) ) = ( ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) “ ∅ ) )
47 ima0 ( ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) “ ∅ ) = ∅
48 46 47 eqtrdi ( ( 𝜑 ∧ ( 𝐴𝐵 ) ≠ ∅ ) → ( ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) “ ( ran ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) ∖ { 𝑍 } ) ) = ∅ )
49 39 48 pm2.61dane ( 𝜑 → ( ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) “ ( ran ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) ∖ { 𝑍 } ) ) = ∅ )
50 29 49 eqtrd ( 𝜑 → ( ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) supp 𝑍 ) = ∅ )
51 0fin ∅ ∈ Fin
52 50 51 eqeltrdi ( 𝜑 → ( ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) supp 𝑍 ) ∈ Fin )
53 25 5 27 52 isfsuppd ( 𝜑 → ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) finSupp 𝑍 )
54 22 53 fsuppun ( 𝜑 → ( ( ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝐶 ) ∪ ( 𝑥 ∈ ( 𝐴𝐵 ) ↦ 𝑍 ) ) supp 𝑍 ) ∈ Fin )
55 12 54 eqeltrid ( 𝜑 → ( 𝐹 supp 𝑍 ) ∈ Fin )
56 7 5 9 55 isfsuppd ( 𝜑𝐹 finSupp 𝑍 )