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.
Exact expanded first-order arithmetic 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) * qConstructive proof overview
Generated structural guide
Multiplication of a nonzero natural by a prime square is strictly increasing in witnessed constructive order.
The unchanged tactic script uses 9 declared prerequisites and contains 46 exact native proof lines.
dependency-curried kernel-checked theorem body; Alpha enrollment and checked-use authority follow separately sealed release evidence; Stable membership remains unchanged
Proof neighborhood
Direct dependencies
prime_two_le Alpha theorem; checked-use authorized succ_le_mul_of_two_le_right Alpha theorem; checked-use authorized prime_nonzero Stable theorem; checked-use authorized one_le_of_ne_zero Stable theorem; checked-use authorized mul_le_mul_left Stable theorem; checked-use authorized mul_one Stable theorem; checked-use authorized le_trans Stable theorem; checked-use authorized mul_assoc Stable theorem; checked-use authorized mul_comm Stable theorem; checked-use authorizedDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.
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.
07Establish hcombinedL33–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le trans.
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 exact command ledger · 46 lines
- 0001
intro p - 0002
intro q - 0003
intro hprime - 0004
intro hquotient - 0005
have htwo : exists k. k + 2 = p - 0006
specialize prime_two_le p - 0007
apply prime_two_le - 0008
exact hprime - 0009
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 : 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 : 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 : 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