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. ∀ e. ∀ a. ∀ r. ∀ q. Prime(p) → Pow(p,e,r) → a = r · q → PowerDivides(p,S e,a) → Dvd(p,q)Every purple notation token opens its conservative definition. Expanding the displayed statement recovers the exact first-order Peano-arithmetic formula checked by the unchanged kernel.
Definitions used by this theorem
In the theorem statement
4 occurrences
In local proof propositions
1 occurrences
Exact expanded native-PA statement
forall p e a r q. ((~(p = 1) /\ forall frm_prime_left_bpd_prime frm_prime_right_bpd_prime. p = frm_prime_left_bpd_prime * frm_prime_right_bpd_prime -> frm_prime_left_bpd_prime = 1 \/ frm_prime_right_bpd_prime = 1)) -> (exists ff_b_bpd_cancel_prefix ff_c_bpd_cancel_prefix. ((forall ff_i_bpd_cancel_prefix_repeat. (exists ff_lt_bpd_cancel_prefix_repeat_bound. ff_lt_bpd_cancel_prefix_repeat_bound + S ff_i_bpd_cancel_prefix_repeat = e) -> (((exists ff_h_bpd_cancel_prefix_repeat_decoded. ff_h_bpd_cancel_prefix_repeat_decoded + S (p) = S ((S (ff_i_bpd_cancel_prefix_repeat)) * ff_c_bpd_cancel_prefix)) /\ exists ff_q_bpd_cancel_prefix_repeat_decoded. ff_b_bpd_cancel_prefix = ff_q_bpd_cancel_prefix_repeat_decoded * S ((S (ff_i_bpd_cancel_prefix_repeat)) * ff_c_bpd_cancel_prefix) + (p)))) /\ (exists ff_u_bpd_cancel_prefix_product ff_v_bpd_cancel_prefix_product. ((((exists ff_h_bpd_cancel_prefix_product_start. ff_h_bpd_cancel_prefix_product_start + S (1) = S ((S (0)) * ff_v_bpd_cancel_prefix_product)) /\ exists ff_q_bpd_cancel_prefix_product_start. ff_u_bpd_cancel_prefix_product = ff_q_bpd_cancel_prefix_product_start * S ((S (0)) * ff_v_bpd_cancel_prefix_product) + (1))) /\ ((((exists ff_h_bpd_cancel_prefix_product_terminal. ff_h_bpd_cancel_prefix_product_terminal + S (r) = S ((S (e)) * ff_v_bpd_cancel_prefix_product)) /\ exists ff_q_bpd_cancel_prefix_product_terminal. ff_u_bpd_cancel_prefix_product = ff_q_bpd_cancel_prefix_product_terminal * S ((S (e)) * ff_v_bpd_cancel_prefix_product) + (r))) /\ forall ff_i_bpd_cancel_prefix_product. (exists ff_lt_bpd_cancel_prefix_product_bound. ff_lt_bpd_cancel_prefix_product_bound + S ff_i_bpd_cancel_prefix_product = e) -> exists ff_p_bpd_cancel_prefix_product ff_r_bpd_cancel_prefix_product ff_s_bpd_cancel_prefix_product. ((((exists ff_h_bpd_cancel_prefix_product_factor. ff_h_bpd_cancel_prefix_product_factor + S (ff_p_bpd_cancel_prefix_product) = S ((S (ff_i_bpd_cancel_prefix_product)) * ff_c_bpd_cancel_prefix)) /\ exists ff_q_bpd_cancel_prefix_product_factor. ff_b_bpd_cancel_prefix = ff_q_bpd_cancel_prefix_product_factor * S ((S (ff_i_bpd_cancel_prefix_product)) * ff_c_bpd_cancel_prefix) + (ff_p_bpd_cancel_prefix_product))) /\ ((((exists ff_h_bpd_cancel_prefix_product_partial. ff_h_bpd_cancel_prefix_product_partial + S (ff_r_bpd_cancel_prefix_product) = S ((S (ff_i_bpd_cancel_prefix_product)) * ff_v_bpd_cancel_prefix_product)) /\ exists ff_q_bpd_cancel_prefix_product_partial. ff_u_bpd_cancel_prefix_product = ff_q_bpd_cancel_prefix_product_partial * S ((S (ff_i_bpd_cancel_prefix_product)) * ff_v_bpd_cancel_prefix_product) + (ff_r_bpd_cancel_prefix_product))) /\ ((((exists ff_h_bpd_cancel_prefix_product_successor. ff_h_bpd_cancel_prefix_product_successor + S (ff_s_bpd_cancel_prefix_product) = S ((S (S ff_i_bpd_cancel_prefix_product)) * ff_v_bpd_cancel_prefix_product)) /\ exists ff_q_bpd_cancel_prefix_product_successor. ff_u_bpd_cancel_prefix_product = ff_q_bpd_cancel_prefix_product_successor * S ((S (S ff_i_bpd_cancel_prefix_product)) * ff_v_bpd_cancel_prefix_product) + (ff_s_bpd_cancel_prefix_product))) /\ ff_s_bpd_cancel_prefix_product = ff_r_bpd_cancel_prefix_product * ff_p_bpd_cancel_prefix_product)))))))) -> a = r * q -> (exists bpvi_result_cancel_successor. ((exists bpvi_b_cancel_successor_power bpvi_c_cancel_successor_power. ((forall bpvi_i_cancel_successor_power. (exists bpvi_repeat_gap_cancel_successor_power. bpvi_repeat_gap_cancel_successor_power + S bpvi_i_cancel_successor_power = S e) -> (((exists bpvi_h_cancel_successor_power_repeat. bpvi_h_cancel_successor_power_repeat + S (p) = S ((S (bpvi_i_cancel_successor_power)) * bpvi_c_cancel_successor_power)) /\ exists bpvi_q_cancel_successor_power_repeat. bpvi_b_cancel_successor_power = bpvi_q_cancel_successor_power_repeat * S ((S (bpvi_i_cancel_successor_power)) * bpvi_c_cancel_successor_power) + (p)))) /\ (exists bpvi_u_cancel_successor_power bpvi_v_cancel_successor_power. ((((exists bpvi_h_cancel_successor_power_start. bpvi_h_cancel_successor_power_start + S (1) = S ((S (0)) * bpvi_v_cancel_successor_power)) /\ exists bpvi_q_cancel_successor_power_start. bpvi_u_cancel_successor_power = bpvi_q_cancel_successor_power_start * S ((S (0)) * bpvi_v_cancel_successor_power) + (1))) /\ ((((exists bpvi_h_cancel_successor_power_terminal. bpvi_h_cancel_successor_power_terminal + S (bpvi_result_cancel_successor) = S ((S (S e)) * bpvi_v_cancel_successor_power)) /\ exists bpvi_q_cancel_successor_power_terminal. bpvi_u_cancel_successor_power = bpvi_q_cancel_successor_power_terminal * S ((S (S e)) * bpvi_v_cancel_successor_power) + (bpvi_result_cancel_successor))) /\ forall bpvi_j_cancel_successor_power. (exists bpvi_product_gap_cancel_successor_power. bpvi_product_gap_cancel_successor_power + S bpvi_j_cancel_successor_power = S e) -> exists bpvi_factor_cancel_successor_power bpvi_partial_cancel_successor_power bpvi_successor_cancel_successor_power. ((((exists bpvi_h_cancel_successor_power_factor. bpvi_h_cancel_successor_power_factor + S (bpvi_factor_cancel_successor_power) = S ((S (bpvi_j_cancel_successor_power)) * bpvi_c_cancel_successor_power)) /\ exists bpvi_q_cancel_successor_power_factor. bpvi_b_cancel_successor_power = bpvi_q_cancel_successor_power_factor * S ((S (bpvi_j_cancel_successor_power)) * bpvi_c_cancel_successor_power) + (bpvi_factor_cancel_successor_power))) /\ ((((exists bpvi_h_cancel_successor_power_partial. bpvi_h_cancel_successor_power_partial + S (bpvi_partial_cancel_successor_power) = S ((S (bpvi_j_cancel_successor_power)) * bpvi_v_cancel_successor_power)) /\ exists bpvi_q_cancel_successor_power_partial. bpvi_u_cancel_successor_power = bpvi_q_cancel_successor_power_partial * S ((S (bpvi_j_cancel_successor_power)) * bpvi_v_cancel_successor_power) + (bpvi_partial_cancel_successor_power))) /\ ((((exists bpvi_h_cancel_successor_power_successor. bpvi_h_cancel_successor_power_successor + S (bpvi_successor_cancel_successor_power) = S ((S (S bpvi_j_cancel_successor_power)) * bpvi_v_cancel_successor_power)) /\ exists bpvi_q_cancel_successor_power_successor. bpvi_u_cancel_successor_power = bpvi_q_cancel_successor_power_successor * S ((S (S bpvi_j_cancel_successor_power)) * bpvi_v_cancel_successor_power) + (bpvi_successor_cancel_successor_power))) /\ bpvi_successor_cancel_successor_power = bpvi_partial_cancel_successor_power * bpvi_factor_cancel_successor_power)))))))) /\ exists bpvi_divisor_factor_cancel_successor. a = bpvi_result_cancel_successor * bpvi_divisor_factor_cancel_successor)) -> (exists bpd_factor_cancel_cofactor_result. q = (p) * bpd_factor_cancel_cofactor_result)Proof neighborhood
Direct theorem prerequisites
BT003G prime_nonzero BT0010 one_le_of_ne_zero BT00Q1 pow_nonzero_of_one_le BT0095 pow_successor_pair_mul BT0022 mul_left_cancel_nonzero BT0008 mul_assocDirect theorem dependents
Definition-aware tactic body
Only local propositions introduced by have or suffices are compacted. Every changed line has an exact-AST conservative-expansion receipt; the kernel still receives the immutable original tactic script.
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 (6)
01Fix variables and assumptionsL1–9
02Separate the logical casesL10–12
03Establish hp0L13–18
04Establish hp1L19–22
05Establish hr0L23–31
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow nonzero of one le.
06Establish hsuccessor_valueL32–41
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow successor pair mul.
- L32
have hsuccessor_value : x = r * p - L33
specialize pow_successor_pair_mul p - L34
specialize pow_successor_pair_mul e - L35
specialize pow_successor_pair_mul (S e) - L36
specialize pow_successor_pair_mul r - L37
specialize pow_successor_pair_mul x - L38
apply pow_successor_pair_mul - L39
refl - L40
exact hr - L41
exact hsuccessor_witness_left
07Establish hcancelL42–51
08Use earlier factsL52–52
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L52
apply mul_assoc
09Construct an explicit witnessL53–53
Supply the displayed value, then prove that it has the required property.
- L53
exists x1
Original defined command ledger · 59 lines
- 0001
intro p - 0002
intro e - 0003
intro a - 0004
intro r - 0005
intro q - 0006
intro hp - 0007
intro hr - 0008
intro harq - 0009
intro hsuccessor - 0010
cases hsuccessor - 0011
cases hsuccessor_witness - 0012
cases hsuccessor_witness_right - 0013
have hp0 : ~(p = 0) - 0014
intro hpzero - 0015
specialize prime_nonzero p - 0016
apply prime_nonzero - 0017
exact hp - 0018
exact hpzero - 0019
have hp1 : Lt(0,p)Exact native replay line
have hp1 : exists k. k + 1 = p - 0020
specialize one_le_of_ne_zero p - 0021
apply one_le_of_ne_zero - 0022
exact hp0 - 0023
have hr0 : ~(r = 0) - 0024
intro hrzero - 0025
specialize pow_nonzero_of_one_le p - 0026
specialize pow_nonzero_of_one_le e - 0027
specialize pow_nonzero_of_one_le r - 0028
apply pow_nonzero_of_one_le - 0029
exact hp1 - 0030
exact hr - 0031
exact hrzero - 0032
have hsuccessor_value : x = r * p - 0033
specialize pow_successor_pair_mul p - 0034
specialize pow_successor_pair_mul e - 0035
specialize pow_successor_pair_mul (S e) - 0036
specialize pow_successor_pair_mul r - 0037
specialize pow_successor_pair_mul x - 0038
apply pow_successor_pair_mul - 0039
refl - 0040
exact hr - 0041
exact hsuccessor_witness_left - 0042
have hcancel : r * q = r * (p * x1) - 0043
trans a - 0044
symm - 0045
exact harq - 0046
trans x * x1 - 0047
exact hsuccessor_witness_right_witness - 0048
trans (r * p) * x1 - 0049
congr - 0050
exact hsuccessor_value - 0051
refl - 0052
apply mul_assoc - 0053
exists x1 - 0054
specialize mul_left_cancel_nonzero r - 0055
specialize mul_left_cancel_nonzero q - 0056
specialize mul_left_cancel_nonzero (p * x1) - 0057
apply mul_left_cancel_nonzero - 0058
exact hr0 - 0059
exact hcancel