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. ∀ u. ∀ v. ∀ b. ∀ c. ∀ l. p = S n → Prime(p) → ¬QRes(p,a) → ScaledInversePrefix(p,a,n,u,v,n) → Lt(l,n) → ∃ x. ∃ y. Lt(x,n) ∧ (¬ContainsPrefix(b,c,l,x) ∧ (Lt(y,n) ∧ (¬x = y ∧ (BetaAt(u,v,x,S y) ∧ BetaAt(u,v,y,S x)))))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
9 occurrences
In local proof propositions
7 occurrences
Exact expanded native-PA statement
forall p a n u v b c l. p = S n -> ((~(p = 1) /\ forall esi_prime_left_espo_choose_prime esi_prime_right_espo_choose_prime. p = esi_prime_left_espo_choose_prime * esi_prime_right_espo_choose_prime -> esi_prime_left_espo_choose_prime = 1 \/ esi_prime_right_espo_choose_prime = 1)) -> ~(exists qr_x_espo_choose_nonresidue. exists qr_u_espo_choose_nonresidue qr_v_espo_choose_nonresidue. qr_x_espo_choose_nonresidue * qr_x_espo_choose_nonresidue + p * qr_u_espo_choose_nonresidue = a + p * qr_v_espo_choose_nonresidue) -> (forall esip_index_espo_choose_prefix. (exists esip_gap_espo_choose_prefix_prefix_bound. esip_gap_espo_choose_prefix_prefix_bound + S (esip_index_espo_choose_prefix) = n) -> exists esip_mate_espo_choose_prefix. ((((exists ff_h_esip_espo_choose_prefix_entry. ff_h_esip_espo_choose_prefix_entry + S (esip_mate_espo_choose_prefix) = S ((S (esip_index_espo_choose_prefix)) * v)) /\ exists ff_q_esip_espo_choose_prefix_entry. u = ff_q_esip_espo_choose_prefix_entry * S ((S (esip_index_espo_choose_prefix)) * v) + (esip_mate_espo_choose_prefix))) /\ ((exists esip_gap_espo_choose_prefix_relation_index_bound. esip_gap_espo_choose_prefix_relation_index_bound + S (esip_index_espo_choose_prefix) = n) /\ ((((~((S esip_index_espo_choose_prefix) = 0) /\ (exists esip_gap_espo_choose_prefix_relation_scaled_left_bound. esip_gap_espo_choose_prefix_relation_scaled_left_bound + S (S esip_index_espo_choose_prefix) = p))) /\ (((~(esip_mate_espo_choose_prefix = 0) /\ (exists esip_gap_espo_choose_prefix_relation_scaled_right_bound. esip_gap_espo_choose_prefix_relation_scaled_right_bound + S (esip_mate_espo_choose_prefix) = p))) /\ (exists esi_mod_left_espo_choose_prefix_relation_scaled_mod esi_mod_right_espo_choose_prefix_relation_scaled_mod. ((S esip_index_espo_choose_prefix) * esip_mate_espo_choose_prefix) + p * esi_mod_left_espo_choose_prefix_relation_scaled_mod = (a) + p * esi_mod_right_espo_choose_prefix_relation_scaled_mod))))))) -> (exists wpo_gap_choose_short. wpo_gap_choose_short + S (l) = n) -> (exists i j. ((exists wpo_gap_chosen_i_bound. wpo_gap_chosen_i_bound + S (i) = n) /\ (((~(exists wpo_index_chosen_i_omit_contains. ((exists wpo_gap_chosen_i_omit_contains_bound. wpo_gap_chosen_i_omit_contains_bound + S (wpo_index_chosen_i_omit_contains) = l) /\ (((exists wpo_beta_height_chosen_i_omit_contains_entry. wpo_beta_height_chosen_i_omit_contains_entry + S (i) = S ((S (wpo_index_chosen_i_omit_contains)) * c)) /\ exists wpo_beta_quotient_chosen_i_omit_contains_entry. b = wpo_beta_quotient_chosen_i_omit_contains_entry * S ((S (wpo_index_chosen_i_omit_contains)) * c) + (i)))))) /\ (((exists wpo_gap_chosen_j_bound. wpo_gap_chosen_j_bound + S (j) = n) /\ (((~(i = j)) /\ (((((exists wpo_beta_height_chosen_forward. wpo_beta_height_chosen_forward + S (S j) = S ((S (i)) * v)) /\ exists wpo_beta_quotient_chosen_forward. u = wpo_beta_quotient_chosen_forward * S ((S (i)) * v) + (S j))) /\ (((exists wpo_beta_height_chosen_back. wpo_beta_height_chosen_back + S (S i) = S ((S (j)) * v)) /\ exists wpo_beta_quotient_chosen_back. u = wpo_beta_quotient_chosen_back * S ((S (j)) * v) + (S i)))))))))))))Proof neighborhood
Direct theorem prerequisites
PA0098 finite_short_prefix_omits PA009E scaled_inverse_prefix_involutive PA009H scaled_inverse_prefix_no_fixed_of_not_qresDirect 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 (3)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–13
03Establish homittedL14–20
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite short prefix omits.
- L14
have homitted : ∃ wpo_value_choose_omitted. Lt(wpo_value_choose_omitted,n) ∧ ¬ContainsPrefix(b,c,l,wpo_value_choose_omitted)Definitions: Lt(wpo_value_choose_omitted,n)ContainsPrefix(b,c,l,wpo_value_choose_omitted)Original native command in the exact edition - L15
specialize finite_short_prefix_omits b - L16
specialize finite_short_prefix_omits c - L17
specialize finite_short_prefix_omits l - L18
specialize finite_short_prefix_omits n - L19
apply finite_short_prefix_omits - L20
exact hshort
04Separate the logical casesL21–22
05Establish hstoredL23–26
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hprefix.
- L23
have hstored : ∃ y. BetaAt(u,v,x,y) ∧ ScaledInverseIndex(p,a,n,x,y)Definitions: BetaAt(u,v,x,y)ScaledInverseIndex(p,a,n,x,y)Original native command in the exact edition - L24
specialize hprefix x - L25
apply hprefix - L26
exact homitted_witness_left
06Separate the logical casesL27–28
07Establish hinvolutiveL29–38
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply scaled inverse prefix involutive.
- L29
have hinvolutive : ∃ j. x1 = S j ∧ (Lt(j,n) ∧ BetaAt(u,v,j,S x))Definitions: Lt(j,n)BetaAt(u,v,j,S x)Original native command in the exact edition - L30
specialize scaled_inverse_prefix_involutive p - L31
specialize scaled_inverse_prefix_involutive a - L32
specialize scaled_inverse_prefix_involutive n - L33
specialize scaled_inverse_prefix_involutive u - L34
specialize scaled_inverse_prefix_involutive v - L35
specialize scaled_inverse_prefix_involutive x - L36
specialize scaled_inverse_prefix_involutive x1 - L37
apply scaled_inverse_prefix_involutive - L38
exact hpn
08Use earlier factsL39–42
09Separate the logical casesL43–45
10Establish hforwardL46–49
Establish this local claim before using it. It is not an additional assumption.
- L46
have hforward : BetaAt(u,v,x,S x2)Definitions: BetaAt(u,v,x,S x2)Original native command in the exact edition - L47
rewrite <- hinvolutive_witness_left - L48
rewrite <- hinvolutive_witness_left - L49
exact hstored_witness_left
11Establish hdistinctL50–59
Establish this local claim before using it. It is not an additional assumption.
- L50
have hdistinct : ~(x = x2) - L51
intro heq - L52
rewrite <- heq at hforward - L53
rewrite <- heq at hforward - L54
specialize scaled_inverse_prefix_no_fixed_of_not_qres p - L55
specialize scaled_inverse_prefix_no_fixed_of_not_qres a - L56
specialize scaled_inverse_prefix_no_fixed_of_not_qres n - L57
specialize scaled_inverse_prefix_no_fixed_of_not_qres u - L58
specialize scaled_inverse_prefix_no_fixed_of_not_qres v - L59
specialize scaled_inverse_prefix_no_fixed_of_not_qres n
12Use earlier factsL60–65
13Construct an explicit witnessL66–67
14Separate the logical casesL68–68
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L68
split
15Use earlier factsL69–69
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L69
exact homitted_witness_left
16Separate the logical casesL70–70
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L70
split
17Use earlier factsL71–71
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L71
exact homitted_witness_right
18Separate the logical casesL72–72
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L72
split
19Use earlier factsL73–73
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L73
exact hinvolutive_witness_right_left
20Separate the logical casesL74–74
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L74
split
21Use earlier factsL75–75
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L75
exact hdistinct
22Separate the logical casesL76–76
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L76
split
Original defined command ledger · 78 lines
- 0001
intro p - 0002
intro a - 0003
intro n - 0004
intro u - 0005
intro v - 0006
intro b - 0007
intro c - 0008
intro l - 0009
intro hpn - 0010
intro hp - 0011
intro hnotqres - 0012
intro hprefix - 0013
intro hshort - 0014
have homitted : ∃ wpo_value_choose_omitted. Lt(wpo_value_choose_omitted,n) ∧ ¬ContainsPrefix(b,c,l,wpo_value_choose_omitted)Exact native replay line
have homitted : exists wpo_value_choose_omitted. ((exists wpo_gap_choose_omitted_value_bound. wpo_gap_choose_omitted_value_bound + S (wpo_value_choose_omitted) = n) /\ (~(exists wpo_index_choose_omitted_omitted_contains. ((exists wpo_gap_choose_omitted_omitted_contains_bound. wpo_gap_choose_omitted_omitted_contains_bound + S (wpo_index_choose_omitted_omitted_contains) = l) /\ (((exists wpo_beta_height_choose_omitted_omitted_contains_entry. wpo_beta_height_choose_omitted_omitted_contains_entry + S (wpo_value_choose_omitted) = S ((S (wpo_index_choose_omitted_omitted_contains)) * c)) /\ exists wpo_beta_quotient_choose_omitted_omitted_contains_entry. b = wpo_beta_quotient_choose_omitted_omitted_contains_entry * S ((S (wpo_index_choose_omitted_omitted_contains)) * c) + (wpo_value_choose_omitted))))))) - 0015
specialize finite_short_prefix_omits b - 0016
specialize finite_short_prefix_omits c - 0017
specialize finite_short_prefix_omits l - 0018
specialize finite_short_prefix_omits n - 0019
apply finite_short_prefix_omits - 0020
exact hshort - 0021
cases homitted - 0022
cases homitted_witness - 0023
have hstored : ∃ y. BetaAt(u,v,x,y) ∧ ScaledInverseIndex(p,a,n,x,y)Exact native replay line
have hstored : exists y. ((((exists wpo_beta_height_chosen_stored_x_entry. wpo_beta_height_chosen_stored_x_entry + S (y) = S ((S (x)) * v)) /\ exists wpo_beta_quotient_chosen_stored_x_entry. u = wpo_beta_quotient_chosen_stored_x_entry * S ((S (x)) * v) + (y))) /\ ((exists esip_gap_chosen_stored_x_relation_index_bound. esip_gap_chosen_stored_x_relation_index_bound + S (x) = n) /\ ((((~((S x) = 0) /\ (exists esip_gap_chosen_stored_x_relation_scaled_left_bound. esip_gap_chosen_stored_x_relation_scaled_left_bound + S (S x) = p))) /\ (((~(y = 0) /\ (exists esip_gap_chosen_stored_x_relation_scaled_right_bound. esip_gap_chosen_stored_x_relation_scaled_right_bound + S (y) = p))) /\ (exists esi_mod_left_chosen_stored_x_relation_scaled_mod esi_mod_right_chosen_stored_x_relation_scaled_mod. ((S x) * y) + p * esi_mod_left_chosen_stored_x_relation_scaled_mod = (a) + p * esi_mod_right_chosen_stored_x_relation_scaled_mod)))))) - 0024
specialize hprefix x - 0025
apply hprefix - 0026
exact homitted_witness_left - 0027
cases hstored - 0028
cases hstored_witness - 0029
have hinvolutive : ∃ j. x1 = S j ∧ (Lt(j,n) ∧ BetaAt(u,v,j,S x))Exact native replay line
have hinvolutive : exists j. ((x1 = S j) /\ (((exists wpo_gap_chosen_involutive_j_bound. wpo_gap_chosen_involutive_j_bound + S (j) = n) /\ (((exists wpo_beta_height_chosen_involutive_back. wpo_beta_height_chosen_involutive_back + S (S x) = S ((S (j)) * v)) /\ exists wpo_beta_quotient_chosen_involutive_back. u = wpo_beta_quotient_chosen_involutive_back * S ((S (j)) * v) + (S x)))))) - 0030
specialize scaled_inverse_prefix_involutive p - 0031
specialize scaled_inverse_prefix_involutive a - 0032
specialize scaled_inverse_prefix_involutive n - 0033
specialize scaled_inverse_prefix_involutive u - 0034
specialize scaled_inverse_prefix_involutive v - 0035
specialize scaled_inverse_prefix_involutive x - 0036
specialize scaled_inverse_prefix_involutive x1 - 0037
apply scaled_inverse_prefix_involutive - 0038
exact hpn - 0039
exact hp - 0040
exact hprefix - 0041
exact homitted_witness_left - 0042
exact hstored_witness_left - 0043
cases hinvolutive - 0044
cases hinvolutive_witness - 0045
cases hinvolutive_witness_right - 0046
have hforward : BetaAt(u,v,x,S x2)Exact native replay line
have hforward : ((exists wpo_beta_height_chosen_forward_x2. wpo_beta_height_chosen_forward_x2 + S (S x2) = S ((S (x)) * v)) /\ exists wpo_beta_quotient_chosen_forward_x2. u = wpo_beta_quotient_chosen_forward_x2 * S ((S (x)) * v) + (S x2)) - 0047
rewrite <- hinvolutive_witness_left - 0048
rewrite <- hinvolutive_witness_left - 0049
exact hstored_witness_left - 0050
have hdistinct : ~(x = x2) - 0051
intro heq - 0052
rewrite <- heq at hforward - 0053
rewrite <- heq at hforward - 0054
specialize scaled_inverse_prefix_no_fixed_of_not_qres p - 0055
specialize scaled_inverse_prefix_no_fixed_of_not_qres a - 0056
specialize scaled_inverse_prefix_no_fixed_of_not_qres n - 0057
specialize scaled_inverse_prefix_no_fixed_of_not_qres u - 0058
specialize scaled_inverse_prefix_no_fixed_of_not_qres v - 0059
specialize scaled_inverse_prefix_no_fixed_of_not_qres n - 0060
specialize scaled_inverse_prefix_no_fixed_of_not_qres x - 0061
apply scaled_inverse_prefix_no_fixed_of_not_qres - 0062
exact hnotqres - 0063
exact hprefix - 0064
exact homitted_witness_left - 0065
exact hforward - 0066
exists x - 0067
exists x2 - 0068
split - 0069
exact homitted_witness_left - 0070
split - 0071
exact homitted_witness_right - 0072
split - 0073
exact hinvolutive_witness_right_left - 0074
split - 0075
exact hdistinct - 0076
split - 0077
exact hforward - 0078
exact hinvolutive_witness_right_right