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 p h m. p = 2 * h + 1 -> (exists gsp_lt_gap_gsd_m_positive. gsp_lt_gap_gsd_m_positive + S 0 = m) -> (exists gsp_le_gap_gsd_m_le_h. gsp_le_gap_gsd_m_le_h + m = h) -> (exists t. (exists gsp_lt_gap_gsd_t_below_p. gsp_lt_gap_gsd_t_below_p + S t = p) /\ t + m = p)Structural proof guide
Generated structural guide
A positive magnitude at most the odd half has a complement below the modulus.
Use the direct prerequisites lt_irrefl_expanded, nonzero_is_succ, add_assoc, add_comm, mul_comm, zero_add, add_succ_left as previously established PA formulas.
The proof proceeds by case analysis (2), intermediate claims (3), equality transport (3), certified simplification (2).
Referenced ingredients
Proof neighborhood
Direct dependencies
PA0010 lt_irrefl_expanded PA001V nonzero_is_succ PA0009 add_assoc PA000F add_comm PA000H mul_comm PA0001 zero_add PA000E add_succ_leftDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Linked names are exact direct references. This Alpha-v25 checked-use theorem is independently kernel-checked when replayed; it is not a Stable theorem.
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 (5)
01Fix variables and assumptionsL1–6
02Separate the logical casesL7–7
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L7
cases hmle
03Establish hsumL8–17
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add assoc.
04Calculate and transport equalitiesL18–18
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L18
refl
05Use earlier factsL19–19
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L19
apply add_assoc
06Calculate and transport equalitiesL20–26
07Use earlier factsL27–29
08Calculate and transport equalitiesL30–30
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L30
refl
09Establish hm0L31–36
10Establish hmsuccL37–40
11Separate the logical casesL41–41
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L41
cases hmsucc
12Construct an explicit witnessL42–42
Supply the displayed value, then prove that it has the required property.
- L42
exists h + x + 1
13Separate the logical casesL43–43
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L43
split
14Construct an explicit witnessL44–44
Supply the displayed value, then prove that it has the required property.
- L44
exists x1
15Calculate and transport equalitiesL45–45
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L45
trans S (x1 + (h + x + 1))
16Use earlier factsL46–46
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L46
apply PA4
17Calculate and transport equalitiesL47–48
18Use earlier factsL49–49
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L49
apply add_comm
19Calculate and transport equalitiesL50–51
20Use earlier factsL52–52
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L52
apply PA4
21Calculate and transport equalitiesL53–56
Original exact command ledger · 59 lines
- 0001
intro p - 0002
intro h - 0003
intro m - 0004
intro hp - 0005
intro hmpositive - 0006
intro hmle - 0007
cases hmle - 0008
have hsum : (h + x + 1) + m = p - 0009
trans h + (x + m) + 1 - 0010
simp [add_assoc, add_comm] - 0011
congr - 0012
trans (m + x) + h - 0013
symm - 0014
apply add_assoc - 0015
trans (x + m) + h - 0016
congr - 0017
apply add_comm - 0018
refl - 0019
apply add_assoc - 0020
rewrite hmle_witness - 0021
rewrite hp - 0022
trans h + h + 1 - 0023
refl - 0024
congr - 0025
trans h * 2 - 0026
simp [zero_add] - 0027
specialize mul_comm h - 0028
specialize mul_comm 2 - 0029
apply mul_comm - 0030
refl - 0031
have hm0 : ~(m = 0) - 0032
intro hmzero - 0033
specialize lt_irrefl_expanded 0 - 0034
apply lt_irrefl_expanded - 0035
rewrite hmzero at hmpositive - 0036
exact hmpositive - 0037
have hmsucc : exists z. m = S z - 0038
specialize nonzero_is_succ m - 0039
apply nonzero_is_succ - 0040
exact hm0 - 0041
cases hmsucc - 0042
exists h + x + 1 - 0043
split - 0044
exists x1 - 0045
trans S (x1 + (h + x + 1)) - 0046
apply PA4 - 0047
trans S ((h + x + 1) + x1) - 0048
congr - 0049
apply add_comm - 0050
trans (h + x + 1) + S x1 - 0051
symm - 0052
apply PA4 - 0053
trans (h + x + 1) + m - 0054
congr - 0055
refl - 0056
symm - 0057
exact hmsucc_witness - 0058
exact hsum - 0059
exact hsum