MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  eulerthlem2 Structured version   Visualization version   Unicode version

Theorem eulerthlem2 15487
Description: Lemma for eulerth 15488. (Contributed by Mario Carneiro, 28-Feb-2014.)
Hypotheses
Ref Expression
eulerth.1  |-  ( ph  ->  ( N  e.  NN  /\  A  e.  ZZ  /\  ( A  gcd  N )  =  1 ) )
eulerth.2  |-  S  =  { y  e.  ( 0..^ N )  |  ( y  gcd  N
)  =  1 }
eulerth.3  |-  T  =  ( 1 ... ( phi `  N ) )
eulerth.4  |-  ( ph  ->  F : T -1-1-onto-> S )
eulerth.5  |-  G  =  ( x  e.  T  |->  ( ( A  x.  ( F `  x ) )  mod  N ) )
Assertion
Ref Expression
eulerthlem2  |-  ( ph  ->  ( ( A ^
( phi `  N
) )  mod  N
)  =  ( 1  mod  N ) )
Distinct variable groups:    x, y, A    x, F, y    x, G, y    x, N, y   
x, S    ph, x, y   
x, T, y
Allowed substitution hint:    S( y)

Proof of Theorem eulerthlem2
Dummy variables  z  w are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 eulerth.1 . . . . . . . . . . 11  |-  ( ph  ->  ( N  e.  NN  /\  A  e.  ZZ  /\  ( A  gcd  N )  =  1 ) )
21simp1d 1073 . . . . . . . . . 10  |-  ( ph  ->  N  e.  NN )
32phicld 15477 . . . . . . . . 9  |-  ( ph  ->  ( phi `  N
)  e.  NN )
43nnred 11035 . . . . . . . 8  |-  ( ph  ->  ( phi `  N
)  e.  RR )
54leidd 10594 . . . . . . 7  |-  ( ph  ->  ( phi `  N
)  <_  ( phi `  N ) )
63adantr 481 . . . . . . . 8  |-  ( (
ph  /\  ( phi `  N )  <_  ( phi `  N ) )  ->  ( phi `  N )  e.  NN )
7 breq1 4656 . . . . . . . . . . 11  |-  ( x  =  1  ->  (
x  <_  ( phi `  N )  <->  1  <_  ( phi `  N ) ) )
87anbi2d 740 . . . . . . . . . 10  |-  ( x  =  1  ->  (
( ph  /\  x  <_  ( phi `  N
) )  <->  ( ph  /\  1  <_  ( phi `  N ) ) ) )
9 oveq2 6658 . . . . . . . . . . . . . 14  |-  ( x  =  1  ->  ( A ^ x )  =  ( A ^ 1 ) )
10 fveq2 6191 . . . . . . . . . . . . . 14  |-  ( x  =  1  ->  (  seq 1 (  x.  ,  F ) `  x
)  =  (  seq 1 (  x.  ,  F ) `  1
) )
119, 10oveq12d 6668 . . . . . . . . . . . . 13  |-  ( x  =  1  ->  (
( A ^ x
)  x.  (  seq 1 (  x.  ,  F ) `  x
) )  =  ( ( A ^ 1 )  x.  (  seq 1 (  x.  ,  F ) `  1
) ) )
1211oveq1d 6665 . . . . . . . . . . . 12  |-  ( x  =  1  ->  (
( ( A ^
x )  x.  (  seq 1 (  x.  ,  F ) `  x
) )  mod  N
)  =  ( ( ( A ^ 1 )  x.  (  seq 1 (  x.  ,  F ) `  1
) )  mod  N
) )
13 fveq2 6191 . . . . . . . . . . . . 13  |-  ( x  =  1  ->  (  seq 1 (  x.  ,  G ) `  x
)  =  (  seq 1 (  x.  ,  G ) `  1
) )
1413oveq1d 6665 . . . . . . . . . . . 12  |-  ( x  =  1  ->  (
(  seq 1 (  x.  ,  G ) `  x )  mod  N
)  =  ( (  seq 1 (  x.  ,  G ) ` 
1 )  mod  N
) )
1512, 14eqeq12d 2637 . . . . . . . . . . 11  |-  ( x  =  1  ->  (
( ( ( A ^ x )  x.  (  seq 1 (  x.  ,  F ) `
 x ) )  mod  N )  =  ( (  seq 1
(  x.  ,  G
) `  x )  mod  N )  <->  ( (
( A ^ 1 )  x.  (  seq 1 (  x.  ,  F ) `  1
) )  mod  N
)  =  ( (  seq 1 (  x.  ,  G ) ` 
1 )  mod  N
) ) )
1610oveq2d 6666 . . . . . . . . . . . 12  |-  ( x  =  1  ->  ( N  gcd  (  seq 1
(  x.  ,  F
) `  x )
)  =  ( N  gcd  (  seq 1
(  x.  ,  F
) `  1 )
) )
1716eqeq1d 2624 . . . . . . . . . . 11  |-  ( x  =  1  ->  (
( N  gcd  (  seq 1 (  x.  ,  F ) `  x
) )  =  1  <-> 
( N  gcd  (  seq 1 (  x.  ,  F ) `  1
) )  =  1 ) )
1815, 17anbi12d 747 . . . . . . . . . 10  |-  ( x  =  1  ->  (
( ( ( ( A ^ x )  x.  (  seq 1
(  x.  ,  F
) `  x )
)  mod  N )  =  ( (  seq 1 (  x.  ,  G ) `  x
)  mod  N )  /\  ( N  gcd  (  seq 1 (  x.  ,  F ) `  x
) )  =  1 )  <->  ( ( ( ( A ^ 1 )  x.  (  seq 1 (  x.  ,  F ) `  1
) )  mod  N
)  =  ( (  seq 1 (  x.  ,  G ) ` 
1 )  mod  N
)  /\  ( N  gcd  (  seq 1
(  x.  ,  F
) `  1 )
)  =  1 ) ) )
198, 18imbi12d 334 . . . . . . . . 9  |-  ( x  =  1  ->  (
( ( ph  /\  x  <_  ( phi `  N ) )  -> 
( ( ( ( A ^ x )  x.  (  seq 1
(  x.  ,  F
) `  x )
)  mod  N )  =  ( (  seq 1 (  x.  ,  G ) `  x
)  mod  N )  /\  ( N  gcd  (  seq 1 (  x.  ,  F ) `  x
) )  =  1 ) )  <->  ( ( ph  /\  1  <_  ( phi `  N ) )  ->  ( ( ( ( A ^ 1 )  x.  (  seq 1 (  x.  ,  F ) `  1
) )  mod  N
)  =  ( (  seq 1 (  x.  ,  G ) ` 
1 )  mod  N
)  /\  ( N  gcd  (  seq 1
(  x.  ,  F
) `  1 )
)  =  1 ) ) ) )
20 breq1 4656 . . . . . . . . . . 11  |-  ( x  =  z  ->  (
x  <_  ( phi `  N )  <->  z  <_  ( phi `  N ) ) )
2120anbi2d 740 . . . . . . . . . 10  |-  ( x  =  z  ->  (
( ph  /\  x  <_  ( phi `  N
) )  <->  ( ph  /\  z  <_  ( phi `  N ) ) ) )
22 oveq2 6658 . . . . . . . . . . . . . 14  |-  ( x  =  z  ->  ( A ^ x )  =  ( A ^ z
) )
23 fveq2 6191 . . . . . . . . . . . . . 14  |-  ( x  =  z  ->  (  seq 1 (  x.  ,  F ) `  x
)  =  (  seq 1 (  x.  ,  F ) `  z
) )
2422, 23oveq12d 6668 . . . . . . . . . . . . 13  |-  ( x  =  z  ->  (
( A ^ x
)  x.  (  seq 1 (  x.  ,  F ) `  x
) )  =  ( ( A ^ z
)  x.  (  seq 1 (  x.  ,  F ) `  z
) ) )
2524oveq1d 6665 . . . . . . . . . . . 12  |-  ( x  =  z  ->  (
( ( A ^
x )  x.  (  seq 1 (  x.  ,  F ) `  x
) )  mod  N
)  =  ( ( ( A ^ z
)  x.  (  seq 1 (  x.  ,  F ) `  z
) )  mod  N
) )
26 fveq2 6191 . . . . . . . . . . . . 13  |-  ( x  =  z  ->  (  seq 1 (  x.  ,  G ) `  x
)  =  (  seq 1 (  x.  ,  G ) `  z
) )
2726oveq1d 6665 . . . . . . . . . . . 12  |-  ( x  =  z  ->  (
(  seq 1 (  x.  ,  G ) `  x )  mod  N
)  =  ( (  seq 1 (  x.  ,  G ) `  z )  mod  N
) )
2825, 27eqeq12d 2637 . . . . . . . . . . 11  |-  ( x  =  z  ->  (
( ( ( A ^ x )  x.  (  seq 1 (  x.  ,  F ) `
 x ) )  mod  N )  =  ( (  seq 1
(  x.  ,  G
) `  x )  mod  N )  <->  ( (
( A ^ z
)  x.  (  seq 1 (  x.  ,  F ) `  z
) )  mod  N
)  =  ( (  seq 1 (  x.  ,  G ) `  z )  mod  N
) ) )
2923oveq2d 6666 . . . . . . . . . . . 12  |-  ( x  =  z  ->  ( N  gcd  (  seq 1
(  x.  ,  F
) `  x )
)  =  ( N  gcd  (  seq 1
(  x.  ,  F
) `  z )
) )
3029eqeq1d 2624 . . . . . . . . . . 11  |-  ( x  =  z  ->  (
( N  gcd  (  seq 1 (  x.  ,  F ) `  x
) )  =  1  <-> 
( N  gcd  (  seq 1 (  x.  ,  F ) `  z
) )  =  1 ) )
3128, 30anbi12d 747 . . . . . . . . . 10  |-  ( x  =  z  ->  (
( ( ( ( A ^ x )  x.  (  seq 1
(  x.  ,  F
) `  x )
)  mod  N )  =  ( (  seq 1 (  x.  ,  G ) `  x
)  mod  N )  /\  ( N  gcd  (  seq 1 (  x.  ,  F ) `  x
) )  =  1 )  <->  ( ( ( ( A ^ z
)  x.  (  seq 1 (  x.  ,  F ) `  z
) )  mod  N
)  =  ( (  seq 1 (  x.  ,  G ) `  z )  mod  N
)  /\  ( N  gcd  (  seq 1
(  x.  ,  F
) `  z )
)  =  1 ) ) )
3221, 31imbi12d 334 . . . . . . . . 9  |-  ( x  =  z  ->  (
( ( ph  /\  x  <_  ( phi `  N ) )  -> 
( ( ( ( A ^ x )  x.  (  seq 1
(  x.  ,  F
) `  x )
)  mod  N )  =  ( (  seq 1 (  x.  ,  G ) `  x
)  mod  N )  /\  ( N  gcd  (  seq 1 (  x.  ,  F ) `  x
) )  =  1 ) )  <->  ( ( ph  /\  z  <_  ( phi `  N ) )  ->  ( ( ( ( A ^ z
)  x.  (  seq 1 (  x.  ,  F ) `  z
) )  mod  N
)  =  ( (  seq 1 (  x.  ,  G ) `  z )  mod  N
)  /\  ( N  gcd  (  seq 1
(  x.  ,  F
) `  z )
)  =  1 ) ) ) )
33 breq1 4656 . . . . . . . . . . 11  |-  ( x  =  ( z  +  1 )  ->  (
x  <_  ( phi `  N )  <->  ( z  +  1 )  <_ 
( phi `  N
) ) )
3433anbi2d 740 . . . . . . . . . 10  |-  ( x  =  ( z  +  1 )  ->  (
( ph  /\  x  <_  ( phi `  N
) )  <->  ( ph  /\  ( z  +  1 )  <_  ( phi `  N ) ) ) )
35 oveq2 6658 . . . . . . . . . . . . . 14  |-  ( x  =  ( z  +  1 )  ->  ( A ^ x )  =  ( A ^ (
z  +  1 ) ) )
36 fveq2 6191 . . . . . . . . . . . . . 14  |-  ( x  =  ( z  +  1 )  ->  (  seq 1 (  x.  ,  F ) `  x
)  =  (  seq 1 (  x.  ,  F ) `  (
z  +  1 ) ) )
3735, 36oveq12d 6668 . . . . . . . . . . . . 13  |-  ( x  =  ( z  +  1 )  ->  (
( A ^ x
)  x.  (  seq 1 (  x.  ,  F ) `  x
) )  =  ( ( A ^ (
z  +  1 ) )  x.  (  seq 1 (  x.  ,  F ) `  (
z  +  1 ) ) ) )
3837oveq1d 6665 . . . . . . . . . . . 12  |-  ( x  =  ( z  +  1 )  ->  (
( ( A ^
x )  x.  (  seq 1 (  x.  ,  F ) `  x
) )  mod  N
)  =  ( ( ( A ^ (
z  +  1 ) )  x.  (  seq 1 (  x.  ,  F ) `  (
z  +  1 ) ) )  mod  N
) )
39 fveq2 6191 . . . . . . . . . . . . 13  |-  ( x  =  ( z  +  1 )  ->  (  seq 1 (  x.  ,  G ) `  x
)  =  (  seq 1 (  x.  ,  G ) `  (
z  +  1 ) ) )
4039oveq1d 6665 . . . . . . . . . . . 12  |-  ( x  =  ( z  +  1 )  ->  (
(  seq 1 (  x.  ,  G ) `  x )  mod  N
)  =  ( (  seq 1 (  x.  ,  G ) `  ( z  +  1 ) )  mod  N
) )
4138, 40eqeq12d 2637 . . . . . . . . . . 11  |-  ( x  =  ( z  +  1 )  ->  (
( ( ( A ^ x )  x.  (  seq 1 (  x.  ,  F ) `
 x ) )  mod  N )  =  ( (  seq 1
(  x.  ,  G
) `  x )  mod  N )  <->  ( (
( A ^ (
z  +  1 ) )  x.  (  seq 1 (  x.  ,  F ) `  (
z  +  1 ) ) )  mod  N
)  =  ( (  seq 1 (  x.  ,  G ) `  ( z  +  1 ) )  mod  N
) ) )
4236oveq2d 6666 . . . . . . . . . . . 12  |-  ( x  =  ( z  +  1 )  ->  ( N  gcd  (  seq 1
(  x.  ,  F
) `  x )
)  =  ( N  gcd  (  seq 1
(  x.  ,  F
) `  ( z  +  1 ) ) ) )
4342eqeq1d 2624 . . . . . . . . . . 11  |-  ( x  =  ( z  +  1 )  ->  (
( N  gcd  (  seq 1 (  x.  ,  F ) `  x
) )  =  1  <-> 
( N  gcd  (  seq 1 (  x.  ,  F ) `  (
z  +  1 ) ) )  =  1 ) )
4441, 43anbi12d 747 . . . . . . . . . 10  |-  ( x  =  ( z  +  1 )  ->  (
( ( ( ( A ^ x )  x.  (  seq 1
(  x.  ,  F
) `  x )
)  mod  N )  =  ( (  seq 1 (  x.  ,  G ) `  x
)  mod  N )  /\  ( N  gcd  (  seq 1 (  x.  ,  F ) `  x
) )  =  1 )  <->  ( ( ( ( A ^ (
z  +  1 ) )  x.  (  seq 1 (  x.  ,  F ) `  (
z  +  1 ) ) )  mod  N
)  =  ( (  seq 1 (  x.  ,  G ) `  ( z  +  1 ) )  mod  N
)  /\  ( N  gcd  (  seq 1
(  x.  ,  F
) `  ( z  +  1 ) ) )  =  1 ) ) )
4534, 44imbi12d 334 . . . . . . . . 9  |-  ( x  =  ( z  +  1 )  ->  (
( ( ph  /\  x  <_  ( phi `  N ) )  -> 
( ( ( ( A ^ x )  x.  (  seq 1
(  x.  ,  F
) `  x )
)  mod  N )  =  ( (  seq 1 (  x.  ,  G ) `  x
)  mod  N )  /\  ( N  gcd  (  seq 1 (  x.  ,  F ) `  x
) )  =  1 ) )  <->  ( ( ph  /\  ( z  +  1 )  <_  ( phi `  N ) )  ->  ( ( ( ( A ^ (
z  +  1 ) )  x.  (  seq 1 (  x.  ,  F ) `  (
z  +  1 ) ) )  mod  N
)  =  ( (  seq 1 (  x.  ,  G ) `  ( z  +  1 ) )  mod  N
)  /\  ( N  gcd  (  seq 1
(  x.  ,  F
) `  ( z  +  1 ) ) )  =  1 ) ) ) )
46 breq1 4656 . . . . . . . . . . 11  |-  ( x  =  ( phi `  N )  ->  (
x  <_  ( phi `  N )  <->  ( phi `  N )  <_  ( phi `  N ) ) )
4746anbi2d 740 . . . . . . . . . 10  |-  ( x  =  ( phi `  N )  ->  (
( ph  /\  x  <_  ( phi `  N
) )  <->  ( ph  /\  ( phi `  N
)  <_  ( phi `  N ) ) ) )
48 oveq2 6658 . . . . . . . . . . . . . 14  |-  ( x  =  ( phi `  N )  ->  ( A ^ x )  =  ( A ^ ( phi `  N ) ) )
49 fveq2 6191 . . . . . . . . . . . . . 14  |-  ( x  =  ( phi `  N )  ->  (  seq 1 (  x.  ,  F ) `  x
)  =  (  seq 1 (  x.  ,  F ) `  ( phi `  N ) ) )
5048, 49oveq12d 6668 . . . . . . . . . . . . 13  |-  ( x  =  ( phi `  N )  ->  (
( A ^ x
)  x.  (  seq 1 (  x.  ,  F ) `  x
) )  =  ( ( A ^ ( phi `  N ) )  x.  (  seq 1
(  x.  ,  F
) `  ( phi `  N ) ) ) )
5150oveq1d 6665 . . . . . . . . . . . 12  |-  ( x  =  ( phi `  N )  ->  (
( ( A ^
x )  x.  (  seq 1 (  x.  ,  F ) `  x
) )  mod  N
)  =  ( ( ( A ^ ( phi `  N ) )  x.  (  seq 1
(  x.  ,  F
) `  ( phi `  N ) ) )  mod  N ) )
52 fveq2 6191 . . . . . . . . . . . . 13  |-  ( x  =  ( phi `  N )  ->  (  seq 1 (  x.  ,  G ) `  x
)  =  (  seq 1 (  x.  ,  G ) `  ( phi `  N ) ) )
5352oveq1d 6665 . . . . . . . . . . . 12  |-  ( x  =  ( phi `  N )  ->  (
(  seq 1 (  x.  ,  G ) `  x )  mod  N
)  =  ( (  seq 1 (  x.  ,  G ) `  ( phi `  N ) )  mod  N ) )
5451, 53eqeq12d 2637 . . . . . . . . . . 11  |-  ( x  =  ( phi `  N )  ->  (
( ( ( A ^ x )  x.  (  seq 1 (  x.  ,  F ) `
 x ) )  mod  N )  =  ( (  seq 1
(  x.  ,  G
) `  x )  mod  N )  <->  ( (
( A ^ ( phi `  N ) )  x.  (  seq 1
(  x.  ,  F
) `  ( phi `  N ) ) )  mod  N )  =  ( (  seq 1
(  x.  ,  G
) `  ( phi `  N ) )  mod 
N ) ) )
5549oveq2d 6666 . . . . . . . . . . . 12  |-  ( x  =  ( phi `  N )  ->  ( N  gcd  (  seq 1
(  x.  ,  F
) `  x )
)  =  ( N  gcd  (  seq 1
(  x.  ,  F
) `  ( phi `  N ) ) ) )
5655eqeq1d 2624 . . . . . . . . . . 11  |-  ( x  =  ( phi `  N )  ->  (
( N  gcd  (  seq 1 (  x.  ,  F ) `  x
) )  =  1  <-> 
( N  gcd  (  seq 1 (  x.  ,  F ) `  ( phi `  N ) ) )  =  1 ) )
5754, 56anbi12d 747 . . . . . . . . . 10  |-  ( x  =  ( phi `  N )  ->  (
( ( ( ( A ^ x )  x.  (  seq 1
(  x.  ,  F
) `  x )
)  mod  N )  =  ( (  seq 1 (  x.  ,  G ) `  x
)  mod  N )  /\  ( N  gcd  (  seq 1 (  x.  ,  F ) `  x
) )  =  1 )  <->  ( ( ( ( A ^ ( phi `  N ) )  x.  (  seq 1
(  x.  ,  F
) `  ( phi `  N ) ) )  mod  N )  =  ( (  seq 1
(  x.  ,  G
) `  ( phi `  N ) )  mod 
N )  /\  ( N  gcd  (  seq 1
(  x.  ,  F
) `  ( phi `  N ) ) )  =  1 ) ) )
5847, 57imbi12d 334 . . . . . . . . 9  |-  ( x  =  ( phi `  N )  ->  (
( ( ph  /\  x  <_  ( phi `  N ) )  -> 
( ( ( ( A ^ x )  x.  (  seq 1
(  x.  ,  F
) `  x )
)  mod  N )  =  ( (  seq 1 (  x.  ,  G ) `  x
)  mod  N )  /\  ( N  gcd  (  seq 1 (  x.  ,  F ) `  x
) )  =  1 ) )  <->  ( ( ph  /\  ( phi `  N )  <_  ( phi `  N ) )  ->  ( ( ( ( A ^ ( phi `  N ) )  x.  (  seq 1
(  x.  ,  F
) `  ( phi `  N ) ) )  mod  N )  =  ( (  seq 1
(  x.  ,  G
) `  ( phi `  N ) )  mod 
N )  /\  ( N  gcd  (  seq 1
(  x.  ,  F
) `  ( phi `  N ) ) )  =  1 ) ) ) )
591simp2d 1074 . . . . . . . . . . . . . . 15  |-  ( ph  ->  A  e.  ZZ )
60 eulerth.4 . . . . . . . . . . . . . . . . . . . 20  |-  ( ph  ->  F : T -1-1-onto-> S )
61 f1of 6137 . . . . . . . . . . . . . . . . . . . 20  |-  ( F : T -1-1-onto-> S  ->  F : T
--> S )
6260, 61syl 17 . . . . . . . . . . . . . . . . . . 19  |-  ( ph  ->  F : T --> S )
63 nnuz 11723 . . . . . . . . . . . . . . . . . . . . . 22  |-  NN  =  ( ZZ>= `  1 )
643, 63syl6eleq 2711 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ph  ->  ( phi `  N
)  e.  ( ZZ>= ` 
1 ) )
65 eluzfz1 12348 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( phi `  N )  e.  ( ZZ>= `  1
)  ->  1  e.  ( 1 ... ( phi `  N ) ) )
6664, 65syl 17 . . . . . . . . . . . . . . . . . . . 20  |-  ( ph  ->  1  e.  ( 1 ... ( phi `  N ) ) )
67 eulerth.3 . . . . . . . . . . . . . . . . . . . 20  |-  T  =  ( 1 ... ( phi `  N ) )
6866, 67syl6eleqr 2712 . . . . . . . . . . . . . . . . . . 19  |-  ( ph  ->  1  e.  T )
6962, 68ffvelrnd 6360 . . . . . . . . . . . . . . . . . 18  |-  ( ph  ->  ( F `  1
)  e.  S )
70 oveq1 6657 . . . . . . . . . . . . . . . . . . . 20  |-  ( y  =  ( F ` 
1 )  ->  (
y  gcd  N )  =  ( ( F `
 1 )  gcd 
N ) )
7170eqeq1d 2624 . . . . . . . . . . . . . . . . . . 19  |-  ( y  =  ( F ` 
1 )  ->  (
( y  gcd  N
)  =  1  <->  (
( F `  1
)  gcd  N )  =  1 ) )
72 eulerth.2 . . . . . . . . . . . . . . . . . . 19  |-  S  =  { y  e.  ( 0..^ N )  |  ( y  gcd  N
)  =  1 }
7371, 72elrab2 3366 . . . . . . . . . . . . . . . . . 18  |-  ( ( F `  1 )  e.  S  <->  ( ( F `  1 )  e.  ( 0..^ N )  /\  ( ( F `
 1 )  gcd 
N )  =  1 ) )
7469, 73sylib 208 . . . . . . . . . . . . . . . . 17  |-  ( ph  ->  ( ( F ` 
1 )  e.  ( 0..^ N )  /\  ( ( F ` 
1 )  gcd  N
)  =  1 ) )
7574simpld 475 . . . . . . . . . . . . . . . 16  |-  ( ph  ->  ( F `  1
)  e.  ( 0..^ N ) )
76 elfzoelz 12470 . . . . . . . . . . . . . . . 16  |-  ( ( F `  1 )  e.  ( 0..^ N )  ->  ( F `  1 )  e.  ZZ )
7775, 76syl 17 . . . . . . . . . . . . . . 15  |-  ( ph  ->  ( F `  1
)  e.  ZZ )
7859, 77zmulcld 11488 . . . . . . . . . . . . . 14  |-  ( ph  ->  ( A  x.  ( F `  1 )
)  e.  ZZ )
7978zred 11482 . . . . . . . . . . . . 13  |-  ( ph  ->  ( A  x.  ( F `  1 )
)  e.  RR )
802nnrpd 11870 . . . . . . . . . . . . 13  |-  ( ph  ->  N  e.  RR+ )
81 modabs2 12704 . . . . . . . . . . . . 13  |-  ( ( ( A  x.  ( F `  1 )
)  e.  RR  /\  N  e.  RR+ )  -> 
( ( ( A  x.  ( F ` 
1 ) )  mod 
N )  mod  N
)  =  ( ( A  x.  ( F `
 1 ) )  mod  N ) )
8279, 80, 81syl2anc 693 . . . . . . . . . . . 12  |-  ( ph  ->  ( ( ( A  x.  ( F ` 
1 ) )  mod 
N )  mod  N
)  =  ( ( A  x.  ( F `
 1 ) )  mod  N ) )
83 1z 11407 . . . . . . . . . . . . . 14  |-  1  e.  ZZ
84 fveq2 6191 . . . . . . . . . . . . . . . . . 18  |-  ( x  =  1  ->  ( F `  x )  =  ( F ` 
1 ) )
8584oveq2d 6666 . . . . . . . . . . . . . . . . 17  |-  ( x  =  1  ->  ( A  x.  ( F `  x ) )  =  ( A  x.  ( F `  1 )
) )
8685oveq1d 6665 . . . . . . . . . . . . . . . 16  |-  ( x  =  1  ->  (
( A  x.  ( F `  x )
)  mod  N )  =  ( ( A  x.  ( F ` 
1 ) )  mod 
N ) )
87 eulerth.5 . . . . . . . . . . . . . . . 16  |-  G  =  ( x  e.  T  |->  ( ( A  x.  ( F `  x ) )  mod  N ) )
88 ovex 6678 . . . . . . . . . . . . . . . 16  |-  ( ( A  x.  ( F `
 1 ) )  mod  N )  e. 
_V
8986, 87, 88fvmpt 6282 . . . . . . . . . . . . . . 15  |-  ( 1  e.  T  ->  ( G `  1 )  =  ( ( A  x.  ( F ` 
1 ) )  mod 
N ) )
9068, 89syl 17 . . . . . . . . . . . . . 14  |-  ( ph  ->  ( G `  1
)  =  ( ( A  x.  ( F `
 1 ) )  mod  N ) )
9183, 90seq1i 12815 . . . . . . . . . . . . 13  |-  ( ph  ->  (  seq 1 (  x.  ,  G ) `
 1 )  =  ( ( A  x.  ( F `  1 ) )  mod  N ) )
9291oveq1d 6665 . . . . . . . . . . . 12  |-  ( ph  ->  ( (  seq 1
(  x.  ,  G
) `  1 )  mod  N )  =  ( ( ( A  x.  ( F `  1 ) )  mod  N )  mod  N ) )
9359zcnd 11483 . . . . . . . . . . . . . . 15  |-  ( ph  ->  A  e.  CC )
9493exp1d 13003 . . . . . . . . . . . . . 14  |-  ( ph  ->  ( A ^ 1 )  =  A )
95 seq1 12814 . . . . . . . . . . . . . . . 16  |-  ( 1  e.  ZZ  ->  (  seq 1 (  x.  ,  F ) `  1
)  =  ( F `
 1 ) )
9683, 95ax-mp 5 . . . . . . . . . . . . . . 15  |-  (  seq 1 (  x.  ,  F ) `  1
)  =  ( F `
 1 )
9796a1i 11 . . . . . . . . . . . . . 14  |-  ( ph  ->  (  seq 1 (  x.  ,  F ) `
 1 )  =  ( F `  1
) )
9894, 97oveq12d 6668 . . . . . . . . . . . . 13  |-  ( ph  ->  ( ( A ^
1 )  x.  (  seq 1 (  x.  ,  F ) `  1
) )  =  ( A  x.  ( F `
 1 ) ) )
9998oveq1d 6665 . . . . . . . . . . . 12  |-  ( ph  ->  ( ( ( A ^ 1 )  x.  (  seq 1 (  x.  ,  F ) `
 1 ) )  mod  N )  =  ( ( A  x.  ( F `  1 ) )  mod  N ) )
10082, 92, 993eqtr4rd 2667 . . . . . . . . . . 11  |-  ( ph  ->  ( ( ( A ^ 1 )  x.  (  seq 1 (  x.  ,  F ) `
 1 ) )  mod  N )  =  ( (  seq 1
(  x.  ,  G
) `  1 )  mod  N ) )
10196oveq2i 6661 . . . . . . . . . . . 12  |-  ( N  gcd  (  seq 1
(  x.  ,  F
) `  1 )
)  =  ( N  gcd  ( F ` 
1 ) )
1022nnzd 11481 . . . . . . . . . . . . . 14  |-  ( ph  ->  N  e.  ZZ )
103 gcdcom 15235 . . . . . . . . . . . . . 14  |-  ( ( N  e.  ZZ  /\  ( F `  1 )  e.  ZZ )  -> 
( N  gcd  ( F `  1 )
)  =  ( ( F `  1 )  gcd  N ) )
104102, 77, 103syl2anc 693 . . . . . . . . . . . . 13  |-  ( ph  ->  ( N  gcd  ( F `  1 )
)  =  ( ( F `  1 )  gcd  N ) )
10574simprd 479 . . . . . . . . . . . . 13  |-  ( ph  ->  ( ( F ` 
1 )  gcd  N
)  =  1 )
106104, 105eqtrd 2656 . . . . . . . . . . . 12  |-  ( ph  ->  ( N  gcd  ( F `  1 )
)  =  1 )
107101, 106syl5eq 2668 . . . . . . . . . . 11  |-  ( ph  ->  ( N  gcd  (  seq 1 (  x.  ,  F ) `  1
) )  =  1 )
108100, 107jca 554 . . . . . . . . . 10  |-  ( ph  ->  ( ( ( ( A ^ 1 )  x.  (  seq 1
(  x.  ,  F
) `  1 )
)  mod  N )  =  ( (  seq 1 (  x.  ,  G ) `  1
)  mod  N )  /\  ( N  gcd  (  seq 1 (  x.  ,  F ) `  1
) )  =  1 ) )
109108adantr 481 . . . . . . . . 9  |-  ( (
ph  /\  1  <_  ( phi `  N ) )  ->  ( (
( ( A ^
1 )  x.  (  seq 1 (  x.  ,  F ) `  1
) )  mod  N
)  =  ( (  seq 1 (  x.  ,  G ) ` 
1 )  mod  N
)  /\  ( N  gcd  (  seq 1
(  x.  ,  F
) `  1 )
)  =  1 ) )
110 nnre 11027 . . . . . . . . . . . . . . 15  |-  ( z  e.  NN  ->  z  e.  RR )
111110adantr 481 . . . . . . . . . . . . . 14  |-  ( ( z  e.  NN  /\  ph )  ->  z  e.  RR )
112111lep1d 10955 . . . . . . . . . . . . 13  |-  ( ( z  e.  NN  /\  ph )  ->  z  <_  ( z  +  1 ) )
113 peano2re 10209 . . . . . . . . . . . . . . 15  |-  ( z  e.  RR  ->  (
z  +  1 )  e.  RR )
114111, 113syl 17 . . . . . . . . . . . . . 14  |-  ( ( z  e.  NN  /\  ph )  ->  ( z  +  1 )  e.  RR )
1154adantl 482 . . . . . . . . . . . . . 14  |-  ( ( z  e.  NN  /\  ph )  ->  ( phi `  N )  e.  RR )
116 letr 10131 . . . . . . . . . . . . . 14  |-  ( ( z  e.  RR  /\  ( z  +  1 )  e.  RR  /\  ( phi `  N )  e.  RR )  -> 
( ( z  <_ 
( z  +  1 )  /\  ( z  +  1 )  <_ 
( phi `  N
) )  ->  z  <_  ( phi `  N
) ) )
117111, 114, 115, 116syl3anc 1326 . . . . . . . . . . . . 13  |-  ( ( z  e.  NN  /\  ph )  ->  ( (
z  <_  ( z  +  1 )  /\  ( z  +  1 )  <_  ( phi `  N ) )  -> 
z  <_  ( phi `  N ) ) )
118112, 117mpand 711 . . . . . . . . . . . 12  |-  ( ( z  e.  NN  /\  ph )  ->  ( (
z  +  1 )  <_  ( phi `  N )  ->  z  <_  ( phi `  N
) ) )
119118imdistanda 729 . . . . . . . . . . 11  |-  ( z  e.  NN  ->  (
( ph  /\  (
z  +  1 )  <_  ( phi `  N ) )  -> 
( ph  /\  z  <_  ( phi `  N
) ) ) )
120119imim1d 82 . . . . . . . . . 10  |-  ( z  e.  NN  ->  (
( ( ph  /\  z  <_  ( phi `  N ) )  -> 
( ( ( ( A ^ z )  x.  (  seq 1
(  x.  ,  F
) `  z )
)  mod  N )  =  ( (  seq 1 (  x.  ,  G ) `  z
)  mod  N )  /\  ( N  gcd  (  seq 1 (  x.  ,  F ) `  z
) )  =  1 ) )  ->  (
( ph  /\  (
z  +  1 )  <_  ( phi `  N ) )  -> 
( ( ( ( A ^ z )  x.  (  seq 1
(  x.  ,  F
) `  z )
)  mod  N )  =  ( (  seq 1 (  x.  ,  G ) `  z
)  mod  N )  /\  ( N  gcd  (  seq 1 (  x.  ,  F ) `  z
) )  =  1 ) ) ) )
12159adantr 481 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  ->  A  e.  ZZ )
122 nnnn0 11299 . . . . . . . . . . . . . . . . . . . 20  |-  ( z  e.  NN  ->  z  e.  NN0 )
123122ad2antrl 764 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
z  e.  NN0 )
124 zexpcl 12875 . . . . . . . . . . . . . . . . . . 19  |-  ( ( A  e.  ZZ  /\  z  e.  NN0 )  -> 
( A ^ z
)  e.  ZZ )
125121, 123, 124syl2anc 693 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( A ^ z
)  e.  ZZ )
126 simprl 794 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
z  e.  NN )
127126, 63syl6eleq 2711 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
z  e.  ( ZZ>= ` 
1 ) )
128110ad2antrl 764 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
z  e.  RR )
129128, 113syl 17 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( z  +  1 )  e.  RR )
1304adantr 481 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( phi `  N
)  e.  RR )
131128lep1d 10955 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
z  <_  ( z  +  1 ) )
132 simprr 796 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( z  +  1 )  <_  ( phi `  N ) )
133128, 129, 130, 131, 132letrd 10194 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
z  <_  ( phi `  N ) )
134 nnz 11399 . . . . . . . . . . . . . . . . . . . . . . . . . 26  |-  ( z  e.  NN  ->  z  e.  ZZ )
135134ad2antrl 764 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
z  e.  ZZ )
1363nnzd 11481 . . . . . . . . . . . . . . . . . . . . . . . . . 26  |-  ( ph  ->  ( phi `  N
)  e.  ZZ )
137136adantr 481 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( phi `  N
)  e.  ZZ )
138 eluz 11701 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( ( z  e.  ZZ  /\  ( phi `  N )  e.  ZZ )  -> 
( ( phi `  N )  e.  (
ZZ>= `  z )  <->  z  <_  ( phi `  N ) ) )
139135, 137, 138syl2anc 693 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( ( phi `  N )  e.  (
ZZ>= `  z )  <->  z  <_  ( phi `  N ) ) )
140133, 139mpbird 247 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( phi `  N
)  e.  ( ZZ>= `  z ) )
141 fzss2 12381 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( ( phi `  N )  e.  ( ZZ>= `  z
)  ->  ( 1 ... z )  C_  ( 1 ... ( phi `  N ) ) )
142140, 141syl 17 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( 1 ... z
)  C_  ( 1 ... ( phi `  N ) ) )
143142, 67syl6sseqr 3652 . . . . . . . . . . . . . . . . . . . . 21  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( 1 ... z
)  C_  T )
144143sselda 3603 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( ph  /\  (
z  e.  NN  /\  ( z  +  1 )  <_  ( phi `  N ) ) )  /\  x  e.  ( 1 ... z ) )  ->  x  e.  T )
14562ffvelrnda 6359 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( (
ph  /\  x  e.  T )  ->  ( F `  x )  e.  S )
146 oveq1 6657 . . . . . . . . . . . . . . . . . . . . . . . . . 26  |-  ( y  =  ( F `  x )  ->  (
y  gcd  N )  =  ( ( F `
 x )  gcd 
N ) )
147146eqeq1d 2624 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( y  =  ( F `  x )  ->  (
( y  gcd  N
)  =  1  <->  (
( F `  x
)  gcd  N )  =  1 ) )
148147, 72elrab2 3366 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( ( F `  x )  e.  S  <->  ( ( F `  x )  e.  ( 0..^ N )  /\  ( ( F `
 x )  gcd 
N )  =  1 ) )
149145, 148sylib 208 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( (
ph  /\  x  e.  T )  ->  (
( F `  x
)  e.  ( 0..^ N )  /\  (
( F `  x
)  gcd  N )  =  1 ) )
150149simpld 475 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( (
ph  /\  x  e.  T )  ->  ( F `  x )  e.  ( 0..^ N ) )
151 elfzoelz 12470 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( ( F `  x )  e.  ( 0..^ N )  ->  ( F `  x )  e.  ZZ )
152150, 151syl 17 . . . . . . . . . . . . . . . . . . . . 21  |-  ( (
ph  /\  x  e.  T )  ->  ( F `  x )  e.  ZZ )
153152adantlr 751 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( ph  /\  (
z  e.  NN  /\  ( z  +  1 )  <_  ( phi `  N ) ) )  /\  x  e.  T
)  ->  ( F `  x )  e.  ZZ )
154144, 153syldan 487 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( ph  /\  (
z  e.  NN  /\  ( z  +  1 )  <_  ( phi `  N ) ) )  /\  x  e.  ( 1 ... z ) )  ->  ( F `  x )  e.  ZZ )
155 zmulcl 11426 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( x  e.  ZZ  /\  y  e.  ZZ )  ->  ( x  x.  y
)  e.  ZZ )
156155adantl 482 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( ph  /\  (
z  e.  NN  /\  ( z  +  1 )  <_  ( phi `  N ) ) )  /\  ( x  e.  ZZ  /\  y  e.  ZZ ) )  -> 
( x  x.  y
)  e.  ZZ )
157127, 154, 156seqcl 12821 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
(  seq 1 (  x.  ,  F ) `  z )  e.  ZZ )
158125, 157zmulcld 11488 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( ( A ^
z )  x.  (  seq 1 (  x.  ,  F ) `  z
) )  e.  ZZ )
159158zred 11482 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( ( A ^
z )  x.  (  seq 1 (  x.  ,  F ) `  z
) )  e.  RR )
160 ssrab2 3687 . . . . . . . . . . . . . . . . . . . . . . 23  |-  { y  e.  ( 0..^ N )  |  ( y  gcd  N )  =  1 }  C_  (
0..^ N )
16172, 160eqsstri 3635 . . . . . . . . . . . . . . . . . . . . . 22  |-  S  C_  ( 0..^ N )
1621, 72, 67, 60, 87eulerthlem1 15486 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( ph  ->  G : T --> S )
163162ffvelrnda 6359 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( (
ph  /\  x  e.  T )  ->  ( G `  x )  e.  S )
164161, 163sseldi 3601 . . . . . . . . . . . . . . . . . . . . 21  |-  ( (
ph  /\  x  e.  T )  ->  ( G `  x )  e.  ( 0..^ N ) )
165 elfzoelz 12470 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( G `  x )  e.  ( 0..^ N )  ->  ( G `  x )  e.  ZZ )
166164, 165syl 17 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
ph  /\  x  e.  T )  ->  ( G `  x )  e.  ZZ )
167166adantlr 751 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( ph  /\  (
z  e.  NN  /\  ( z  +  1 )  <_  ( phi `  N ) ) )  /\  x  e.  T
)  ->  ( G `  x )  e.  ZZ )
168144, 167syldan 487 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( ph  /\  (
z  e.  NN  /\  ( z  +  1 )  <_  ( phi `  N ) ) )  /\  x  e.  ( 1 ... z ) )  ->  ( G `  x )  e.  ZZ )
169127, 168, 156seqcl 12821 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
(  seq 1 (  x.  ,  G ) `  z )  e.  ZZ )
170169zred 11482 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
(  seq 1 (  x.  ,  G ) `  z )  e.  RR )
17162adantr 481 . . . . . . . . . . . . . . . . . . . . 21  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  ->  F : T --> S )
172 peano2nn 11032 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( z  e.  NN  ->  (
z  +  1 )  e.  NN )
173172ad2antrl 764 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( z  +  1 )  e.  NN )
174173nnge1d 11063 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
1  <_  ( z  +  1 ) )
175173nnzd 11481 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( z  +  1 )  e.  ZZ )
176 elfz 12332 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( ( ( z  +  1 )  e.  ZZ  /\  1  e.  ZZ  /\  ( phi `  N )  e.  ZZ )  ->  (
( z  +  1 )  e.  ( 1 ... ( phi `  N ) )  <->  ( 1  <_  ( z  +  1 )  /\  (
z  +  1 )  <_  ( phi `  N ) ) ) )
17783, 176mp3an2 1412 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( ( ( z  +  1 )  e.  ZZ  /\  ( phi `  N )  e.  ZZ )  -> 
( ( z  +  1 )  e.  ( 1 ... ( phi `  N ) )  <->  ( 1  <_  ( z  +  1 )  /\  (
z  +  1 )  <_  ( phi `  N ) ) ) )
178175, 137, 177syl2anc 693 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( ( z  +  1 )  e.  ( 1 ... ( phi `  N ) )  <->  ( 1  <_  ( z  +  1 )  /\  (
z  +  1 )  <_  ( phi `  N ) ) ) )
179174, 132, 178mpbir2and 957 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( z  +  1 )  e.  ( 1 ... ( phi `  N ) ) )
180179, 67syl6eleqr 2712 . . . . . . . . . . . . . . . . . . . . 21  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( z  +  1 )  e.  T )
181171, 180ffvelrnd 6360 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( F `  (
z  +  1 ) )  e.  S )
182 oveq1 6657 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( y  =  ( F `  ( z  +  1 ) )  ->  (
y  gcd  N )  =  ( ( F `
 ( z  +  1 ) )  gcd 
N ) )
183182eqeq1d 2624 . . . . . . . . . . . . . . . . . . . . 21  |-  ( y  =  ( F `  ( z  +  1 ) )  ->  (
( y  gcd  N
)  =  1  <->  (
( F `  (
z  +  1 ) )  gcd  N )  =  1 ) )
184183, 72elrab2 3366 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( F `  ( z  +  1 ) )  e.  S  <->  ( ( F `  ( z  +  1 ) )  e.  ( 0..^ N )  /\  ( ( F `  ( z  +  1 ) )  gcd  N )  =  1 ) )
185181, 184sylib 208 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( ( F `  ( z  +  1 ) )  e.  ( 0..^ N )  /\  ( ( F `  ( z  +  1 ) )  gcd  N
)  =  1 ) )
186185simpld 475 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( F `  (
z  +  1 ) )  e.  ( 0..^ N ) )
187 elfzoelz 12470 . . . . . . . . . . . . . . . . . 18  |-  ( ( F `  ( z  +  1 ) )  e.  ( 0..^ N )  ->  ( F `  ( z  +  1 ) )  e.  ZZ )
188186, 187syl 17 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( F `  (
z  +  1 ) )  e.  ZZ )
189121, 188zmulcld 11488 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( A  x.  ( F `  ( z  +  1 ) ) )  e.  ZZ )
19080adantr 481 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  ->  N  e.  RR+ )
191 modmul1 12723 . . . . . . . . . . . . . . . . 17  |-  ( ( ( ( ( A ^ z )  x.  (  seq 1 (  x.  ,  F ) `
 z ) )  e.  RR  /\  (  seq 1 (  x.  ,  G ) `  z
)  e.  RR )  /\  ( ( A  x.  ( F `  ( z  +  1 ) ) )  e.  ZZ  /\  N  e.  RR+ )  /\  (
( ( A ^
z )  x.  (  seq 1 (  x.  ,  F ) `  z
) )  mod  N
)  =  ( (  seq 1 (  x.  ,  G ) `  z )  mod  N
) )  ->  (
( ( ( A ^ z )  x.  (  seq 1 (  x.  ,  F ) `
 z ) )  x.  ( A  x.  ( F `  ( z  +  1 ) ) ) )  mod  N
)  =  ( ( (  seq 1 (  x.  ,  G ) `
 z )  x.  ( A  x.  ( F `  ( z  +  1 ) ) ) )  mod  N
) )
1921913expia 1267 . . . . . . . . . . . . . . . 16  |-  ( ( ( ( ( A ^ z )  x.  (  seq 1 (  x.  ,  F ) `
 z ) )  e.  RR  /\  (  seq 1 (  x.  ,  G ) `  z
)  e.  RR )  /\  ( ( A  x.  ( F `  ( z  +  1 ) ) )  e.  ZZ  /\  N  e.  RR+ ) )  ->  (
( ( ( A ^ z )  x.  (  seq 1 (  x.  ,  F ) `
 z ) )  mod  N )  =  ( (  seq 1
(  x.  ,  G
) `  z )  mod  N )  ->  (
( ( ( A ^ z )  x.  (  seq 1 (  x.  ,  F ) `
 z ) )  x.  ( A  x.  ( F `  ( z  +  1 ) ) ) )  mod  N
)  =  ( ( (  seq 1 (  x.  ,  G ) `
 z )  x.  ( A  x.  ( F `  ( z  +  1 ) ) ) )  mod  N
) ) )
193159, 170, 189, 190, 192syl22anc 1327 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( ( ( ( A ^ z )  x.  (  seq 1
(  x.  ,  F
) `  z )
)  mod  N )  =  ( (  seq 1 (  x.  ,  G ) `  z
)  mod  N )  ->  ( ( ( ( A ^ z )  x.  (  seq 1
(  x.  ,  F
) `  z )
)  x.  ( A  x.  ( F `  ( z  +  1 ) ) ) )  mod  N )  =  ( ( (  seq 1 (  x.  ,  G ) `  z
)  x.  ( A  x.  ( F `  ( z  +  1 ) ) ) )  mod  N ) ) )
194125zcnd 11483 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( A ^ z
)  e.  CC )
195157zcnd 11483 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
(  seq 1 (  x.  ,  F ) `  z )  e.  CC )
19693adantr 481 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  ->  A  e.  CC )
197188zcnd 11483 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( F `  (
z  +  1 ) )  e.  CC )
198194, 195, 196, 197mul4d 10248 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( ( ( A ^ z )  x.  (  seq 1 (  x.  ,  F ) `
 z ) )  x.  ( A  x.  ( F `  ( z  +  1 ) ) ) )  =  ( ( ( A ^
z )  x.  A
)  x.  ( (  seq 1 (  x.  ,  F ) `  z )  x.  ( F `  ( z  +  1 ) ) ) ) )
199196, 123expp1d 13009 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( A ^ (
z  +  1 ) )  =  ( ( A ^ z )  x.  A ) )
200 seqp1 12816 . . . . . . . . . . . . . . . . . . . 20  |-  ( z  e.  ( ZZ>= `  1
)  ->  (  seq 1 (  x.  ,  F ) `  (
z  +  1 ) )  =  ( (  seq 1 (  x.  ,  F ) `  z )  x.  ( F `  ( z  +  1 ) ) ) )
201127, 200syl 17 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
(  seq 1 (  x.  ,  F ) `  ( z  +  1 ) )  =  ( (  seq 1 (  x.  ,  F ) `
 z )  x.  ( F `  (
z  +  1 ) ) ) )
202199, 201oveq12d 6668 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( ( A ^
( z  +  1 ) )  x.  (  seq 1 (  x.  ,  F ) `  (
z  +  1 ) ) )  =  ( ( ( A ^
z )  x.  A
)  x.  ( (  seq 1 (  x.  ,  F ) `  z )  x.  ( F `  ( z  +  1 ) ) ) ) )
203198, 202eqtr4d 2659 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( ( ( A ^ z )  x.  (  seq 1 (  x.  ,  F ) `
 z ) )  x.  ( A  x.  ( F `  ( z  +  1 ) ) ) )  =  ( ( A ^ (
z  +  1 ) )  x.  (  seq 1 (  x.  ,  F ) `  (
z  +  1 ) ) ) )
204203oveq1d 6665 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( ( ( ( A ^ z )  x.  (  seq 1
(  x.  ,  F
) `  z )
)  x.  ( A  x.  ( F `  ( z  +  1 ) ) ) )  mod  N )  =  ( ( ( A ^ ( z  +  1 ) )  x.  (  seq 1 (  x.  ,  F ) `
 ( z  +  1 ) ) )  mod  N ) )
