Metamath Proof Explorer


Theorem zntoslem

Description: Lemma for zntos . (Contributed by Mario Carneiro, 15-Jun-2015) (Revised by AV, 13-Jun-2019)

Ref Expression
Hypotheses znle2.y 𝑌 = ( ℤ/nℤ ‘ 𝑁 )
znle2.f 𝐹 = ( ( ℤRHom ‘ 𝑌 ) ↾ 𝑊 )
znle2.w 𝑊 = if ( 𝑁 = 0 , ℤ , ( 0 ..^ 𝑁 ) )
znle2.l = ( le ‘ 𝑌 )
znleval.x 𝑋 = ( Base ‘ 𝑌 )
Assertion zntoslem ( 𝑁 ∈ ℕ0𝑌 ∈ Toset )

Proof

Step Hyp Ref Expression
1 znle2.y 𝑌 = ( ℤ/nℤ ‘ 𝑁 )
2 znle2.f 𝐹 = ( ( ℤRHom ‘ 𝑌 ) ↾ 𝑊 )
3 znle2.w 𝑊 = if ( 𝑁 = 0 , ℤ , ( 0 ..^ 𝑁 ) )
4 znle2.l = ( le ‘ 𝑌 )
5 znleval.x 𝑋 = ( Base ‘ 𝑌 )
6 1 fvexi 𝑌 ∈ V
7 6 a1i ( 𝑁 ∈ ℕ0𝑌 ∈ V )
8 5 a1i ( 𝑁 ∈ ℕ0𝑋 = ( Base ‘ 𝑌 ) )
9 4 a1i ( 𝑁 ∈ ℕ0 = ( le ‘ 𝑌 ) )
10 1 5 2 3 znf1o ( 𝑁 ∈ ℕ0𝐹 : 𝑊1-1-onto𝑋 )
11 f1ocnv ( 𝐹 : 𝑊1-1-onto𝑋 𝐹 : 𝑋1-1-onto𝑊 )
12 10 11 syl ( 𝑁 ∈ ℕ0 𝐹 : 𝑋1-1-onto𝑊 )
13 f1of ( 𝐹 : 𝑋1-1-onto𝑊 𝐹 : 𝑋𝑊 )
14 12 13 syl ( 𝑁 ∈ ℕ0 𝐹 : 𝑋𝑊 )
15 sseq1 ( ℤ = if ( 𝑁 = 0 , ℤ , ( 0 ..^ 𝑁 ) ) → ( ℤ ⊆ ℤ ↔ if ( 𝑁 = 0 , ℤ , ( 0 ..^ 𝑁 ) ) ⊆ ℤ ) )
16 sseq1 ( ( 0 ..^ 𝑁 ) = if ( 𝑁 = 0 , ℤ , ( 0 ..^ 𝑁 ) ) → ( ( 0 ..^ 𝑁 ) ⊆ ℤ ↔ if ( 𝑁 = 0 , ℤ , ( 0 ..^ 𝑁 ) ) ⊆ ℤ ) )
17 ssid ℤ ⊆ ℤ
18 fzossz ( 0 ..^ 𝑁 ) ⊆ ℤ
19 15 16 17 18 keephyp if ( 𝑁 = 0 , ℤ , ( 0 ..^ 𝑁 ) ) ⊆ ℤ
20 3 19 eqsstri 𝑊 ⊆ ℤ
21 zssre ℤ ⊆ ℝ
22 20 21 sstri 𝑊 ⊆ ℝ
23 fss ( ( 𝐹 : 𝑋𝑊𝑊 ⊆ ℝ ) → 𝐹 : 𝑋 ⟶ ℝ )
24 14 22 23 sylancl ( 𝑁 ∈ ℕ0 𝐹 : 𝑋 ⟶ ℝ )
25 24 ffvelrnda ( ( 𝑁 ∈ ℕ0𝑥𝑋 ) → ( 𝐹𝑥 ) ∈ ℝ )
26 25 leidd ( ( 𝑁 ∈ ℕ0𝑥𝑋 ) → ( 𝐹𝑥 ) ≤ ( 𝐹𝑥 ) )
27 1 2 3 4 5 znleval2 ( ( 𝑁 ∈ ℕ0𝑥𝑋𝑥𝑋 ) → ( 𝑥 𝑥 ↔ ( 𝐹𝑥 ) ≤ ( 𝐹𝑥 ) ) )
28 27 3anidm23 ( ( 𝑁 ∈ ℕ0𝑥𝑋 ) → ( 𝑥 𝑥 ↔ ( 𝐹𝑥 ) ≤ ( 𝐹𝑥 ) ) )
29 26 28 mpbird ( ( 𝑁 ∈ ℕ0𝑥𝑋 ) → 𝑥 𝑥 )
30 1 2 3 4 5 znleval2 ( ( 𝑁 ∈ ℕ0𝑥𝑋𝑦𝑋 ) → ( 𝑥 𝑦 ↔ ( 𝐹𝑥 ) ≤ ( 𝐹𝑦 ) ) )
31 1 2 3 4 5 znleval2 ( ( 𝑁 ∈ ℕ0𝑦𝑋𝑥𝑋 ) → ( 𝑦 𝑥 ↔ ( 𝐹𝑦 ) ≤ ( 𝐹𝑥 ) ) )
32 31 3com23 ( ( 𝑁 ∈ ℕ0𝑥𝑋𝑦𝑋 ) → ( 𝑦 𝑥 ↔ ( 𝐹𝑦 ) ≤ ( 𝐹𝑥 ) ) )
33 30 32 anbi12d ( ( 𝑁 ∈ ℕ0𝑥𝑋𝑦𝑋 ) → ( ( 𝑥 𝑦𝑦 𝑥 ) ↔ ( ( 𝐹𝑥 ) ≤ ( 𝐹𝑦 ) ∧ ( 𝐹𝑦 ) ≤ ( 𝐹𝑥 ) ) ) )
34 25 3adant3 ( ( 𝑁 ∈ ℕ0𝑥𝑋𝑦𝑋 ) → ( 𝐹𝑥 ) ∈ ℝ )
35 24 ffvelrnda ( ( 𝑁 ∈ ℕ0𝑦𝑋 ) → ( 𝐹𝑦 ) ∈ ℝ )
36 35 3adant2 ( ( 𝑁 ∈ ℕ0𝑥𝑋𝑦𝑋 ) → ( 𝐹𝑦 ) ∈ ℝ )
37 34 36 letri3d ( ( 𝑁 ∈ ℕ0𝑥𝑋𝑦𝑋 ) → ( ( 𝐹𝑥 ) = ( 𝐹𝑦 ) ↔ ( ( 𝐹𝑥 ) ≤ ( 𝐹𝑦 ) ∧ ( 𝐹𝑦 ) ≤ ( 𝐹𝑥 ) ) ) )
38 f1of1 ( 𝐹 : 𝑋1-1-onto𝑊 𝐹 : 𝑋1-1𝑊 )
39 12 38 syl ( 𝑁 ∈ ℕ0 𝐹 : 𝑋1-1𝑊 )
40 f1fveq ( ( 𝐹 : 𝑋1-1𝑊 ∧ ( 𝑥𝑋𝑦𝑋 ) ) → ( ( 𝐹𝑥 ) = ( 𝐹𝑦 ) ↔ 𝑥 = 𝑦 ) )
41 39 40 sylan ( ( 𝑁 ∈ ℕ0 ∧ ( 𝑥𝑋𝑦𝑋 ) ) → ( ( 𝐹𝑥 ) = ( 𝐹𝑦 ) ↔ 𝑥 = 𝑦 ) )
42 41 3impb ( ( 𝑁 ∈ ℕ0𝑥𝑋𝑦𝑋 ) → ( ( 𝐹𝑥 ) = ( 𝐹𝑦 ) ↔ 𝑥 = 𝑦 ) )
43 33 37 42 3bitr2d ( ( 𝑁 ∈ ℕ0𝑥𝑋𝑦𝑋 ) → ( ( 𝑥 𝑦𝑦 𝑥 ) ↔ 𝑥 = 𝑦 ) )
44 43 biimpd ( ( 𝑁 ∈ ℕ0𝑥𝑋𝑦𝑋 ) → ( ( 𝑥 𝑦𝑦 𝑥 ) → 𝑥 = 𝑦 ) )
45 25 3ad2antr1 ( ( 𝑁 ∈ ℕ0 ∧ ( 𝑥𝑋𝑦𝑋𝑧𝑋 ) ) → ( 𝐹𝑥 ) ∈ ℝ )
46 35 3ad2antr2 ( ( 𝑁 ∈ ℕ0 ∧ ( 𝑥𝑋𝑦𝑋𝑧𝑋 ) ) → ( 𝐹𝑦 ) ∈ ℝ )
47 24 ffvelrnda ( ( 𝑁 ∈ ℕ0𝑧𝑋 ) → ( 𝐹𝑧 ) ∈ ℝ )
48 47 3ad2antr3 ( ( 𝑁 ∈ ℕ0 ∧ ( 𝑥𝑋𝑦𝑋𝑧𝑋 ) ) → ( 𝐹𝑧 ) ∈ ℝ )
49 letr ( ( ( 𝐹𝑥 ) ∈ ℝ ∧ ( 𝐹𝑦 ) ∈ ℝ ∧ ( 𝐹𝑧 ) ∈ ℝ ) → ( ( ( 𝐹𝑥 ) ≤ ( 𝐹𝑦 ) ∧ ( 𝐹𝑦 ) ≤ ( 𝐹𝑧 ) ) → ( 𝐹𝑥 ) ≤ ( 𝐹𝑧 ) ) )
50 45 46 48 49 syl3anc ( ( 𝑁 ∈ ℕ0 ∧ ( 𝑥𝑋𝑦𝑋𝑧𝑋 ) ) → ( ( ( 𝐹𝑥 ) ≤ ( 𝐹𝑦 ) ∧ ( 𝐹𝑦 ) ≤ ( 𝐹𝑧 ) ) → ( 𝐹𝑥 ) ≤ ( 𝐹𝑧 ) ) )
51 30 3adant3r3 ( ( 𝑁 ∈ ℕ0 ∧ ( 𝑥𝑋𝑦𝑋𝑧𝑋 ) ) → ( 𝑥 𝑦 ↔ ( 𝐹𝑥 ) ≤ ( 𝐹𝑦 ) ) )
52 1 2 3 4 5 znleval2 ( ( 𝑁 ∈ ℕ0𝑦𝑋𝑧𝑋 ) → ( 𝑦 𝑧 ↔ ( 𝐹𝑦 ) ≤ ( 𝐹𝑧 ) ) )
53 52 3adant3r1 ( ( 𝑁 ∈ ℕ0 ∧ ( 𝑥𝑋𝑦𝑋𝑧𝑋 ) ) → ( 𝑦 𝑧 ↔ ( 𝐹𝑦 ) ≤ ( 𝐹𝑧 ) ) )
54 51 53 anbi12d ( ( 𝑁 ∈ ℕ0 ∧ ( 𝑥𝑋𝑦𝑋𝑧𝑋 ) ) → ( ( 𝑥 𝑦𝑦 𝑧 ) ↔ ( ( 𝐹𝑥 ) ≤ ( 𝐹𝑦 ) ∧ ( 𝐹𝑦 ) ≤ ( 𝐹𝑧 ) ) ) )
55 1 2 3 4 5 znleval2 ( ( 𝑁 ∈ ℕ0𝑥𝑋𝑧𝑋 ) → ( 𝑥 𝑧 ↔ ( 𝐹𝑥 ) ≤ ( 𝐹𝑧 ) ) )
56 55 3adant3r2 ( ( 𝑁 ∈ ℕ0 ∧ ( 𝑥𝑋𝑦𝑋𝑧𝑋 ) ) → ( 𝑥 𝑧 ↔ ( 𝐹𝑥 ) ≤ ( 𝐹𝑧 ) ) )
57 50 54 56 3imtr4d ( ( 𝑁 ∈ ℕ0 ∧ ( 𝑥𝑋𝑦𝑋𝑧𝑋 ) ) → ( ( 𝑥 𝑦𝑦 𝑧 ) → 𝑥 𝑧 ) )
58 7 8 9 29 44 57 isposd ( 𝑁 ∈ ℕ0𝑌 ∈ Poset )
59 34 36 letrid ( ( 𝑁 ∈ ℕ0𝑥𝑋𝑦𝑋 ) → ( ( 𝐹𝑥 ) ≤ ( 𝐹𝑦 ) ∨ ( 𝐹𝑦 ) ≤ ( 𝐹𝑥 ) ) )
60 30 32 orbi12d ( ( 𝑁 ∈ ℕ0𝑥𝑋𝑦𝑋 ) → ( ( 𝑥 𝑦𝑦 𝑥 ) ↔ ( ( 𝐹𝑥 ) ≤ ( 𝐹𝑦 ) ∨ ( 𝐹𝑦 ) ≤ ( 𝐹𝑥 ) ) ) )
61 59 60 mpbird ( ( 𝑁 ∈ ℕ0𝑥𝑋𝑦𝑋 ) → ( 𝑥 𝑦𝑦 𝑥 ) )
62 61 3expb ( ( 𝑁 ∈ ℕ0 ∧ ( 𝑥𝑋𝑦𝑋 ) ) → ( 𝑥 𝑦𝑦 𝑥 ) )
63 62 ralrimivva ( 𝑁 ∈ ℕ0 → ∀ 𝑥𝑋𝑦𝑋 ( 𝑥 𝑦𝑦 𝑥 ) )
64 5 4 istos ( 𝑌 ∈ Toset ↔ ( 𝑌 ∈ Poset ∧ ∀ 𝑥𝑋𝑦𝑋 ( 𝑥 𝑦𝑦 𝑥 ) ) )
65 58 63 64 sylanbrc ( 𝑁 ∈ ℕ0𝑌 ∈ Toset )