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.
Statement with defined notation
∀ a. ∀ b. Le(a,b) → a = b ∨ Lt(a,b)Every purple notation token opens its conservative definition. This is a reading surface; the compiler expands the statement before the unchanged kernel checks it.
Definitions used by this theorem
In the theorem statement
2 occurrences
In local proof propositions
0 occurrences
Exact expanded native-PA statement
forall a b. (exists k. k + a = b) -> a = b \/ exists k. k + S a = bProof neighborhood
Direct theorem prerequisites
Direct theorem 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_functionalDefinition-aware tactic body
Only local propositions introduced by have or suffices are compacted. The untrusted compiler re-expands each one before the original tactic script is replayed; defined notation is never accepted by the kernel. Open the exact replay line beneath every changed command.
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 defined 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