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. ∀ i. ∀ d. ∀ r. ∀ rb. ∀ rc. ∀ k. (∀ 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)))) → q · S i = p · d + r → ¬r = 0 → Lt(r,p) → ∀ x. Lt(x,k) → ∃ y. BetaAt(rb,rc,x,y) ∧ (y = 1 ∧ Lt(x,d) ∨ y = 0 ∧ Lt(d,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
11 occurrences
In local proof propositions
9 occurrences
Exact expanded native-PA statement
forall p q i d r rb rc k. (forall eri_column_row_quotient_source. (exists eri_gap_row_quotient_source_bound. eri_gap_row_quotient_source_bound + S (eri_column_row_quotient_source) = k) -> exists eri_bit_row_quotient_source. ((((exists ff_h_eri_row_quotient_source_decoded. ff_h_eri_row_quotient_source_decoded + S (eri_bit_row_quotient_source) = S ((S (eri_column_row_quotient_source)) * rc)) /\ exists ff_q_eri_row_quotient_source_decoded. rb = ff_q_eri_row_quotient_source_decoded * S ((S (eri_column_row_quotient_source)) * rc) + (eri_bit_row_quotient_source))) /\ (((eri_bit_row_quotient_source = 0 /\ ((exists eri_gap_row_quotient_source_choice_left. eri_gap_row_quotient_source_choice_left + S (q * S i) = p * S eri_column_row_quotient_source) /\ ~(exists eri_gap_row_quotient_source_choice_right. eri_gap_row_quotient_source_choice_right + S (p * S eri_column_row_quotient_source) = q * S i))) \/ (eri_bit_row_quotient_source = 1 /\ ((exists eri_gap_row_quotient_source_choice_right. eri_gap_row_quotient_source_choice_right + S (p * S eri_column_row_quotient_source) = q * S i) /\ ~(exists eri_gap_row_quotient_source_choice_left. eri_gap_row_quotient_source_choice_left + S (q * S i) = p * S eri_column_row_quotient_source))))))) -> q * S i = p * d + r -> ~(r = 0) -> (exists edt_lt_gap_row_quotient_remainder_bound. edt_lt_gap_row_quotient_remainder_bound + S (r) = p) -> (forall eis_index_row_quotient_initial. (exists eis_lt_gap_row_quotient_initial_bound. eis_lt_gap_row_quotient_initial_bound + S (eis_index_row_quotient_initial) = k) -> exists eis_bit_row_quotient_initial. ((((exists ff_h_eis_row_quotient_initial_decoded. ff_h_eis_row_quotient_initial_decoded + S (eis_bit_row_quotient_initial) = S ((S (eis_index_row_quotient_initial)) * rc)) /\ exists ff_q_eis_row_quotient_initial_decoded. rb = ff_q_eis_row_quotient_initial_decoded * S ((S (eis_index_row_quotient_initial)) * rc) + (eis_bit_row_quotient_initial))) /\ (((eis_bit_row_quotient_initial = 1 /\ (exists eis_le_gap_row_quotient_initial_choice_inside. eis_le_gap_row_quotient_initial_choice_inside + (S eis_index_row_quotient_initial) = d)) \/ (eis_bit_row_quotient_initial = 0 /\ (exists eis_lt_gap_row_quotient_initial_choice_outside. eis_lt_gap_row_quotient_initial_choice_outside + S (d) = S eis_index_row_quotient_initial))))))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 (2)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–14
03Establish hstoredL15–18
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hrow.
- L15
have hstored : ∃ bit. BetaAt(rb,rc,j,bit) ∧ (bit = 0 ∧ (Lt(q · S i,p · S j) ∧ ¬Lt(p · S j,q · S i)) ∨ bit = 1 ∧ (Lt(p · S j,q · S i) ∧ ¬Lt(q · S i,p · S j)))Definitions: BetaAt(rb,rc,j,bit)Lt(q · S i,p · S j)Lt(p · S j,q · S i)Original native command in the exact edition - L16
specialize hrow j - L17
apply hrow - L18
exact hj
04Separate the logical casesL19–20
05Construct an explicit witnessL21–21
Supply the displayed value, then prove that it has the required property.
- L21
exists x
06Separate the logical casesL22–22
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L22
split
07Use earlier factsL23–23
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L23
exact hstored_witness_left
08Establish hthresholdL24–33
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply nonzero remainder division positive multiple threshold.
- L24
have hthreshold : (Lt(p · S j,q · S i) → Lt(j,d)) ∧ (Lt(j,d) → Lt(p · S j,q · S i))Definitions: Lt(p · S j,q · S i)Lt(j,d)Original native command in the exact edition - L25
specialize nonzero_remainder_division_positive_multiple_threshold p - L26
specialize nonzero_remainder_division_positive_multiple_threshold (q * S i) - L27
specialize nonzero_remainder_division_positive_multiple_threshold d - L28
specialize nonzero_remainder_division_positive_multiple_threshold r - L29
specialize nonzero_remainder_division_positive_multiple_threshold j - L30
apply nonzero_remainder_division_positive_multiple_threshold - L31
exact hdivision - L32
exact hr0 - L33
exact hrp
09Separate the logical casesL34–39
10Use earlier factsL40–42
11Separate the logical casesL43–44
12Use earlier factsL45–48
13Separate the logical casesL49–52
Original defined command ledger · 55 lines
- 0001
intro p - 0002
intro q - 0003
intro i - 0004
intro d - 0005
intro r - 0006
intro rb - 0007
intro rc - 0008
intro k - 0009
intro hrow - 0010
intro hdivision - 0011
intro hr0 - 0012
intro hrp - 0013
intro j - 0014
intro hj - 0015
have hstored : ∃ bit. BetaAt(rb,rc,j,bit) ∧ (bit = 0 ∧ (Lt(q · S i,p · S j) ∧ ¬Lt(p · S j,q · S i)) ∨ bit = 1 ∧ (Lt(p · S j,q · S i) ∧ ¬Lt(q · S i,p · S j)))Exact native replay line
have hstored : exists bit. ((((exists ff_h_row_quotient_stored. ff_h_row_quotient_stored + S (bit) = S ((S (j)) * rc)) /\ exists ff_q_row_quotient_stored. rb = ff_q_row_quotient_stored * S ((S (j)) * rc) + (bit))) /\ (((bit = 0 /\ ((exists eri_gap_row_quotient_stored_choice_left. eri_gap_row_quotient_stored_choice_left + S (q * S i) = p * S j) /\ ~(exists eri_gap_row_quotient_stored_choice_right. eri_gap_row_quotient_stored_choice_right + S (p * S j) = q * S i))) \/ (bit = 1 /\ ((exists eri_gap_row_quotient_stored_choice_right. eri_gap_row_quotient_stored_choice_right + S (p * S j) = q * S i) /\ ~(exists eri_gap_row_quotient_stored_choice_left. eri_gap_row_quotient_stored_choice_left + S (q * S i) = p * S j)))))) - 0016
specialize hrow j - 0017
apply hrow - 0018
exact hj - 0019
cases hstored - 0020
cases hstored_witness - 0021
exists x - 0022
split - 0023
exact hstored_witness_left - 0024
have hthreshold : (Lt(p · S j,q · S i) → Lt(j,d)) ∧ (Lt(j,d) → Lt(p · S j,q · S i))Exact native replay line
have hthreshold : (((exists edt_lt_gap_row_quotient_below. edt_lt_gap_row_quotient_below + S (p * S j) = q * S i) -> (exists edt_le_gap_row_quotient_bounded. edt_le_gap_row_quotient_bounded + (S j) = d)) /\ ((exists edt_le_gap_row_quotient_bounded. edt_le_gap_row_quotient_bounded + (S j) = d) -> (exists edt_lt_gap_row_quotient_below. edt_lt_gap_row_quotient_below + S (p * S j) = q * S i))) - 0025
specialize nonzero_remainder_division_positive_multiple_threshold p - 0026
specialize nonzero_remainder_division_positive_multiple_threshold (q * S i) - 0027
specialize nonzero_remainder_division_positive_multiple_threshold d - 0028
specialize nonzero_remainder_division_positive_multiple_threshold r - 0029
specialize nonzero_remainder_division_positive_multiple_threshold j - 0030
apply nonzero_remainder_division_positive_multiple_threshold - 0031
exact hdivision - 0032
exact hr0 - 0033
exact hrp - 0034
cases hthreshold - 0035
cases hstored_witness_right - 0036
cases hstored_witness_right_left - 0037
cases hstored_witness_right_left_right - 0038
right - 0039
split - 0040
exact hstored_witness_right_left_left - 0041
specialize le_or_lt (S j) - 0042
specialize le_or_lt d - 0043
cases le_or_lt - 0044
exfalso - 0045
apply hstored_witness_right_left_right_right - 0046
apply hthreshold_right - 0047
exact le_or_lt_left - 0048
exact le_or_lt_right - 0049
cases hstored_witness_right_right - 0050
cases hstored_witness_right_right_right - 0051
left - 0052
split - 0053
exact hstored_witness_right_right_left - 0054
apply hthreshold_left - 0055
exact hstored_witness_right_right_right_left