Metamath Proof Explorer


Theorem hashfzo

Description: Cardinality of a half-open set of integers. (Contributed by Stefan O'Rear, 15-Aug-2015)

Ref Expression
Assertion hashfzo ( 𝐵 ∈ ( ℤ𝐴 ) → ( ♯ ‘ ( 𝐴 ..^ 𝐵 ) ) = ( 𝐵𝐴 ) )

Proof

Step Hyp Ref Expression
1 fzo0 ( 𝐴 ..^ 𝐴 ) = ∅
2 1 fveq2i ( ♯ ‘ ( 𝐴 ..^ 𝐴 ) ) = ( ♯ ‘ ∅ )
3 hash0 ( ♯ ‘ ∅ ) = 0
4 2 3 eqtri ( ♯ ‘ ( 𝐴 ..^ 𝐴 ) ) = 0
5 eluzel2 ( 𝐵 ∈ ( ℤ𝐴 ) → 𝐴 ∈ ℤ )
6 5 zcnd ( 𝐵 ∈ ( ℤ𝐴 ) → 𝐴 ∈ ℂ )
7 6 subidd ( 𝐵 ∈ ( ℤ𝐴 ) → ( 𝐴𝐴 ) = 0 )
8 4 7 eqtr4id ( 𝐵 ∈ ( ℤ𝐴 ) → ( ♯ ‘ ( 𝐴 ..^ 𝐴 ) ) = ( 𝐴𝐴 ) )
9 oveq2 ( 𝐵 = 𝐴 → ( 𝐴 ..^ 𝐵 ) = ( 𝐴 ..^ 𝐴 ) )
10 9 fveq2d ( 𝐵 = 𝐴 → ( ♯ ‘ ( 𝐴 ..^ 𝐵 ) ) = ( ♯ ‘ ( 𝐴 ..^ 𝐴 ) ) )
11 oveq1 ( 𝐵 = 𝐴 → ( 𝐵𝐴 ) = ( 𝐴𝐴 ) )
12 10 11 eqeq12d ( 𝐵 = 𝐴 → ( ( ♯ ‘ ( 𝐴 ..^ 𝐵 ) ) = ( 𝐵𝐴 ) ↔ ( ♯ ‘ ( 𝐴 ..^ 𝐴 ) ) = ( 𝐴𝐴 ) ) )
13 8 12 syl5ibrcom ( 𝐵 ∈ ( ℤ𝐴 ) → ( 𝐵 = 𝐴 → ( ♯ ‘ ( 𝐴 ..^ 𝐵 ) ) = ( 𝐵𝐴 ) ) )
14 eluzelz ( 𝐵 ∈ ( ℤ𝐴 ) → 𝐵 ∈ ℤ )
15 fzoval ( 𝐵 ∈ ℤ → ( 𝐴 ..^ 𝐵 ) = ( 𝐴 ... ( 𝐵 − 1 ) ) )
16 14 15 syl ( 𝐵 ∈ ( ℤ𝐴 ) → ( 𝐴 ..^ 𝐵 ) = ( 𝐴 ... ( 𝐵 − 1 ) ) )
17 16 fveq2d ( 𝐵 ∈ ( ℤ𝐴 ) → ( ♯ ‘ ( 𝐴 ..^ 𝐵 ) ) = ( ♯ ‘ ( 𝐴 ... ( 𝐵 − 1 ) ) ) )
18 17 adantr ( ( 𝐵 ∈ ( ℤ𝐴 ) ∧ ( 𝐵 − 1 ) ∈ ( ℤ𝐴 ) ) → ( ♯ ‘ ( 𝐴 ..^ 𝐵 ) ) = ( ♯ ‘ ( 𝐴 ... ( 𝐵 − 1 ) ) ) )
19 hashfz ( ( 𝐵 − 1 ) ∈ ( ℤ𝐴 ) → ( ♯ ‘ ( 𝐴 ... ( 𝐵 − 1 ) ) ) = ( ( ( 𝐵 − 1 ) − 𝐴 ) + 1 ) )
20 14 zcnd ( 𝐵 ∈ ( ℤ𝐴 ) → 𝐵 ∈ ℂ )
21 1cnd ( 𝐵 ∈ ( ℤ𝐴 ) → 1 ∈ ℂ )
22 20 21 6 sub32d ( 𝐵 ∈ ( ℤ𝐴 ) → ( ( 𝐵 − 1 ) − 𝐴 ) = ( ( 𝐵𝐴 ) − 1 ) )
23 22 oveq1d ( 𝐵 ∈ ( ℤ𝐴 ) → ( ( ( 𝐵 − 1 ) − 𝐴 ) + 1 ) = ( ( ( 𝐵𝐴 ) − 1 ) + 1 ) )
24 20 6 subcld ( 𝐵 ∈ ( ℤ𝐴 ) → ( 𝐵𝐴 ) ∈ ℂ )
25 ax-1cn 1 ∈ ℂ
26 npcan ( ( ( 𝐵𝐴 ) ∈ ℂ ∧ 1 ∈ ℂ ) → ( ( ( 𝐵𝐴 ) − 1 ) + 1 ) = ( 𝐵𝐴 ) )
27 24 25 26 sylancl ( 𝐵 ∈ ( ℤ𝐴 ) → ( ( ( 𝐵𝐴 ) − 1 ) + 1 ) = ( 𝐵𝐴 ) )
28 23 27 eqtrd ( 𝐵 ∈ ( ℤ𝐴 ) → ( ( ( 𝐵 − 1 ) − 𝐴 ) + 1 ) = ( 𝐵𝐴 ) )
29 19 28 sylan9eqr ( ( 𝐵 ∈ ( ℤ𝐴 ) ∧ ( 𝐵 − 1 ) ∈ ( ℤ𝐴 ) ) → ( ♯ ‘ ( 𝐴 ... ( 𝐵 − 1 ) ) ) = ( 𝐵𝐴 ) )
30 18 29 eqtrd ( ( 𝐵 ∈ ( ℤ𝐴 ) ∧ ( 𝐵 − 1 ) ∈ ( ℤ𝐴 ) ) → ( ♯ ‘ ( 𝐴 ..^ 𝐵 ) ) = ( 𝐵𝐴 ) )
31 30 ex ( 𝐵 ∈ ( ℤ𝐴 ) → ( ( 𝐵 − 1 ) ∈ ( ℤ𝐴 ) → ( ♯ ‘ ( 𝐴 ..^ 𝐵 ) ) = ( 𝐵𝐴 ) ) )
32 uzm1 ( 𝐵 ∈ ( ℤ𝐴 ) → ( 𝐵 = 𝐴 ∨ ( 𝐵 − 1 ) ∈ ( ℤ𝐴 ) ) )
33 13 31 32 mpjaod ( 𝐵 ∈ ( ℤ𝐴 ) → ( ♯ ‘ ( 𝐴 ..^ 𝐵 ) ) = ( 𝐵𝐴 ) )