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 PA statement
forall r p. ~(r = 0) -> (exists bpvl_gap_factor_two. bpvl_gap_factor_two + (2) = (p)) -> (exists bpvl_gap_factor_result. bpvl_gap_factor_result + (S r) = (r * p))Structural proof guide
Multiplying a nonzero natural by a factor at least two exceeds it.
Direct prerequisites: mul_lt_mul_succ_left_nonzero, mul_le_mul_left, mul_one, le_trans. The authored body proceeds by intermediate claims (2), equality transport (1).
Proof neighborhood
Direct dependencies
Direct dependents
Formal native tactic body
Dependencies are hypotheses of the historical Alpha-v12 body receipt. The complete historical Alpha-v18 proof bundle independently checks every dependency; current Alpha v25 preserves that checked theorem use without changing 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.
Named ingredients (4)
01Fix variables and assumptionsL1–4
02Establish hstepL5–11
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul lt mul succ left nonzero.
03Establish hscaledL12–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul le mul left.
Original exact command ledger · 23 lines
- 0001
intro r - 0002
intro p - 0003
intro hr - 0004
intro hp - 0005
have hstep : exists k. k + S (r * 1) = r * 2 - 0006
specialize mul_lt_mul_succ_left_nonzero r - 0007
specialize mul_lt_mul_succ_left_nonzero 1 - 0008
apply mul_lt_mul_succ_left_nonzero - 0009
exact hr - 0010
specialize mul_one r - 0011
rewrite mul_one at hstep - 0012
have hscaled : exists k. k + r * 2 = r * p - 0013
specialize mul_le_mul_left 2 - 0014
specialize mul_le_mul_left p - 0015
specialize mul_le_mul_left r - 0016
apply mul_le_mul_left - 0017
exact hp - 0018
specialize le_trans (S r) - 0019
specialize le_trans (r * 2) - 0020
specialize le_trans (r * p) - 0021
apply le_trans - 0022
exact hstep - 0023
exact hscaled