Exact expanded PA statement
forall p n a A. p = S n -> ((~(p = 1) /\ forall frm_prime_left_predecessor_prime frm_prime_right_predecessor_prime. p = frm_prime_left_predecessor_prime * frm_prime_right_predecessor_prime -> frm_prime_left_predecessor_prime = 1 \/ frm_prime_right_predecessor_prime = 1)) -> (~(exists frm_factor_predecessor_multiplier. a = p * frm_factor_predecessor_multiplier)) -> (exists ff_b_predecessor_power ff_c_predecessor_power. ((forall ff_i_predecessor_power_repeat. (exists ff_lt_predecessor_power_repeat_bound. ff_lt_predecessor_power_repeat_bound + S ff_i_predecessor_power_repeat = n) -> (((exists ff_h_predecessor_power_repeat_decoded. ff_h_predecessor_power_repeat_decoded + S (a) = S ((S (ff_i_predecessor_power_repeat)) * ff_c_predecessor_power)) /\ exists ff_q_predecessor_power_repeat_decoded. ff_b_predecessor_power = ff_q_predecessor_power_repeat_decoded * S ((S (ff_i_predecessor_power_repeat)) * ff_c_predecessor_power) + (a)))) /\ (exists ff_u_predecessor_power_product ff_v_predecessor_power_product. ((((exists ff_h_predecessor_power_product_start. ff_h_predecessor_power_product_start + S (1) = S ((S (0)) * ff_v_predecessor_power_product)) /\ exists ff_q_predecessor_power_product_start. ff_u_predecessor_power_product = ff_q_predecessor_power_product_start * S ((S (0)) * ff_v_predecessor_power_product) + (1))) /\ ((((exists ff_h_predecessor_power_product_terminal. ff_h_predecessor_power_product_terminal + S (A) = S ((S (n)) * ff_v_predecessor_power_product)) /\ exists ff_q_predecessor_power_product_terminal. ff_u_predecessor_power_product = ff_q_predecessor_power_product_terminal * S ((S (n)) * ff_v_predecessor_power_product) + (A))) /\ forall ff_i_predecessor_power_product. (exists ff_lt_predecessor_power_product_bound. ff_lt_predecessor_power_product_bound + S ff_i_predecessor_power_product = n) -> exists ff_p_predecessor_power_product ff_r_predecessor_power_product ff_s_predecessor_power_product. ((((exists ff_h_predecessor_power_product_factor. ff_h_predecessor_power_product_factor + S (ff_p_predecessor_power_product) = S ((S (ff_i_predecessor_power_product)) * ff_c_predecessor_power)) /\ exists ff_q_predecessor_power_product_factor. ff_b_predecessor_power = ff_q_predecessor_power_product_factor * S ((S (ff_i_predecessor_power_product)) * ff_c_predecessor_power) + (ff_p_predecessor_power_product))) /\ ((((exists ff_h_predecessor_power_product_partial. ff_h_predecessor_power_product_partial + S (ff_r_predecessor_power_product) = S ((S (ff_i_predecessor_power_product)) * ff_v_predecessor_power_product)) /\ exists ff_q_predecessor_power_product_partial. ff_u_predecessor_power_product = ff_q_predecessor_power_product_partial * S ((S (ff_i_predecessor_power_product)) * ff_v_predecessor_power_product) + (ff_r_predecessor_power_product))) /\ ((((exists ff_h_predecessor_power_product_successor. ff_h_predecessor_power_product_successor + S (ff_s_predecessor_power_product) = S ((S (S ff_i_predecessor_power_product)) * ff_v_predecessor_power_product)) /\ exists ff_q_predecessor_power_product_successor. ff_u_predecessor_power_product = ff_q_predecessor_power_product_successor * S ((S (S ff_i_predecessor_power_product)) * ff_v_predecessor_power_product) + (ff_s_predecessor_power_product))) /\ ff_s_predecessor_power_product = ff_r_predecessor_power_product * ff_p_predecessor_power_product)))))))) -> (exists fep_mod_left_predecessor_result fep_mod_right_predecessor_result. A + p * fep_mod_left_predecessor_result = 1 + p * fep_mod_right_predecessor_result)Structural proof guide
Generated structural guide
Fermat's theorem for the native predecessor exponent p-1.
Use the direct prerequisites factorial_exists, prime_mul_residue_product_balance, prime_range_product_coprime, prime_nonzero, mod_eq_cancel_coprime, mul_comm, mul_one as previously established PA formulas.
The proof proceeds by case analysis (6), intermediate claims (4).
Referenced ingredients
Proof neighborhood
Direct dependencies
PA0060 factorial_exists PA008J prime_mul_residue_product_balance PA008K prime_range_product_coprime PA0031 prime_nonzero PA003R mod_eq_cancel_coprime PA000H mul_comm PA0002 mul_oneDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Linked names are exact direct references. This Alpha-v16 checked-use theorem is independently kernel-checked when replayed; it is not a Stable theorem.
- 0001
intro p - 0002
intro n - 0003
intro a - 0004
intro A - 0005
intro hpn - 0006
intro hp - 0007
intro hnotdiv - 0008
intro hA - 0009
specialize factorial_exists n - 0010
cases factorial_exists - 0011
cases factorial_exists_witness - 0012
cases factorial_exists_witness_witness - 0013
cases factorial_exists_witness_witness_witness - 0014
have hbalance : exists fsp_product_mod_left_predecessor_balance fsp_product_mod_right_predecessor_balance. (A * x) + p * fsp_product_mod_left_predecessor_balance = x + p * fsp_product_mod_right_predecessor_balance - 0015
specialize prime_mul_residue_product_balance p - 0016
specialize prime_mul_residue_product_balance n - 0017
specialize prime_mul_residue_product_balance a - 0018
specialize prime_mul_residue_product_balance x1 - 0019
specialize prime_mul_residue_product_balance x2 - 0020
specialize prime_mul_residue_product_balance x - 0021
specialize prime_mul_residue_product_balance A - 0022
apply prime_mul_residue_product_balance - 0023
exact hpn - 0024
exact hp - 0025
exact hnotdiv - 0026
exact factorial_exists_witness_witness_witness_left - 0027
exact factorial_exists_witness_witness_witness_right - 0028
exact hA - 0029
have hcop : forall frp_divisor_predecessor_coprime. (exists frp_left_factor_predecessor_coprime. x = frp_divisor_predecessor_coprime * frp_left_factor_predecessor_coprime) -> (exists frp_right_factor_predecessor_coprime. p = frp_divisor_predecessor_coprime * frp_right_factor_predecessor_coprime) -> frp_divisor_predecessor_coprime = 1 - 0030
specialize prime_range_product_coprime p - 0031
specialize prime_range_product_coprime n - 0032
specialize prime_range_product_coprime x1 - 0033
specialize prime_range_product_coprime x2 - 0034
specialize prime_range_product_coprime x - 0035
apply prime_range_product_coprime - 0036
exact hpn - 0037
exact hp - 0038
exact factorial_exists_witness_witness_witness_left - 0039
exact factorial_exists_witness_witness_witness_right - 0040
have hp0 : ~(p = 0) - 0041
intro hpzero - 0042
specialize prime_nonzero p - 0043
apply prime_nonzero - 0044
exact hp - 0045
exact hpzero - 0046
have hscaled : exists fep_product_mod_left_predecessor_normalized fep_product_mod_right_predecessor_normalized. (x * A) + p * fep_product_mod_left_predecessor_normalized = (x * 1) + p * fep_product_mod_right_predecessor_normalized - 0047
cases hbalance - 0048
cases hbalance_witness - 0049
exists x3 - 0050
exists x4 - 0051
trans (A * x) + p * x3 - 0052
congr - 0053
apply mul_comm - 0054
refl - 0055
trans x + p * x4 - 0056
exact hbalance_witness_witness - 0057
congr - 0058
symm - 0059
apply mul_one - 0060
refl - 0061
specialize mod_eq_cancel_coprime p - 0062
specialize mod_eq_cancel_coprime x - 0063
specialize mod_eq_cancel_coprime A - 0064
specialize mod_eq_cancel_coprime 1 - 0065
apply mod_eq_cancel_coprime - 0066
exact hp0 - 0067
exact hcop - 0068
exact hscaled