Metamath Proof Explorer


Theorem suppssfz

Description: Condition for a function over the nonnegative integers to have a support contained in a finite set of sequential integers. (Contributed by AV, 9-Oct-2019)

Ref Expression
Hypotheses suppssfz.z ( 𝜑𝑍𝑉 )
suppssfz.f ( 𝜑𝐹 ∈ ( 𝐵m0 ) )
suppssfz.s ( 𝜑𝑆 ∈ ℕ0 )
suppssfz.b ( 𝜑 → ∀ 𝑥 ∈ ℕ0 ( 𝑆 < 𝑥 → ( 𝐹𝑥 ) = 𝑍 ) )
Assertion suppssfz ( 𝜑 → ( 𝐹 supp 𝑍 ) ⊆ ( 0 ... 𝑆 ) )

Proof

Step Hyp Ref Expression
1 suppssfz.z ( 𝜑𝑍𝑉 )
2 suppssfz.f ( 𝜑𝐹 ∈ ( 𝐵m0 ) )
3 suppssfz.s ( 𝜑𝑆 ∈ ℕ0 )
4 suppssfz.b ( 𝜑 → ∀ 𝑥 ∈ ℕ0 ( 𝑆 < 𝑥 → ( 𝐹𝑥 ) = 𝑍 ) )
5 elmapfn ( 𝐹 ∈ ( 𝐵m0 ) → 𝐹 Fn ℕ0 )
6 2 5 syl ( 𝜑𝐹 Fn ℕ0 )
7 nn0ex 0 ∈ V
8 7 a1i ( 𝜑 → ℕ0 ∈ V )
9 6 8 1 3jca ( 𝜑 → ( 𝐹 Fn ℕ0 ∧ ℕ0 ∈ V ∧ 𝑍𝑉 ) )
10 9 adantr ( ( 𝜑 ∧ ∀ 𝑥 ∈ ℕ0 ( 𝑆 < 𝑥 → ( 𝐹𝑥 ) = 𝑍 ) ) → ( 𝐹 Fn ℕ0 ∧ ℕ0 ∈ V ∧ 𝑍𝑉 ) )
11 elsuppfn ( ( 𝐹 Fn ℕ0 ∧ ℕ0 ∈ V ∧ 𝑍𝑉 ) → ( 𝑛 ∈ ( 𝐹 supp 𝑍 ) ↔ ( 𝑛 ∈ ℕ0 ∧ ( 𝐹𝑛 ) ≠ 𝑍 ) ) )
12 10 11 syl ( ( 𝜑 ∧ ∀ 𝑥 ∈ ℕ0 ( 𝑆 < 𝑥 → ( 𝐹𝑥 ) = 𝑍 ) ) → ( 𝑛 ∈ ( 𝐹 supp 𝑍 ) ↔ ( 𝑛 ∈ ℕ0 ∧ ( 𝐹𝑛 ) ≠ 𝑍 ) ) )
13 breq2 ( 𝑥 = 𝑛 → ( 𝑆 < 𝑥𝑆 < 𝑛 ) )
14 fveqeq2 ( 𝑥 = 𝑛 → ( ( 𝐹𝑥 ) = 𝑍 ↔ ( 𝐹𝑛 ) = 𝑍 ) )
15 13 14 imbi12d ( 𝑥 = 𝑛 → ( ( 𝑆 < 𝑥 → ( 𝐹𝑥 ) = 𝑍 ) ↔ ( 𝑆 < 𝑛 → ( 𝐹𝑛 ) = 𝑍 ) ) )
16 15 rspcva ( ( 𝑛 ∈ ℕ0 ∧ ∀ 𝑥 ∈ ℕ0 ( 𝑆 < 𝑥 → ( 𝐹𝑥 ) = 𝑍 ) ) → ( 𝑆 < 𝑛 → ( 𝐹𝑛 ) = 𝑍 ) )
17 simplr ( ( ( 𝜑𝑛 ∈ ℕ0 ) ∧ ¬ 𝑆 < 𝑛 ) → 𝑛 ∈ ℕ0 )
18 3 adantr ( ( 𝜑𝑛 ∈ ℕ0 ) → 𝑆 ∈ ℕ0 )
19 18 adantr ( ( ( 𝜑𝑛 ∈ ℕ0 ) ∧ ¬ 𝑆 < 𝑛 ) → 𝑆 ∈ ℕ0 )
20 nn0re ( 𝑛 ∈ ℕ0𝑛 ∈ ℝ )
21 nn0re ( 𝑆 ∈ ℕ0𝑆 ∈ ℝ )
22 3 21 syl ( 𝜑𝑆 ∈ ℝ )
23 lenlt ( ( 𝑛 ∈ ℝ ∧ 𝑆 ∈ ℝ ) → ( 𝑛𝑆 ↔ ¬ 𝑆 < 𝑛 ) )
24 20 22 23 syl2anr ( ( 𝜑𝑛 ∈ ℕ0 ) → ( 𝑛𝑆 ↔ ¬ 𝑆 < 𝑛 ) )
25 24 biimpar ( ( ( 𝜑𝑛 ∈ ℕ0 ) ∧ ¬ 𝑆 < 𝑛 ) → 𝑛𝑆 )
26 elfz2nn0 ( 𝑛 ∈ ( 0 ... 𝑆 ) ↔ ( 𝑛 ∈ ℕ0𝑆 ∈ ℕ0𝑛𝑆 ) )
27 17 19 25 26 syl3anbrc ( ( ( 𝜑𝑛 ∈ ℕ0 ) ∧ ¬ 𝑆 < 𝑛 ) → 𝑛 ∈ ( 0 ... 𝑆 ) )
28 27 a1d ( ( ( 𝜑𝑛 ∈ ℕ0 ) ∧ ¬ 𝑆 < 𝑛 ) → ( ( 𝐹𝑛 ) ≠ 𝑍𝑛 ∈ ( 0 ... 𝑆 ) ) )
29 28 ex ( ( 𝜑𝑛 ∈ ℕ0 ) → ( ¬ 𝑆 < 𝑛 → ( ( 𝐹𝑛 ) ≠ 𝑍𝑛 ∈ ( 0 ... 𝑆 ) ) ) )
30 eqneqall ( ( 𝐹𝑛 ) = 𝑍 → ( ( 𝐹𝑛 ) ≠ 𝑍𝑛 ∈ ( 0 ... 𝑆 ) ) )
31 30 a1i ( ( 𝜑𝑛 ∈ ℕ0 ) → ( ( 𝐹𝑛 ) = 𝑍 → ( ( 𝐹𝑛 ) ≠ 𝑍𝑛 ∈ ( 0 ... 𝑆 ) ) ) )
32 29 31 jad ( ( 𝜑𝑛 ∈ ℕ0 ) → ( ( 𝑆 < 𝑛 → ( 𝐹𝑛 ) = 𝑍 ) → ( ( 𝐹𝑛 ) ≠ 𝑍𝑛 ∈ ( 0 ... 𝑆 ) ) ) )
33 32 com23 ( ( 𝜑𝑛 ∈ ℕ0 ) → ( ( 𝐹𝑛 ) ≠ 𝑍 → ( ( 𝑆 < 𝑛 → ( 𝐹𝑛 ) = 𝑍 ) → 𝑛 ∈ ( 0 ... 𝑆 ) ) ) )
34 33 ex ( 𝜑 → ( 𝑛 ∈ ℕ0 → ( ( 𝐹𝑛 ) ≠ 𝑍 → ( ( 𝑆 < 𝑛 → ( 𝐹𝑛 ) = 𝑍 ) → 𝑛 ∈ ( 0 ... 𝑆 ) ) ) ) )
35 34 com14 ( ( 𝑆 < 𝑛 → ( 𝐹𝑛 ) = 𝑍 ) → ( 𝑛 ∈ ℕ0 → ( ( 𝐹𝑛 ) ≠ 𝑍 → ( 𝜑𝑛 ∈ ( 0 ... 𝑆 ) ) ) ) )
36 16 35 syl ( ( 𝑛 ∈ ℕ0 ∧ ∀ 𝑥 ∈ ℕ0 ( 𝑆 < 𝑥 → ( 𝐹𝑥 ) = 𝑍 ) ) → ( 𝑛 ∈ ℕ0 → ( ( 𝐹𝑛 ) ≠ 𝑍 → ( 𝜑𝑛 ∈ ( 0 ... 𝑆 ) ) ) ) )
37 36 ex ( 𝑛 ∈ ℕ0 → ( ∀ 𝑥 ∈ ℕ0 ( 𝑆 < 𝑥 → ( 𝐹𝑥 ) = 𝑍 ) → ( 𝑛 ∈ ℕ0 → ( ( 𝐹𝑛 ) ≠ 𝑍 → ( 𝜑𝑛 ∈ ( 0 ... 𝑆 ) ) ) ) ) )
38 37 pm2.43a ( 𝑛 ∈ ℕ0 → ( ∀ 𝑥 ∈ ℕ0 ( 𝑆 < 𝑥 → ( 𝐹𝑥 ) = 𝑍 ) → ( ( 𝐹𝑛 ) ≠ 𝑍 → ( 𝜑𝑛 ∈ ( 0 ... 𝑆 ) ) ) ) )
39 38 com23 ( 𝑛 ∈ ℕ0 → ( ( 𝐹𝑛 ) ≠ 𝑍 → ( ∀ 𝑥 ∈ ℕ0 ( 𝑆 < 𝑥 → ( 𝐹𝑥 ) = 𝑍 ) → ( 𝜑𝑛 ∈ ( 0 ... 𝑆 ) ) ) ) )
40 39 imp ( ( 𝑛 ∈ ℕ0 ∧ ( 𝐹𝑛 ) ≠ 𝑍 ) → ( ∀ 𝑥 ∈ ℕ0 ( 𝑆 < 𝑥 → ( 𝐹𝑥 ) = 𝑍 ) → ( 𝜑𝑛 ∈ ( 0 ... 𝑆 ) ) ) )
41 40 com13 ( 𝜑 → ( ∀ 𝑥 ∈ ℕ0 ( 𝑆 < 𝑥 → ( 𝐹𝑥 ) = 𝑍 ) → ( ( 𝑛 ∈ ℕ0 ∧ ( 𝐹𝑛 ) ≠ 𝑍 ) → 𝑛 ∈ ( 0 ... 𝑆 ) ) ) )
42 41 imp ( ( 𝜑 ∧ ∀ 𝑥 ∈ ℕ0 ( 𝑆 < 𝑥 → ( 𝐹𝑥 ) = 𝑍 ) ) → ( ( 𝑛 ∈ ℕ0 ∧ ( 𝐹𝑛 ) ≠ 𝑍 ) → 𝑛 ∈ ( 0 ... 𝑆 ) ) )
43 12 42 sylbid ( ( 𝜑 ∧ ∀ 𝑥 ∈ ℕ0 ( 𝑆 < 𝑥 → ( 𝐹𝑥 ) = 𝑍 ) ) → ( 𝑛 ∈ ( 𝐹 supp 𝑍 ) → 𝑛 ∈ ( 0 ... 𝑆 ) ) )
44 43 ssrdv ( ( 𝜑 ∧ ∀ 𝑥 ∈ ℕ0 ( 𝑆 < 𝑥 → ( 𝐹𝑥 ) = 𝑍 ) ) → ( 𝐹 supp 𝑍 ) ⊆ ( 0 ... 𝑆 ) )
45 4 44 mpdan ( 𝜑 → ( 𝐹 supp 𝑍 ) ⊆ ( 0 ... 𝑆 ) )