Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
All coefficients retain the established highest-degree-first order. Trimming handles empty and all-zero prefixes; monic normalization requires a nonzero leading coefficient. Synthetic division has a nonempty input of length S n and a quotient of length n, unique in decoded values. Its coefficient recurrence, actual evaluation remainder and positive-degree drop are checked. General polynomial Euclidean division, gcd/Bezout, an arbitrary-convolution factor theorem, irreducible-polynomial existence and the full G091 prime-power-field endpoint remain open. These exact theorems are first admitted to Alpha v32; Stable remains unchanged.
Exact theorem in conservative defined notation
∀ b. ∀ c. ∀ L. ∃ t. ∃ M. L = t + M ∧ (Repeat(b,c,0,t) ∧ (M = 0 ∨ ¬M = 0 ∧ (∃ x. BetaAt(b,c,t,x) ∧ ¬x = 0)))
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 99 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay script.
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–2
02Induction on LL3–3
Split the argument into the base and successor obligations. The induction hypothesis is available only in the successor branch.
- L3
induction L
03Construct an explicit witnessL4–5
04Separate the logical casesL6–6
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L6
split
05Calculate and transport equalitiesL7–7
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L7
simp
06Separate the logical casesL8–8
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L8
split
07Use earlier factsL9–13
08Calculate and transport equalitiesL14–14
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L14
refl
09Separate the logical casesL15–15
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L15
left
10Calculate and transport equalitiesL16–16
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L16
refl
11Establish holdL17–18
Establish this local claim before using it. It is not an additional assumption.
- L17
have hold : ∃ t. ∃ M. L = t + M ∧ (Repeat(b,c,0,t) ∧ (M = 0 ∨ ¬M = 0 ∧ (∃ x. BetaAt(b,c,t,x) ∧ ¬x = 0)))Definitions: Repeat(b,c,0,t)BetaAt(b,c,t,x)Original native command in the exact edition - L18
exact IH
12Separate the logical casesL19–23
13Establish hlenL24–28
14Establish hzeroL29–31
Establish this local claim before using it. It is not an additional assumption.
- L29
have hzero : Repeat(b,c,0,L)Definitions: Repeat(b,c,0,L)Original native command in the exact edition - L30
rewrite hlen - L31
exact hold_witness_witness_right_left
15Establish haL32–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L32
have ha : ∃ a. BetaAt(b,c,L,a)Definitions: BetaAt(b,c,L,a)Original native command in the exact edition - L33
specialize beta_at_exists (b) - L34
specialize beta_at_exists (c) - L35
specialize beta_at_exists (L) - L36
apply beta_at_exists
16Separate the logical casesL37–37
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L37
cases ha
17Establish hzL38–41
18Separate the logical casesL42–42
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L42
cases hz
19Construct an explicit witnessL43–44
20Separate the logical casesL45–45
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L45
split
21Calculate and transport equalitiesL46–46
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L46
simp
22Separate the logical casesL47–47
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L47
split
23Fix variables and assumptionsL48–49
24Establish hindexL50–54
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
25Separate the logical casesL55–55
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L55
cases hindex
26Calculate and transport equalitiesL56–59
27Use earlier factsL60–63
28Separate the logical casesL64–64
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L64
left
29Calculate and transport equalitiesL65–65
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L65
refl
30Construct an explicit witnessL66–67
31Separate the logical casesL68–68
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L68
split
32Calculate and transport equalitiesL69–69
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L69
simp
33Separate the logical casesL70–70
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L70
split
34Use earlier factsL71–71
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L71
exact hzero
35Separate the logical casesL72–73
36Fix variables and assumptionsL74–74
Work with arbitrary variables or the premises of the current implication.
- L74
intro hbad
37Use earlier factsL75–77
38Construct an explicit witnessL78–78
Supply the displayed value, then prove that it has the required property.
- L78
exists x2
39Separate the logical casesL79–79
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L79
split
40Use earlier factsL80–81
41Separate the logical casesL82–82
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L82
cases hold_witness_witness_right_right_right
42Construct an explicit witnessL83–84
43Separate the logical casesL85–85
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L85
split
44Calculate and transport equalitiesL86–87
45Use earlier factsL88–88
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L88
exact hold_witness_witness_left
46Calculate and transport equalitiesL89–89
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L89
symm
47Use earlier factsL90–90
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L90
apply PA4
48Separate the logical casesL91–91
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L91
split
49Use earlier factsL92–92
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L92
exact hold_witness_witness_right_left
50Separate the logical casesL93–94
51Fix variables and assumptionsL95–95
Work with arbitrary variables or the premises of the current implication.
- L95
intro hbad
Original defined command ledger · 99 lines
- 0001
intro b - 0002
intro c - 0003
induction L - 0004
exists 0 - 0005
exists 0 - 0006
split - 0007
simp - 0008
split - 0009
specialize beta_repeat_empty (b) - 0010
specialize beta_repeat_empty (c) - 0011
specialize beta_repeat_empty (0) - 0012
specialize beta_repeat_empty (0) - 0013
apply beta_repeat_empty - 0014
refl - 0015
left - 0016
refl - 0017
have hold : ∃ t. ∃ M. L = t + M ∧ (Repeat(b,c,0,t) ∧ (M = 0 ∨ ¬M = 0 ∧ (∃ x. BetaAt(b,c,t,x) ∧ ¬x = 0))) - 0018
exact IH - 0019
cases hold - 0020
cases hold_witness - 0021
cases hold_witness_witness - 0022
cases hold_witness_witness_right - 0023
cases hold_witness_witness_right_right - 0024
have hlen : L=x - 0025
trans x+x1 - 0026
exact hold_witness_witness_left - 0027
rewrite hold_witness_witness_right_right_left - 0028
simp - 0029
have hzero : Repeat(b,c,0,L) - 0030
rewrite hlen - 0031
exact hold_witness_witness_right_left - 0032
have ha : ∃ a. BetaAt(b,c,L,a) - 0033
specialize beta_at_exists (b) - 0034
specialize beta_at_exists (c) - 0035
specialize beta_at_exists (L) - 0036
apply beta_at_exists - 0037
cases ha - 0038
have hz : x2=0 \/ ~(x2=0) - 0039
specialize eq_decidable (x2) - 0040
specialize eq_decidable (0) - 0041
apply eq_decidable - 0042
cases hz - 0043
exists S L - 0044
exists 0 - 0045
split - 0046
simp - 0047
split - 0048
intro i - 0049
intro hi - 0050
have hindex : i = L ∨ Lt(i,L) - 0051
specialize finite_lt_succ_eq_or_lt (L) - 0052
specialize finite_lt_succ_eq_or_lt (i) - 0053
apply finite_lt_succ_eq_or_lt - 0054
exact hi - 0055
cases hindex - 0056
rewrite hindex_left - 0057
rewrite hindex_left - 0058
rewrite hz_left at ha_witness - 0059
rewrite hz_left at ha_witness - 0060
exact ha_witness - 0061
specialize hzero (i) - 0062
apply hzero - 0063
exact hindex_right - 0064
left - 0065
refl - 0066
exists L - 0067
exists 1 - 0068
split - 0069
simp - 0070
split - 0071
exact hzero - 0072
right - 0073
split - 0074
intro hbad - 0075
specialize succ_ne_zero (0) - 0076
apply succ_ne_zero - 0077
exact hbad - 0078
exists x2 - 0079
split - 0080
exact ha_witness - 0081
exact hz_right - 0082
cases hold_witness_witness_right_right_right - 0083
exists x - 0084
exists S x1 - 0085
split - 0086
trans S (x+x1) - 0087
congr - 0088
exact hold_witness_witness_left - 0089
symm - 0090
apply PA4 - 0091
split - 0092
exact hold_witness_witness_right_left - 0093
right - 0094
split - 0095
intro hbad - 0096
specialize succ_ne_zero (x1) - 0097
apply succ_ne_zero - 0098
exact hbad - 0099
exact hold_witness_witness_right_right_right_right