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
Generated structural guide
A witnessed inequality is either equality or a witnessed strict inequality.
Use the direct prerequisites zero_or_succ, zero_add, add_succ_left as previously established PA formulas.
The proof proceeds by case analysis (3), equality transport (3).
Referenced ingredients
Proof neighborhood
Direct dependencies
Direct dependents
PA001K gcd_balanced_bezout_exists_up_to PA001U beta_exclusive_accumulated_product_step PA002G beta_exclusive_recode_congruence_step PA002Y beta_range_succ_extend PA0035 gcd_exists_up_to PA003D finite_lt_succ_eq_or_lt PA003G beta_prefix_sum_trace_exists PA003W beta_prefix_product_trace_exists PA0044 beta_repeat_succ_extend PA005L quadratic_residue_search_up_to PA00B4 finite_bounded_nonendpoint_injective_coverage PA00BB pair_order_terminal_state_magnitude_range PA00DX eisenstein_initial_segment_bit_count_functionalFormal native tactic body
Dependencies are introduced as named hypotheses before line 1. Linked names are exact direct references. This Stable checked-use theorem is independently kernel-checked when replayed.
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