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. ∀ rb. ∀ rc. ∀ l. ∀ j. ∀ bit. (∀ x. Lt(x,l) → ∃ 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)))) → Lt(j,l) → 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))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
12 occurrences
In local proof propositions
5 occurrences
Exact expanded native-PA statement
forall p q i rb rc l j bit. (forall eri_column_row_indicator_projection_prefix. (exists eri_gap_row_indicator_projection_prefix_bound. eri_gap_row_indicator_projection_prefix_bound + S (eri_column_row_indicator_projection_prefix) = l) -> exists eri_bit_row_indicator_projection_prefix. ((((exists ff_h_eri_row_indicator_projection_prefix_decoded. ff_h_eri_row_indicator_projection_prefix_decoded + S (eri_bit_row_indicator_projection_prefix) = S ((S (eri_column_row_indicator_projection_prefix)) * rc)) /\ exists ff_q_eri_row_indicator_projection_prefix_decoded. rb = ff_q_eri_row_indicator_projection_prefix_decoded * S ((S (eri_column_row_indicator_projection_prefix)) * rc) + (eri_bit_row_indicator_projection_prefix))) /\ (((eri_bit_row_indicator_projection_prefix = 0 /\ ((exists eri_gap_row_indicator_projection_prefix_choice_left. eri_gap_row_indicator_projection_prefix_choice_left + S (q * S i) = p * S eri_column_row_indicator_projection_prefix) /\ ~(exists eri_gap_row_indicator_projection_prefix_choice_right. eri_gap_row_indicator_projection_prefix_choice_right + S (p * S eri_column_row_indicator_projection_prefix) = q * S i))) \/ (eri_bit_row_indicator_projection_prefix = 1 /\ ((exists eri_gap_row_indicator_projection_prefix_choice_right. eri_gap_row_indicator_projection_prefix_choice_right + S (p * S eri_column_row_indicator_projection_prefix) = q * S i) /\ ~(exists eri_gap_row_indicator_projection_prefix_choice_left. eri_gap_row_indicator_projection_prefix_choice_left + S (q * S i) = p * S eri_column_row_indicator_projection_prefix))))))) -> (exists eri_gap_row_indicator_projection_bound. eri_gap_row_indicator_projection_bound + S (j) = l) -> (((exists ff_h_row_indicator_projection_entry. ff_h_row_indicator_projection_entry + S (bit) = S ((S (j)) * rc)) /\ exists ff_q_row_indicator_projection_entry. rb = ff_q_row_indicator_projection_entry * S ((S (j)) * rc) + (bit))) -> (((bit = 0 /\ ((exists eri_gap_row_indicator_projection_choice_left. eri_gap_row_indicator_projection_choice_left + S (q * S i) = p * S j) /\ ~(exists eri_gap_row_indicator_projection_choice_right. eri_gap_row_indicator_projection_choice_right + S (p * S j) = q * S i))) \/ (bit = 1 /\ ((exists eri_gap_row_indicator_projection_choice_right. eri_gap_row_indicator_projection_choice_right + S (p * S j) = q * S i) /\ ~(exists eri_gap_row_indicator_projection_choice_left. eri_gap_row_indicator_projection_choice_left + S (q * S i) = p * S j)))))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–11
Work with arbitrary variables or the premises of the current implication.
- L11
intro hentry
03Establish hstoredL12–15
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hprefix.
- L12
have hstored : ∃ stored. BetaAt(rb,rc,j,stored) ∧ (stored = 0 ∧ (Lt(q · S i,p · S j) ∧ ¬Lt(p · S j,q · S i)) ∨ stored = 1 ∧ (Lt(p · S j,q · S i) ∧ ¬Lt(q · S i,p · S j)))Definitions: BetaAt(rb,rc,j,stored)Lt(q · S i,p · S j)Lt(p · S j,q · S i)Original native command in the exact edition - L13
specialize hprefix j - L14
apply hprefix - L15
exact hj
04Separate the logical casesL16–17
05Establish heqL18–27
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
06Calculate and transport equalitiesL28–28
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L28
rewrite heq at hstored_witness_right
07Use earlier factsL29–29
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L29
exact hstored_witness_right
Original defined command ledger · 29 lines
- 0001
intro p - 0002
intro q - 0003
intro i - 0004
intro rb - 0005
intro rc - 0006
intro l - 0007
intro j - 0008
intro bit - 0009
intro hprefix - 0010
intro hj - 0011
intro hentry - 0012
have hstored : ∃ stored. BetaAt(rb,rc,j,stored) ∧ (stored = 0 ∧ (Lt(q · S i,p · S j) ∧ ¬Lt(p · S j,q · S i)) ∨ stored = 1 ∧ (Lt(p · S j,q · S i) ∧ ¬Lt(q · S i,p · S j)))Exact native replay line
have hstored : exists stored. ((((exists ff_h_row_indicator_projection_stored. ff_h_row_indicator_projection_stored + S (stored) = S ((S (j)) * rc)) /\ exists ff_q_row_indicator_projection_stored. rb = ff_q_row_indicator_projection_stored * S ((S (j)) * rc) + (stored))) /\ (((stored = 0 /\ ((exists eri_gap_row_indicator_projection_stored_choice_left. eri_gap_row_indicator_projection_stored_choice_left + S (q * S i) = p * S j) /\ ~(exists eri_gap_row_indicator_projection_stored_choice_right. eri_gap_row_indicator_projection_stored_choice_right + S (p * S j) = q * S i))) \/ (stored = 1 /\ ((exists eri_gap_row_indicator_projection_stored_choice_right. eri_gap_row_indicator_projection_stored_choice_right + S (p * S j) = q * S i) /\ ~(exists eri_gap_row_indicator_projection_stored_choice_left. eri_gap_row_indicator_projection_stored_choice_left + S (q * S i) = p * S j)))))) - 0013
specialize hprefix j - 0014
apply hprefix - 0015
exact hj - 0016
cases hstored - 0017
cases hstored_witness - 0018
have heq : x = bit - 0019
specialize beta_at_unique rb - 0020
specialize beta_at_unique rc - 0021
specialize beta_at_unique j - 0022
specialize beta_at_unique x - 0023
specialize beta_at_unique bit - 0024
apply beta_at_unique - 0025
exact hstored_witness_left - 0026
exact hentry - 0027
rewrite heq at hstored_witness_right - 0028
rewrite heq at hstored_witness_right - 0029
exact hstored_witness_right