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. ∀ a. ∀ n. ∀ h. ∀ A. p = S n → Prime(p) → ¬a = 0 → Lt(a,p) → ¬QRes(p,a) → n = h + h → Pow(a,h,A) → ModEq(p,A,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
5 occurrences
In local proof propositions
1 occurrences
Exact expanded native-PA statement
forall p a n h A. p = S n -> ((~(p = 1) /\ forall esi_prime_left_enr_prime esi_prime_right_enr_prime. p = esi_prime_left_enr_prime * esi_prime_right_enr_prime -> esi_prime_left_enr_prime = 1 \/ esi_prime_right_enr_prime = 1)) -> ~(a = 0) -> (exists wpo_gap_enr_target_bound. wpo_gap_enr_target_bound + S (a) = p) -> ~(exists qr_x_enr_nonresidue. exists qr_u_enr_nonresidue qr_v_enr_nonresidue. qr_x_enr_nonresidue * qr_x_enr_nonresidue + p * qr_u_enr_nonresidue = a + p * qr_v_enr_nonresidue) -> n = h + h -> (exists ff_b_enr_terminal_power ff_c_enr_terminal_power. ((forall ff_i_enr_terminal_power_repeat. (exists ff_lt_enr_terminal_power_repeat_bound. ff_lt_enr_terminal_power_repeat_bound + S ff_i_enr_terminal_power_repeat = h) -> (((exists ff_h_enr_terminal_power_repeat_decoded. ff_h_enr_terminal_power_repeat_decoded + S (a) = S ((S (ff_i_enr_terminal_power_repeat)) * ff_c_enr_terminal_power)) /\ exists ff_q_enr_terminal_power_repeat_decoded. ff_b_enr_terminal_power = ff_q_enr_terminal_power_repeat_decoded * S ((S (ff_i_enr_terminal_power_repeat)) * ff_c_enr_terminal_power) + (a)))) /\ (exists ff_u_enr_terminal_power_product ff_v_enr_terminal_power_product. ((((exists ff_h_enr_terminal_power_product_start. ff_h_enr_terminal_power_product_start + S (1) = S ((S (0)) * ff_v_enr_terminal_power_product)) /\ exists ff_q_enr_terminal_power_product_start. ff_u_enr_terminal_power_product = ff_q_enr_terminal_power_product_start * S ((S (0)) * ff_v_enr_terminal_power_product) + (1))) /\ ((((exists ff_h_enr_terminal_power_product_terminal. ff_h_enr_terminal_power_product_terminal + S (A) = S ((S (h)) * ff_v_enr_terminal_power_product)) /\ exists ff_q_enr_terminal_power_product_terminal. ff_u_enr_terminal_power_product = ff_q_enr_terminal_power_product_terminal * S ((S (h)) * ff_v_enr_terminal_power_product) + (A))) /\ forall ff_i_enr_terminal_power_product. (exists ff_lt_enr_terminal_power_product_bound. ff_lt_enr_terminal_power_product_bound + S ff_i_enr_terminal_power_product = h) -> exists ff_p_enr_terminal_power_product ff_r_enr_terminal_power_product ff_s_enr_terminal_power_product. ((((exists ff_h_enr_terminal_power_product_factor. ff_h_enr_terminal_power_product_factor + S (ff_p_enr_terminal_power_product) = S ((S (ff_i_enr_terminal_power_product)) * ff_c_enr_terminal_power)) /\ exists ff_q_enr_terminal_power_product_factor. ff_b_enr_terminal_power = ff_q_enr_terminal_power_product_factor * S ((S (ff_i_enr_terminal_power_product)) * ff_c_enr_terminal_power) + (ff_p_enr_terminal_power_product))) /\ ((((exists ff_h_enr_terminal_power_product_partial. ff_h_enr_terminal_power_product_partial + S (ff_r_enr_terminal_power_product) = S ((S (ff_i_enr_terminal_power_product)) * ff_v_enr_terminal_power_product)) /\ exists ff_q_enr_terminal_power_product_partial. ff_u_enr_terminal_power_product = ff_q_enr_terminal_power_product_partial * S ((S (ff_i_enr_terminal_power_product)) * ff_v_enr_terminal_power_product) + (ff_r_enr_terminal_power_product))) /\ ((((exists ff_h_enr_terminal_power_product_successor. ff_h_enr_terminal_power_product_successor + S (ff_s_enr_terminal_power_product) = S ((S (S ff_i_enr_terminal_power_product)) * ff_v_enr_terminal_power_product)) /\ exists ff_q_enr_terminal_power_product_successor. ff_u_enr_terminal_power_product = ff_q_enr_terminal_power_product_successor * S ((S (S ff_i_enr_terminal_power_product)) * ff_v_enr_terminal_power_product) + (ff_s_enr_terminal_power_product))) /\ ff_s_enr_terminal_power_product = ff_r_enr_terminal_power_product * ff_p_enr_terminal_power_product)))))))) -> (exists wpp_mod_left_enr_terminal_result wpp_mod_right_enr_terminal_result. (A) + p * wpp_mod_left_enr_terminal_result = (n) + p * wpp_mod_right_enr_terminal_result)Proof neighborhood
Direct theorem prerequisites
PA008T prime_scaled_inverse_prefix_exists PA00BL scaled_inverse_nonresidue_half_power_mod_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 (2)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–12
03Establish hprefix_existsL13–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime scaled inverse prefix exists.
- L13
have hprefix_exists : ∃ u. ∃ v. ScaledInversePrefix(p,a,n,u,v,n)Definitions: ScaledInversePrefix(p,a,n,u,v,n)Original native command in the exact edition - L14
specialize prime_scaled_inverse_prefix_exists p - L15
specialize prime_scaled_inverse_prefix_exists a - L16
specialize prime_scaled_inverse_prefix_exists n - L17
apply prime_scaled_inverse_prefix_exists - L18
exact hpn - L19
exact hp - L20
exact ha0 - L21
exact hap
04Separate the logical casesL22–23
05Use earlier factsL24–33
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L24
specialize scaled_inverse_nonresidue_half_power_mod_predecessor p - L25
specialize scaled_inverse_nonresidue_half_power_mod_predecessor a - L26
specialize scaled_inverse_nonresidue_half_power_mod_predecessor n - L27
specialize scaled_inverse_nonresidue_half_power_mod_predecessor x - L28
specialize scaled_inverse_nonresidue_half_power_mod_predecessor x1 - L29
specialize scaled_inverse_nonresidue_half_power_mod_predecessor h - L30
specialize scaled_inverse_nonresidue_half_power_mod_predecessor A - L31
apply scaled_inverse_nonresidue_half_power_mod_predecessor - L32
exact hpn - L33
exact hp
Original defined command ledger · 37 lines
- 0001
intro p - 0002
intro a - 0003
intro n - 0004
intro h - 0005
intro A - 0006
intro hpn - 0007
intro hp - 0008
intro ha0 - 0009
intro hap - 0010
intro hnonresidue - 0011
intro heven - 0012
intro hpower - 0013
have hprefix_exists : ∃ u. ∃ v. ScaledInversePrefix(p,a,n,u,v,n)Exact native replay line
have hprefix_exists : exists u v. (forall esip_index_enr_prefix. (exists esip_gap_enr_prefix_prefix_bound. esip_gap_enr_prefix_prefix_bound + S (esip_index_enr_prefix) = n) -> exists esip_mate_enr_prefix. ((((exists ff_h_esip_enr_prefix_entry. ff_h_esip_enr_prefix_entry + S (esip_mate_enr_prefix) = S ((S (esip_index_enr_prefix)) * v)) /\ exists ff_q_esip_enr_prefix_entry. u = ff_q_esip_enr_prefix_entry * S ((S (esip_index_enr_prefix)) * v) + (esip_mate_enr_prefix))) /\ ((exists esip_gap_enr_prefix_relation_index_bound. esip_gap_enr_prefix_relation_index_bound + S (esip_index_enr_prefix) = n) /\ ((((~((S esip_index_enr_prefix) = 0) /\ (exists esip_gap_enr_prefix_relation_scaled_left_bound. esip_gap_enr_prefix_relation_scaled_left_bound + S (S esip_index_enr_prefix) = p))) /\ (((~(esip_mate_enr_prefix = 0) /\ (exists esip_gap_enr_prefix_relation_scaled_right_bound. esip_gap_enr_prefix_relation_scaled_right_bound + S (esip_mate_enr_prefix) = p))) /\ (exists esi_mod_left_enr_prefix_relation_scaled_mod esi_mod_right_enr_prefix_relation_scaled_mod. ((S esip_index_enr_prefix) * esip_mate_enr_prefix) + p * esi_mod_left_enr_prefix_relation_scaled_mod = (a) + p * esi_mod_right_enr_prefix_relation_scaled_mod))))))) - 0014
specialize prime_scaled_inverse_prefix_exists p - 0015
specialize prime_scaled_inverse_prefix_exists a - 0016
specialize prime_scaled_inverse_prefix_exists n - 0017
apply prime_scaled_inverse_prefix_exists - 0018
exact hpn - 0019
exact hp - 0020
exact ha0 - 0021
exact hap - 0022
cases hprefix_exists - 0023
cases hprefix_exists_witness - 0024
specialize scaled_inverse_nonresidue_half_power_mod_predecessor p - 0025
specialize scaled_inverse_nonresidue_half_power_mod_predecessor a - 0026
specialize scaled_inverse_nonresidue_half_power_mod_predecessor n - 0027
specialize scaled_inverse_nonresidue_half_power_mod_predecessor x - 0028
specialize scaled_inverse_nonresidue_half_power_mod_predecessor x1 - 0029
specialize scaled_inverse_nonresidue_half_power_mod_predecessor h - 0030
specialize scaled_inverse_nonresidue_half_power_mod_predecessor A - 0031
apply scaled_inverse_nonresidue_half_power_mod_predecessor - 0032
exact hpn - 0033
exact hp - 0034
exact hnonresidue - 0035
exact hprefix_exists_witness_witness - 0036
exact heven - 0037
exact hpower