Metamath Proof Explorer


Theorem fzo0opth

Description: Equality for a half open integer range starting at zero is the same as equality of its upper bound, analogous to fzopth and fzoopth . (Contributed by Thierry Arnoux, 27-May-2025)

Ref Expression
Hypotheses fzo0opth.1 ( 𝜑𝑀 ∈ ℕ0 )
fzo0opth.2 ( 𝜑𝑁 ∈ ℕ0 )
Assertion fzo0opth ( 𝜑 → ( ( 0 ..^ 𝑀 ) = ( 0 ..^ 𝑁 ) ↔ 𝑀 = 𝑁 ) )

Proof

Step Hyp Ref Expression
1 fzo0opth.1 ( 𝜑𝑀 ∈ ℕ0 )
2 fzo0opth.2 ( 𝜑𝑁 ∈ ℕ0 )
3 0z 0 ∈ ℤ
4 1 nn0zd ( 𝜑𝑀 ∈ ℤ )
5 simpr ( ( 𝜑 ∧ 0 < 𝑀 ) → 0 < 𝑀 )
6 fzoopth ( ( 0 ∈ ℤ ∧ 𝑀 ∈ ℤ ∧ 0 < 𝑀 ) → ( ( 0 ..^ 𝑀 ) = ( 0 ..^ 𝑁 ) ↔ ( 0 = 0 ∧ 𝑀 = 𝑁 ) ) )
7 3 4 5 6 mp3an2ani ( ( 𝜑 ∧ 0 < 𝑀 ) → ( ( 0 ..^ 𝑀 ) = ( 0 ..^ 𝑁 ) ↔ ( 0 = 0 ∧ 𝑀 = 𝑁 ) ) )
8 eqid 0 = 0
9 8 biantrur ( 𝑀 = 𝑁 ↔ ( 0 = 0 ∧ 𝑀 = 𝑁 ) )
10 7 9 bitr4di ( ( 𝜑 ∧ 0 < 𝑀 ) → ( ( 0 ..^ 𝑀 ) = ( 0 ..^ 𝑁 ) ↔ 𝑀 = 𝑁 ) )
11 simpr ( ( 𝜑 ∧ 0 = 𝑀 ) → 0 = 𝑀 )
12 11 oveq2d ( ( 𝜑 ∧ 0 = 𝑀 ) → ( 0 ..^ 0 ) = ( 0 ..^ 𝑀 ) )
13 fzo0 ( 0 ..^ 0 ) = ∅
14 12 13 eqtr3di ( ( 𝜑 ∧ 0 = 𝑀 ) → ( 0 ..^ 𝑀 ) = ∅ )
15 14 eqeq1d ( ( 𝜑 ∧ 0 = 𝑀 ) → ( ( 0 ..^ 𝑀 ) = ( 0 ..^ 𝑁 ) ↔ ∅ = ( 0 ..^ 𝑁 ) ) )
16 eqcom ( ∅ = ( 0 ..^ 𝑁 ) ↔ ( 0 ..^ 𝑁 ) = ∅ )
17 15 16 bitrdi ( ( 𝜑 ∧ 0 = 𝑀 ) → ( ( 0 ..^ 𝑀 ) = ( 0 ..^ 𝑁 ) ↔ ( 0 ..^ 𝑁 ) = ∅ ) )
18 0zd ( ( 𝜑 ∧ 0 = 𝑀 ) → 0 ∈ ℤ )
19 2 nn0zd ( 𝜑𝑁 ∈ ℤ )
20 19 adantr ( ( 𝜑 ∧ 0 = 𝑀 ) → 𝑁 ∈ ℤ )
21 fzon ( ( 0 ∈ ℤ ∧ 𝑁 ∈ ℤ ) → ( 𝑁 ≤ 0 ↔ ( 0 ..^ 𝑁 ) = ∅ ) )
22 18 20 21 syl2anc ( ( 𝜑 ∧ 0 = 𝑀 ) → ( 𝑁 ≤ 0 ↔ ( 0 ..^ 𝑁 ) = ∅ ) )
23 nn0le0eq0 ( 𝑁 ∈ ℕ0 → ( 𝑁 ≤ 0 ↔ 𝑁 = 0 ) )
24 23 biimpa ( ( 𝑁 ∈ ℕ0𝑁 ≤ 0 ) → 𝑁 = 0 )
25 2 24 sylan ( ( 𝜑𝑁 ≤ 0 ) → 𝑁 = 0 )
26 25 adantlr ( ( ( 𝜑 ∧ 0 = 𝑀 ) ∧ 𝑁 ≤ 0 ) → 𝑁 = 0 )
27 id ( 𝑁 = 0 → 𝑁 = 0 )
28 0le0 0 ≤ 0
29 27 28 eqbrtrdi ( 𝑁 = 0 → 𝑁 ≤ 0 )
30 29 adantl ( ( ( 𝜑 ∧ 0 = 𝑀 ) ∧ 𝑁 = 0 ) → 𝑁 ≤ 0 )
31 26 30 impbida ( ( 𝜑 ∧ 0 = 𝑀 ) → ( 𝑁 ≤ 0 ↔ 𝑁 = 0 ) )
32 eqcom ( 𝑁 = 0 ↔ 0 = 𝑁 )
33 32 a1i ( ( 𝜑 ∧ 0 = 𝑀 ) → ( 𝑁 = 0 ↔ 0 = 𝑁 ) )
34 11 eqeq1d ( ( 𝜑 ∧ 0 = 𝑀 ) → ( 0 = 𝑁𝑀 = 𝑁 ) )
35 31 33 34 3bitrd ( ( 𝜑 ∧ 0 = 𝑀 ) → ( 𝑁 ≤ 0 ↔ 𝑀 = 𝑁 ) )
36 17 22 35 3bitr2d ( ( 𝜑 ∧ 0 = 𝑀 ) → ( ( 0 ..^ 𝑀 ) = ( 0 ..^ 𝑁 ) ↔ 𝑀 = 𝑁 ) )
37 1 nn0ge0d ( 𝜑 → 0 ≤ 𝑀 )
38 0red ( 𝜑 → 0 ∈ ℝ )
39 1 nn0red ( 𝜑𝑀 ∈ ℝ )
40 38 39 leloed ( 𝜑 → ( 0 ≤ 𝑀 ↔ ( 0 < 𝑀 ∨ 0 = 𝑀 ) ) )
41 37 40 mpbid ( 𝜑 → ( 0 < 𝑀 ∨ 0 = 𝑀 ) )
42 10 36 41 mpjaodan ( 𝜑 → ( ( 0 ..^ 𝑀 ) = ( 0 ..^ 𝑁 ) ↔ 𝑀 = 𝑁 ) )