Metamath Proof Explorer


Theorem 2ffzoeq

Description: Two functions over a half-open range of nonnegative integers are equal if and only if their domains have the same length and the function values are the same at each position. (Contributed by Alexander van der Vekens, 1-Jul-2018)

Ref Expression
Assertion 2ffzoeq ⊢ M ∈ ℕ 0 ∧ N ∈ ℕ 0 ∧ F : 0 ..^ M ⟶ X ∧ P : 0 ..^ N ⟶ Y → F = P ↔ M = N ∧ ∀ i ∈ 0 ..^ M F ⁡ i = P ⁡ i

Proof

Step Hyp Ref Expression
1 eqeq1 ⊢ F = P → F = ∅ ↔ P = ∅
2 1 anbi1d ⊢ F = P → F = ∅ ∧ P : 0 ..^ N ⟶ Y ↔ P = ∅ ∧ P : 0 ..^ N ⟶ Y
3 f0bi ⊢ P : ∅ ⟶ Y ↔ P = ∅
4 ffn ⊢ P : 0 ..^ N ⟶ Y → P Fn 0 ..^ N
5 ffn ⊢ P : ∅ ⟶ Y → P Fn ∅
6 fndmu ⊢ P Fn 0 ..^ N ∧ P Fn ∅ → 0 ..^ N = ∅
7 0z ⊢ 0 ∈ ℤ
8 nn0z ⊢ N ∈ ℕ 0 → N ∈ ℤ
9 8 adantl ⊢ M ∈ ℕ 0 ∧ N ∈ ℕ 0 → N ∈ ℤ
10 fzon ⊢ 0 ∈ ℤ ∧ N ∈ ℤ → N ≤ 0 ↔ 0 ..^ N = ∅
11 7 9 10 sylancr ⊢ M ∈ ℕ 0 ∧ N ∈ ℕ 0 → N ≤ 0 ↔ 0 ..^ N = ∅
12 nn0ge0 ⊢ N ∈ ℕ 0 → 0 ≤ N
13 0red ⊢ N ∈ ℕ 0 → 0 ∈ ℝ
14 nn0re ⊢ N ∈ ℕ 0 → N ∈ ℝ
15 13 14 letri3d ⊢ N ∈ ℕ 0 → 0 = N ↔ 0 ≤ N ∧ N ≤ 0
16 15 biimprd ⊢ N ∈ ℕ 0 → 0 ≤ N ∧ N ≤ 0 → 0 = N
17 12 16 mpand ⊢ N ∈ ℕ 0 → N ≤ 0 → 0 = N
18 17 adantl ⊢ M ∈ ℕ 0 ∧ N ∈ ℕ 0 → N ≤ 0 → 0 = N
19 11 18 sylbird ⊢ M ∈ ℕ 0 ∧ N ∈ ℕ 0 → 0 ..^ N = ∅ → 0 = N
20 6 19 syl5com ⊢ P Fn 0 ..^ N ∧ P Fn ∅ → M ∈ ℕ 0 ∧ N ∈ ℕ 0 → 0 = N
21 20 ex ⊢ P Fn 0 ..^ N → P Fn ∅ → M ∈ ℕ 0 ∧ N ∈ ℕ 0 → 0 = N
22 4 5 21 syl2imc ⊢ P : ∅ ⟶ Y → P : 0 ..^ N ⟶ Y → M ∈ ℕ 0 ∧ N ∈ ℕ 0 → 0 = N
23 3 22 sylbir ⊢ P = ∅ → P : 0 ..^ N ⟶ Y → M ∈ ℕ 0 ∧ N ∈ ℕ 0 → 0 = N
24 23 imp ⊢ P = ∅ ∧ P : 0 ..^ N ⟶ Y → M ∈ ℕ 0 ∧ N ∈ ℕ 0 → 0 = N
25 2 24 biimtrdi ⊢ F = P → F = ∅ ∧ P : 0 ..^ N ⟶ Y → M ∈ ℕ 0 ∧ N ∈ ℕ 0 → 0 = N
26 25 com3l ⊢ F = ∅ ∧ P : 0 ..^ N ⟶ Y → M ∈ ℕ 0 ∧ N ∈ ℕ 0 → F = P → 0 = N
27 26 a1i ⊢ M = 0 → F = ∅ ∧ P : 0 ..^ N ⟶ Y → M ∈ ℕ 0 ∧ N ∈ ℕ 0 → F = P → 0 = N
28 oveq2 ⊢ M = 0 → 0 ..^ M = 0 ..^ 0
29 fzo0 ⊢ 0 ..^ 0 = ∅
30 28 29 eqtrdi ⊢ M = 0 → 0 ..^ M = ∅
31 30 feq2d ⊢ M = 0 → F : 0 ..^ M ⟶ X ↔ F : ∅ ⟶ X
32 f0bi ⊢ F : ∅ ⟶ X ↔ F = ∅
33 31 32 bitrdi ⊢ M = 0 → F : 0 ..^ M ⟶ X ↔ F = ∅
34 33 anbi1d ⊢ M = 0 → F : 0 ..^ M ⟶ X ∧ P : 0 ..^ N ⟶ Y ↔ F = ∅ ∧ P : 0 ..^ N ⟶ Y
35 eqeq1 ⊢ M = 0 → M = N ↔ 0 = N
36 35 imbi2d ⊢ M = 0 → F = P → M = N ↔ F = P → 0 = N
37 36 imbi2d ⊢ M = 0 → M ∈ ℕ 0 ∧ N ∈ ℕ 0 → F = P → M = N ↔ M ∈ ℕ 0 ∧ N ∈ ℕ 0 → F = P → 0 = N
38 27 34 37 3imtr4d ⊢ M = 0 → F : 0 ..^ M ⟶ X ∧ P : 0 ..^ N ⟶ Y → M ∈ ℕ 0 ∧ N ∈ ℕ 0 → F = P → M = N
39 38 com3l ⊢ F : 0 ..^ M ⟶ X ∧ P : 0 ..^ N ⟶ Y → M ∈ ℕ 0 ∧ N ∈ ℕ 0 → M = 0 → F = P → M = N
40 39 impcom ⊢ M ∈ ℕ 0 ∧ N ∈ ℕ 0 ∧ F : 0 ..^ M ⟶ X ∧ P : 0 ..^ N ⟶ Y → M = 0 → F = P → M = N
41 40 impcom ⊢ M = 0 ∧ M ∈ ℕ 0 ∧ N ∈ ℕ 0 ∧ F : 0 ..^ M ⟶ X ∧ P : 0 ..^ N ⟶ Y → F = P → M = N
42 28 feq2d ⊢ M = 0 → F : 0 ..^ M ⟶ X ↔ F : 0 ..^ 0 ⟶ X
43 29 feq2i ⊢ F : 0 ..^ 0 ⟶ X ↔ F : ∅ ⟶ X
44 43 32 bitri ⊢ F : 0 ..^ 0 ⟶ X ↔ F = ∅
45 42 44 bitrdi ⊢ M = 0 → F : 0 ..^ M ⟶ X ↔ F = ∅
46 45 adantr ⊢ M = 0 ∧ M = N → F : 0 ..^ M ⟶ X ↔ F = ∅
47 eqeq1 ⊢ M = N → M = 0 ↔ N = 0
48 47 biimpac ⊢ M = 0 ∧ M = N → N = 0
49 oveq2 ⊢ N = 0 → 0 ..^ N = 0 ..^ 0
50 49 feq2d ⊢ N = 0 → P : 0 ..^ N ⟶ Y ↔ P : 0 ..^ 0 ⟶ Y
51 29 feq2i ⊢ P : 0 ..^ 0 ⟶ Y ↔ P : ∅ ⟶ Y
52 51 3 bitri ⊢ P : 0 ..^ 0 ⟶ Y ↔ P = ∅
53 50 52 bitrdi ⊢ N = 0 → P : 0 ..^ N ⟶ Y ↔ P = ∅
54 48 53 syl ⊢ M = 0 ∧ M = N → P : 0 ..^ N ⟶ Y ↔ P = ∅
55 46 54 anbi12d ⊢ M = 0 ∧ M = N → F : 0 ..^ M ⟶ X ∧ P : 0 ..^ N ⟶ Y ↔ F = ∅ ∧ P = ∅
56 eqtr3 ⊢ F = ∅ ∧ P = ∅ → F = P
57 55 56 biimtrdi ⊢ M = 0 ∧ M = N → F : 0 ..^ M ⟶ X ∧ P : 0 ..^ N ⟶ Y → F = P
58 57 com12 ⊢ F : 0 ..^ M ⟶ X ∧ P : 0 ..^ N ⟶ Y → M = 0 ∧ M = N → F = P
59 58 expd ⊢ F : 0 ..^ M ⟶ X ∧ P : 0 ..^ N ⟶ Y → M = 0 → M = N → F = P
60 59 adantl ⊢ M ∈ ℕ 0 ∧ N ∈ ℕ 0 ∧ F : 0 ..^ M ⟶ X ∧ P : 0 ..^ N ⟶ Y → M = 0 → M = N → F = P
61 60 impcom ⊢ M = 0 ∧ M ∈ ℕ 0 ∧ N ∈ ℕ 0 ∧ F : 0 ..^ M ⟶ X ∧ P : 0 ..^ N ⟶ Y → M = N → F = P
62 41 61 impbid ⊢ M = 0 ∧ M ∈ ℕ 0 ∧ N ∈ ℕ 0 ∧ F : 0 ..^ M ⟶ X ∧ P : 0 ..^ N ⟶ Y → F = P ↔ M = N
63 ral0 ⊢ ∀ i ∈ ∅ F ⁡ i = P ⁡ i
64 30 raleqdv ⊢ M = 0 → ∀ i ∈ 0 ..^ M F ⁡ i = P ⁡ i ↔ ∀ i ∈ ∅ F ⁡ i = P ⁡ i
65 63 64 mpbiri ⊢ M = 0 → ∀ i ∈ 0 ..^ M F ⁡ i = P ⁡ i
66 65 biantrud ⊢ M = 0 → M = N ↔ M = N ∧ ∀ i ∈ 0 ..^ M F ⁡ i = P ⁡ i
67 66 adantr ⊢ M = 0 ∧ M ∈ ℕ 0 ∧ N ∈ ℕ 0 ∧ F : 0 ..^ M ⟶ X ∧ P : 0 ..^ N ⟶ Y → M = N ↔ M = N ∧ ∀ i ∈ 0 ..^ M F ⁡ i = P ⁡ i
68 62 67 bitrd ⊢ M = 0 ∧ M ∈ ℕ 0 ∧ N ∈ ℕ 0 ∧ F : 0 ..^ M ⟶ X ∧ P : 0 ..^ N ⟶ Y → F = P ↔ M = N ∧ ∀ i ∈ 0 ..^ M F ⁡ i = P ⁡ i
69 ffn ⊢ F : 0 ..^ M ⟶ X → F Fn 0 ..^ M
70 69 4 anim12i ⊢ F : 0 ..^ M ⟶ X ∧ P : 0 ..^ N ⟶ Y → F Fn 0 ..^ M ∧ P Fn 0 ..^ N
71 70 adantl ⊢ M ∈ ℕ 0 ∧ N ∈ ℕ 0 ∧ F : 0 ..^ M ⟶ X ∧ P : 0 ..^ N ⟶ Y → F Fn 0 ..^ M ∧ P Fn 0 ..^ N
72 71 adantl ⊢ ¬ M = 0 ∧ M ∈ ℕ 0 ∧ N ∈ ℕ 0 ∧ F : 0 ..^ M ⟶ X ∧ P : 0 ..^ N ⟶ Y → F Fn 0 ..^ M ∧ P Fn 0 ..^ N
73 eqfnfv2 ⊢ F Fn 0 ..^ M ∧ P Fn 0 ..^ N → F = P ↔ 0 ..^ M = 0 ..^ N ∧ ∀ i ∈ 0 ..^ M F ⁡ i = P ⁡ i
74 72 73 syl ⊢ ¬ M = 0 ∧ M ∈ ℕ 0 ∧ N ∈ ℕ 0 ∧ F : 0 ..^ M ⟶ X ∧ P : 0 ..^ N ⟶ Y → F = P ↔ 0 ..^ M = 0 ..^ N ∧ ∀ i ∈ 0 ..^ M F ⁡ i = P ⁡ i
75 df-ne ⊢ M ≠ 0 ↔ ¬ M = 0
76 elnnne0 ⊢ M ∈ ℕ ↔ M ∈ ℕ 0 ∧ M ≠ 0
77 0zd ⊢ M ∈ ℕ → 0 ∈ ℤ
78 nnz ⊢ M ∈ ℕ → M ∈ ℤ
79 nngt0 ⊢ M ∈ ℕ → 0 < M
80 77 78 79 3jca ⊢ M ∈ ℕ → 0 ∈ ℤ ∧ M ∈ ℤ ∧ 0 < M
81 80 adantr ⊢ M ∈ ℕ ∧ N ∈ ℕ 0 → 0 ∈ ℤ ∧ M ∈ ℤ ∧ 0 < M
82 fzoopth ⊢ 0 ∈ ℤ ∧ M ∈ ℤ ∧ 0 < M → 0 ..^ M = 0 ..^ N ↔ 0 = 0 ∧ M = N
83 81 82 syl ⊢ M ∈ ℕ ∧ N ∈ ℕ 0 → 0 ..^ M = 0 ..^ N ↔ 0 = 0 ∧ M = N
84 simpr ⊢ 0 = 0 ∧ M = N → M = N
85 83 84 biimtrdi ⊢ M ∈ ℕ ∧ N ∈ ℕ 0 → 0 ..^ M = 0 ..^ N → M = N
86 85 anim1d ⊢ M ∈ ℕ ∧ N ∈ ℕ 0 → 0 ..^ M = 0 ..^ N ∧ ∀ i ∈ 0 ..^ M F ⁡ i = P ⁡ i → M = N ∧ ∀ i ∈ 0 ..^ M F ⁡ i = P ⁡ i
87 oveq2 ⊢ M = N → 0 ..^ M = 0 ..^ N
88 87 anim1i ⊢ M = N ∧ ∀ i ∈ 0 ..^ M F ⁡ i = P ⁡ i → 0 ..^ M = 0 ..^ N ∧ ∀ i ∈ 0 ..^ M F ⁡ i = P ⁡ i
89 86 88 impbid1 ⊢ M ∈ ℕ ∧ N ∈ ℕ 0 → 0 ..^ M = 0 ..^ N ∧ ∀ i ∈ 0 ..^ M F ⁡ i = P ⁡ i ↔ M = N ∧ ∀ i ∈ 0 ..^ M F ⁡ i = P ⁡ i
90 89 ex ⊢ M ∈ ℕ → N ∈ ℕ 0 → 0 ..^ M = 0 ..^ N ∧ ∀ i ∈ 0 ..^ M F ⁡ i = P ⁡ i ↔ M = N ∧ ∀ i ∈ 0 ..^ M F ⁡ i = P ⁡ i
91 76 90 sylbir ⊢ M ∈ ℕ 0 ∧ M ≠ 0 → N ∈ ℕ 0 → 0 ..^ M = 0 ..^ N ∧ ∀ i ∈ 0 ..^ M F ⁡ i = P ⁡ i ↔ M = N ∧ ∀ i ∈ 0 ..^ M F ⁡ i = P ⁡ i
92 91 impancom ⊢ M ∈ ℕ 0 ∧ N ∈ ℕ 0 → M ≠ 0 → 0 ..^ M = 0 ..^ N ∧ ∀ i ∈ 0 ..^ M F ⁡ i = P ⁡ i ↔ M = N ∧ ∀ i ∈ 0 ..^ M F ⁡ i = P ⁡ i
93 75 92 biimtrrid ⊢ M ∈ ℕ 0 ∧ N ∈ ℕ 0 → ¬ M = 0 → 0 ..^ M = 0 ..^ N ∧ ∀ i ∈ 0 ..^ M F ⁡ i = P ⁡ i ↔ M = N ∧ ∀ i ∈ 0 ..^ M F ⁡ i = P ⁡ i
94 93 adantr ⊢ M ∈ ℕ 0 ∧ N ∈ ℕ 0 ∧ F : 0 ..^ M ⟶ X ∧ P : 0 ..^ N ⟶ Y → ¬ M = 0 → 0 ..^ M = 0 ..^ N ∧ ∀ i ∈ 0 ..^ M F ⁡ i = P ⁡ i ↔ M = N ∧ ∀ i ∈ 0 ..^ M F ⁡ i = P ⁡ i
95 94 impcom ⊢ ¬ M = 0 ∧ M ∈ ℕ 0 ∧ N ∈ ℕ 0 ∧ F : 0 ..^ M ⟶ X ∧ P : 0 ..^ N ⟶ Y → 0 ..^ M = 0 ..^ N ∧ ∀ i ∈ 0 ..^ M F ⁡ i = P ⁡ i ↔ M = N ∧ ∀ i ∈ 0 ..^ M F ⁡ i = P ⁡ i
96 74 95 bitrd ⊢ ¬ M = 0 ∧ M ∈ ℕ 0 ∧ N ∈ ℕ 0 ∧ F : 0 ..^ M ⟶ X ∧ P : 0 ..^ N ⟶ Y → F = P ↔ M = N ∧ ∀ i ∈ 0 ..^ M F ⁡ i = P ⁡ i
97 68 96 pm2.61ian ⊢ M ∈ ℕ 0 ∧ N ∈ ℕ 0 ∧ F : 0 ..^ M ⟶ X ∧ P : 0 ..^ N ⟶ Y → F = P ↔ M = N ∧ ∀ i ∈ 0 ..^ M F ⁡ i = P ⁡ i