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 h. ~(h = 0) -> exists gap. gap + S h = 2 * hConstructive proof overview
Generated structural guide
Every positive natural half is constructively strictly smaller than its doubled value.
The unchanged tactic script uses 3 declared prerequisites and contains 16 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
Historical empty-context replay experiment only; that experiment persisted no certificate and granted no release authority. Current checked use follows separately sealed, independently verified proof bundles; there is no Stable promotion.
Proof neighborhood
Direct dependencies
mul_lt_mul_succ_left_nonzero Stable theorem; checked-use authorized mul_one 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–2
02Establish hboundL3–9
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul lt mul succ left nonzero.
Original exact command ledger · 16 lines
- 0001
intro h - 0002
intro hnonzero - 0003
have hbound : exists gap. gap + S (h * 1) = h * S 1 - 0004
specialize mul_lt_mul_succ_left_nonzero h - 0005
specialize mul_lt_mul_succ_left_nonzero 1 - 0006
apply mul_lt_mul_succ_left_nonzero - 0007
exact hnonzero - 0008
specialize mul_one h - 0009
rewrite mul_one at hbound - 0010
have htwo : S 1 = 2 - 0011
norm_num - 0012
rewrite htwo at hbound - 0013
specialize mul_comm h - 0014
specialize mul_comm 2 - 0015
rewrite mul_comm at hbound - 0016
exact hbound