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. ∀ F. p = S n → Prime(p) → Factorial(n,F) → ModEq(p,F,n)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
3 occurrences
In local proof propositions
3 occurrences
Exact expanded native-PA statement
forall p n F. p = S n -> ((~(p = 1) /\ forall wip_prime_left_wer_shape_prime wip_prime_right_wer_shape_prime. p = wip_prime_left_wer_shape_prime * wip_prime_right_wer_shape_prime -> wip_prime_left_wer_shape_prime = 1 \/ wip_prime_right_wer_shape_prime = 1)) -> (exists ff_b_wer_final_factorial ff_c_wer_final_factorial. ((forall ff_i_wer_final_factorial_range. (exists ff_lt_wer_final_factorial_range_bound. ff_lt_wer_final_factorial_range_bound + S ff_i_wer_final_factorial_range = n) -> (((exists ff_h_wer_final_factorial_range_decoded. ff_h_wer_final_factorial_range_decoded + S (1 + ff_i_wer_final_factorial_range) = S ((S (ff_i_wer_final_factorial_range)) * ff_c_wer_final_factorial)) /\ exists ff_q_wer_final_factorial_range_decoded. ff_b_wer_final_factorial = ff_q_wer_final_factorial_range_decoded * S ((S (ff_i_wer_final_factorial_range)) * ff_c_wer_final_factorial) + (1 + ff_i_wer_final_factorial_range)))) /\ (exists ff_u_wer_final_factorial_product ff_v_wer_final_factorial_product. ((((exists ff_h_wer_final_factorial_product_start. ff_h_wer_final_factorial_product_start + S (1) = S ((S (0)) * ff_v_wer_final_factorial_product)) /\ exists ff_q_wer_final_factorial_product_start. ff_u_wer_final_factorial_product = ff_q_wer_final_factorial_product_start * S ((S (0)) * ff_v_wer_final_factorial_product) + (1))) /\ ((((exists ff_h_wer_final_factorial_product_terminal. ff_h_wer_final_factorial_product_terminal + S (F) = S ((S (n)) * ff_v_wer_final_factorial_product)) /\ exists ff_q_wer_final_factorial_product_terminal. ff_u_wer_final_factorial_product = ff_q_wer_final_factorial_product_terminal * S ((S (n)) * ff_v_wer_final_factorial_product) + (F))) /\ forall ff_i_wer_final_factorial_product. (exists ff_lt_wer_final_factorial_product_bound. ff_lt_wer_final_factorial_product_bound + S ff_i_wer_final_factorial_product = n) -> exists ff_p_wer_final_factorial_product ff_r_wer_final_factorial_product ff_s_wer_final_factorial_product. ((((exists ff_h_wer_final_factorial_product_factor. ff_h_wer_final_factorial_product_factor + S (ff_p_wer_final_factorial_product) = S ((S (ff_i_wer_final_factorial_product)) * ff_c_wer_final_factorial)) /\ exists ff_q_wer_final_factorial_product_factor. ff_b_wer_final_factorial = ff_q_wer_final_factorial_product_factor * S ((S (ff_i_wer_final_factorial_product)) * ff_c_wer_final_factorial) + (ff_p_wer_final_factorial_product))) /\ ((((exists ff_h_wer_final_factorial_product_partial. ff_h_wer_final_factorial_product_partial + S (ff_r_wer_final_factorial_product) = S ((S (ff_i_wer_final_factorial_product)) * ff_v_wer_final_factorial_product)) /\ exists ff_q_wer_final_factorial_product_partial. ff_u_wer_final_factorial_product = ff_q_wer_final_factorial_product_partial * S ((S (ff_i_wer_final_factorial_product)) * ff_v_wer_final_factorial_product) + (ff_r_wer_final_factorial_product))) /\ ((((exists ff_h_wer_final_factorial_product_successor. ff_h_wer_final_factorial_product_successor + S (ff_s_wer_final_factorial_product) = S ((S (S ff_i_wer_final_factorial_product)) * ff_v_wer_final_factorial_product)) /\ exists ff_q_wer_final_factorial_product_successor. ff_u_wer_final_factorial_product = ff_q_wer_final_factorial_product_successor * S ((S (S ff_i_wer_final_factorial_product)) * ff_v_wer_final_factorial_product) + (ff_s_wer_final_factorial_product))) /\ ff_s_wer_final_factorial_product = ff_r_wer_final_factorial_product * ff_p_wer_final_factorial_product)))))))) -> (exists wpp_mod_left_wer_final_mod wpp_mod_right_wer_final_mod. (F) + p * wpp_mod_left_wer_final_mod = (n) + p * wpp_mod_right_wer_final_mod)Proof neighborhood
Direct theorem prerequisites
PA00A2 prime_two_or_terminal_odd_shape PA003V succ_injective PA00A3 factorial_one_value PA0023 mod_eq_refl PA00BF prime_terminal_range_two_product_mod_one_exists PA00BH beta_range_two_product_restore_last PA00BI mod_one_product_restore_predecessorDirect 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–6
02Establish hshapeL7–10
03Separate the logical casesL11–11
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L11
cases hshape
04Establish hnL12–21
05Establish hfoneL22–27
06Establish hfnL28–36
07Separate the logical casesL37–37
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L37
cases hshape_right
08Establish hnterminalL38–45
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply succ injective.
09Establish hterminal_productL46–53
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime terminal range two product mod one exists.
- L46
have hterminal_product : ∃ z. ∃ d. ∃ P. Range(z,d,2,x + x) ∧ (Product(z,d,x + x,P) ∧ ModEq(p,P,1))Definitions: Range(z,d,2,x + x)Product(z,d,x + x,P)ModEq(p,P,1)Original native command in the exact edition - L47
specialize prime_terminal_range_two_product_mod_one_exists p - L48
specialize prime_terminal_range_two_product_mod_one_exists n - L49
specialize prime_terminal_range_two_product_mod_one_exists x - L50
apply prime_terminal_range_two_product_mod_one_exists - L51
exact hpn - L52
exact hp - L53
exact hnterminal
10Separate the logical casesL54–58
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
11Establish hrestoredL59–68
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta range two product restore last.
- L59
have hrestored : F = x3 * n - L60
specialize beta_range_two_product_restore_last x1 - L61
specialize beta_range_two_product_restore_last x2 - L62
specialize beta_range_two_product_restore_last (x + x) - L63
specialize beta_range_two_product_restore_last x3 - L64
specialize beta_range_two_product_restore_last n - L65
specialize beta_range_two_product_restore_last F - L66
apply beta_range_two_product_restore_last - L67
exact hnterminal - L68
exact hterminal_product_witness_witness_witness_left
12Use earlier factsL69–77
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L69
exact hterminal_product_witness_witness_witness_right_left - L70
exact hfactorial - L71
specialize mod_one_product_restore_predecessor p - L72
specialize mod_one_product_restore_predecessor x3 - L73
specialize mod_one_product_restore_predecessor n - L74
specialize mod_one_product_restore_predecessor F - L75
apply mod_one_product_restore_predecessor - L76
exact hrestored - L77
exact hterminal_product_witness_witness_witness_right_right
Original defined command ledger · 77 lines
- 0001
intro p - 0002
intro n - 0003
intro F - 0004
intro hpn - 0005
intro hp - 0006
intro hfactorial - 0007
have hshape : p = 2 \/ exists m. p = S (S (S (m + m))) - 0008
specialize prime_two_or_terminal_odd_shape p - 0009
apply prime_two_or_terminal_odd_shape - 0010
exact hp - 0011
cases hshape - 0012
have hn : n = 1 - 0013
specialize succ_injective n - 0014
specialize succ_injective 1 - 0015
apply succ_injective - 0016
trans p - 0017
symm - 0018
exact hpn - 0019
trans 2 - 0020
exact hshape_left - 0021
refl - 0022
have hfone : F = 1 - 0023
specialize factorial_one_value n - 0024
specialize factorial_one_value F - 0025
apply factorial_one_value - 0026
exact hn - 0027
exact hfactorial - 0028
have hfn : F = n - 0029
trans 1 - 0030
exact hfone - 0031
symm - 0032
exact hn - 0033
rewrite hfn - 0034
specialize mod_eq_refl p - 0035
specialize mod_eq_refl n - 0036
exact mod_eq_refl - 0037
cases hshape_right - 0038
have hnterminal : n = S (S (x + x)) - 0039
specialize succ_injective n - 0040
specialize succ_injective (S (S (x + x))) - 0041
apply succ_injective - 0042
trans p - 0043
symm - 0044
exact hpn - 0045
exact hshape_right_witness - 0046
have hterminal_product : ∃ z. ∃ d. ∃ P. Range(z,d,2,x + x) ∧ (Product(z,d,x + x,P) ∧ ModEq(p,P,1))Exact native replay line
have hterminal_product : exists z d P. ((forall wtp_range_index_wer_final_terminal_range. (exists wtp_range_gap_wer_final_terminal_range. wtp_range_gap_wer_final_terminal_range + S wtp_range_index_wer_final_terminal_range = x + x) -> (((exists ff_h_wer_final_terminal_range_decoded. ff_h_wer_final_terminal_range_decoded + S (2 + wtp_range_index_wer_final_terminal_range) = S ((S (wtp_range_index_wer_final_terminal_range)) * d)) /\ exists ff_q_wer_final_terminal_range_decoded. z = ff_q_wer_final_terminal_range_decoded * S ((S (wtp_range_index_wer_final_terminal_range)) * d) + (2 + wtp_range_index_wer_final_terminal_range)))) /\ (((exists ff_u_wer_final_terminal_product ff_v_wer_final_terminal_product. ((((exists ff_h_wer_final_terminal_product_start. ff_h_wer_final_terminal_product_start + S (1) = S ((S (0)) * ff_v_wer_final_terminal_product)) /\ exists ff_q_wer_final_terminal_product_start. ff_u_wer_final_terminal_product = ff_q_wer_final_terminal_product_start * S ((S (0)) * ff_v_wer_final_terminal_product) + (1))) /\ ((((exists ff_h_wer_final_terminal_product_terminal. ff_h_wer_final_terminal_product_terminal + S (P) = S ((S (x + x)) * ff_v_wer_final_terminal_product)) /\ exists ff_q_wer_final_terminal_product_terminal. ff_u_wer_final_terminal_product = ff_q_wer_final_terminal_product_terminal * S ((S (x + x)) * ff_v_wer_final_terminal_product) + (P))) /\ forall ff_i_wer_final_terminal_product. (exists ff_lt_wer_final_terminal_product_bound. ff_lt_wer_final_terminal_product_bound + S ff_i_wer_final_terminal_product = x + x) -> exists ff_p_wer_final_terminal_product ff_r_wer_final_terminal_product ff_s_wer_final_terminal_product. ((((exists ff_h_wer_final_terminal_product_factor. ff_h_wer_final_terminal_product_factor + S (ff_p_wer_final_terminal_product) = S ((S (ff_i_wer_final_terminal_product)) * d)) /\ exists ff_q_wer_final_terminal_product_factor. z = ff_q_wer_final_terminal_product_factor * S ((S (ff_i_wer_final_terminal_product)) * d) + (ff_p_wer_final_terminal_product))) /\ ((((exists ff_h_wer_final_terminal_product_partial. ff_h_wer_final_terminal_product_partial + S (ff_r_wer_final_terminal_product) = S ((S (ff_i_wer_final_terminal_product)) * ff_v_wer_final_terminal_product)) /\ exists ff_q_wer_final_terminal_product_partial. ff_u_wer_final_terminal_product = ff_q_wer_final_terminal_product_partial * S ((S (ff_i_wer_final_terminal_product)) * ff_v_wer_final_terminal_product) + (ff_r_wer_final_terminal_product))) /\ ((((exists ff_h_wer_final_terminal_product_successor. ff_h_wer_final_terminal_product_successor + S (ff_s_wer_final_terminal_product) = S ((S (S ff_i_wer_final_terminal_product)) * ff_v_wer_final_terminal_product)) /\ exists ff_q_wer_final_terminal_product_successor. ff_u_wer_final_terminal_product = ff_q_wer_final_terminal_product_successor * S ((S (S ff_i_wer_final_terminal_product)) * ff_v_wer_final_terminal_product) + (ff_s_wer_final_terminal_product))) /\ ff_s_wer_final_terminal_product = ff_r_wer_final_terminal_product * ff_p_wer_final_terminal_product)))))) /\ (exists wpp_mod_left_wer_final_terminal_mod wpp_mod_right_wer_final_terminal_mod. (P) + p * wpp_mod_left_wer_final_terminal_mod = (1) + p * wpp_mod_right_wer_final_terminal_mod)))) - 0047
specialize prime_terminal_range_two_product_mod_one_exists p - 0048
specialize prime_terminal_range_two_product_mod_one_exists n - 0049
specialize prime_terminal_range_two_product_mod_one_exists x - 0050
apply prime_terminal_range_two_product_mod_one_exists - 0051
exact hpn - 0052
exact hp - 0053
exact hnterminal - 0054
cases hterminal_product - 0055
cases hterminal_product_witness - 0056
cases hterminal_product_witness_witness - 0057
cases hterminal_product_witness_witness_witness - 0058
cases hterminal_product_witness_witness_witness_right - 0059
have hrestored : F = x3 * n - 0060
specialize beta_range_two_product_restore_last x1 - 0061
specialize beta_range_two_product_restore_last x2 - 0062
specialize beta_range_two_product_restore_last (x + x) - 0063
specialize beta_range_two_product_restore_last x3 - 0064
specialize beta_range_two_product_restore_last n - 0065
specialize beta_range_two_product_restore_last F - 0066
apply beta_range_two_product_restore_last - 0067
exact hnterminal - 0068
exact hterminal_product_witness_witness_witness_left - 0069
exact hterminal_product_witness_witness_witness_right_left - 0070
exact hfactorial - 0071
specialize mod_one_product_restore_predecessor p - 0072
specialize mod_one_product_restore_predecessor x3 - 0073
specialize mod_one_product_restore_predecessor n - 0074
specialize mod_one_product_restore_predecessor F - 0075
apply mod_one_product_restore_predecessor - 0076
exact hrestored - 0077
exact hterminal_product_witness_witness_witness_right_right