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 expanded first-order arithmetic statement
forall L M N K. (((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) -> (~(L=0)) -> (~(M=0)) -> (((((L)=0 \/ (S M)=0) /\ (((K)=0)))) \/ (((~((L)=0)) /\ (((~((S M)=0)) /\ (((L)+(S M)=S (K)))))))) -> (K=S N)Constructive proof overview
Generated structural guide
For two nonempty factors, shifting the right factor raises the proper product length by exactly one; empty factors are explicitly excluded.
The unchanged tactic script uses 1 declared prerequisite and contains 39 exact native proof lines.
Alpha v34 checked-use · first admitted v34 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
succ_ne_zero Alpha 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–8
02Separate the logical casesL9–12
03Use earlier factsL13–14
04Separate the logical casesL15–15
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L15
exfalso
05Use earlier factsL16–17
06Separate the logical casesL18–23
07Use earlier factsL24–25
08Separate the logical casesL26–26
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L26
exfalso
09Use earlier factsL27–29
10Separate the logical casesL30–31
11Use earlier factsL32–32
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L32
apply PA2
12Calculate and transport equalitiesL33–34
13Use earlier factsL35–35
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L35
exact hnew_right_right_right
14Calculate and transport equalitiesL36–36
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L36
trans S (L+M)
15Use earlier factsL37–37
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L37
apply PA4
16Calculate and transport equalitiesL38–38
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L38
congr
17Use earlier factsL39–39
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L39
exact hold_right_right_right
Original exact command ledger · 39 lines
- 0001
intro L - 0002
intro M - 0003
intro N - 0004
intro K - 0005
intro hold - 0006
intro hL - 0007
intro hM - 0008
intro hnew - 0009
cases hold - 0010
cases hold_left - 0011
cases hold_left_left - 0012
exfalso - 0013
apply hL - 0014
exact hold_left_left_left - 0015
exfalso - 0016
apply hM - 0017
exact hold_left_left_right - 0018
cases hold_right - 0019
cases hold_right_right - 0020
cases hnew - 0021
cases hnew_left - 0022
cases hnew_left_left - 0023
exfalso - 0024
apply hL - 0025
exact hnew_left_left_left - 0026
exfalso - 0027
specialize succ_ne_zero (M) - 0028
apply succ_ne_zero - 0029
exact hnew_left_left_right - 0030
cases hnew_right - 0031
cases hnew_right_right - 0032
apply PA2 - 0033
trans L+S M - 0034
symm - 0035
exact hnew_right_right_right - 0036
trans S (L+M) - 0037
apply PA4 - 0038
congr - 0039
exact hold_right_right_right