Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved. Exact original first-admission records.
Statement with defined notation
∀ p. ∀ n. ∀ a. ∀ A. p = S n → Prime(p) → ¬Dvd(p,a) → Pow(a,n,A) → ModEq(p,A,1)Every purple notation token opens its conservative definition. This is a reading surface; the compiler expands the statement before the unchanged kernel checks it.
Definitions used by this theorem
In the theorem statement
4 occurrences
In local proof propositions
3 occurrences
Exact expanded native-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)Proof neighborhood
Direct theorem prerequisites
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 theorem dependents
Definition-aware tactic body
Only local propositions introduced by have or suffices are compacted. The untrusted compiler re-expands each one before the original tactic script is replayed; defined notation is never accepted by the kernel. Open the exact replay line beneath every changed command.
Read the argument
Proof checkpoints
This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.
Named ingredients (7)
01Fix variables and assumptionsL1–8
02Use earlier factsL9–9
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L9
specialize factorial_exists n
03Separate the logical casesL10–13
04Establish hbalanceL14–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime mul residue product balance.
- L14
have hbalance : ModEq(p,A · x,x)Definitions: ModEq(p,A · x,x)Original native command in the exact edition - L15
specialize prime_mul_residue_product_balance p - L16
specialize prime_mul_residue_product_balance n - L17
specialize prime_mul_residue_product_balance a - L18
specialize prime_mul_residue_product_balance x1 - L19
specialize prime_mul_residue_product_balance x2 - L20
specialize prime_mul_residue_product_balance x - L21
specialize prime_mul_residue_product_balance A - L22
apply prime_mul_residue_product_balance - L23
exact hpn
05Use earlier factsL24–28
06Establish hcopL29–38
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime range product coprime.
- L29
- L30
specialize prime_range_product_coprime p - L31
specialize prime_range_product_coprime n - L32
specialize prime_range_product_coprime x1 - L33
specialize prime_range_product_coprime x2 - L34
specialize prime_range_product_coprime x - L35
apply prime_range_product_coprime - L36
exact hpn - L37
exact hp - L38
exact factorial_exists_witness_witness_witness_left
07Use earlier factsL39–39
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L39
exact factorial_exists_witness_witness_witness_right
08Establish hp0L40–45
09Establish hscaledL46–46
Establish this local claim before using it. It is not an additional assumption.
- L46
have hscaled : ModEq(p,x · A,x · 1)Definitions: ModEq(p,x · A,x · 1)Original native command in the exact edition
10Separate the logical casesL47–48
11Construct an explicit witnessL49–50
12Calculate and transport equalitiesL51–52
13Use earlier factsL53–53
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L53
apply mul_comm
14Calculate and transport equalitiesL54–55
15Use earlier factsL56–56
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L56
exact hbalance_witness_witness
16Calculate and transport equalitiesL57–58
17Use earlier factsL59–59
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L59
apply mul_one
18Calculate and transport equalitiesL60–60
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L60
refl
19Use earlier factsL61–68
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original defined command ledger · 68 lines
- 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 : ModEq(p,A · x,x)Exact native replay line
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 : Coprime(x,p)Exact native replay line
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 : ModEq(p,x · A,x · 1)Exact native replay line
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