| Step | Hyp | Ref | Expression | 
						
							| 1 |  | odzval | ⊢ ( ( 𝑁  ∈  ℕ  ∧  𝐴  ∈  ℤ  ∧  ( 𝐴  gcd  𝑁 )  =  1 )  →  ( ( odℤ ‘ 𝑁 ) ‘ 𝐴 )  =  inf ( { 𝑛  ∈  ℕ  ∣  𝑁  ∥  ( ( 𝐴 ↑ 𝑛 )  −  1 ) } ,  ℝ ,   <  ) ) | 
						
							| 2 |  | ssrab2 | ⊢ { 𝑛  ∈  ℕ  ∣  𝑁  ∥  ( ( 𝐴 ↑ 𝑛 )  −  1 ) }  ⊆  ℕ | 
						
							| 3 |  | nnuz | ⊢ ℕ  =  ( ℤ≥ ‘ 1 ) | 
						
							| 4 | 2 3 | sseqtri | ⊢ { 𝑛  ∈  ℕ  ∣  𝑁  ∥  ( ( 𝐴 ↑ 𝑛 )  −  1 ) }  ⊆  ( ℤ≥ ‘ 1 ) | 
						
							| 5 |  | phicl | ⊢ ( 𝑁  ∈  ℕ  →  ( ϕ ‘ 𝑁 )  ∈  ℕ ) | 
						
							| 6 | 5 | 3ad2ant1 | ⊢ ( ( 𝑁  ∈  ℕ  ∧  𝐴  ∈  ℤ  ∧  ( 𝐴  gcd  𝑁 )  =  1 )  →  ( ϕ ‘ 𝑁 )  ∈  ℕ ) | 
						
							| 7 |  | eulerth | ⊢ ( ( 𝑁  ∈  ℕ  ∧  𝐴  ∈  ℤ  ∧  ( 𝐴  gcd  𝑁 )  =  1 )  →  ( ( 𝐴 ↑ ( ϕ ‘ 𝑁 ) )  mod  𝑁 )  =  ( 1  mod  𝑁 ) ) | 
						
							| 8 |  | simp1 | ⊢ ( ( 𝑁  ∈  ℕ  ∧  𝐴  ∈  ℤ  ∧  ( 𝐴  gcd  𝑁 )  =  1 )  →  𝑁  ∈  ℕ ) | 
						
							| 9 |  | simp2 | ⊢ ( ( 𝑁  ∈  ℕ  ∧  𝐴  ∈  ℤ  ∧  ( 𝐴  gcd  𝑁 )  =  1 )  →  𝐴  ∈  ℤ ) | 
						
							| 10 | 6 | nnnn0d | ⊢ ( ( 𝑁  ∈  ℕ  ∧  𝐴  ∈  ℤ  ∧  ( 𝐴  gcd  𝑁 )  =  1 )  →  ( ϕ ‘ 𝑁 )  ∈  ℕ0 ) | 
						
							| 11 |  | zexpcl | ⊢ ( ( 𝐴  ∈  ℤ  ∧  ( ϕ ‘ 𝑁 )  ∈  ℕ0 )  →  ( 𝐴 ↑ ( ϕ ‘ 𝑁 ) )  ∈  ℤ ) | 
						
							| 12 | 9 10 11 | syl2anc | ⊢ ( ( 𝑁  ∈  ℕ  ∧  𝐴  ∈  ℤ  ∧  ( 𝐴  gcd  𝑁 )  =  1 )  →  ( 𝐴 ↑ ( ϕ ‘ 𝑁 ) )  ∈  ℤ ) | 
						
							| 13 |  | 1z | ⊢ 1  ∈  ℤ | 
						
							| 14 |  | moddvds | ⊢ ( ( 𝑁  ∈  ℕ  ∧  ( 𝐴 ↑ ( ϕ ‘ 𝑁 ) )  ∈  ℤ  ∧  1  ∈  ℤ )  →  ( ( ( 𝐴 ↑ ( ϕ ‘ 𝑁 ) )  mod  𝑁 )  =  ( 1  mod  𝑁 )  ↔  𝑁  ∥  ( ( 𝐴 ↑ ( ϕ ‘ 𝑁 ) )  −  1 ) ) ) | 
						
							| 15 | 13 14 | mp3an3 | ⊢ ( ( 𝑁  ∈  ℕ  ∧  ( 𝐴 ↑ ( ϕ ‘ 𝑁 ) )  ∈  ℤ )  →  ( ( ( 𝐴 ↑ ( ϕ ‘ 𝑁 ) )  mod  𝑁 )  =  ( 1  mod  𝑁 )  ↔  𝑁  ∥  ( ( 𝐴 ↑ ( ϕ ‘ 𝑁 ) )  −  1 ) ) ) | 
						
							| 16 | 8 12 15 | syl2anc | ⊢ ( ( 𝑁  ∈  ℕ  ∧  𝐴  ∈  ℤ  ∧  ( 𝐴  gcd  𝑁 )  =  1 )  →  ( ( ( 𝐴 ↑ ( ϕ ‘ 𝑁 ) )  mod  𝑁 )  =  ( 1  mod  𝑁 )  ↔  𝑁  ∥  ( ( 𝐴 ↑ ( ϕ ‘ 𝑁 ) )  −  1 ) ) ) | 
						
							| 17 | 7 16 | mpbid | ⊢ ( ( 𝑁  ∈  ℕ  ∧  𝐴  ∈  ℤ  ∧  ( 𝐴  gcd  𝑁 )  =  1 )  →  𝑁  ∥  ( ( 𝐴 ↑ ( ϕ ‘ 𝑁 ) )  −  1 ) ) | 
						
							| 18 |  | oveq2 | ⊢ ( 𝑛  =  ( ϕ ‘ 𝑁 )  →  ( 𝐴 ↑ 𝑛 )  =  ( 𝐴 ↑ ( ϕ ‘ 𝑁 ) ) ) | 
						
							| 19 | 18 | oveq1d | ⊢ ( 𝑛  =  ( ϕ ‘ 𝑁 )  →  ( ( 𝐴 ↑ 𝑛 )  −  1 )  =  ( ( 𝐴 ↑ ( ϕ ‘ 𝑁 ) )  −  1 ) ) | 
						
							| 20 | 19 | breq2d | ⊢ ( 𝑛  =  ( ϕ ‘ 𝑁 )  →  ( 𝑁  ∥  ( ( 𝐴 ↑ 𝑛 )  −  1 )  ↔  𝑁  ∥  ( ( 𝐴 ↑ ( ϕ ‘ 𝑁 ) )  −  1 ) ) ) | 
						
							| 21 | 20 | rspcev | ⊢ ( ( ( ϕ ‘ 𝑁 )  ∈  ℕ  ∧  𝑁  ∥  ( ( 𝐴 ↑ ( ϕ ‘ 𝑁 ) )  −  1 ) )  →  ∃ 𝑛  ∈  ℕ 𝑁  ∥  ( ( 𝐴 ↑ 𝑛 )  −  1 ) ) | 
						
							| 22 | 6 17 21 | syl2anc | ⊢ ( ( 𝑁  ∈  ℕ  ∧  𝐴  ∈  ℤ  ∧  ( 𝐴  gcd  𝑁 )  =  1 )  →  ∃ 𝑛  ∈  ℕ 𝑁  ∥  ( ( 𝐴 ↑ 𝑛 )  −  1 ) ) | 
						
							| 23 |  | rabn0 | ⊢ ( { 𝑛  ∈  ℕ  ∣  𝑁  ∥  ( ( 𝐴 ↑ 𝑛 )  −  1 ) }  ≠  ∅  ↔  ∃ 𝑛  ∈  ℕ 𝑁  ∥  ( ( 𝐴 ↑ 𝑛 )  −  1 ) ) | 
						
							| 24 | 22 23 | sylibr | ⊢ ( ( 𝑁  ∈  ℕ  ∧  𝐴  ∈  ℤ  ∧  ( 𝐴  gcd  𝑁 )  =  1 )  →  { 𝑛  ∈  ℕ  ∣  𝑁  ∥  ( ( 𝐴 ↑ 𝑛 )  −  1 ) }  ≠  ∅ ) | 
						
							| 25 |  | infssuzcl | ⊢ ( ( { 𝑛  ∈  ℕ  ∣  𝑁  ∥  ( ( 𝐴 ↑ 𝑛 )  −  1 ) }  ⊆  ( ℤ≥ ‘ 1 )  ∧  { 𝑛  ∈  ℕ  ∣  𝑁  ∥  ( ( 𝐴 ↑ 𝑛 )  −  1 ) }  ≠  ∅ )  →  inf ( { 𝑛  ∈  ℕ  ∣  𝑁  ∥  ( ( 𝐴 ↑ 𝑛 )  −  1 ) } ,  ℝ ,   <  )  ∈  { 𝑛  ∈  ℕ  ∣  𝑁  ∥  ( ( 𝐴 ↑ 𝑛 )  −  1 ) } ) | 
						
							| 26 | 4 24 25 | sylancr | ⊢ ( ( 𝑁  ∈  ℕ  ∧  𝐴  ∈  ℤ  ∧  ( 𝐴  gcd  𝑁 )  =  1 )  →  inf ( { 𝑛  ∈  ℕ  ∣  𝑁  ∥  ( ( 𝐴 ↑ 𝑛 )  −  1 ) } ,  ℝ ,   <  )  ∈  { 𝑛  ∈  ℕ  ∣  𝑁  ∥  ( ( 𝐴 ↑ 𝑛 )  −  1 ) } ) | 
						
							| 27 | 1 26 | eqeltrd | ⊢ ( ( 𝑁  ∈  ℕ  ∧  𝐴  ∈  ℤ  ∧  ( 𝐴  gcd  𝑁 )  =  1 )  →  ( ( odℤ ‘ 𝑁 ) ‘ 𝐴 )  ∈  { 𝑛  ∈  ℕ  ∣  𝑁  ∥  ( ( 𝐴 ↑ 𝑛 )  −  1 ) } ) | 
						
							| 28 |  | oveq2 | ⊢ ( 𝑛  =  ( ( odℤ ‘ 𝑁 ) ‘ 𝐴 )  →  ( 𝐴 ↑ 𝑛 )  =  ( 𝐴 ↑ ( ( odℤ ‘ 𝑁 ) ‘ 𝐴 ) ) ) | 
						
							| 29 | 28 | oveq1d | ⊢ ( 𝑛  =  ( ( odℤ ‘ 𝑁 ) ‘ 𝐴 )  →  ( ( 𝐴 ↑ 𝑛 )  −  1 )  =  ( ( 𝐴 ↑ ( ( odℤ ‘ 𝑁 ) ‘ 𝐴 ) )  −  1 ) ) | 
						
							| 30 | 29 | breq2d | ⊢ ( 𝑛  =  ( ( odℤ ‘ 𝑁 ) ‘ 𝐴 )  →  ( 𝑁  ∥  ( ( 𝐴 ↑ 𝑛 )  −  1 )  ↔  𝑁  ∥  ( ( 𝐴 ↑ ( ( odℤ ‘ 𝑁 ) ‘ 𝐴 ) )  −  1 ) ) ) | 
						
							| 31 | 30 | elrab | ⊢ ( ( ( odℤ ‘ 𝑁 ) ‘ 𝐴 )  ∈  { 𝑛  ∈  ℕ  ∣  𝑁  ∥  ( ( 𝐴 ↑ 𝑛 )  −  1 ) }  ↔  ( ( ( odℤ ‘ 𝑁 ) ‘ 𝐴 )  ∈  ℕ  ∧  𝑁  ∥  ( ( 𝐴 ↑ ( ( odℤ ‘ 𝑁 ) ‘ 𝐴 ) )  −  1 ) ) ) | 
						
							| 32 | 27 31 | sylib | ⊢ ( ( 𝑁  ∈  ℕ  ∧  𝐴  ∈  ℤ  ∧  ( 𝐴  gcd  𝑁 )  =  1 )  →  ( ( ( odℤ ‘ 𝑁 ) ‘ 𝐴 )  ∈  ℕ  ∧  𝑁  ∥  ( ( 𝐴 ↑ ( ( odℤ ‘ 𝑁 ) ‘ 𝐴 ) )  −  1 ) ) ) |