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. ∀ q. ∀ h. ∀ k. ∀ i. ∀ j. ∀ rb. ∀ rc. ∀ cb. ∀ cc. ∀ a. ∀ d. (∀ x. Lt(x,k) → ∃ y. BetaAt(rb,rc,x,y) ∧ (y = 0 ∧ (Lt(q · S i,p · S x) ∧ ¬Lt(p · S x,q · S i)) ∨ y = 1 ∧ (Lt(p · S x,q · S i) ∧ ¬Lt(q · S i,p · S x)))) → (∀ x. Lt(x,h) → ∃ y. BetaAt(cb,cc,x,y) ∧ (y = 0 ∧ (Lt(p · S j,q · S x) ∧ ¬Lt(q · S x,p · S j)) ∨ y = 1 ∧ (Lt(q · S x,p · S j) ∧ ¬Lt(p · S j,q · S x)))) → Lt(j,k) → Lt(i,h) → BetaAt(rb,rc,j,a) → BetaAt(cb,cc,i,d) → a = 0 ∧ d = 1 ∨ a = 1 ∧ d = 0Every 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
16 occurrences
In local proof propositions
8 occurrences
Exact expanded native-PA statement
forall p q h k i j rb rc cb cc a d. (forall eri_column_transpose_row. (exists eri_gap_transpose_row_bound. eri_gap_transpose_row_bound + S (eri_column_transpose_row) = k) -> exists eri_bit_transpose_row. ((((exists ff_h_eri_transpose_row_decoded. ff_h_eri_transpose_row_decoded + S (eri_bit_transpose_row) = S ((S (eri_column_transpose_row)) * rc)) /\ exists ff_q_eri_transpose_row_decoded. rb = ff_q_eri_transpose_row_decoded * S ((S (eri_column_transpose_row)) * rc) + (eri_bit_transpose_row))) /\ (((eri_bit_transpose_row = 0 /\ ((exists eri_gap_transpose_row_choice_left. eri_gap_transpose_row_choice_left + S (q * S i) = p * S eri_column_transpose_row) /\ ~(exists eri_gap_transpose_row_choice_right. eri_gap_transpose_row_choice_right + S (p * S eri_column_transpose_row) = q * S i))) \/ (eri_bit_transpose_row = 1 /\ ((exists eri_gap_transpose_row_choice_right. eri_gap_transpose_row_choice_right + S (p * S eri_column_transpose_row) = q * S i) /\ ~(exists eri_gap_transpose_row_choice_left. eri_gap_transpose_row_choice_left + S (q * S i) = p * S eri_column_transpose_row))))))) -> (forall eri_column_transpose_column. (exists eri_gap_transpose_column_bound. eri_gap_transpose_column_bound + S (eri_column_transpose_column) = h) -> exists eri_bit_transpose_column. ((((exists ff_h_eri_transpose_column_decoded. ff_h_eri_transpose_column_decoded + S (eri_bit_transpose_column) = S ((S (eri_column_transpose_column)) * cc)) /\ exists ff_q_eri_transpose_column_decoded. cb = ff_q_eri_transpose_column_decoded * S ((S (eri_column_transpose_column)) * cc) + (eri_bit_transpose_column))) /\ (((eri_bit_transpose_column = 0 /\ ((exists eri_gap_transpose_column_choice_left. eri_gap_transpose_column_choice_left + S (p * S j) = q * S eri_column_transpose_column) /\ ~(exists eri_gap_transpose_column_choice_right. eri_gap_transpose_column_choice_right + S (q * S eri_column_transpose_column) = p * S j))) \/ (eri_bit_transpose_column = 1 /\ ((exists eri_gap_transpose_column_choice_right. eri_gap_transpose_column_choice_right + S (q * S eri_column_transpose_column) = p * S j) /\ ~(exists eri_gap_transpose_column_choice_left. eri_gap_transpose_column_choice_left + S (p * S j) = q * S eri_column_transpose_column))))))) -> (exists gap. gap + S j = k) -> (exists gap. gap + S i = h) -> (((exists ff_h_transpose_row_entry. ff_h_transpose_row_entry + S (a) = S ((S (j)) * rc)) /\ exists ff_q_transpose_row_entry. rb = ff_q_transpose_row_entry * S ((S (j)) * rc) + (a))) -> (((exists ff_h_transpose_column_entry. ff_h_transpose_column_entry + S (d) = S ((S (i)) * cc)) /\ exists ff_q_transpose_column_entry. cb = ff_q_transpose_column_entry * S ((S (i)) * cc) + (d))) -> ((a = 0 /\ d = 1) \/ (a = 1 /\ d = 0))Proof neighborhood
Direct theorem prerequisites
Direct 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 (1)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–18
03Establish horiginalL19–28
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply eisenstein row indicator decoded choice.
- L19
have horiginal : a = 0 ∧ (Lt(q · S i,p · S j) ∧ ¬Lt(p · S j,q · S i)) ∨ a = 1 ∧ (Lt(p · S j,q · S i) ∧ ¬Lt(q · S i,p · S j))Definitions: Lt(q · S i,p · S j)Lt(p · S j,q · S i)Original native command in the exact edition - L20
specialize eisenstein_row_indicator_decoded_choice p - L21
specialize eisenstein_row_indicator_decoded_choice q - L22
specialize eisenstein_row_indicator_decoded_choice i - L23
specialize eisenstein_row_indicator_decoded_choice rb - L24
specialize eisenstein_row_indicator_decoded_choice rc - L25
specialize eisenstein_row_indicator_decoded_choice k - L26
specialize eisenstein_row_indicator_decoded_choice j - L27
specialize eisenstein_row_indicator_decoded_choice a - L28
apply eisenstein_row_indicator_decoded_choice
04Use earlier factsL29–31
05Establish htransposedL32–41
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply eisenstein row indicator decoded choice.
- L32
have htransposed : d = 0 ∧ (Lt(p · S j,q · S i) ∧ ¬Lt(q · S i,p · S j)) ∨ d = 1 ∧ (Lt(q · S i,p · S j) ∧ ¬Lt(p · S j,q · S i))Definitions: Lt(p · S j,q · S i)Lt(q · S i,p · S j)Original native command in the exact edition - L33
specialize eisenstein_row_indicator_decoded_choice q - L34
specialize eisenstein_row_indicator_decoded_choice p - L35
specialize eisenstein_row_indicator_decoded_choice j - L36
specialize eisenstein_row_indicator_decoded_choice cb - L37
specialize eisenstein_row_indicator_decoded_choice cc - L38
specialize eisenstein_row_indicator_decoded_choice h - L39
specialize eisenstein_row_indicator_decoded_choice i - L40
specialize eisenstein_row_indicator_decoded_choice d - L41
apply eisenstein_row_indicator_decoded_choice
06Use earlier factsL42–44
07Separate the logical casesL45–51
08Use earlier factsL52–53
09Separate the logical casesL54–56
10Use earlier factsL57–58
11Separate the logical casesL59–64
12Use earlier factsL65–66
13Separate the logical casesL67–69
Original defined command ledger · 71 lines
- 0001
intro p - 0002
intro q - 0003
intro h - 0004
intro k - 0005
intro i - 0006
intro j - 0007
intro rb - 0008
intro rc - 0009
intro cb - 0010
intro cc - 0011
intro a - 0012
intro d - 0013
intro hrow - 0014
intro htransposed_row - 0015
intro hj - 0016
intro hi - 0017
intro ha - 0018
intro hd - 0019
have horiginal : a = 0 ∧ (Lt(q · S i,p · S j) ∧ ¬Lt(p · S j,q · S i)) ∨ a = 1 ∧ (Lt(p · S j,q · S i) ∧ ¬Lt(q · S i,p · S j))Exact native replay line
have horiginal : ((a = 0 /\ ((exists eri_gap_transpose_row_choice_left. eri_gap_transpose_row_choice_left + S (q * S i) = p * S j) /\ ~(exists eri_gap_transpose_row_choice_right. eri_gap_transpose_row_choice_right + S (p * S j) = q * S i))) \/ (a = 1 /\ ((exists eri_gap_transpose_row_choice_right. eri_gap_transpose_row_choice_right + S (p * S j) = q * S i) /\ ~(exists eri_gap_transpose_row_choice_left. eri_gap_transpose_row_choice_left + S (q * S i) = p * S j)))) - 0020
specialize eisenstein_row_indicator_decoded_choice p - 0021
specialize eisenstein_row_indicator_decoded_choice q - 0022
specialize eisenstein_row_indicator_decoded_choice i - 0023
specialize eisenstein_row_indicator_decoded_choice rb - 0024
specialize eisenstein_row_indicator_decoded_choice rc - 0025
specialize eisenstein_row_indicator_decoded_choice k - 0026
specialize eisenstein_row_indicator_decoded_choice j - 0027
specialize eisenstein_row_indicator_decoded_choice a - 0028
apply eisenstein_row_indicator_decoded_choice - 0029
exact hrow - 0030
exact hj - 0031
exact ha - 0032
have htransposed : d = 0 ∧ (Lt(p · S j,q · S i) ∧ ¬Lt(q · S i,p · S j)) ∨ d = 1 ∧ (Lt(q · S i,p · S j) ∧ ¬Lt(p · S j,q · S i))Exact native replay line
have htransposed : ((d = 0 /\ ((exists eri_gap_transpose_column_choice_left. eri_gap_transpose_column_choice_left + S (p * S j) = q * S i) /\ ~(exists eri_gap_transpose_column_choice_right. eri_gap_transpose_column_choice_right + S (q * S i) = p * S j))) \/ (d = 1 /\ ((exists eri_gap_transpose_column_choice_right. eri_gap_transpose_column_choice_right + S (q * S i) = p * S j) /\ ~(exists eri_gap_transpose_column_choice_left. eri_gap_transpose_column_choice_left + S (p * S j) = q * S i)))) - 0033
specialize eisenstein_row_indicator_decoded_choice q - 0034
specialize eisenstein_row_indicator_decoded_choice p - 0035
specialize eisenstein_row_indicator_decoded_choice j - 0036
specialize eisenstein_row_indicator_decoded_choice cb - 0037
specialize eisenstein_row_indicator_decoded_choice cc - 0038
specialize eisenstein_row_indicator_decoded_choice h - 0039
specialize eisenstein_row_indicator_decoded_choice i - 0040
specialize eisenstein_row_indicator_decoded_choice d - 0041
apply eisenstein_row_indicator_decoded_choice - 0042
exact htransposed_row - 0043
exact hi - 0044
exact hd - 0045
cases horiginal - 0046
cases horiginal_left - 0047
cases horiginal_left_right - 0048
cases htransposed - 0049
cases htransposed_left - 0050
cases htransposed_left_right - 0051
exfalso - 0052
apply horiginal_left_right_right - 0053
exact htransposed_left_right_left - 0054
cases htransposed_right - 0055
left - 0056
split - 0057
exact horiginal_left_left - 0058
exact htransposed_right_left - 0059
cases horiginal_right - 0060
cases horiginal_right_right - 0061
cases htransposed - 0062
cases htransposed_left - 0063
right - 0064
split - 0065
exact horiginal_right_left - 0066
exact htransposed_left_left - 0067
cases htransposed_right - 0068
cases htransposed_right_right - 0069
exfalso - 0070
apply horiginal_right_right_right - 0071
exact htransposed_right_right_left