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 a b. (exists k. k + a = b) -> a = b \/ exists k. k + S a = bStructural proof guide
A witnessed inequality is either equality or a witnessed strict inequality.
Direct prerequisites: zero_or_succ, zero_add, add_succ_left. The authored body proceeds by case analysis (3), equality transport (3).
Proof neighborhood
Direct dependencies
Direct dependents
BT002U gcd_exists_up_to BT0034 gcd_balanced_bezout_exists_up_to BT003D factor_property_succ BT003J proper_factor_lt BT0059 beta_exclusive_accumulated_product_step BT005A beta_exclusive_recode_congruence_step BT005E beta_prefix_product_trace_exists BT005K beta_product_succ_append BT0069 beta_factor_divides_product BT007V beta_repeat_succ_extend BT0085 beta_range_succ_extend BT0089 beta_prefix_sum_trace_exists BT0097 lt_three_cases BT00AA finite_lt_succ_eq_or_lt BT00JD eisenstein_initial_segment_bit_count_functional BT00PS bounded_prime_interval_search BT00Q5 bounded_power_valuation_search BT00RA floor_sqrt_total BT00SG division_remainder_successor_cases BT00VV primorial_le_four_pow_bounded BT00VY no_bertrand_central_prime_divisor_le BT00W2 no_bertrand_central_prime_divisor_ranges BT00WW bertrand_hj_base_window_thirty_two_from_total BT00XG division_double_quotient_bit BT010D floor_sqrt_three_mul_le_double BT011A prime_le_twenty_two_cases BT0127 bertrand_strictFormal 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 (3)
01Fix variables and assumptionsL1–3
02Separate the logical casesL4–4
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L4
cases h
03Use earlier factsL5–5
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L5
specialize zero_or_succ x
04Separate the logical casesL6–7
05Calculate and transport equalitiesL8–8
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L8
rewrite zero_or_succ_left at h_witness
06Use earlier factsL9–9
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L9
specialize zero_add a
07Calculate and transport equalitiesL10–10
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L10
rewrite zero_add at h_witness
08Use earlier factsL11–11
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L11
exact h_witness
09Separate the logical casesL12–13
10Construct an explicit witnessL14–14
Supply the displayed value, then prove that it has the required property.
- L14
exists x1
11Calculate and transport equalitiesL15–16
12Use earlier factsL17–17
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L17
apply PA4
13Calculate and transport equalitiesL18–18
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L18
symm
14Use earlier factsL19–19
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L19
apply add_succ_left
15Calculate and transport equalitiesL20–20
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L20
rewrite <- zero_or_succ_right_witness
16Use earlier factsL21–21
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L21
exact h_witness
Original exact command ledger · 21 lines
- 0001
intro a - 0002
intro b - 0003
intro h - 0004
cases h - 0005
specialize zero_or_succ x - 0006
cases zero_or_succ - 0007
left - 0008
rewrite zero_or_succ_left at h_witness - 0009
specialize zero_add a - 0010
rewrite zero_add at h_witness - 0011
exact h_witness - 0012
cases zero_or_succ_right - 0013
right - 0014
exists x1 - 0015
trans S x1 + a - 0016
trans S (x1 + a) - 0017
apply PA4 - 0018
symm - 0019
apply add_succ_left - 0020
rewrite <- zero_or_succ_right_witness - 0021
exact h_witness