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. Prime(p) → ¬q = 0 → Lt(q,p · p · q)Every purple notation token opens its conservative definition. This reading surface never changes the unchanged intuitionistic kernel or confers checked-use authority.
Definitions used by this theorem
In the theorem statement
In local proof propositions
Exact expanded first-order statement
forall p q. ((~(p = 1) /\ forall frm_prime_left_ftsv_prime frm_prime_right_ftsv_prime. p = frm_prime_left_ftsv_prime * frm_prime_right_ftsv_prime -> frm_prime_left_ftsv_prime = 1 \/ frm_prime_right_ftsv_prime = 1)) -> ~(q = 0) -> exists k. k + S q = (p * p) * qProof neighborhood
Direct theorem prerequisites
Direct theorem dependents
Definition-aware tactic body
Only propositions whose conservative expansion has been checked for exact first-order equivalence are compacted. Every changed line retains its immutable exact replay 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.
01Fix variables and assumptionsL1–4
02Establish htwoL5–8
03Establish hfirstL9–14
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply succ le mul of two le right.
04Establish hpnonzeroL15–20
05Establish honeL21–24
06Establish hsecondL25–32
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul le mul left.
- L25
have hsecond : Le(q · p · 1,q · p · p)Definitions: Le(q · p · 1,q · p · p)Original native command in the exact edition - L26
specialize mul_le_mul_left 1 - L27
specialize mul_le_mul_left p - L28
specialize mul_le_mul_left (q * p) - L29
apply mul_le_mul_left - L30
exact hone - L31
specialize mul_one (q * p) - L32
rewrite mul_one at hsecond
07Establish hcombinedL33–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le trans.
- L33
have hcombined : Lt(q,q · p · p)Definitions: Lt(q,q · p · p)Original native command in the exact edition - L34
specialize le_trans (S q) - L35
specialize le_trans (q * p) - L36
specialize le_trans ((q * p) * p) - L37
apply le_trans - L38
exact hfirst - L39
exact hsecond
08Separate the logical casesL40–40
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L40
cases hcombined
09Construct an explicit witnessL41–41
Supply the displayed value, then prove that it has the required property.
- L41
exists x
10Calculate and transport equalitiesL42–42
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L42
trans (q * p) * p
11Use earlier factsL43–43
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L43
exact hcombined_witness
12Calculate and transport equalitiesL44–44
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L44
trans q * (p * p)
Original defined command ledger · 46 lines
- 0001
intro p - 0002
intro q - 0003
intro hprime - 0004
intro hquotient - 0005
have htwo : Lt(1,p)Exact native replay line
have htwo : exists k. k + 2 = p - 0006
specialize prime_two_le p - 0007
apply prime_two_le - 0008
exact hprime - 0009
have hfirst : Lt(q,q · p)Exact native replay line
have hfirst : exists k. k + S q = q * p - 0010
specialize succ_le_mul_of_two_le_right q - 0011
specialize succ_le_mul_of_two_le_right p - 0012
apply succ_le_mul_of_two_le_right - 0013
exact hquotient - 0014
exact htwo - 0015
have hpnonzero : ~(p = 0) - 0016
specialize prime_nonzero p - 0017
intro hpzero - 0018
apply prime_nonzero - 0019
exact hprime - 0020
exact hpzero - 0021
have hone : Lt(0,p)Exact native replay line
have hone : exists k. k + 1 = p - 0022
specialize one_le_of_ne_zero p - 0023
apply one_le_of_ne_zero - 0024
exact hpnonzero - 0025
have hsecond : Le(q · p · 1,q · p · p)Exact native replay line
have hsecond : exists k. k + (q * p) * 1 = (q * p) * p - 0026
specialize mul_le_mul_left 1 - 0027
specialize mul_le_mul_left p - 0028
specialize mul_le_mul_left (q * p) - 0029
apply mul_le_mul_left - 0030
exact hone - 0031
specialize mul_one (q * p) - 0032
rewrite mul_one at hsecond - 0033
have hcombined : Lt(q,q · p · p)Exact native replay line
have hcombined : exists k. k + S q = (q * p) * p - 0034
specialize le_trans (S q) - 0035
specialize le_trans (q * p) - 0036
specialize le_trans ((q * p) * p) - 0037
apply le_trans - 0038
exact hfirst - 0039
exact hsecond - 0040
cases hcombined - 0041
exists x - 0042
trans (q * p) * p - 0043
exact hcombined_witness - 0044
trans q * (p * p) - 0045
apply mul_assoc - 0046
apply mul_comm