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. ∀ i. ∀ j. p = S n → Prime(p) → InversePrefix(p,n,b,c,n) → Lt(i,n) → BetaAt(b,c,i,j) → ¬i = 0 ∧ ¬S i = n → ¬i = jEvery 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
1 occurrences
Exact expanded native-PA statement
forall p n b c i j. p = S n -> ((~(p = 1) /\ forall wip_prime_left_orbit_prime wip_prime_right_orbit_prime. p = wip_prime_left_orbit_prime * wip_prime_right_orbit_prime -> wip_prime_left_orbit_prime = 1 \/ wip_prime_right_orbit_prime = 1)) -> (forall wip_index_orbit_prefix. (exists wip_gap_orbit_prefix_prefix_bound. wip_gap_orbit_prefix_prefix_bound + S wip_index_orbit_prefix = n) -> exists wip_mate_orbit_prefix. ((((exists wip_beta_height_orbit_prefix_decoded. wip_beta_height_orbit_prefix_decoded + S (wip_mate_orbit_prefix) = S ((S (wip_index_orbit_prefix)) * c)) /\ exists wip_beta_quotient_orbit_prefix_decoded. b = wip_beta_quotient_orbit_prefix_decoded * S ((S (wip_index_orbit_prefix)) * c) + (wip_mate_orbit_prefix))) /\ ((exists wip_gap_orbit_prefix_inverse_index_bound. wip_gap_orbit_prefix_inverse_index_bound + S wip_index_orbit_prefix = n) /\ ((exists wip_gap_orbit_prefix_inverse_mate_bound. wip_gap_orbit_prefix_inverse_mate_bound + S wip_mate_orbit_prefix = n) /\ (exists wip_mod_left_orbit_prefix_inverse_mod wip_mod_right_orbit_prefix_inverse_mod. ((S wip_index_orbit_prefix) * S wip_mate_orbit_prefix) + p * wip_mod_left_orbit_prefix_inverse_mod = 1 + p * wip_mod_right_orbit_prefix_inverse_mod))))) -> (exists wip_gap_orbit_source_bound. wip_gap_orbit_source_bound + S i = n) -> (((exists wip_beta_height_orbit_source_entry. wip_beta_height_orbit_source_entry + S (j) = S ((S (i)) * c)) /\ exists wip_beta_quotient_orbit_source_entry. b = wip_beta_quotient_orbit_source_entry * S ((S (i)) * c) + (j))) -> ((~(i = 0) /\ ~((S i) = n))) -> ~(i = 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–12
03Separate the logical casesL13–13
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L13
cases hnonendpoint
04Fix variables and assumptionsL14–14
Work with arbitrary variables or the premises of the current implication.
- L14
intro heq
05Establish hfixedL15–18
Establish this local claim before using it. It is not an additional assumption.
- L15
have hfixed : BetaAt(b,c,i,i)Definitions: BetaAt(b,c,i,i)Original native command in the exact edition - L16
rewrite <- heq at hat - L17
rewrite <- heq at hat - L18
exact hat
06Establish hcasesL19–28
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime inverse prefix fixed cases.
- L19
have hcases : i = 0 \/ S i = n - L20
specialize prime_inverse_prefix_fixed_cases p - L21
specialize prime_inverse_prefix_fixed_cases n - L22
specialize prime_inverse_prefix_fixed_cases b - L23
specialize prime_inverse_prefix_fixed_cases c - L24
specialize prime_inverse_prefix_fixed_cases i - L25
apply prime_inverse_prefix_fixed_cases - L26
exact hpn - L27
exact hp - L28
exact hprefix
07Use earlier factsL29–30
08Separate the logical casesL31–31
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L31
cases hcases
Original defined command ledger · 35 lines
- 0001
intro p - 0002
intro n - 0003
intro b - 0004
intro c - 0005
intro i - 0006
intro j - 0007
intro hpn - 0008
intro hp - 0009
intro hprefix - 0010
intro hi - 0011
intro hat - 0012
intro hnonendpoint - 0013
cases hnonendpoint - 0014
intro heq - 0015
have hfixed : BetaAt(b,c,i,i)Exact native replay line
have hfixed : ((exists wip_beta_height_orbit_source_fixed. wip_beta_height_orbit_source_fixed + S (i) = S ((S (i)) * c)) /\ exists wip_beta_quotient_orbit_source_fixed. b = wip_beta_quotient_orbit_source_fixed * S ((S (i)) * c) + (i)) - 0016
rewrite <- heq at hat - 0017
rewrite <- heq at hat - 0018
exact hat - 0019
have hcases : i = 0 \/ S i = n - 0020
specialize prime_inverse_prefix_fixed_cases p - 0021
specialize prime_inverse_prefix_fixed_cases n - 0022
specialize prime_inverse_prefix_fixed_cases b - 0023
specialize prime_inverse_prefix_fixed_cases c - 0024
specialize prime_inverse_prefix_fixed_cases i - 0025
apply prime_inverse_prefix_fixed_cases - 0026
exact hpn - 0027
exact hp - 0028
exact hprefix - 0029
exact hi - 0030
exact hfixed - 0031
cases hcases - 0032
apply hnonendpoint_left - 0033
exact hcases_left - 0034
apply hnonendpoint_right - 0035
exact hcases_right