Step-by-step derivation
S001 · implies
Before
source roles = [qf-mod31-fielddeep-power-cycle, [domain, element, operation, p]]
After
derived = [fielddeep-power-cycle, Exact_prime_field_Zp]
Conditions: none
THIS source uses LOCAL-hyphen operations with exact keys/domain.Keep source field order and numeric/Boolean/string roles;integer rational texts omit/1.Original questions,English,MKOs,ASTs and statuses remain unchanged.
Step identifiers and dependencies
Rule: R66_EXACT_source_bank_keys_local_operation_domain · Uses: G001
S002 · implies
Before
source roles = [23, [2, 3, 4]]
After
derived = [[1, 2, 3], Yes]
Conditions: none
Trial EVERY divisor2 through floor(sqrt(p));a composite would have a factor there.The empty test for p=2 is valid.This qualifies THIS prime field Z_p,not every finite field’s order or every finite ring as a field.
Step identifiers and dependencies
Rule: Field_PRIME_complete_trial_divisor_qualification · Uses: G001, S001
S003 · calculation
Before
Field ORIGINAL previous power times element k=1 := mul(1, 9)
After
Field ORIGINAL previous power times element k=1 = 9
Conditions: none
Calculate exactly from THIS step’s ORIGINAL ordered operands.Retain the SOURCE rational pre-reduction envelope separately;do not use floating values or silently widen a different bank.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S002
S004 · implies
Before
source roles = [power exponent1, 9, 23]
After
derived = [0, 9]
Conditions: none
Use integer Euclidean division: value=n*quotient+remainder with0≤remainder<n.Normalize negative representatives too;do not use floating remainders.
Step identifiers and dependencies
Rule: Finite_MOD_euclidean_quotient_remainder · Uses: G001, S003
S005 · calculation
Before
Field ORIGINAL previous power times element k=2 := mul(9, 9)
After
Field ORIGINAL previous power times element k=2 = 81
Conditions: none
Calculate exactly from THIS step’s ORIGINAL ordered operands.Retain the SOURCE rational pre-reduction envelope separately;do not use floating values or silently widen a different bank.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S004
S006 · implies
Before
source roles = [power exponent2, 81, 23]
After
derived = [3, 12]
Conditions: none
Use integer Euclidean division: value=n*quotient+remainder with0≤remainder<n.Normalize negative representatives too;do not use floating remainders.
Step identifiers and dependencies
Rule: Finite_MOD_euclidean_quotient_remainder · Uses: G001, S005
S007 · calculation
Before
Field ORIGINAL previous power times element k=3 := mul(12, 9)
After
Field ORIGINAL previous power times element k=3 = 108
Conditions: none
Calculate exactly from THIS step’s ORIGINAL ordered operands.Retain the SOURCE rational pre-reduction envelope separately;do not use floating values or silently widen a different bank.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S006
S008 · implies
Before
source roles = [power exponent3, 108, 23]
After
derived = [4, 16]
Conditions: none
Use integer Euclidean division: value=n*quotient+remainder with0≤remainder<n.Normalize negative representatives too;do not use floating remainders.
Step identifiers and dependencies
Rule: Finite_MOD_euclidean_quotient_remainder · Uses: G001, S007
S009 · calculation
Before
Field ORIGINAL previous power times element k=4 := mul(16, 9)
After
Field ORIGINAL previous power times element k=4 = 144
Conditions: none
Calculate exactly from THIS step’s ORIGINAL ordered operands.Retain the SOURCE rational pre-reduction envelope separately;do not use floating values or silently widen a different bank.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S008
S010 · implies
Before
source roles = [power exponent4, 144, 23]
After
derived = [6, 6]
Conditions: none
Use integer Euclidean division: value=n*quotient+remainder with0≤remainder<n.Normalize negative representatives too;do not use floating remainders.
Step identifiers and dependencies
Rule: Finite_MOD_euclidean_quotient_remainder · Uses: G001, S009
S011 · calculation
Before
Field ORIGINAL previous power times element k=5 := mul(6, 9)
After
Field ORIGINAL previous power times element k=5 = 54
Conditions: none
Calculate exactly from THIS step’s ORIGINAL ordered operands.Retain the SOURCE rational pre-reduction envelope separately;do not use floating values or silently widen a different bank.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S010
S012 · implies
Before
source roles = [power exponent5, 54, 23]
After
derived = [2, 8]
Conditions: none
Use integer Euclidean division: value=n*quotient+remainder with0≤remainder<n.Normalize negative representatives too;do not use floating remainders.
Step identifiers and dependencies
Rule: Finite_MOD_euclidean_quotient_remainder · Uses: G001, S011
S013 · calculation
Before
Field ORIGINAL previous power times element k=6 := mul(8, 9)
After
Field ORIGINAL previous power times element k=6 = 72
Conditions: none
Calculate exactly from THIS step’s ORIGINAL ordered operands.Retain the SOURCE rational pre-reduction envelope separately;do not use floating values or silently widen a different bank.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S012
S014 · implies
Before
source roles = [power exponent6, 72, 23]
After
derived = [3, 3]
Conditions: none
Use integer Euclidean division: value=n*quotient+remainder with0≤remainder<n.Normalize negative representatives too;do not use floating remainders.
Step identifiers and dependencies
Rule: Finite_MOD_euclidean_quotient_remainder · Uses: G001, S013
S015 · calculation
Before
Field ORIGINAL previous power times element k=7 := mul(3, 9)
After
Field ORIGINAL previous power times element k=7 = 27
Conditions: none
Calculate exactly from THIS step’s ORIGINAL ordered operands.Retain the SOURCE rational pre-reduction envelope separately;do not use floating values or silently widen a different bank.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S014
S016 · implies
Before
source roles = [power exponent7, 27, 23]
After
derived = [1, 4]
Conditions: none
Use integer Euclidean division: value=n*quotient+remainder with0≤remainder<n.Normalize negative representatives too;do not use floating remainders.
Step identifiers and dependencies
Rule: Finite_MOD_euclidean_quotient_remainder · Uses: G001, S015
S017 · calculation
Before
Field ORIGINAL previous power times element k=8 := mul(4, 9)
After
Field ORIGINAL previous power times element k=8 = 36
Conditions: none
Calculate exactly from THIS step’s ORIGINAL ordered operands.Retain the SOURCE rational pre-reduction envelope separately;do not use floating values or silently widen a different bank.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S016
S018 · implies
Before
source roles = [power exponent8, 36, 23]
After
derived = [1, 13]
Conditions: none
Use integer Euclidean division: value=n*quotient+remainder with0≤remainder<n.Normalize negative representatives too;do not use floating remainders.
Step identifiers and dependencies
Rule: Finite_MOD_euclidean_quotient_remainder · Uses: G001, S017
S019 · calculation
Before
Field ORIGINAL previous power times element k=9 := mul(13, 9)
After
Field ORIGINAL previous power times element k=9 = 117
Conditions: none
Calculate exactly from THIS step’s ORIGINAL ordered operands.Retain the SOURCE rational pre-reduction envelope separately;do not use floating values or silently widen a different bank.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S018
S020 · implies
Before
source roles = [power exponent9, 117, 23]
After
derived = [5, 2]
Conditions: none
Use integer Euclidean division: value=n*quotient+remainder with0≤remainder<n.Normalize negative representatives too;do not use floating remainders.
Step identifiers and dependencies
Rule: Finite_MOD_euclidean_quotient_remainder · Uses: G001, S019
S021 · calculation
Before
Field ORIGINAL previous power times element k=10 := mul(2, 9)
After
Field ORIGINAL previous power times element k=10 = 18
Conditions: none
Calculate exactly from THIS step’s ORIGINAL ordered operands.Retain the SOURCE rational pre-reduction envelope separately;do not use floating values or silently widen a different bank.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S020
S022 · implies
Before
source roles = [power exponent10, 18, 23]
After
derived = [0, 18]
Conditions: none
Use integer Euclidean division: value=n*quotient+remainder with0≤remainder<n.Normalize negative representatives too;do not use floating remainders.
Step identifiers and dependencies
Rule: Finite_MOD_euclidean_quotient_remainder · Uses: G001, S021
S023 · calculation
Before
Field ORIGINAL previous power times element k=11 := mul(18, 9)
After
Field ORIGINAL previous power times element k=11 = 162
Conditions: none
Calculate exactly from THIS step’s ORIGINAL ordered operands.Retain the SOURCE rational pre-reduction envelope separately;do not use floating values or silently widen a different bank.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S022
S024 · implies
Before
source roles = [power exponent11, 162, 23]
After
derived = [7, 1]
Conditions: none
Use integer Euclidean division: value=n*quotient+remainder with0≤remainder<n.Normalize negative representatives too;do not use floating remainders.
Step identifiers and dependencies
Rule: Finite_MOD_euclidean_quotient_remainder · Uses: G001, S023
S025 · calculation
Before
Field ORIGINAL previous power times element k=12 := mul(1, 9)
After
Field ORIGINAL previous power times element k=12 = 9
Conditions: none
Calculate exactly from THIS step’s ORIGINAL ordered operands.Retain the SOURCE rational pre-reduction envelope separately;do not use floating values or silently widen a different bank.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S024
S026 · implies
Before
source roles = [power exponent12, 9, 23]
After
derived = [0, 9]
Conditions: none
Use integer Euclidean division: value=n*quotient+remainder with0≤remainder<n.Normalize negative representatives too;do not use floating remainders.
Step identifiers and dependencies
Rule: Finite_MOD_euclidean_quotient_remainder · Uses: G001, S025
S027 · calculation
Before
Field ORIGINAL previous power times element k=13 := mul(9, 9)
After
Field ORIGINAL previous power times element k=13 = 81
Conditions: none
Calculate exactly from THIS step’s ORIGINAL ordered operands.Retain the SOURCE rational pre-reduction envelope separately;do not use floating values or silently widen a different bank.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S026
S028 · implies
Before
source roles = [power exponent13, 81, 23]
After
derived = [3, 12]
Conditions: none
Use integer Euclidean division: value=n*quotient+remainder with0≤remainder<n.Normalize negative representatives too;do not use floating remainders.
Step identifiers and dependencies
Rule: Finite_MOD_euclidean_quotient_remainder · Uses: G001, S027
S029 · calculation
Before
Field ORIGINAL previous power times element k=14 := mul(12, 9)
After
Field ORIGINAL previous power times element k=14 = 108
Conditions: none
Calculate exactly from THIS step’s ORIGINAL ordered operands.Retain the SOURCE rational pre-reduction envelope separately;do not use floating values or silently widen a different bank.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S028
S030 · implies
Before
source roles = [power exponent14, 108, 23]
After
derived = [4, 16]
Conditions: none
Use integer Euclidean division: value=n*quotient+remainder with0≤remainder<n.Normalize negative representatives too;do not use floating remainders.
Step identifiers and dependencies
Rule: Finite_MOD_euclidean_quotient_remainder · Uses: G001, S029
S031 · calculation
Before
Field ORIGINAL previous power times element k=15 := mul(16, 9)
After
Field ORIGINAL previous power times element k=15 = 144
Conditions: none
Calculate exactly from THIS step’s ORIGINAL ordered operands.Retain the SOURCE rational pre-reduction envelope separately;do not use floating values or silently widen a different bank.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S030
S032 · implies
Before
source roles = [power exponent15, 144, 23]
After
derived = [6, 6]
Conditions: none
Use integer Euclidean division: value=n*quotient+remainder with0≤remainder<n.Normalize negative representatives too;do not use floating remainders.
Step identifiers and dependencies
Rule: Finite_MOD_euclidean_quotient_remainder · Uses: G001, S031
S033 · calculation
Before
Field ORIGINAL previous power times element k=16 := mul(6, 9)
After
Field ORIGINAL previous power times element k=16 = 54
Conditions: none
Calculate exactly from THIS step’s ORIGINAL ordered operands.Retain the SOURCE rational pre-reduction envelope separately;do not use floating values or silently widen a different bank.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S032
S034 · implies
Before
source roles = [power exponent16, 54, 23]
After
derived = [2, 8]
Conditions: none
Use integer Euclidean division: value=n*quotient+remainder with0≤remainder<n.Normalize negative representatives too;do not use floating remainders.
Step identifiers and dependencies
Rule: Finite_MOD_euclidean_quotient_remainder · Uses: G001, S033
S035 · calculation
Before
Field ORIGINAL previous power times element k=17 := mul(8, 9)
After
Field ORIGINAL previous power times element k=17 = 72
Conditions: none
Calculate exactly from THIS step’s ORIGINAL ordered operands.Retain the SOURCE rational pre-reduction envelope separately;do not use floating values or silently widen a different bank.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S034
S036 · implies
Before
source roles = [power exponent17, 72, 23]
After
derived = [3, 3]
Conditions: none
Use integer Euclidean division: value=n*quotient+remainder with0≤remainder<n.Normalize negative representatives too;do not use floating remainders.
Step identifiers and dependencies
Rule: Finite_MOD_euclidean_quotient_remainder · Uses: G001, S035
S037 · calculation
Before
Field ORIGINAL previous power times element k=18 := mul(3, 9)
After
Field ORIGINAL previous power times element k=18 = 27
Conditions: none
Calculate exactly from THIS step’s ORIGINAL ordered operands.Retain the SOURCE rational pre-reduction envelope separately;do not use floating values or silently widen a different bank.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S036
S038 · implies
Before
source roles = [power exponent18, 27, 23]
After
derived = [1, 4]
Conditions: none
Use integer Euclidean division: value=n*quotient+remainder with0≤remainder<n.Normalize negative representatives too;do not use floating remainders.
Step identifiers and dependencies
Rule: Finite_MOD_euclidean_quotient_remainder · Uses: G001, S037
S039 · calculation
Before
Field ORIGINAL previous power times element k=19 := mul(4, 9)
After
Field ORIGINAL previous power times element k=19 = 36
Conditions: none
Calculate exactly from THIS step’s ORIGINAL ordered operands.Retain the SOURCE rational pre-reduction envelope separately;do not use floating values or silently widen a different bank.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S038
S040 · implies
Before
source roles = [power exponent19, 36, 23]
After
derived = [1, 13]
Conditions: none
Use integer Euclidean division: value=n*quotient+remainder with0≤remainder<n.Normalize negative representatives too;do not use floating remainders.
Step identifiers and dependencies
Rule: Finite_MOD_euclidean_quotient_remainder · Uses: G001, S039
S041 · calculation
Before
Field ORIGINAL previous power times element k=20 := mul(13, 9)
After
Field ORIGINAL previous power times element k=20 = 117
Conditions: none
Calculate exactly from THIS step’s ORIGINAL ordered operands.Retain the SOURCE rational pre-reduction envelope separately;do not use floating values or silently widen a different bank.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S040
S042 · implies
Before
source roles = [power exponent20, 117, 23]
After
derived = [5, 2]
Conditions: none
Use integer Euclidean division: value=n*quotient+remainder with0≤remainder<n.Normalize negative representatives too;do not use floating remainders.
Step identifiers and dependencies
Rule: Finite_MOD_euclidean_quotient_remainder · Uses: G001, S041
S043 · calculation
Before
Field ORIGINAL previous power times element k=21 := mul(2, 9)
After
Field ORIGINAL previous power times element k=21 = 18
Conditions: none
Calculate exactly from THIS step’s ORIGINAL ordered operands.Retain the SOURCE rational pre-reduction envelope separately;do not use floating values or silently widen a different bank.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S042
S044 · implies
Before
source roles = [power exponent21, 18, 23]
After
derived = [0, 18]
Conditions: none
Use integer Euclidean division: value=n*quotient+remainder with0≤remainder<n.Normalize negative representatives too;do not use floating remainders.
Step identifiers and dependencies
Rule: Finite_MOD_euclidean_quotient_remainder · Uses: G001, S043
S045 · calculation
Before
Field ORIGINAL previous power times element k=22 := mul(18, 9)
After
Field ORIGINAL previous power times element k=22 = 162
Conditions: none
Calculate exactly from THIS step’s ORIGINAL ordered operands.Retain the SOURCE rational pre-reduction envelope separately;do not use floating values or silently widen a different bank.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S044
S046 · implies
Before
source roles = [power exponent22, 162, 23]
After
derived = [7, 1]
Conditions: none
Use integer Euclidean division: value=n*quotient+remainder with0≤remainder<n.Normalize negative representatives too;do not use floating remainders.
Step identifiers and dependencies
Rule: Finite_MOD_euclidean_quotient_remainder · Uses: G001, S045
S047 · implies
Before
source roles = [23, 9, [9, 12, 16, 6, 8, 3, 4, 13, 2, 18, 1, 9, 12, 16, 6, 8, 3, 4, 13, 2, 18, 1]]
After
derived = [1, Yes]
Conditions: none
Retain EVERY exponent1..p−1 and the final1.The nonzero residues form the multiplicative group,but this identity does NOT claim least order p−1 or certify a primitive root.
Step identifiers and dependencies
Rule: Field_NONZERO_p_minus_1_power_identity_NOT_exact_order · Uses: G001, S046