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. ∀ n. ∀ b. ∀ c. ∀ l. ∀ i. ∀ j. p = S n → InversePrefix(p,n,b,c,l) → Lt(i,l) → InverseIndex(p,n,i,j) → BetaAt(b,c,i,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
4 occurrences
In local proof propositions
2 occurrences
Exact expanded native-PA statement
forall p n b c l i j. p = S n -> (forall wip_index_extensional_prefix. (exists wip_gap_extensional_prefix_prefix_bound. wip_gap_extensional_prefix_prefix_bound + S wip_index_extensional_prefix = l) -> exists wip_mate_extensional_prefix. ((((exists wip_beta_height_extensional_prefix_decoded. wip_beta_height_extensional_prefix_decoded + S (wip_mate_extensional_prefix) = S ((S (wip_index_extensional_prefix)) * c)) /\ exists wip_beta_quotient_extensional_prefix_decoded. b = wip_beta_quotient_extensional_prefix_decoded * S ((S (wip_index_extensional_prefix)) * c) + (wip_mate_extensional_prefix))) /\ ((exists wip_gap_extensional_prefix_inverse_index_bound. wip_gap_extensional_prefix_inverse_index_bound + S wip_index_extensional_prefix = n) /\ ((exists wip_gap_extensional_prefix_inverse_mate_bound. wip_gap_extensional_prefix_inverse_mate_bound + S wip_mate_extensional_prefix = n) /\ (exists wip_mod_left_extensional_prefix_inverse_mod wip_mod_right_extensional_prefix_inverse_mod. ((S wip_index_extensional_prefix) * S wip_mate_extensional_prefix) + p * wip_mod_left_extensional_prefix_inverse_mod = 1 + p * wip_mod_right_extensional_prefix_inverse_mod))))) -> (exists wip_gap_extensional_index_bound. wip_gap_extensional_index_bound + S i = l) -> ((exists wip_gap_extensional_source_index_bound. wip_gap_extensional_source_index_bound + S i = n) /\ ((exists wip_gap_extensional_source_mate_bound. wip_gap_extensional_source_mate_bound + S j = n) /\ (exists wip_mod_left_extensional_source_mod wip_mod_right_extensional_source_mod. ((S i) * S j) + p * wip_mod_left_extensional_source_mod = 1 + p * wip_mod_right_extensional_source_mod))) -> (((exists wip_beta_height_extensional_result. wip_beta_height_extensional_result + S (j) = S ((S (i)) * c)) /\ exists wip_beta_quotient_extensional_result. b = wip_beta_quotient_extensional_result * S ((S (i)) * c) + (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 hidx
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 : ∃ k. BetaAt(b,c,i,k) ∧ InverseIndex(p,n,i,k)Definitions: BetaAt(b,c,i,k)InverseIndex(p,n,i,k)Original native command in the exact edition - L13
specialize hprefix i - L14
apply hprefix - L15
exact hi
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 bounded inverse index unique.
- L18
have heq : j = x - L19
specialize bounded_inverse_index_unique p - L20
specialize bounded_inverse_index_unique n - L21
specialize bounded_inverse_index_unique i - L22
specialize bounded_inverse_index_unique j - L23
specialize bounded_inverse_index_unique x - L24
apply bounded_inverse_index_unique - L25
exact hpn - L26
exact hidx - L27
exact hstored_witness_right
06Calculate and transport equalitiesL28–29
07Use earlier factsL30–30
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L30
exact hstored_witness_left
Original defined command ledger · 30 lines
- 0001
intro p - 0002
intro n - 0003
intro b - 0004
intro c - 0005
intro l - 0006
intro i - 0007
intro j - 0008
intro hpn - 0009
intro hprefix - 0010
intro hi - 0011
intro hidx - 0012
have hstored : ∃ k. BetaAt(b,c,i,k) ∧ InverseIndex(p,n,i,k)Exact native replay line
have hstored : exists k. ((((exists wip_beta_height_extensional_stored_at. wip_beta_height_extensional_stored_at + S (k) = S ((S (i)) * c)) /\ exists wip_beta_quotient_extensional_stored_at. b = wip_beta_quotient_extensional_stored_at * S ((S (i)) * c) + (k))) /\ ((exists wip_gap_extensional_stored_inverse_index_bound. wip_gap_extensional_stored_inverse_index_bound + S i = n) /\ ((exists wip_gap_extensional_stored_inverse_mate_bound. wip_gap_extensional_stored_inverse_mate_bound + S k = n) /\ (exists wip_mod_left_extensional_stored_inverse_mod wip_mod_right_extensional_stored_inverse_mod. ((S i) * S k) + p * wip_mod_left_extensional_stored_inverse_mod = 1 + p * wip_mod_right_extensional_stored_inverse_mod)))) - 0013
specialize hprefix i - 0014
apply hprefix - 0015
exact hi - 0016
cases hstored - 0017
cases hstored_witness - 0018
have heq : j = x - 0019
specialize bounded_inverse_index_unique p - 0020
specialize bounded_inverse_index_unique n - 0021
specialize bounded_inverse_index_unique i - 0022
specialize bounded_inverse_index_unique j - 0023
specialize bounded_inverse_index_unique x - 0024
apply bounded_inverse_index_unique - 0025
exact hpn - 0026
exact hidx - 0027
exact hstored_witness_right - 0028
rewrite heq - 0029
rewrite heq - 0030
exact hstored_witness_left