205189zred 11482 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( A  x.  ( F `  ( z  +  1 ) ) )  e.  RR )
206205, 190modcld 12674 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( ( A  x.  ( F `  ( z  +  1 ) ) )  mod  N )  e.  RR )
207 modabs2 12704 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( A  x.  ( F `  ( z  +  1 ) ) )  e.  RR  /\  N  e.  RR+ )  -> 
( ( ( A  x.  ( F `  ( z  +  1 ) ) )  mod 
N )  mod  N
)  =  ( ( A  x.  ( F `
 ( z  +  1 ) ) )  mod  N ) )
208205, 190, 207syl2anc 693 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( ( ( A  x.  ( F `  ( z  +  1 ) ) )  mod 
N )  mod  N
)  =  ( ( A  x.  ( F `
 ( z  +  1 ) ) )  mod  N ) )
209 modmul1 12723 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( ( ( A  x.  ( F `  ( z  +  1 ) ) )  mod 
N )  e.  RR  /\  ( A  x.  ( F `  ( z  +  1 ) ) )  e.  RR )  /\  ( (  seq 1 (  x.  ,  G ) `  z
)  e.  ZZ  /\  N  e.  RR+ )  /\  ( ( ( A  x.  ( F `  ( z  +  1 ) ) )  mod 
N )  mod  N
)  =  ( ( A  x.  ( F `
 ( z  +  1 ) ) )  mod  N ) )  ->  ( ( ( ( A  x.  ( F `  ( z  +  1 ) ) )  mod  N )  x.  (  seq 1
(  x.  ,  G
) `  z )
)  mod  N )  =  ( ( ( A  x.  ( F `
 ( z  +  1 ) ) )  x.  (  seq 1
(  x.  ,  G
) `  z )
)  mod  N )
)
210206, 205, 169, 190, 208, 209syl221anc 1337 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( ( ( ( A  x.  ( F `
 ( z  +  1 ) ) )  mod  N )  x.  (  seq 1 (  x.  ,  G ) `
 z ) )  mod  N )  =  ( ( ( A  x.  ( F `  ( z  +  1 ) ) )  x.  (  seq 1 (  x.  ,  G ) `
 z ) )  mod  N ) )
211 fveq2 6191 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( x  =  ( z  +  1 )  ->  ( F `  x )  =  ( F `  ( z  +  1 ) ) )
212211oveq2d 6666 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( x  =  ( z  +  1 )  ->  ( A  x.  ( F `  x ) )  =  ( A  x.  ( F `  ( z  +  1 ) ) ) )
213212oveq1d 6665 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( x  =  ( z  +  1 )  ->  (
( A  x.  ( F `  x )
)  mod  N )  =  ( ( A  x.  ( F `  ( z  +  1 ) ) )  mod 
N ) )
214 ovex 6678 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( ( A  x.  ( F `
 ( z  +  1 ) ) )  mod  N )  e. 
_V
215213, 87, 214fvmpt 6282 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( z  +  1 )  e.  T  ->  ( G `  ( z  +  1 ) )  =  ( ( A  x.  ( F `  ( z  +  1 ) ) )  mod 
N ) )
216180, 215syl 17 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( G `  (
z  +  1 ) )  =  ( ( A  x.  ( F `
 ( z  +  1 ) ) )  mod  N ) )
217216oveq2d 6666 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( (  seq 1
(  x.  ,  G
) `  z )  x.  ( G `  (
z  +  1 ) ) )  =  ( (  seq 1 (  x.  ,  G ) `
 z )  x.  ( ( A  x.  ( F `  ( z  +  1 ) ) )  mod  N ) ) )
218 seqp1 12816 . . . . . . . . . . . . . . . . . . . 20  |-  ( z  e.  ( ZZ>= `  1
)  ->  (  seq 1 (  x.  ,  G ) `  (
z  +  1 ) )  =  ( (  seq 1 (  x.  ,  G ) `  z )  x.  ( G `  ( z  +  1 ) ) ) )
219127, 218syl 17 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
(  seq 1 (  x.  ,  G ) `  ( z  +  1 ) )  =  ( (  seq 1 (  x.  ,  G ) `
 z )  x.  ( G `  (
z  +  1 ) ) ) )
220206recnd 10068 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( ( A  x.  ( F `  ( z  +  1 ) ) )  mod  N )  e.  CC )
221169zcnd 11483 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
(  seq 1 (  x.  ,  G ) `  z )  e.  CC )
222220, 221mulcomd 10061 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( ( ( A  x.  ( F `  ( z  +  1 ) ) )  mod 
N )  x.  (  seq 1 (  x.  ,  G ) `  z
) )  =  ( (  seq 1 (  x.  ,  G ) `
 z )  x.  ( ( A  x.  ( F `  ( z  +  1 ) ) )  mod  N ) ) )
223217, 219, 2223eqtr4d 2666 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
(  seq 1 (  x.  ,  G ) `  ( z  +  1 ) )  =  ( ( ( A  x.  ( F `  ( z  +  1 ) ) )  mod  N )  x.  (  seq 1
(  x.  ,  G
) `  z )
) )
224223oveq1d 6665 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( (  seq 1
(  x.  ,  G
) `  ( z  +  1 ) )  mod  N )  =  ( ( ( ( A  x.  ( F `
 ( z  +  1 ) ) )  mod  N )  x.  (  seq 1 (  x.  ,  G ) `
 z ) )  mod  N ) )
225189zcnd 11483 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( A  x.  ( F `  ( z  +  1 ) ) )  e.  CC )
226221, 225mulcomd 10061 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( (  seq 1
(  x.  ,  G
) `  z )  x.  ( A  x.  ( F `  ( z  +  1 ) ) ) )  =  ( ( A  x.  ( F `  ( z  +  1 ) ) )  x.  (  seq 1 (  x.  ,  G ) `  z
) ) )
227226oveq1d 6665 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( ( (  seq 1 (  x.  ,  G ) `  z
)  x.  ( A  x.  ( F `  ( z  +  1 ) ) ) )  mod  N )  =  ( ( ( A  x.  ( F `  ( z  +  1 ) ) )  x.  (  seq 1 (  x.  ,  G ) `
 z ) )  mod  N ) )
228210, 224, 2273eqtr4rd 2667 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( ( (  seq 1 (  x.  ,  G ) `  z
)  x.  ( A  x.  ( F `  ( z  +  1 ) ) ) )  mod  N )  =  ( (  seq 1
(  x.  ,  G
) `  ( z  +  1 ) )  mod  N ) )
229204, 228eqeq12d 2637 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( ( ( ( ( A ^ z
)  x.  (  seq 1 (  x.  ,  F ) `  z
) )  x.  ( A  x.  ( F `  ( z  +  1 ) ) ) )  mod  N )  =  ( ( (  seq 1 (  x.  ,  G ) `  z
)  x.  ( A  x.  ( F `  ( z  +  1 ) ) ) )  mod  N )  <->  ( (
( A ^ (
z  +  1 ) )  x.  (  seq 1 (  x.  ,  F ) `  (
z  +  1 ) ) )  mod  N
)  =  ( (  seq 1 (  x.  ,  G ) `  ( z  +  1 ) )  mod  N
) ) )
230193, 229sylibd 229 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( ( ( ( A ^ z )  x.  (  seq 1
(  x.  ,  F
) `  z )
)  mod  N )  =  ( (  seq 1 (  x.  ,  G ) `  z
)  mod  N )  ->  ( ( ( A ^ ( z  +  1 ) )  x.  (  seq 1 (  x.  ,  F ) `
 ( z  +  1 ) ) )  mod  N )  =  ( (  seq 1
(  x.  ,  G
) `  ( z  +  1 ) )  mod  N ) ) )
231102adantr 481 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  ->  N  e.  ZZ )
232 gcdcom 15235 . . . . . . . . . . . . . . . . . 18  |-  ( ( N  e.  ZZ  /\  ( F `  ( z  +  1 ) )  e.  ZZ )  -> 
( N  gcd  ( F `  ( z  +  1 ) ) )  =  ( ( F `  ( z  +  1 ) )  gcd  N ) )
233231, 188, 232syl2anc 693 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( N  gcd  ( F `  ( z  +  1 ) ) )  =  ( ( F `  ( z  +  1 ) )  gcd  N ) )
234185simprd 479 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( ( F `  ( z  +  1 ) )  gcd  N
)  =  1 )
235233, 234eqtrd 2656 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( N  gcd  ( F `  ( z  +  1 ) ) )  =  1 )
236 rpmul 15373 . . . . . . . . . . . . . . . . 17  |-  ( ( N  e.  ZZ  /\  (  seq 1 (  x.  ,  F ) `  z )  e.  ZZ  /\  ( F `  (
z  +  1 ) )  e.  ZZ )  ->  ( ( ( N  gcd  (  seq 1 (  x.  ,  F ) `  z
) )  =  1  /\  ( N  gcd  ( F `  ( z  +  1 ) ) )  =  1 )  ->  ( N  gcd  ( (  seq 1
(  x.  ,  F
) `  z )  x.  ( F `  (
z  +  1 ) ) ) )  =  1 ) )
237231, 157, 188, 236syl3anc 1326 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( ( ( N  gcd  (  seq 1
(  x.  ,  F
) `  z )
)  =  1  /\  ( N  gcd  ( F `  ( z  +  1 ) ) )  =  1 )  ->  ( N  gcd  ( (  seq 1
(  x.  ,  F
) `  z )  x.  ( F `  (
z  +  1 ) ) ) )  =  1 ) )
238235, 237mpan2d 710 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( ( N  gcd  (  seq 1 (  x.  ,  F ) `  z ) )  =  1  ->  ( N  gcd  ( (  seq 1
(  x.  ,  F
) `  z )  x.  ( F `  (
z  +  1 ) ) ) )  =  1 ) )
239201oveq2d 6666 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( N  gcd  (  seq 1 (  x.  ,  F ) `  (
z  +  1 ) ) )  =  ( N  gcd  ( (  seq 1 (  x.  ,  F ) `  z )  x.  ( F `  ( z  +  1 ) ) ) ) )
240239eqeq1d 2624 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( ( N  gcd  (  seq 1 (  x.  ,  F ) `  ( z  +  1 ) ) )  =  1  <->  ( N  gcd  ( (  seq 1
(  x.  ,  F
) `  z )  x.  ( F `  (
z  +  1 ) ) ) )  =  1 ) )
241238, 240sylibrd 249 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( ( N  gcd  (  seq 1 (  x.  ,  F ) `  z ) )  =  1  ->  ( N  gcd  (  seq 1
(  x.  ,  F
) `  ( z  +  1 ) ) )  =  1 ) )
242230, 241anim12d 586 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( z  e.  NN  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( ( ( ( ( A ^ z
)  x.  (  seq 1 (  x.  ,  F ) `  z
) )  mod  N
)  =  ( (  seq 1 (  x.  ,  G ) `  z )  mod  N
)  /\  ( N  gcd  (  seq 1
(  x.  ,  F
) `  z )
)  =  1 )  ->  ( ( ( ( A ^ (
z  +  1 ) )  x.  (  seq 1 (  x.  ,  F ) `  (
z  +  1 ) ) )  mod  N
)  =  ( (  seq 1 (  x.  ,  G ) `  ( z  +  1 ) )  mod  N
)  /\  ( N  gcd  (  seq 1
(  x.  ,  F
) `  ( z  +  1 ) ) )  =  1 ) ) )
243242an12s 843 . . . . . . . . . . . 12  |-  ( ( z  e.  NN  /\  ( ph  /\  ( z  +  1 )  <_ 
( phi `  N
) ) )  -> 
( ( ( ( ( A ^ z
)  x.  (  seq 1 (  x.  ,  F ) `  z
) )  mod  N
)  =  ( (  seq 1 (  x.  ,  G ) `  z )  mod  N
)  /\  ( N  gcd  (  seq 1
(  x.  ,  F
) `  z )
)  =  1 )  ->  ( ( ( ( A ^ (
z  +  1 ) )  x.  (  seq 1 (  x.  ,  F ) `  (
z  +  1 ) ) )  mod  N
)  =  ( (  seq 1 (  x.  ,  G ) `  ( z  +  1 ) )  mod  N
)  /\  ( N  gcd  (  seq 1
(  x.  ,  F
) `  ( z  +  1 ) ) )  =  1 ) ) )
244243ex 450 . . . . . . . . . . 11  |-  ( z  e.  NN  ->  (
( ph  /\  (
z  +  1 )  <_  ( phi `  N ) )  -> 
( ( ( ( ( A ^ z
)  x.  (  seq 1 (  x.  ,  F ) `  z
) )  mod  N
)  =  ( (  seq 1 (  x.  ,  G ) `  z )  mod  N
)  /\  ( N  gcd  (  seq 1
(  x.  ,  F
) `  z )
)  =  1 )  ->  ( ( ( ( A ^ (
z  +  1 ) )  x.  (  seq 1 (  x.  ,  F ) `  (
z  +  1 ) ) )  mod  N
)  =  ( (  seq 1 (  x.  ,  G ) `  ( z  +  1 ) )  mod  N
)  /\  ( N  gcd  (  seq 1
(  x.  ,  F
) `  ( z  +  1 ) ) )  =  1 ) ) ) )
245244a2d 29 . . . . . . . . . 10  |-  ( z  e.  NN  ->  (
( ( ph  /\  ( z  +  1 )  <_  ( phi `  N ) )  -> 
( ( ( ( A ^ z )  x.  (  seq 1
(  x.  ,  F
) `  z )
)  mod  N )  =  ( (  seq 1 (  x.  ,  G ) `  z
)  mod  N )  /\  ( N  gcd  (  seq 1 (  x.  ,  F ) `  z
) )  =  1 ) )  ->  (
( ph  /\  (
z  +  1 )  <_  ( phi `  N ) )  -> 
( ( ( ( A ^ ( z  +  1 ) )  x.  (  seq 1
(  x.  ,  F
) `  ( z  +  1 ) ) )  mod  N )  =  ( (  seq 1 (  x.  ,  G ) `  (
z  +  1 ) )  mod  N )  /\  ( N  gcd  (  seq 1 (  x.  ,  F ) `  ( z  +  1 ) ) )  =  1 ) ) ) )
246120, 245syld 47 . . . . . . . . 9  |-  ( z  e.  NN  ->  (
( ( ph  /\  z  <_  ( phi `  N ) )  -> 
( ( ( ( A ^ z )  x.  (  seq 1
(  x.  ,  F
) `  z )
)  mod  N )  =  ( (  seq 1 (  x.  ,  G ) `  z
)  mod  N )  /\  ( N  gcd  (  seq 1 (  x.  ,  F ) `  z
) )  =  1 ) )  ->  (
( ph  /\  (
z  +  1 )  <_  ( phi `  N ) )  -> 
( ( ( ( A ^ ( z  +  1 ) )  x.  (  seq 1
(  x.  ,  F
) `  ( z  +  1 ) ) )  mod  N )  =  ( (  seq 1 (  x.  ,  G ) `  (
z  +  1 ) )  mod  N )  /\  ( N  gcd  (  seq 1 (  x.  ,  F ) `  ( z  +  1 ) ) )  =  1 ) ) ) )
24719, 32, 45, 58, 109, 246nnind 11038 . . . . . . . 8  |-  ( ( phi `  N )  e.  NN  ->  (
( ph  /\  ( phi `  N )  <_ 
( phi `  N
) )  ->  (
( ( ( A ^ ( phi `  N ) )  x.  (  seq 1 (  x.  ,  F ) `
 ( phi `  N ) ) )  mod  N )  =  ( (  seq 1
(  x.  ,  G
) `  ( phi `  N ) )  mod 
N )  /\  ( N  gcd  (  seq 1
(  x.  ,  F
) `  ( phi `  N ) ) )  =  1 ) ) )
2486, 247mpcom 38 . . . . . . 7  |-  ( (
ph  /\  ( phi `  N )  <_  ( phi `  N ) )  ->  ( ( ( ( A ^ ( phi `  N ) )  x.  (  seq 1
(  x.  ,  F
) `  ( phi `  N ) ) )  mod  N )  =  ( (  seq 1
(  x.  ,  G
) `  ( phi `  N ) )  mod 
N )  /\  ( N  gcd  (  seq 1
(  x.  ,  F
) `  ( phi `  N ) ) )  =  1 ) )
2495, 248mpdan 702 . . . . . 6  |-  ( ph  ->  ( ( ( ( A ^ ( phi `  N ) )  x.  (  seq 1 (  x.  ,  F ) `
 ( phi `  N ) ) )  mod  N )  =  ( (  seq 1
(  x.  ,  G
) `  ( phi `  N ) )  mod 
N )  /\  ( N  gcd  (  seq 1
(  x.  ,  F
) `  ( phi `  N ) ) )  =  1 ) )
250249simpld 475 . . . . 5  |-  ( ph  ->  ( ( ( A ^ ( phi `  N ) )  x.  (  seq 1 (  x.  ,  F ) `
 ( phi `  N ) ) )  mod  N )  =  ( (  seq 1
(  x.  ,  G
) `  ( phi `  N ) )  mod 
N ) )
2513nnnn0d 11351 . . . . . . . 8  |-  ( ph  ->  ( phi `  N
)  e.  NN0 )
252 zexpcl 12875 . . . . . . . 8  |-  ( ( A  e.  ZZ  /\  ( phi `  N )  e.  NN0 )  -> 
( A ^ ( phi `  N ) )  e.  ZZ )
25359, 251, 252syl2anc 693 . . . . . . 7  |-  ( ph  ->  ( A ^ ( phi `  N ) )  e.  ZZ )
25467eleq2i 2693 . . . . . . . . 9  |-  ( x  e.  T  <->  x  e.  ( 1 ... ( phi `  N ) ) )
255254, 152sylan2br 493 . . . . . . . 8  |-  ( (
ph  /\  x  e.  ( 1 ... ( phi `  N ) ) )  ->  ( F `  x )  e.  ZZ )
256155adantl 482 . . . . . . . 8  |-  ( (
ph  /\  ( x  e.  ZZ  /\  y  e.  ZZ ) )  -> 
( x  x.  y
)  e.  ZZ )
25764, 255, 256seqcl 12821 . . . . . . 7  |-  ( ph  ->  (  seq 1 (  x.  ,  F ) `
 ( phi `  N ) )  e.  ZZ )
258253, 257zmulcld 11488 . . . . . 6  |-  ( ph  ->  ( ( A ^
( phi `  N
) )  x.  (  seq 1 (  x.  ,  F ) `  ( phi `  N ) ) )  e.  ZZ )
259 mulcl 10020 . . . . . . . . 9  |-  ( ( x  e.  CC  /\  y  e.  CC )  ->  ( x  x.  y
)  e.  CC )
260259adantl 482 . . . . . . . 8  |-  ( (
ph  /\  ( x  e.  CC  /\  y  e.  CC ) )  -> 
( x  x.  y
)  e.  CC )
261 mulcom 10022 . . . . . . . . 9  |-  ( ( x  e.  CC  /\  y  e.  CC )  ->  ( x  x.  y
)  =  ( y  x.  x ) )
262261adantl 482 . . . . . . . 8  |-  ( (
ph  /\  ( x  e.  CC  /\  y  e.  CC ) )  -> 
( x  x.  y
)  =  ( y  x.  x ) )
263 mulass 10024 . . . . . . . . 9  |-  ( ( x  e.  CC  /\  y  e.  CC  /\  z  e.  CC )  ->  (
( x  x.  y
)  x.  z )  =  ( x  x.  ( y  x.  z
) ) )
264263adantl 482 . . . . . . . 8  |-  ( (
ph  /\  ( x  e.  CC  /\  y  e.  CC  /\  z  e.  CC ) )  -> 
( ( x  x.  y )  x.  z
)  =  ( x  x.  ( y  x.  z ) ) )
265 ssid 3624 . . . . . . . . 9  |-  CC  C_  CC
266265a1i 11 . . . . . . . 8  |-  ( ph  ->  CC  C_  CC )
267 f1ocnv 6149 . . . . . . . . . . 11  |-  ( F : T -1-1-onto-> S  ->  `' F : S -1-1-onto-> T )
26860, 267syl 17 . . . . . . . . . 10  |-  ( ph  ->  `' F : S -1-1-onto-> T )
2692adantr 481 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  ->  N  e.  NN )
27059adantr 481 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  ->  A  e.  ZZ )
27162ffvelrnda 6359 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
ph  /\  y  e.  T )  ->  ( F `  y )  e.  S )
272271adantrr 753 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( F `  y
)  e.  S )
273161, 272sseldi 3601 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( F `  y
)  e.  ( 0..^ N ) )
274 elfzoelz 12470 . . . . . . . . . . . . . . . . . 18  |-  ( ( F `  y )  e.  ( 0..^ N )  ->  ( F `  y )  e.  ZZ )
275273, 274syl 17 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( F `  y
)  e.  ZZ )
276270, 275zmulcld 11488 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( A  x.  ( F `  y )
)  e.  ZZ )
27762ffvelrnda 6359 . . . . . . . . . . . . . . . . . . . 20  |-  ( (
ph  /\  z  e.  T )  ->  ( F `  z )  e.  S )
278277adantrl 752 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( F `  z
)  e.  S )
279161, 278sseldi 3601 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( F `  z
)  e.  ( 0..^ N ) )
280 elfzoelz 12470 . . . . . . . . . . . . . . . . . 18  |-  ( ( F `  z )  e.  ( 0..^ N )  ->  ( F `  z )  e.  ZZ )
281279, 280syl 17 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( F `  z
)  e.  ZZ )
282270, 281zmulcld 11488 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( A  x.  ( F `  z )
)  e.  ZZ )
283 moddvds 14991 . . . . . . . . . . . . . . . 16  |-  ( ( N  e.  NN  /\  ( A  x.  ( F `  y )
)  e.  ZZ  /\  ( A  x.  ( F `  z )
)  e.  ZZ )  ->  ( ( ( A  x.  ( F `
 y ) )  mod  N )  =  ( ( A  x.  ( F `  z ) )  mod  N )  <-> 
N  ||  ( ( A  x.  ( F `  y ) )  -  ( A  x.  ( F `  z )
) ) ) )
284269, 276, 282, 283syl3anc 1326 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( ( ( A  x.  ( F `  y ) )  mod 
N )  =  ( ( A  x.  ( F `  z )
)  mod  N )  <->  N 
||  ( ( A  x.  ( F `  y ) )  -  ( A  x.  ( F `  z )
) ) ) )
285 fveq2 6191 . . . . . . . . . . . . . . . . . . . 20  |-  ( x  =  y  ->  ( F `  x )  =  ( F `  y ) )
286285oveq2d 6666 . . . . . . . . . . . . . . . . . . 19  |-  ( x  =  y  ->  ( A  x.  ( F `  x ) )  =  ( A  x.  ( F `  y )
) )
287286oveq1d 6665 . . . . . . . . . . . . . . . . . 18  |-  ( x  =  y  ->  (
( A  x.  ( F `  x )
)  mod  N )  =  ( ( A  x.  ( F `  y ) )  mod 
N ) )
288 ovex 6678 . . . . . . . . . . . . . . . . . 18  |-  ( ( A  x.  ( F `
 y ) )  mod  N )  e. 
_V
289287, 87, 288fvmpt 6282 . . . . . . . . . . . . . . . . 17  |-  ( y  e.  T  ->  ( G `  y )  =  ( ( A  x.  ( F `  y ) )  mod 
N ) )
290 fveq2 6191 . . . . . . . . . . . . . . . . . . . 20  |-  ( x  =  z  ->  ( F `  x )  =  ( F `  z ) )
291290oveq2d 6666 . . . . . . . . . . . . . . . . . . 19  |-  ( x  =  z  ->  ( A  x.  ( F `  x ) )  =  ( A  x.  ( F `  z )
) )
292291oveq1d 6665 . . . . . . . . . . . . . . . . . 18  |-  ( x  =  z  ->  (
( A  x.  ( F `  x )
)  mod  N )  =  ( ( A  x.  ( F `  z ) )  mod 
N ) )
293 ovex 6678 . . . . . . . . . . . . . . . . . 18  |-  ( ( A  x.  ( F `
 z ) )  mod  N )  e. 
_V
294292, 87, 293fvmpt 6282 . . . . . . . . . . . . . . . . 17  |-  ( z  e.  T  ->  ( G `  z )  =  ( ( A  x.  ( F `  z ) )  mod 
N ) )
295289, 294eqeqan12d 2638 . . . . . . . . . . . . . . . 16  |-  ( ( y  e.  T  /\  z  e.  T )  ->  ( ( G `  y )  =  ( G `  z )  <-> 
( ( A  x.  ( F `  y ) )  mod  N )  =  ( ( A  x.  ( F `  z ) )  mod 
N ) ) )
296295adantl 482 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( ( G `  y )  =  ( G `  z )  <-> 
( ( A  x.  ( F `  y ) )  mod  N )  =  ( ( A  x.  ( F `  z ) )  mod 
N ) ) )
29793adantr 481 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  ->  A  e.  CC )
298275zcnd 11483 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( F `  y
)  e.  CC )
299281zcnd 11483 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( F `  z
)  e.  CC )
300297, 298, 299subdid 10486 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( A  x.  (
( F `  y
)  -  ( F `
 z ) ) )  =  ( ( A  x.  ( F `
 y ) )  -  ( A  x.  ( F `  z ) ) ) )
301300breq2d 4665 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( N  ||  ( A  x.  ( ( F `  y )  -  ( F `  z ) ) )  <-> 
N  ||  ( ( A  x.  ( F `  y ) )  -  ( A  x.  ( F `  z )
) ) ) )
302284, 296, 3013bitr4d 300 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( ( G `  y )  =  ( G `  z )  <-> 
N  ||  ( A  x.  ( ( F `  y )  -  ( F `  z )
) ) ) )
303 gcdcom 15235 . . . . . . . . . . . . . . . . . 18  |-  ( ( N  e.  ZZ  /\  A  e.  ZZ )  ->  ( N  gcd  A
)  =  ( A  gcd  N ) )
304102, 59, 303syl2anc 693 . . . . . . . . . . . . . . . . 17  |-  ( ph  ->  ( N  gcd  A
)  =  ( A  gcd  N ) )
3051simp3d 1075 . . . . . . . . . . . . . . . . 17  |-  ( ph  ->  ( A  gcd  N
)  =  1 )
306304, 305eqtrd 2656 . . . . . . . . . . . . . . . 16  |-  ( ph  ->  ( N  gcd  A
)  =  1 )
307306adantr 481 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( N  gcd  A
)  =  1 )
308102adantr 481 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  ->  N  e.  ZZ )
309275, 281zsubcld 11487 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( ( F `  y )  -  ( F `  z )
)  e.  ZZ )
310 coprmdvds 15366 . . . . . . . . . . . . . . . . 17  |-  ( ( N  e.  ZZ  /\  A  e.  ZZ  /\  (
( F `  y
)  -  ( F `
 z ) )  e.  ZZ )  -> 
( ( N  ||  ( A  x.  (
( F `  y
)  -  ( F `
 z ) ) )  /\  ( N  gcd  A )  =  1 )  ->  N  ||  ( ( F `  y )  -  ( F `  z )
) ) )
311308, 270, 309, 310syl3anc 1326 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( ( N  ||  ( A  x.  (
( F `  y
)  -  ( F `
 z ) ) )  /\  ( N  gcd  A )  =  1 )  ->  N  ||  ( ( F `  y )  -  ( F `  z )
) ) )
312275zred 11482 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( F `  y
)  e.  RR )
31380adantr 481 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  ->  N  e.  RR+ )
314 elfzole1 12478 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( F `  y )  e.  ( 0..^ N )  ->  0  <_  ( F `  y ) )
315273, 314syl 17 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
0  <_  ( F `  y ) )
316 elfzolt2 12479 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( F `  y )  e.  ( 0..^ N )  ->  ( F `  y )  <  N
)
317273, 316syl 17 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( F `  y
)  <  N )
318 modid 12695 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( ( F `  y )  e.  RR  /\  N  e.  RR+ )  /\  ( 0  <_  ( F `  y )  /\  ( F `  y
)  <  N )
)  ->  ( ( F `  y )  mod  N )  =  ( F `  y ) )
319312, 313, 315, 317, 318syl22anc 1327 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( ( F `  y )  mod  N
)  =  ( F `
 y ) )
320281zred 11482 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( F `  z
)  e.  RR )
321 elfzole1 12478 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( F `  z )  e.  ( 0..^ N )  ->  0  <_  ( F `  z ) )
322279, 321syl 17 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
0  <_  ( F `  z ) )
323 elfzolt2 12479 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( F `  z )  e.  ( 0..^ N )  ->  ( F `  z )  <  N
)
324279, 323syl 17 . . . . . . . . . . . . . . . . . . 19  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( F `  z
)  <  N )
325 modid 12695 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( ( F `  z )  e.  RR  /\  N  e.  RR+ )  /\  ( 0  <_  ( F `  z )  /\  ( F `  z
)  <  N )
)  ->  ( ( F `  z )  mod  N )  =  ( F `  z ) )
326320, 313, 322, 324, 325syl22anc 1327 . . . . . . . . . . . . . . . . . 18  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( ( F `  z )  mod  N
)  =  ( F `
 z ) )
327319, 326eqeq12d 2637 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( ( ( F `
 y )  mod 
