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. ∀ r. ∀ s. p = S n → Prime(p) → ¬Dvd(p,a) → (∀ x. Lt(x,n) → ∃ y. Lt(y,n) ∧ (BetaAt(r,s,x,y) ∧ ModEq(p,a · S x,S y))) → InjectivePrefix(r,s,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
7 occurrences
In local proof propositions
11 occurrences
Exact expanded native-PA statement
forall p n a r s. p = S n -> ((~(p = 1) /\ forall frm_prime_left_injective_prime frm_prime_right_injective_prime. p = frm_prime_left_injective_prime * frm_prime_right_injective_prime -> frm_prime_left_injective_prime = 1 \/ frm_prime_right_injective_prime = 1)) -> (~(exists frm_factor_injective_multiplier. a = p * frm_factor_injective_multiplier)) -> (forall frm_index_injective_map. (exists frm_gap_injective_map_index_bound. frm_gap_injective_map_index_bound + S frm_index_injective_map = n) -> (exists frm_residue_injective_map_result. (exists frm_gap_injective_map_result_residue_bound. frm_gap_injective_map_result_residue_bound + S frm_residue_injective_map_result = n) /\ ((((exists ff_h_frm_injective_map_result_decoded. ff_h_frm_injective_map_result_decoded + S (frm_residue_injective_map_result) = S ((S (frm_index_injective_map)) * s)) /\ exists ff_q_frm_injective_map_result_decoded. r = ff_q_frm_injective_map_result_decoded * S ((S (frm_index_injective_map)) * s) + (frm_residue_injective_map_result))) /\ (exists frm_mod_left_injective_map_result_congruence frm_mod_right_injective_map_result_congruence. a * S frm_index_injective_map + p * frm_mod_left_injective_map_result_congruence = S frm_residue_injective_map_result + p * frm_mod_right_injective_map_result_congruence)))) -> (forall fp_i_injective_result fp_j_injective_result fp_value_injective_result. (exists fp_gap_injective_result_i. fp_gap_injective_result_i + S fp_i_injective_result = n) -> (exists fp_gap_injective_result_j. fp_gap_injective_result_j + S fp_j_injective_result = n) -> (((exists ff_h_injective_result_left. ff_h_injective_result_left + S (fp_value_injective_result) = S ((S (fp_i_injective_result)) * s)) /\ exists ff_q_injective_result_left. r = ff_q_injective_result_left * S ((S (fp_i_injective_result)) * s) + (fp_value_injective_result))) -> (((exists ff_h_injective_result_right. ff_h_injective_result_right + S (fp_value_injective_result) = S ((S (fp_j_injective_result)) * s)) /\ exists ff_q_injective_result_right. r = ff_q_injective_result_right * S ((S (fp_j_injective_result)) * s) + (fp_value_injective_result))) -> fp_i_injective_result = fp_j_injective_result)Proof neighborhood
Direct theorem prerequisites
PA002F beta_at_unique PA002K succ_le_succ PA003L mod_eq_symm PA0024 mod_eq_trans PA003S prime_mod_cancel PA002U mod_eq_bounded_unique PA003V succ_injectiveDirect 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–10
02Fix variables and assumptionsL11–16
03Establish hmiL17–20
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hmap.
- L17
have hmi : ∃ frm_residue_injective_i. Lt(frm_residue_injective_i,n) ∧ (BetaAt(r,s,i,frm_residue_injective_i) ∧ ModEq(p,a · S i,S frm_residue_injective_i))Definitions: Lt(frm_residue_injective_i,n)BetaAt(r,s,i,frm_residue_injective_i)ModEq(p,a · S i,S frm_residue_injective_i)Original native command in the exact edition - L18
specialize hmap i - L19
apply hmap - L20
exact hi
04Separate the logical casesL21–23
05Establish hmkL24–27
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hmap.
- L24
have hmk : ∃ frm_residue_injective_k. Lt(frm_residue_injective_k,n) ∧ (BetaAt(r,s,k,frm_residue_injective_k) ∧ ModEq(p,a · S k,S frm_residue_injective_k))Definitions: Lt(frm_residue_injective_k,n)BetaAt(r,s,k,frm_residue_injective_k)ModEq(p,a · S k,S frm_residue_injective_k)Original native command in the exact edition - L25
specialize hmap k - L26
apply hmap - L27
exact hk
06Separate the logical casesL28–30
07Establish hvalue_iL31–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
08Establish hvalue_kL40–49
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
09Calculate and transport equalitiesL50–50
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L50
rewrite <- hvalue_k at hmk_witness_right_right
10Establish hreverseL51–56
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq symm.
- L51
have hreverse : ModEq(p,S value,a · S k)Definitions: ModEq(p,S value,a · S k)Original native command in the exact edition - L52
specialize mod_eq_symm p - L53
specialize mod_eq_symm (a * S k) - L54
specialize mod_eq_symm (S value) - L55
apply mod_eq_symm - L56
exact hmk_witness_right_right
11Establish hscaledL57–64
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq trans.
- L57
have hscaled : ModEq(p,a · S i,a · S k)Definitions: ModEq(p,a · S i,a · S k)Original native command in the exact edition - L58
specialize mod_eq_trans p - L59
specialize mod_eq_trans (a * S i) - L60
specialize mod_eq_trans (S value) - L61
specialize mod_eq_trans (a * S k) - L62
apply mod_eq_trans - L63
exact hmi_witness_right_right - L64
exact hreverse
12Establish hcancelL65–73
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime mod cancel.
- L65
have hcancel : ModEq(p,S i,S k)Definitions: ModEq(p,S i,S k)Original native command in the exact edition - L66
specialize prime_mod_cancel p - L67
specialize prime_mod_cancel a - L68
specialize prime_mod_cancel (S i) - L69
specialize prime_mod_cancel (S k) - L70
apply prime_mod_cancel - L71
exact hp - L72
exact hnotdiv - L73
exact hscaled
13Establish hiboundL74–79
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply succ le succ.
14Establish hkboundL80–85
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply succ le succ.
15Establish hsuccL86–95
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq bounded unique.
Original defined command ledger · 97 lines
- 0001
intro p - 0002
intro n - 0003
intro a - 0004
intro r - 0005
intro s - 0006
intro hpn - 0007
intro hp - 0008
intro hnotdiv - 0009
intro hmap - 0010
intro i - 0011
intro k - 0012
intro value - 0013
intro hi - 0014
intro hk - 0015
intro hri - 0016
intro hrk - 0017
have hmi : ∃ frm_residue_injective_i. Lt(frm_residue_injective_i,n) ∧ (BetaAt(r,s,i,frm_residue_injective_i) ∧ ModEq(p,a · S i,S frm_residue_injective_i))Exact native replay line
have hmi : exists frm_residue_injective_i. (exists frm_gap_injective_i_residue_bound. frm_gap_injective_i_residue_bound + S frm_residue_injective_i = n) /\ ((((exists ff_h_frm_injective_i_decoded. ff_h_frm_injective_i_decoded + S (frm_residue_injective_i) = S ((S (i)) * s)) /\ exists ff_q_frm_injective_i_decoded. r = ff_q_frm_injective_i_decoded * S ((S (i)) * s) + (frm_residue_injective_i))) /\ (exists frm_mod_left_injective_i_congruence frm_mod_right_injective_i_congruence. a * S i + p * frm_mod_left_injective_i_congruence = S frm_residue_injective_i + p * frm_mod_right_injective_i_congruence)) - 0018
specialize hmap i - 0019
apply hmap - 0020
exact hi - 0021
cases hmi - 0022
cases hmi_witness - 0023
cases hmi_witness_right - 0024
have hmk : ∃ frm_residue_injective_k. Lt(frm_residue_injective_k,n) ∧ (BetaAt(r,s,k,frm_residue_injective_k) ∧ ModEq(p,a · S k,S frm_residue_injective_k))Exact native replay line
have hmk : exists frm_residue_injective_k. (exists frm_gap_injective_k_residue_bound. frm_gap_injective_k_residue_bound + S frm_residue_injective_k = n) /\ ((((exists ff_h_frm_injective_k_decoded. ff_h_frm_injective_k_decoded + S (frm_residue_injective_k) = S ((S (k)) * s)) /\ exists ff_q_frm_injective_k_decoded. r = ff_q_frm_injective_k_decoded * S ((S (k)) * s) + (frm_residue_injective_k))) /\ (exists frm_mod_left_injective_k_congruence frm_mod_right_injective_k_congruence. a * S k + p * frm_mod_left_injective_k_congruence = S frm_residue_injective_k + p * frm_mod_right_injective_k_congruence)) - 0025
specialize hmap k - 0026
apply hmap - 0027
exact hk - 0028
cases hmk - 0029
cases hmk_witness - 0030
cases hmk_witness_right - 0031
have hvalue_i : value = x - 0032
specialize beta_at_unique r - 0033
specialize beta_at_unique s - 0034
specialize beta_at_unique i - 0035
specialize beta_at_unique value - 0036
specialize beta_at_unique x - 0037
apply beta_at_unique - 0038
exact hri - 0039
exact hmi_witness_right_left - 0040
have hvalue_k : value = x1 - 0041
specialize beta_at_unique r - 0042
specialize beta_at_unique s - 0043
specialize beta_at_unique k - 0044
specialize beta_at_unique value - 0045
specialize beta_at_unique x1 - 0046
apply beta_at_unique - 0047
exact hrk - 0048
exact hmk_witness_right_left - 0049
rewrite <- hvalue_i at hmi_witness_right_right - 0050
rewrite <- hvalue_k at hmk_witness_right_right - 0051
have hreverse : ModEq(p,S value,a · S k)Exact native replay line
have hreverse : exists frr_reverse_left_injective_reverse frr_reverse_right_injective_reverse. S value + p * frr_reverse_left_injective_reverse = a * S k + p * frr_reverse_right_injective_reverse - 0052
specialize mod_eq_symm p - 0053
specialize mod_eq_symm (a * S k) - 0054
specialize mod_eq_symm (S value) - 0055
apply mod_eq_symm - 0056
exact hmk_witness_right_right - 0057
have hscaled : ModEq(p,a · S i,a · S k)Exact native replay line
have hscaled : exists frr_scaled_left_injective_scaled frr_scaled_right_injective_scaled. a * S i + p * frr_scaled_left_injective_scaled = a * S k + p * frr_scaled_right_injective_scaled - 0058
specialize mod_eq_trans p - 0059
specialize mod_eq_trans (a * S i) - 0060
specialize mod_eq_trans (S value) - 0061
specialize mod_eq_trans (a * S k) - 0062
apply mod_eq_trans - 0063
exact hmi_witness_right_right - 0064
exact hreverse - 0065
have hcancel : ModEq(p,S i,S k)Exact native replay line
have hcancel : exists frr_cancel_left_injective_canceled frr_cancel_right_injective_canceled. S i + p * frr_cancel_left_injective_canceled = S k + p * frr_cancel_right_injective_canceled - 0066
specialize prime_mod_cancel p - 0067
specialize prime_mod_cancel a - 0068
specialize prime_mod_cancel (S i) - 0069
specialize prime_mod_cancel (S k) - 0070
apply prime_mod_cancel - 0071
exact hp - 0072
exact hnotdiv - 0073
exact hscaled - 0074
have hibound : Lt(S i,p)Exact native replay line
have hibound : exists frr_successor_bound_injective_i_bound. frr_successor_bound_injective_i_bound + S (S i) = p - 0075
rewrite hpn - 0076
specialize succ_le_succ (S i) - 0077
specialize succ_le_succ n - 0078
apply succ_le_succ - 0079
exact hi - 0080
have hkbound : Lt(S k,p)Exact native replay line
have hkbound : exists frr_successor_bound_injective_k_bound. frr_successor_bound_injective_k_bound + S (S k) = p - 0081
rewrite hpn - 0082
specialize succ_le_succ (S k) - 0083
specialize succ_le_succ n - 0084
apply succ_le_succ - 0085
exact hk - 0086
have hsucc : S i = S k - 0087
specialize mod_eq_bounded_unique p - 0088
specialize mod_eq_bounded_unique (S i) - 0089
specialize mod_eq_bounded_unique (S k) - 0090
apply mod_eq_bounded_unique - 0091
exact hibound - 0092
exact hkbound - 0093
exact hcancel - 0094
specialize succ_injective i - 0095
specialize succ_injective k - 0096
apply succ_injective - 0097
exact hsucc