Metamath Proof Explorer


Theorem fzisoeu

Description: A finite ordered set has a unique order isomorphism to a generic finite sequence of integers. This theorem generalizes fz1iso for the base index and also states the uniqueness condition. (Contributed by Glauco Siliprandi, 11-Dec-2019)

Ref Expression
Hypotheses fzisoeu.h ⊢ φ → H ∈ Fin
fzisoeu.or ⊢ φ → < Or H
fzisoeu.m ⊢ φ → M ∈ ℤ
fzisoeu.4 ⊢ N = H + M - 1
Assertion fzisoeu ⊢ φ → ∃! f f Isom < , < M … N H

Proof

Step Hyp Ref Expression
1 fzisoeu.h ⊢ φ → H ∈ Fin
2 fzisoeu.or ⊢ φ → < Or H
3 fzisoeu.m ⊢ φ → M ∈ ℤ
4 fzisoeu.4 ⊢ N = H + M - 1
5 fzssz ⊢ M … N ⊆ ℤ
6 zssre ⊢ ℤ ⊆ ℝ
7 5 6 sstri ⊢ M … N ⊆ ℝ
8 ltso ⊢ < Or ℝ
9 soss ⊢ M … N ⊆ ℝ → < Or ℝ → < Or M … N
10 7 8 9 mp2 ⊢ < Or M … N
11 fzfi ⊢ M … N ∈ Fin
12 fz1iso ⊢ < Or M … N ∧ M … N ∈ Fin → ∃ h h Isom < , < 1 … M … N M … N
13 10 11 12 mp2an ⊢ ∃ h h Isom < , < 1 … M … N M … N
14 fveq2 ⊢ H = ∅ → H = ∅
15 hash0 ⊢ ∅ = 0
16 14 15 eqtrdi ⊢ H = ∅ → H = 0
17 16 oveq1d ⊢ H = ∅ → H + M - 1 = 0 + M - 1
18 4 17 eqtrid ⊢ H = ∅ → N = 0 + M - 1
19 18 oveq2d ⊢ H = ∅ → M … N = M … 0 + M - 1
20 19 adantl ⊢ φ ∧ H = ∅ → M … N = M … 0 + M - 1
21 3 zcnd ⊢ φ → M ∈ ℂ
22 1cnd ⊢ φ → 1 ∈ ℂ
23 21 22 subcld ⊢ φ → M − 1 ∈ ℂ
24 23 addlidd ⊢ φ → 0 + M - 1 = M − 1
25 24 oveq2d ⊢ φ → M … 0 + M - 1 = M … M − 1
26 3 zred ⊢ φ → M ∈ ℝ
27 26 ltm1d ⊢ φ → M − 1 < M
28 peano2zm ⊢ M ∈ ℤ → M − 1 ∈ ℤ
29 3 28 syl ⊢ φ → M − 1 ∈ ℤ
30 fzn ⊢ M ∈ ℤ ∧ M − 1 ∈ ℤ → M − 1 < M ↔ M … M − 1 = ∅
31 3 29 30 syl2anc ⊢ φ → M − 1 < M ↔ M … M − 1 = ∅
32 27 31 mpbid ⊢ φ → M … M − 1 = ∅
33 25 32 eqtrd ⊢ φ → M … 0 + M - 1 = ∅
34 33 adantr ⊢ φ ∧ H = ∅ → M … 0 + M - 1 = ∅
35 eqcom ⊢ H = ∅ ↔ ∅ = H
36 35 bilani ⊢ φ ∧ H = ∅ → ∅ = H
37 20 34 36 3eqtrd ⊢ φ ∧ H = ∅ → M … N = H
38 37 fveq2d ⊢ φ ∧ H = ∅ → M … N = H
39 22 21 pncan3d ⊢ φ → 1 + M - 1 = M
40 39 eqcomd ⊢ φ → M = 1 + M - 1
41 40 adantr ⊢ φ ∧ ¬ H = ∅ → M = 1 + M - 1
42 1red ⊢ φ ∧ ¬ H = ∅ → 1 ∈ ℝ
43 neqne ⊢ ¬ H = ∅ → H ≠ ∅
44 43 adantl ⊢ φ ∧ ¬ H = ∅ → H ≠ ∅
45 1 adantr ⊢ φ ∧ ¬ H = ∅ → H ∈ Fin
46 hashnncl ⊢ H ∈ Fin → H ∈ ℕ ↔ H ≠ ∅
47 45 46 syl ⊢ φ ∧ ¬ H = ∅ → H ∈ ℕ ↔ H ≠ ∅
48 44 47 mpbird ⊢ φ ∧ ¬ H = ∅ → H ∈ ℕ
49 48 nnred ⊢ φ ∧ ¬ H = ∅ → H ∈ ℝ
50 29 zred ⊢ φ → M − 1 ∈ ℝ
51 50 adantr ⊢ φ ∧ ¬ H = ∅ → M − 1 ∈ ℝ
52 48 nnge1d ⊢ φ ∧ ¬ H = ∅ → 1 ≤ H
53 42 49 51 52 leadd1dd ⊢ φ ∧ ¬ H = ∅ → 1 + M - 1 ≤ H + M - 1
54 53 4 breqtrrdi ⊢ φ ∧ ¬ H = ∅ → 1 + M - 1 ≤ N
55 41 54 eqbrtrd ⊢ φ ∧ ¬ H = ∅ → M ≤ N
56 3 adantr ⊢ φ ∧ ¬ H = ∅ → M ∈ ℤ
57 hashcl ⊢ H ∈ Fin → H ∈ ℕ 0
58 nn0z ⊢ H ∈ ℕ 0 → H ∈ ℤ
59 1 57 58 3syl ⊢ φ → H ∈ ℤ
60 59 29 zaddcld ⊢ φ → H + M - 1 ∈ ℤ
61 4 60 eqeltrid ⊢ φ → N ∈ ℤ
62 61 adantr ⊢ φ ∧ ¬ H = ∅ → N ∈ ℤ
63 eluz ⊢ M ∈ ℤ ∧ N ∈ ℤ → N ∈ ℤ ≥ M ↔ M ≤ N
64 56 62 63 syl2anc ⊢ φ ∧ ¬ H = ∅ → N ∈ ℤ ≥ M ↔ M ≤ N
65 55 64 mpbird ⊢ φ ∧ ¬ H = ∅ → N ∈ ℤ ≥ M
66 hashfz ⊢ N ∈ ℤ ≥ M → M … N = N - M + 1
67 65 66 syl ⊢ φ ∧ ¬ H = ∅ → M … N = N - M + 1
68 4 oveq1i ⊢ N − M = H + M − 1 - M
69 1 57 syl ⊢ φ → H ∈ ℕ 0
70 69 nn0cnd ⊢ φ → H ∈ ℂ
71 70 23 21 addsubassd ⊢ φ → H + M − 1 - M = H + M − 1 - M
72 68 71 eqtrid ⊢ φ → N − M = H + M − 1 - M
73 22 negcld ⊢ φ → − 1 ∈ ℂ
74 21 22 negsubd ⊢ φ → M + -1 = M − 1
75 21 73 74 mvlladdcd ⊢ φ → M - 1 - M = − 1
76 75 oveq2d ⊢ φ → H + M − 1 - M = H + -1
77 72 76 eqtrd ⊢ φ → N − M = H + -1
78 77 oveq1d ⊢ φ → N - M + 1 = H + -1 + 1
79 78 adantr ⊢ φ ∧ ¬ H = ∅ → N - M + 1 = H + -1 + 1
80 70 22 negsubd ⊢ φ → H + -1 = H − 1
81 70 22 80 mvrrsubd ⊢ φ → H + -1 + 1 = H
82 81 adantr ⊢ φ ∧ ¬ H = ∅ → H + -1 + 1 = H
83 67 79 82 3eqtrd ⊢ φ ∧ ¬ H = ∅ → M … N = H
84 38 83 pm2.61dan ⊢ φ → M … N = H
85 84 oveq2d ⊢ φ → 1 … M … N = 1 … H
86 isoeq4 ⊢ 1 … M … N = 1 … H → h Isom < , < 1 … M … N M … N ↔ h Isom < , < 1 … H M … N
87 85 86 syl ⊢ φ → h Isom < , < 1 … M … N M … N ↔ h Isom < , < 1 … H M … N
88 87 biimpd ⊢ φ → h Isom < , < 1 … M … N M … N → h Isom < , < 1 … H M … N
89 88 eximdv ⊢ φ → ∃ h h Isom < , < 1 … M … N M … N → ∃ h h Isom < , < 1 … H M … N
90 13 89 mpi ⊢ φ → ∃ h h Isom < , < 1 … H M … N
91 fz1iso ⊢ < Or H ∧ H ∈ Fin → ∃ g g Isom < , < 1 … H H
92 2 1 91 syl2anc ⊢ φ → ∃ g g Isom < , < 1 … H H
93 exdistrv ⊢ ∃ h ∃ g h Isom < , < 1 … H M … N ∧ g Isom < , < 1 … H H ↔ ∃ h h Isom < , < 1 … H M … N ∧ ∃ g g Isom < , < 1 … H H
94 90 92 93 sylanbrc ⊢ φ → ∃ h ∃ g h Isom < , < 1 … H M … N ∧ g Isom < , < 1 … H H
95 isocnv ⊢ h Isom < , < 1 … H M … N → h -1 Isom < , < M … N 1 … H
96 95 ad2antrl ⊢ φ ∧ h Isom < , < 1 … H M … N ∧ g Isom < , < 1 … H H → h -1 Isom < , < M … N 1 … H
97 simprr ⊢ φ ∧ h Isom < , < 1 … H M … N ∧ g Isom < , < 1 … H H → g Isom < , < 1 … H H
98 isotr ⊢ h -1 Isom < , < M … N 1 … H ∧ g Isom < , < 1 … H H → g ∘ h -1 Isom < , < M … N H
99 96 97 98 syl2anc ⊢ φ ∧ h Isom < , < 1 … H M … N ∧ g Isom < , < 1 … H H → g ∘ h -1 Isom < , < M … N H
100 99 ex ⊢ φ → h Isom < , < 1 … H M … N ∧ g Isom < , < 1 … H H → g ∘ h -1 Isom < , < M … N H
101 100 2eximdv ⊢ φ → ∃ h ∃ g h Isom < , < 1 … H M … N ∧ g Isom < , < 1 … H H → ∃ h ∃ g g ∘ h -1 Isom < , < M … N H
102 94 101 mpd ⊢ φ → ∃ h ∃ g g ∘ h -1 Isom < , < M … N H
103 vex ⊢ g ∈ V
104 vex ⊢ h ∈ V
105 104 cnvex ⊢ h -1 ∈ V
106 103 105 coex ⊢ g ∘ h -1 ∈ V
107 isoeq1 ⊢ f = g ∘ h -1 → f Isom < , < M … N H ↔ g ∘ h -1 Isom < , < M … N H
108 106 107 spcev ⊢ g ∘ h -1 Isom < , < M … N H → ∃ f f Isom < , < M … N H
109 108 a1i ⊢ φ → g ∘ h -1 Isom < , < M … N H → ∃ f f Isom < , < M … N H
110 109 exlimdvv ⊢ φ → ∃ h ∃ g g ∘ h -1 Isom < , < M … N H → ∃ f f Isom < , < M … N H
111 102 110 mpd ⊢ φ → ∃ f f Isom < , < M … N H
112 ltwefz ⊢ < We M … N
113 wemoiso ⊢ < We M … N → ∃* f f Isom < , < M … N H
114 112 113 mp1i ⊢ φ → ∃* f f Isom < , < M … N H
115 df-eu ⊢ ∃! f f Isom < , < M … N H ↔ ∃ f f Isom < , < M … N H ∧ ∃* f f Isom < , < M … N H
116 111 114 115 sylanbrc ⊢ φ → ∃! f f Isom < , < M … N H