N )  =  ( ( F `  z
)  mod  N )  <->  ( F `  y )  =  ( F `  z ) ) )
328 moddvds 14991 . . . . . . . . . . . . . . . . . 18  |-  ( ( N  e.  NN  /\  ( F `  y )  e.  ZZ  /\  ( F `  z )  e.  ZZ )  ->  (
( ( F `  y )  mod  N
)  =  ( ( F `  z )  mod  N )  <->  N  ||  (
( F `  y
)  -  ( F `
 z ) ) ) )
329269, 275, 281, 328syl3anc 1326 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( ( ( F `
 y )  mod 
N )  =  ( ( F `  z
)  mod  N )  <->  N 
||  ( ( F `
 y )  -  ( F `  z ) ) ) )
330 f1of1 6136 . . . . . . . . . . . . . . . . . . 19  |-  ( F : T -1-1-onto-> S  ->  F : T -1-1-> S )
33160, 330syl 17 . . . . . . . . . . . . . . . . . 18  |-  ( ph  ->  F : T -1-1-> S
)
332 f1fveq 6519 . . . . . . . . . . . . . . . . . 18  |-  ( ( F : T -1-1-> S  /\  ( y  e.  T  /\  z  e.  T
) )  ->  (
( F `  y
)  =  ( F `
 z )  <->  y  =  z ) )
333331, 332sylan 488 . . . . . . . . . . . . . . . . 17  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( ( F `  y )  =  ( F `  z )  <-> 
y  =  z ) )
334327, 329, 3333bitr3d 298 . . . . . . . . . . . . . . . 16  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( N  ||  (
( F `  y
)  -  ( F `
 z ) )  <-> 
y  =  z ) )
335311, 334sylibd 229 . . . . . . . . . . . . . . 15  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( ( N  ||  ( A  x.  (
( F `  y
)  -  ( F `
 z ) ) )  /\  ( N  gcd  A )  =  1 )  ->  y  =  z ) )
336307, 335mpan2d 710 . . . . . . . . . . . . . 14  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( N  ||  ( A  x.  ( ( F `  y )  -  ( F `  z ) ) )  ->  y  =  z ) )
337302, 336sylbid 230 . . . . . . . . . . . . 13  |-  ( (
ph  /\  ( y  e.  T  /\  z  e.  T ) )  -> 
( ( G `  y )  =  ( G `  z )  ->  y  =  z ) )
338337ralrimivva 2971 . . . . . . . . . . . 12  |-  ( ph  ->  A. y  e.  T  A. z  e.  T  ( ( G `  y )  =  ( G `  z )  ->  y  =  z ) )
339 dff13 6512 . . . . . . . . . . . 12  |-  ( G : T -1-1-> S  <->  ( G : T --> S  /\  A. y  e.  T  A. z  e.  T  (
( G `  y
)  =  ( G `
 z )  -> 
y  =  z ) ) )
340162, 338, 339sylanbrc 698 . . . . . . . . . . 11  |-  ( ph  ->  G : T -1-1-> S
)
341 ovex 6678 . . . . . . . . . . . . . . 15  |-  ( 1 ... ( phi `  N ) )  e. 
_V
34267, 341eqeltri 2697 . . . . . . . . . . . . . 14  |-  T  e. 
_V
343342f1oen 7976 . . . . . . . . . . . . 13  |-  ( F : T -1-1-onto-> S  ->  T  ~~  S )
34460, 343syl 17 . . . . . . . . . . . 12  |-  ( ph  ->  T  ~~  S )
345 fzofi 12773 . . . . . . . . . . . . 13  |-  ( 0..^ N )  e.  Fin
346 ssfi 8180 . . . . . . . . . . . . 13  |-  ( ( ( 0..^ N )  e.  Fin  /\  S  C_  ( 0..^ N ) )  ->  S  e.  Fin )
347345, 161, 346mp2an 708 . . . . . . . . . . . 12  |-  S  e. 
Fin
348 f1finf1o 8187 . . . . . . . . . . . 12  |-  ( ( T  ~~  S  /\  S  e.  Fin )  ->  ( G : T -1-1-> S  <-> 
G : T -1-1-onto-> S ) )
349344, 347, 348sylancl 694 . . . . . . . . . . 11  |-  ( ph  ->  ( G : T -1-1-> S  <-> 
G : T -1-1-onto-> S ) )
350340, 349mpbid 222 . . . . . . . . . 10  |-  ( ph  ->  G : T -1-1-onto-> S )
351 f1oco 6159 . . . . . . . . . 10  |-  ( ( `' F : S -1-1-onto-> T  /\  G : T -1-1-onto-> S )  ->  ( `' F  o.  G
) : T -1-1-onto-> T )
352268, 350, 351syl2anc 693 . . . . . . . . 9  |-  ( ph  ->  ( `' F  o.  G ) : T -1-1-onto-> T
)
353 f1oeq23 6130 . . . . . . . . . 10  |-  ( ( T  =  ( 1 ... ( phi `  N ) )  /\  T  =  ( 1 ... ( phi `  N ) ) )  ->  ( ( `' F  o.  G ) : T -1-1-onto-> T  <->  ( `' F  o.  G ) : ( 1 ... ( phi `  N ) ) -1-1-onto-> ( 1 ... ( phi `  N ) ) ) )
35467, 67, 353mp2an 708 . . . . . . . . 9  |-  ( ( `' F  o.  G
) : T -1-1-onto-> T  <->  ( `' F  o.  G ) : ( 1 ... ( phi `  N
) ) -1-1-onto-> ( 1 ... ( phi `  N ) ) )
355352, 354sylib 208 . . . . . . . 8  |-  ( ph  ->  ( `' F  o.  G ) : ( 1 ... ( phi `  N ) ) -1-1-onto-> ( 1 ... ( phi `  N ) ) )
356255zcnd 11483 . . . . . . . 8  |-  ( (
ph  /\  x  e.  ( 1 ... ( phi `  N ) ) )  ->  ( F `  x )  e.  CC )
35767eleq2i 2693 . . . . . . . . 9  |-  ( w  e.  T  <->  w  e.  ( 1 ... ( phi `  N ) ) )
358 fvco3 6275 . . . . . . . . . . . 12  |-  ( ( G : T --> S  /\  w  e.  T )  ->  ( ( `' F  o.  G ) `  w
)  =  ( `' F `  ( G `
 w ) ) )
359162, 358sylan 488 . . . . . . . . . . 11  |-  ( (
ph  /\  w  e.  T )  ->  (
( `' F  o.  G ) `  w
)  =  ( `' F `  ( G `
 w ) ) )
360359fveq2d 6195 . . . . . . . . . 10  |-  ( (
ph  /\  w  e.  T )  ->  ( F `  ( ( `' F  o.  G
) `  w )
)  =  ( F `
 ( `' F `  ( G `  w
) ) ) )
36160adantr 481 . . . . . . . . . . 11  |-  ( (
ph  /\  w  e.  T )  ->  F : T -1-1-onto-> S )
362162ffvelrnda 6359 . . . . . . . . . . 11  |-  ( (
ph  /\  w  e.  T )  ->  ( G `  w )  e.  S )
363 f1ocnvfv2 6533 . . . . . . . . . . 11  |-  ( ( F : T -1-1-onto-> S  /\  ( G `  w )  e.  S )  -> 
( F `  ( `' F `  ( G `
 w ) ) )  =  ( G `
 w ) )
364361, 362, 363syl2anc 693 . . . . . . . . . 10  |-  ( (
ph  /\  w  e.  T )  ->  ( F `  ( `' F `  ( G `  w ) ) )  =  ( G `  w ) )
365360, 364eqtr2d 2657 . . . . . . . . 9  |-  ( (
ph  /\  w  e.  T )  ->  ( G `  w )  =  ( F `  ( ( `' F  o.  G ) `  w
) ) )
366357, 365sylan2br 493 . . . . . . . 8  |-  ( (
ph  /\  w  e.  ( 1 ... ( phi `  N ) ) )  ->  ( G `  w )  =  ( F `  ( ( `' F  o.  G
) `  w )
) )
367260, 262, 264, 64, 266, 355, 356, 366seqf1o 12842 . . . . . . 7  |-  ( ph  ->  (  seq 1 (  x.  ,  G ) `
 ( phi `  N ) )  =  (  seq 1 (  x.  ,  F ) `
 ( phi `  N ) ) )
368367, 257eqeltrd 2701 . . . . . 6  |-  ( ph  ->  (  seq 1 (  x.  ,  G ) `
 ( phi `  N ) )  e.  ZZ )
369 moddvds 14991 . . . . . 6  |-  ( ( N  e.  NN  /\  ( ( A ^
( phi `  N
) )  x.  (  seq 1 (  x.  ,  F ) `  ( phi `  N ) ) )  e.  ZZ  /\  (  seq 1 (  x.  ,  G ) `  ( phi `  N ) )  e.  ZZ )  ->  ( ( ( ( A ^ ( phi `  N ) )  x.  (  seq 1
(  x.  ,  F
) `  ( phi `  N ) ) )  mod  N )  =  ( (  seq 1
(  x.  ,  G
) `  ( phi `  N ) )  mod 
N )  <->  N  ||  (
( ( A ^
( phi `  N
) )  x.  (  seq 1 (  x.  ,  F ) `  ( phi `  N ) ) )  -  (  seq 1 (  x.  ,  G ) `  ( phi `  N ) ) ) ) )
3702, 258, 368, 369syl3anc 1326 . . . . 5  |-  ( ph  ->  ( ( ( ( A ^ ( phi `  N ) )  x.  (  seq 1 (  x.  ,  F ) `
 ( phi `  N ) ) )  mod  N )  =  ( (  seq 1
(  x.  ,  G
) `  ( phi `  N ) )  mod 
N )  <->  N  ||  (
( ( A ^
( phi `  N
) )  x.  (  seq 1 (  x.  ,  F ) `  ( phi `  N ) ) )  -  (  seq 1 (  x.  ,  G ) `  ( phi `  N ) ) ) ) )
371250, 370mpbid 222 . . . 4  |-  ( ph  ->  N  ||  ( ( ( A ^ ( phi `  N ) )  x.  (  seq 1
(  x.  ,  F
) `  ( phi `  N ) ) )  -  (  seq 1
(  x.  ,  G
) `  ( phi `  N ) ) ) )
372257zcnd 11483 . . . . . . . 8  |-  ( ph  ->  (  seq 1 (  x.  ,  F ) `
 ( phi `  N ) )  e.  CC )
373372mulid2d 10058 . . . . . . 7  |-  ( ph  ->  ( 1  x.  (  seq 1 (  x.  ,  F ) `  ( phi `  N ) ) )  =  (  seq 1 (  x.  ,  F ) `  ( phi `  N ) ) )
374367, 373eqtr4d 2659 . . . . . 6  |-  ( ph  ->  (  seq 1 (  x.  ,  G ) `
 ( phi `  N ) )  =  ( 1  x.  (  seq 1 (  x.  ,  F ) `  ( phi `  N ) ) ) )
375374oveq2d 6666 . . . . 5  |-  ( ph  ->  ( ( ( A ^ ( phi `  N ) )  x.  (  seq 1 (  x.  ,  F ) `
 ( phi `  N ) ) )  -  (  seq 1
(  x.  ,  G
) `  ( phi `  N ) ) )  =  ( ( ( A ^ ( phi `  N ) )  x.  (  seq 1 (  x.  ,  F ) `
 ( phi `  N ) ) )  -  ( 1  x.  (  seq 1 (  x.  ,  F ) `
 ( phi `  N ) ) ) ) )
376253zcnd 11483 . . . . . 6  |-  ( ph  ->  ( A ^ ( phi `  N ) )  e.  CC )
377 ax-1cn 9994 . . . . . . 7  |-  1  e.  CC
378 subdir 10464 . . . . . . 7  |-  ( ( ( A ^ ( phi `  N ) )  e.  CC  /\  1  e.  CC  /\  (  seq 1 (  x.  ,  F ) `  ( phi `  N ) )  e.  CC )  -> 
( ( ( A ^ ( phi `  N ) )  - 
1 )  x.  (  seq 1 (  x.  ,  F ) `  ( phi `  N ) ) )  =  ( ( ( A ^ ( phi `  N ) )  x.  (  seq 1
(  x.  ,  F
) `  ( phi `  N ) ) )  -  ( 1  x.  (  seq 1 (  x.  ,  F ) `
 ( phi `  N ) ) ) ) )
379377, 378mp3an2 1412 . . . . . 6  |-  ( ( ( A ^ ( phi `  N ) )  e.  CC  /\  (  seq 1 (  x.  ,  F ) `  ( phi `  N ) )  e.  CC )  -> 
( ( ( A ^ ( phi `  N ) )  - 
1 )  x.  (  seq 1 (  x.  ,  F ) `  ( phi `  N ) ) )  =  ( ( ( A ^ ( phi `  N ) )  x.  (  seq 1
(  x.  ,  F
) `  ( phi `  N ) ) )  -  ( 1  x.  (  seq 1 (  x.  ,  F ) `
 ( phi `  N ) ) ) ) )
380376, 372, 379syl2anc 693 . . . . 5  |-  ( ph  ->  ( ( ( A ^ ( phi `  N ) )  - 
1 )  x.  (  seq 1 (  x.  ,  F ) `  ( phi `  N ) ) )  =  ( ( ( A ^ ( phi `  N ) )  x.  (  seq 1
(  x.  ,  F
) `  ( phi `  N ) ) )  -  ( 1  x.  (  seq 1 (  x.  ,  F ) `
 ( phi `  N ) ) ) ) )
381 zsubcl 11419 . . . . . . . 8  |-  ( ( ( A ^ ( phi `  N ) )  e.  ZZ  /\  1  e.  ZZ )  ->  (
( A ^ ( phi `  N ) )  -  1 )  e.  ZZ )
382253, 83, 381sylancl 694 . . . . . . 7  |-  ( ph  ->  ( ( A ^
( phi `  N
) )  -  1 )  e.  ZZ )
383382zcnd 11483 . . . . . 6  |-  ( ph  ->  ( ( A ^
( phi `  N
) )  -  1 )  e.  CC )
384383, 372mulcomd 10061 . . . . 5  |-  ( ph  ->  ( ( ( A ^ ( phi `  N ) )  - 
1 )  x.  (  seq 1 (  x.  ,  F ) `  ( phi `  N ) ) )  =  ( (  seq 1 (  x.  ,  F ) `  ( phi `  N ) )  x.  ( ( A ^ ( phi `  N ) )  - 
1 ) ) )
385375, 380, 3843eqtr2d 2662 . . . 4  |-  ( ph  ->  ( ( ( A ^ ( phi `  N ) )  x.  (  seq 1 (  x.  ,  F ) `
 ( phi `  N ) ) )  -  (  seq 1
(  x.  ,  G
) `  ( phi `  N ) ) )  =  ( (  seq 1 (  x.  ,  F ) `  ( phi `  N ) )  x.  ( ( A ^ ( phi `  N ) )  - 
1 ) ) )
386371, 385breqtrd 4679 . . 3  |-  ( ph  ->  N  ||  ( (  seq 1 (  x.  ,  F ) `  ( phi `  N ) )  x.  ( ( A ^ ( phi `  N ) )  - 
1 ) ) )
387249simprd 479 . . 3  |-  ( ph  ->  ( N  gcd  (  seq 1 (  x.  ,  F ) `  ( phi `  N ) ) )  =  1 )
388 coprmdvds 15366 . . . 4  |-  ( ( N  e.  ZZ  /\  (  seq 1 (  x.  ,  F ) `  ( phi `  N ) )  e.  ZZ  /\  ( ( A ^
( phi `  N
) )  -  1 )  e.  ZZ )  ->  ( ( N 
||  ( (  seq 1 (  x.  ,  F ) `  ( phi `  N ) )  x.  ( ( A ^ ( phi `  N ) )  - 
1 ) )  /\  ( N  gcd  (  seq 1 (  x.  ,  F ) `  ( phi `  N ) ) )  =  1 )  ->  N  ||  (
( A ^ ( phi `  N ) )  -  1 ) ) )
389102, 257, 382, 388syl3anc 1326 . . 3  |-  ( ph  ->  ( ( N  ||  ( (  seq 1
(  x.  ,  F
) `  ( phi `  N ) )  x.  ( ( A ^
( phi `  N
) )  -  1 ) )  /\  ( N  gcd  (  seq 1
(  x.  ,  F
) `  ( phi `  N ) ) )  =  1 )  ->  N  ||  ( ( A ^ ( phi `  N ) )  - 
1 ) ) )
390386, 387, 389mp2and 715 . 2  |-  ( ph  ->  N  ||  ( ( A ^ ( phi `  N ) )  - 
1 ) )
391 moddvds 14991 . . . 4  |-  ( ( N  e.  NN  /\  ( A ^ ( phi `  N ) )  e.  ZZ  /\  1  e.  ZZ )  ->  (
( ( A ^
( phi `  N
) )  mod  N
)  =  ( 1  mod  N )  <->  N  ||  (
( A ^ ( phi `  N ) )  -  1 ) ) )
39283, 391mp3an3 1413 . . 3  |-  ( ( N  e.  NN  /\  ( A ^ ( phi `  N ) )  e.  ZZ )  ->  (
( ( A ^
( phi `  N
) )  mod  N
)  =  ( 1  mod  N )  <->  N  ||  (
( A ^ ( phi `  N ) )  -  1 ) ) )
3932, 253, 392syl2anc 693 . 2  |-  ( ph  ->  ( ( ( A ^ ( phi `  N ) )  mod 
N )  =  ( 1  mod  N )  <-> 
N  ||  ( ( A ^ ( phi `  N ) )  - 
1 ) ) )
394390, 393mpbird 247 1  |-  ( ph  ->  ( ( A ^
( phi `  N
) )  mod  N
)  =  ( 1  mod  N ) )
Colors of variables: wff setvar class
Syntax hints:    -> wi 4    <-> wb 196    /\ wa 384    /\ w3a 1037    = wceq 1483    e. wcel 1990   A.wral 2912   {crab 2916   _Vcvv 3200    C_ wss 3574   class class class wbr 4653    |-> cmpt 4729   `'ccnv 5113    o. ccom 5118   -->wf 5884   -1-1->wf1 5885   -1-1-onto->wf1o 5887   ` cfv 5888  (class class class)co 6650    ~~ cen 7952   Fincfn 7955   CCcc 9934   RRcr 9935   0cc0 9936   1c1 9937    + caddc 9939    x. cmul 9941    < clt 10074    <_ cle 10075    - cmin 10266   NNcn 11020   NN0cn0 11292   ZZcz 11377   ZZ>=cuz 11687   RR+crp 11832   ...cfz 12326  ..^cfzo 12465    mod cmo 12668    seqcseq 12801   ^cexp 12860    || cdvds 14983    gcd cgcd 15216   phicphi 15469
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1722  ax-4 1737  ax-5 1839  ax-6 1888  ax-7 1935  ax-8 1992  ax-9 1999  ax-10 2019  ax-11 2034  ax-12 2047  ax-13 2246  ax-ext 2602  ax-rep 4771  ax-sep 4781  ax-nul 4789  ax-pow 4843  ax-pr 4906  ax-un 6949  ax-cnex 9992  ax-resscn 9993  ax-1cn 9994  ax-icn 9995  ax-addcl 9996  ax-addrcl 9997  ax-mulcl 9998  ax-mulrcl 9999  ax-mulcom 10000  ax-addass 10001  ax-mulass 10002  ax-distr 10003  ax-i2m1 10004  ax-1ne0 10005  ax-1rid 10006  ax-rnegex 10007  ax-rrecex 10008  ax-cnre 10009  ax-pre-lttri 10010  ax-pre-lttrn 10011  ax-pre-ltadd 10012  ax-pre-mulgt0 10013  ax-pre-sup 10014
This theorem depends on definitions:  df-bi 197  df-or 385  df-an 386  df-3or 1038  df-3an 1039  df-tru 1486  df-ex 1705  df-nf 1710  df-sb 1881  df-eu 2474  df-mo 2475  df-clab 2609  df-cleq 2615  df-clel 2618  df-nfc 2753  df-ne 2795  df-nel 2898  df-ral 2917  df-rex 2918  df-reu 2919  df-rmo 2920  df-rab 2921  df-v 3202  df-sbc 3436  df-csb 3534  df-dif 3577  df-un 3579  df-in 3581  df-ss 3588  df-pss 3590  df-nul 3916  df-if 4087  df-pw 4160  df-sn 4178  df-pr 4180  df-tp 4182  df-op 4184  df-uni 4437  df-int 4476  df-iun 4522  df-br 4654  df-opab 4713  df-mpt 4730  df-tr 4753  df-id 5024  df-eprel 5029  df-po 5035  df-so 5036  df-fr 5073  df-we 5075  df-xp 5120  df-rel 5121  df-cnv 5122  df-co 5123  df-dm 5124  df-rn 5125  df-res 5126  df-ima 5127  df-pred 5680  df-ord 5726  df-on 5727  df-lim 5728  df-suc 5729  df-iota 5851  df-fun 5890  df-fn 5891  df-f 5892  df-f1 5893  df-fo 5894  df-f1o 5895  df-fv 5896  df-riota 6611  df-ov 6653  df-oprab 6654  df-mpt2 6655  df-om 7066  df-1st 7168  df-2nd 7169  df-wrecs 7407  df-recs 7468  df-rdg 7506  df-1o 7560  df-oadd 7564  df-er 7742  df-map 7859  df-en 7956  df-dom 7957  df-sdom 7958  df-fin 7959  df-sup 8348  df-inf 8349  df-card 8765  df-pnf 10076  df-mnf 10077  df-xr 10078  df-ltxr 10079  df-le 10080  df-sub 10268  df-neg 10269  df-div 10685  df-nn 11021  df-2 11079  df-3 11080  df-n0 11293  df-xnn0 11364  df-z 11378  df-uz 11688  df-rp 11833  df-fz 12327  df-fzo 12466  df-fl 12593  df-mod 12669  df-seq 12802  df-exp 12861  df-hash 13118  df-cj 13839  df-re 13840  df-im 13841  df-sqrt 13975  df-abs 13976  df-dvds 14984  df-gcd 15217  df-phi 15471
This theorem is referenced by:  eulerth  15488
  Copyright terms: Public domain W3C validator