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
|- Y = ( Z/nZ ` N )
znle2.f
|- F = ( ( ZRHom ` Y ) |` W )
znle2.w
|- W = if ( N = 0 , ZZ , ( 0 ..^ N ) )
znle2.l
|- .<_ = ( le ` Y )
znleval.x
|- X = ( Base ` Y )
Assertion zntoslem
|- ( N e. NN0 -> Y e. Toset )

Proof

Step Hyp Ref Expression
1 znle2.y
 |-  Y = ( Z/nZ ` N )
2 znle2.f
 |-  F = ( ( ZRHom ` Y ) |` W )
3 znle2.w
 |-  W = if ( N = 0 , ZZ , ( 0 ..^ N ) )
4 znle2.l
 |-  .<_ = ( le ` Y )
5 znleval.x
 |-  X = ( Base ` Y )
6 1 fvexi
 |-  Y e. _V
7 6 a1i
 |-  ( N e. NN0 -> Y e. _V )
8 5 a1i
 |-  ( N e. NN0 -> X = ( Base ` Y ) )
9 4 a1i
 |-  ( N e. NN0 -> .<_ = ( le ` Y ) )
10 1 5 2 3 znf1o
 |-  ( N e. NN0 -> F : W -1-1-onto-> X )
11 f1ocnv
 |-  ( F : W -1-1-onto-> X -> `' F : X -1-1-onto-> W )
12 10 11 syl
 |-  ( N e. NN0 -> `' F : X -1-1-onto-> W )
13 f1of
 |-  ( `' F : X -1-1-onto-> W -> `' F : X --> W )
14 12 13 syl
 |-  ( N e. NN0 -> `' F : X --> W )
15 sseq1
 |-  ( ZZ = if ( N = 0 , ZZ , ( 0 ..^ N ) ) -> ( ZZ C_ ZZ <-> if ( N = 0 , ZZ , ( 0 ..^ N ) ) C_ ZZ ) )
16 sseq1
 |-  ( ( 0 ..^ N ) = if ( N = 0 , ZZ , ( 0 ..^ N ) ) -> ( ( 0 ..^ N ) C_ ZZ <-> if ( N = 0 , ZZ , ( 0 ..^ N ) ) C_ ZZ ) )
17 ssid
 |-  ZZ C_ ZZ
18 fzossz
 |-  ( 0 ..^ N ) C_ ZZ
19 15 16 17 18 keephyp
 |-  if ( N = 0 , ZZ , ( 0 ..^ N ) ) C_ ZZ
20 3 19 eqsstri
 |-  W C_ ZZ
21 zssre
 |-  ZZ C_ RR
22 20 21 sstri
 |-  W C_ RR
23 fss
 |-  ( ( `' F : X --> W /\ W C_ RR ) -> `' F : X --> RR )
24 14 22 23 sylancl
 |-  ( N e. NN0 -> `' F : X --> RR )
25 24 ffvelrnda
 |-  ( ( N e. NN0 /\ x e. X ) -> ( `' F ` x ) e. RR )
26 25 leidd
 |-  ( ( N e. NN0 /\ x e. X ) -> ( `' F ` x ) <_ ( `' F ` x ) )
27 1 2 3 4 5 znleval2
 |-  ( ( N e. NN0 /\ x e. X /\ x e. X ) -> ( x .<_ x <-> ( `' F ` x ) <_ ( `' F ` x ) ) )
28 27 3anidm23
 |-  ( ( N e. NN0 /\ x e. X ) -> ( x .<_ x <-> ( `' F ` x ) <_ ( `' F ` x ) ) )
29 26 28 mpbird
 |-  ( ( N e. NN0 /\ x e. X ) -> x .<_ x )
30 1 2 3 4 5 znleval2
 |-  ( ( N e. NN0 /\ x e. X /\ y e. X ) -> ( x .<_ y <-> ( `' F ` x ) <_ ( `' F ` y ) ) )
31 1 2 3 4 5 znleval2
 |-  ( ( N e. NN0 /\ y e. X /\ x e. X ) -> ( y .<_ x <-> ( `' F ` y ) <_ ( `' F ` x ) ) )
32 31 3com23
 |-  ( ( N e. NN0 /\ x e. X /\ y e. X ) -> ( y .<_ x <-> ( `' F ` y ) <_ ( `' F ` x ) ) )
33 30 32 anbi12d
 |-  ( ( N e. NN0 /\ x e. X /\ y e. X ) -> ( ( x .<_ y /\ y .<_ x ) <-> ( ( `' F ` x ) <_ ( `' F ` y ) /\ ( `' F ` y ) <_ ( `' F ` x ) ) ) )
34 25 3adant3
 |-  ( ( N e. NN0 /\ x e. X /\ y e. X ) -> ( `' F ` x ) e. RR )
35 24 ffvelrnda
 |-  ( ( N e. NN0 /\ y e. X ) -> ( `' F ` y ) e. RR )
36 35 3adant2
 |-  ( ( N e. NN0 /\ x e. X /\ y e. X ) -> ( `' F ` y ) e. RR )
37 34 36 letri3d
 |-  ( ( N e. NN0 /\ x e. X /\ y e. X ) -> ( ( `' F ` x ) = ( `' F ` y ) <-> ( ( `' F ` x ) <_ ( `' F ` y ) /\ ( `' F ` y ) <_ ( `' F ` x ) ) ) )
38 f1of1
 |-  ( `' F : X -1-1-onto-> W -> `' F : X -1-1-> W )
39 12 38 syl
 |-  ( N e. NN0 -> `' F : X -1-1-> W )
40 f1fveq
 |-  ( ( `' F : X -1-1-> W /\ ( x e. X /\ y e. X ) ) -> ( ( `' F ` x ) = ( `' F ` y ) <-> x = y ) )
41 39 40 sylan
 |-  ( ( N e. NN0 /\ ( x e. X /\ y e. X ) ) -> ( ( `' F ` x ) = ( `' F ` y ) <-> x = y ) )
42 41 3impb
 |-  ( ( N e. NN0 /\ x e. X /\ y e. X ) -> ( ( `' F ` x ) = ( `' F ` y ) <-> x = y ) )
43 33 37 42 3bitr2d
 |-  ( ( N e. NN0 /\ x e. X /\ y e. X ) -> ( ( x .<_ y /\ y .<_ x ) <-> x = y ) )
44 43 biimpd
 |-  ( ( N e. NN0 /\ x e. X /\ y e. X ) -> ( ( x .<_ y /\ y .<_ x ) -> x = y ) )
45 25 3ad2antr1
 |-  ( ( N e. NN0 /\ ( x e. X /\ y e. X /\ z e. X ) ) -> ( `' F ` x ) e. RR )
46 35 3ad2antr2
 |-  ( ( N e. NN0 /\ ( x e. X /\ y e. X /\ z e. X ) ) -> ( `' F ` y ) e. RR )
47 24 ffvelrnda
 |-  ( ( N e. NN0 /\ z e. X ) -> ( `' F ` z ) e. RR )
48 47 3ad2antr3
 |-  ( ( N e. NN0 /\ ( x e. X /\ y e. X /\ z e. X ) ) -> ( `' F ` z ) e. RR )
49 letr
 |-  ( ( ( `' F ` x ) e. RR /\ ( `' F ` y ) e. RR /\ ( `' F ` z ) e. RR ) -> ( ( ( `' F ` x ) <_ ( `' F ` y ) /\ ( `' F ` y ) <_ ( `' F ` z ) ) -> ( `' F ` x ) <_ ( `' F ` z ) ) )
50 45 46 48 49 syl3anc
 |-  ( ( N e. NN0 /\ ( x e. X /\ y e. X /\ z e. X ) ) -> ( ( ( `' F ` x ) <_ ( `' F ` y ) /\ ( `' F ` y ) <_ ( `' F ` z ) ) -> ( `' F ` x ) <_ ( `' F ` z ) ) )
51 30 3adant3r3
 |-  ( ( N e. NN0 /\ ( x e. X /\ y e. X /\ z e. X ) ) -> ( x .<_ y <-> ( `' F ` x ) <_ ( `' F ` y ) ) )
52 1 2 3 4 5 znleval2
 |-  ( ( N e. NN0 /\ y e. X /\ z e. X ) -> ( y .<_ z <-> ( `' F ` y ) <_ ( `' F ` z ) ) )
53 52 3adant3r1
 |-  ( ( N e. NN0 /\ ( x e. X /\ y e. X /\ z e. X ) ) -> ( y .<_ z <-> ( `' F ` y ) <_ ( `' F ` z ) ) )
54 51 53 anbi12d
 |-  ( ( N e. NN0 /\ ( x e. X /\ y e. X /\ z e. X ) ) -> ( ( x .<_ y /\ y .<_ z ) <-> ( ( `' F ` x ) <_ ( `' F ` y ) /\ ( `' F ` y ) <_ ( `' F ` z ) ) ) )
55 1 2 3 4 5 znleval2
 |-  ( ( N e. NN0 /\ x e. X /\ z e. X ) -> ( x .<_ z <-> ( `' F ` x ) <_ ( `' F ` z ) ) )
56 55 3adant3r2
 |-  ( ( N e. NN0 /\ ( x e. X /\ y e. X /\ z e. X ) ) -> ( x .<_ z <-> ( `' F ` x ) <_ ( `' F ` z ) ) )
57 50 54 56 3imtr4d
 |-  ( ( N e. NN0 /\ ( x e. X /\ y e. X /\ z e. X ) ) -> ( ( x .<_ y /\ y .<_ z ) -> x .<_ z ) )
58 7 8 9 29 44 57 isposd
 |-  ( N e. NN0 -> Y e. Poset )
59 34 36 letrid
 |-  ( ( N e. NN0 /\ x e. X /\ y e. X ) -> ( ( `' F ` x ) <_ ( `' F ` y ) \/ ( `' F ` y ) <_ ( `' F ` x ) ) )
60 30 32 orbi12d
 |-  ( ( N e. NN0 /\ x e. X /\ y e. X ) -> ( ( x .<_ y \/ y .<_ x ) <-> ( ( `' F ` x ) <_ ( `' F ` y ) \/ ( `' F ` y ) <_ ( `' F ` x ) ) ) )
61 59 60 mpbird
 |-  ( ( N e. NN0 /\ x e. X /\ y e. X ) -> ( x .<_ y \/ y .<_ x ) )
62 61 3expb
 |-  ( ( N e. NN0 /\ ( x e. X /\ y e. X ) ) -> ( x .<_ y \/ y .<_ x ) )
63 62 ralrimivva
 |-  ( N e. NN0 -> A. x e. X A. y e. X ( x .<_ y \/ y .<_ x ) )
64 5 4 istos
 |-  ( Y e. Toset <-> ( Y e. Poset /\ A. x e. X A. y e. X ( x .<_ y \/ y .<_ x ) ) )
65 58 63 64 sylanbrc
 |-  ( N e. NN0 -> Y e. Toset )