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 z. (exists fts_gap_positive_multiple. fts_gap_positive_multiple + S (0) = z) -> (exists fts_factor_bounded_multiple. z = p * fts_factor_bounded_multiple) -> (exists fts_gap_below_twice. fts_gap_below_twice + S (z) = p + p) -> z = pConstructive proof overview
Generated structural guide
A positive multiple strictly below twice its divisor must equal that divisor.
The unchanged tactic script uses 5 declared prerequisites and contains 43 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
zero_or_succ Stable theorem; checked-use authorized lt_not_le Stable theorem; checked-use authorized add_assoc Stable theorem; checked-use authorized add_comm Stable theorem; checked-use authorized zero_add 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–5
02Separate the logical casesL6–6
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L6
cases hmultiple
03Establish hdecomposeL7–9
04Separate the logical casesL10–12
05Establish hzeroL13–17
06Establish hbadL18–24
07Separate the logical casesL25–25
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L25
cases zero_or_succ_right
08Calculate and transport equalitiesL26–26
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L26
rewrite zero_or_succ_right_witness at hmultiple_witness
09Use earlier factsL27–27
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L27
specialize hdecompose x1
10Separate the logical casesL28–28
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L28
cases hdecompose
11Calculate and transport equalitiesL29–31
12Separate the logical casesL32–33
13Calculate and transport equalitiesL34–34
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L34
rewrite hdecompose_right_witness at hmultiple_witness
14Establish hlargeL35–35
Establish this local claim before using it. It is not an additional assumption.
- L35
have hlarge : exists h. h + (p + p) = z
15Construct an explicit witnessL36–36
Supply the displayed value, then prove that it has the required property.
- L36
exists p * x2
16Calculate and transport equalitiesL37–38
Original exact command ledger · 43 lines
- 0001
intro p - 0002
intro z - 0003
intro hpositive - 0004
intro hmultiple - 0005
intro hbound - 0006
cases hmultiple - 0007
have hdecompose : forall k. k = 0 \/ exists t. k = S t - 0008
exact zero_or_succ - 0009
specialize zero_or_succ x - 0010
cases zero_or_succ - 0011
exfalso - 0012
cases hpositive - 0013
have hzero : z = 0 - 0014
rewrite hmultiple_witness - 0015
rewrite zero_or_succ_left - 0016
simp - 0017
rewrite hzero at hpositive_witness - 0018
have hbad : S x1 = 0 - 0019
trans x1 + 1 - 0020
symm - 0021
simp - 0022
exact hpositive_witness - 0023
apply PA1 - 0024
exact hbad - 0025
cases zero_or_succ_right - 0026
rewrite zero_or_succ_right_witness at hmultiple_witness - 0027
specialize hdecompose x1 - 0028
cases hdecompose - 0029
rewrite hdecompose_left at hmultiple_witness - 0030
rewrite hmultiple_witness - 0031
simp [zero_add] - 0032
exfalso - 0033
cases hdecompose_right - 0034
rewrite hdecompose_right_witness at hmultiple_witness - 0035
have hlarge : exists h. h + (p + p) = z - 0036
exists p * x2 - 0037
rewrite hmultiple_witness - 0038
simp [add_assoc, add_comm] - 0039
specialize lt_not_le z - 0040
specialize lt_not_le (p + p) - 0041
apply lt_not_le - 0042
exact hbound - 0043
exact hlarge