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.
The original division, gcd, cancellation, and factor-existence foundations are exposed through checked wrappers. Unordered uniqueness adds an actual bounded, injective, surjective index map matching repeated prime occurrences. The empty factor list represents one, not zero.
Exact theorem in conservative defined notation
∀ b. ∀ c. ∀ l. PermutationPrefix(b,c,l) → ∃ x. ∃ y. PermutationPrefix(x,y,S l) ∧ (BetaAt(x,y,l,l) ∧ (∀ z. ∀ n. Lt(z,l) → BetaAt(b,c,z,n) → BetaAt(x,y,z,n)))
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 132 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.
Named ingredients (1)
01Fix variables and assumptionsL1–4
02Separate the logical casesL5–6
03Establish hextL7–12
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta prefix extend.
- L7
have hext : ∃ d. ∃ e. BetaAt(d,e,l,l) ∧ (∀ x. ∀ y. Lt(x,l) → BetaAt(b,c,x,y) → BetaAt(d,e,x,y))Definitions: BetaAt(d,e,l,l)Lt(x,l)BetaAt(b,c,x,y)BetaAt(d,e,x,y)Original native command in the exact edition - L8
specialize beta_prefix_extend (l) - L9
specialize beta_prefix_extend (b) - L10
specialize beta_prefix_extend (c) - L11
specialize beta_prefix_extend (l) - L12
apply beta_prefix_extend
04Separate the logical casesL13–15
05Establish hboundL16–18
Establish this local claim before using it. It is not an additional assumption.
- L16
have hbound : BoundedPrefix(x,x1,S l)Definitions: BoundedPrefix(x,x1,S l)Original native command in the exact edition - L17
intro i - L18
intro hi
06Establish hcaseL19–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
07Separate the logical casesL24–24
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L24
cases hcase
08Construct an explicit witnessL25–25
Supply the displayed value, then prove that it has the required property.
- L25
exists l
09Separate the logical casesL26–26
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L26
split
10Calculate and transport equalitiesL27–28
11Use earlier factsL29–31
12Establish hvalueL32–35
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hp left.
- L32
have hvalue : ∃ a. BetaAt(b,c,i,a) ∧ Lt(a,l)Definitions: BetaAt(b,c,i,a)Lt(a,l)Original native command in the exact edition - L33
specialize hp_left (i) - L34
apply hp_left - L35
exact hcase_right
13Separate the logical casesL36–37
14Construct an explicit witnessL38–38
Supply the displayed value, then prove that it has the required property.
- L38
exists x2
15Separate the logical casesL39–39
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L39
split
16Use earlier factsL40–48
Instantiate or apply named facts and discharge the corresponding proof obligations.
17Establish hinjectiveprefixL49–58
Establish this local claim before using it. It is not an additional assumption.
18Use earlier factsL59–68
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L59
specialize hp_right_left (a) - L60
apply hp_right_left - L61
exact hi - L62
exact hj - L63
specialize factor_permutation_prefix_reflect (b) - L64
specialize factor_permutation_prefix_reflect (c) - L65
specialize factor_permutation_prefix_reflect (x) - L66
specialize factor_permutation_prefix_reflect (x1) - L67
specialize factor_permutation_prefix_reflect (l) - L68
specialize factor_permutation_prefix_reflect (i)
19Use earlier factsL69–78
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L69
specialize factor_permutation_prefix_reflect (a) - L70
apply factor_permutation_prefix_reflect - L71
exact hext_witness_witness_right - L72
exact hi - L73
exact hfirst - L74
specialize factor_permutation_prefix_reflect (b) - L75
specialize factor_permutation_prefix_reflect (c) - L76
specialize factor_permutation_prefix_reflect (x) - L77
specialize factor_permutation_prefix_reflect (x1) - L78
specialize factor_permutation_prefix_reflect (l)
20Use earlier factsL79–84
21Establish hinjectiveL85–93
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite prefix injective extend fresh.
- L85
have hinjective : InjectivePrefix(x,x1,S l)Definitions: InjectivePrefix(x,x1,S l)Original native command in the exact edition - L86
specialize finite_prefix_injective_extend_fresh (x) - L87
specialize finite_prefix_injective_extend_fresh (x1) - L88
specialize finite_prefix_injective_extend_fresh (l) - L89
specialize finite_prefix_injective_extend_fresh (l) - L90
apply finite_prefix_injective_extend_fresh - L91
exact hinjectiveprefix - L92
exact hext_witness_witness_left - L93
intro hcontains
22Separate the logical casesL94–95
23Use earlier factsL96–105
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L96
specialize lt_irrefl_expanded (l) - L97
apply lt_irrefl_expanded - L98
specialize finite_bounded_entry_lt (b) - L99
specialize finite_bounded_entry_lt (c) - L100
specialize finite_bounded_entry_lt (l) - L101
specialize finite_bounded_entry_lt (x2) - L102
specialize finite_bounded_entry_lt (l) - L103
apply finite_bounded_entry_lt - L104
exact hp_left - L105
exact hcontains_witness_left
24Use earlier factsL106–115
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L106
specialize factor_permutation_prefix_reflect (b) - L107
specialize factor_permutation_prefix_reflect (c) - L108
specialize factor_permutation_prefix_reflect (x) - L109
specialize factor_permutation_prefix_reflect (x1) - L110
specialize factor_permutation_prefix_reflect (l) - L111
specialize factor_permutation_prefix_reflect (x2) - L112
specialize factor_permutation_prefix_reflect (l) - L113
apply factor_permutation_prefix_reflect - L114
exact hext_witness_witness_right - L115
exact hcontains_witness_left
25Use earlier factsL116–116
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L116
exact hcontains_witness_right
26Construct an explicit witnessL117–118
27Separate the logical casesL119–120
28Use earlier factsL121–121
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L121
exact hbound
29Separate the logical casesL122–122
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L122
split
30Use earlier factsL123–129
Instantiate or apply named facts and discharge the corresponding proof obligations.
31Separate the logical casesL130–130
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L130
split
Original defined command ledger · 132 lines
- 0001
intro b - 0002
intro c - 0003
intro l - 0004
intro hp - 0005
cases hp - 0006
cases hp_right - 0007
have hext : ∃ d. ∃ e. BetaAt(d,e,l,l) ∧ (∀ x. ∀ y. Lt(x,l) → BetaAt(b,c,x,y) → BetaAt(d,e,x,y)) - 0008
specialize beta_prefix_extend (l) - 0009
specialize beta_prefix_extend (b) - 0010
specialize beta_prefix_extend (c) - 0011
specialize beta_prefix_extend (l) - 0012
apply beta_prefix_extend - 0013
cases hext - 0014
cases hext_witness - 0015
cases hext_witness_witness - 0016
have hbound : BoundedPrefix(x,x1,S l) - 0017
intro i - 0018
intro hi - 0019
have hcase : i = l ∨ Lt(i,l) - 0020
specialize finite_lt_succ_eq_or_lt (l) - 0021
specialize finite_lt_succ_eq_or_lt (i) - 0022
apply finite_lt_succ_eq_or_lt - 0023
exact hi - 0024
cases hcase - 0025
exists l - 0026
split - 0027
rewrite hcase_left - 0028
rewrite hcase_left - 0029
exact hext_witness_witness_left - 0030
specialize le_refl (S l) - 0031
apply le_refl - 0032
have hvalue : ∃ a. BetaAt(b,c,i,a) ∧ Lt(a,l) - 0033
specialize hp_left (i) - 0034
apply hp_left - 0035
exact hcase_right - 0036
cases hvalue - 0037
cases hvalue_witness - 0038
exists x2 - 0039
split - 0040
specialize hext_witness_witness_right (i) - 0041
specialize hext_witness_witness_right (x2) - 0042
apply hext_witness_witness_right - 0043
exact hcase_right - 0044
exact hvalue_witness_left - 0045
specialize le_succ (S x2) - 0046
specialize le_succ (l) - 0047
apply le_succ - 0048
exact hvalue_witness_right - 0049
have hinjectiveprefix : InjectivePrefix(x,x1,l) - 0050
intro i - 0051
intro j - 0052
intro a - 0053
intro hi - 0054
intro hj - 0055
intro hfirst - 0056
intro hsecond - 0057
specialize hp_right_left (i) - 0058
specialize hp_right_left (j) - 0059
specialize hp_right_left (a) - 0060
apply hp_right_left - 0061
exact hi - 0062
exact hj - 0063
specialize factor_permutation_prefix_reflect (b) - 0064
specialize factor_permutation_prefix_reflect (c) - 0065
specialize factor_permutation_prefix_reflect (x) - 0066
specialize factor_permutation_prefix_reflect (x1) - 0067
specialize factor_permutation_prefix_reflect (l) - 0068
specialize factor_permutation_prefix_reflect (i) - 0069
specialize factor_permutation_prefix_reflect (a) - 0070
apply factor_permutation_prefix_reflect - 0071
exact hext_witness_witness_right - 0072
exact hi - 0073
exact hfirst - 0074
specialize factor_permutation_prefix_reflect (b) - 0075
specialize factor_permutation_prefix_reflect (c) - 0076
specialize factor_permutation_prefix_reflect (x) - 0077
specialize factor_permutation_prefix_reflect (x1) - 0078
specialize factor_permutation_prefix_reflect (l) - 0079
specialize factor_permutation_prefix_reflect (j) - 0080
specialize factor_permutation_prefix_reflect (a) - 0081
apply factor_permutation_prefix_reflect - 0082
exact hext_witness_witness_right - 0083
exact hj - 0084
exact hsecond - 0085
have hinjective : InjectivePrefix(x,x1,S l) - 0086
specialize finite_prefix_injective_extend_fresh (x) - 0087
specialize finite_prefix_injective_extend_fresh (x1) - 0088
specialize finite_prefix_injective_extend_fresh (l) - 0089
specialize finite_prefix_injective_extend_fresh (l) - 0090
apply finite_prefix_injective_extend_fresh - 0091
exact hinjectiveprefix - 0092
exact hext_witness_witness_left - 0093
intro hcontains - 0094
cases hcontains - 0095
cases hcontains_witness - 0096
specialize lt_irrefl_expanded (l) - 0097
apply lt_irrefl_expanded - 0098
specialize finite_bounded_entry_lt (b) - 0099
specialize finite_bounded_entry_lt (c) - 0100
specialize finite_bounded_entry_lt (l) - 0101
specialize finite_bounded_entry_lt (x2) - 0102
specialize finite_bounded_entry_lt (l) - 0103
apply finite_bounded_entry_lt - 0104
exact hp_left - 0105
exact hcontains_witness_left - 0106
specialize factor_permutation_prefix_reflect (b) - 0107
specialize factor_permutation_prefix_reflect (c) - 0108
specialize factor_permutation_prefix_reflect (x) - 0109
specialize factor_permutation_prefix_reflect (x1) - 0110
specialize factor_permutation_prefix_reflect (l) - 0111
specialize factor_permutation_prefix_reflect (x2) - 0112
specialize factor_permutation_prefix_reflect (l) - 0113
apply factor_permutation_prefix_reflect - 0114
exact hext_witness_witness_right - 0115
exact hcontains_witness_left - 0116
exact hcontains_witness_right - 0117
exists x - 0118
exists x1 - 0119
split - 0120
split - 0121
exact hbound - 0122
split - 0123
exact hinjective - 0124
specialize finite_bounded_injective_surjective (S l) - 0125
specialize finite_bounded_injective_surjective (x) - 0126
specialize finite_bounded_injective_surjective (x1) - 0127
apply finite_bounded_injective_surjective - 0128
exact hbound - 0129
exact hinjective - 0130
split - 0131
exact hext_witness_witness_left - 0132
exact hext_witness_witness_right