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. ∀ d. ∀ e. ∀ D. ∀ E. ∀ u. ∀ v. ∀ U. ∀ V. ∀ l. ∀ i. ∀ j. ∀ p. ∀ q. Lt(i,l) → Lt(j,l) → PermutationPrefix(u,v,S l) → FactorListMatching(b,c,D,E,u,v,S l) → BetaAt(d,e,j,p) ∧ (BetaAt(d,e,l,q) ∧ (BetaAt(D,E,j,q) ∧ (BetaAt(D,E,l,p) ∧ (∀ x. ∀ y. Lt(x,S l) → ¬x = j → ¬x = l → BetaAt(d,e,x,y) → BetaAt(D,E,x,y))))) → BetaAt(u,v,i,j) ∧ (BetaAt(u,v,l,l) ∧ (BetaAt(U,V,i,l) ∧ (BetaAt(U,V,l,j) ∧ (∀ x. ∀ y. Lt(x,S l) → ¬x = i → ¬x = l → BetaAt(u,v,x,y) → BetaAt(U,V,x,y))))) → FactorListMatching(b,c,d,e,U,V,S l)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 206 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–10
02Fix variables and assumptionsL11–20
03Fix variables and assumptionsL21–21
Work with arbitrary variables or the premises of the current implication.
- L21
intro ht
04Separate the logical casesL22–23
05Establish hscopyL24–25
Establish this local claim before using it. It is not an additional assumption.
- L24
have hscopy : BetaAt(d,e,j,p) ∧ (BetaAt(d,e,l,q) ∧ (BetaAt(D,E,j,q) ∧ (BetaAt(D,E,l,p) ∧ (∀ x. ∀ y. Lt(x,S l) → ¬x = j → ¬x = l → BetaAt(d,e,x,y) → BetaAt(D,E,x,y)))))Definitions: BetaAt(d,e,j,p)BetaAt(d,e,l,q)BetaAt(D,E,j,q)BetaAt(D,E,l,p)Lt(x,S l)BetaAt(d,e,x,y)BetaAt(D,E,x,y)Original native command in the exact edition - L25
exact hs
06Separate the logical casesL26–29
07Establish htcopyL30–31
Establish this local claim before using it. It is not an additional assumption.
- L30
have htcopy : BetaAt(u,v,i,j) ∧ (BetaAt(u,v,l,l) ∧ (BetaAt(U,V,i,l) ∧ (BetaAt(U,V,l,j) ∧ (∀ x. ∀ y. Lt(x,S l) → ¬x = i → ¬x = l → BetaAt(u,v,x,y) → BetaAt(U,V,x,y)))))Definitions: BetaAt(u,v,i,j)BetaAt(u,v,l,l)BetaAt(U,V,i,l)BetaAt(U,V,l,j)Lt(x,S l)BetaAt(u,v,x,y)BetaAt(U,V,x,y)Original native command in the exact edition - L31
exact ht
08Separate the logical casesL32–35
09Fix variables and assumptionsL36–41
10Establish hcaseL42–45
11Separate the logical casesL46–46
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L46
cases hcase
12Establish hzL47–56
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
13Use earlier factsL57–57
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L57
exact htcopy_right_right_left
14Establish hvalueL58–67
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hm.
15Calculate and transport equalitiesL68–69
16Use earlier factsL70–70
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L70
exact hsource
17Establish haL71–80
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
18Calculate and transport equalitiesL81–83
19Use earlier factsL84–84
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L84
exact hscopy_right_left
20Establish hlastL85–88
21Separate the logical casesL89–89
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L89
cases hlast
22Establish hzL90–99
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
23Use earlier factsL100–100
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L100
exact htcopy_right_right_right_left
24Establish hvalueL101–110
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hm.
- L101
have hvalue : BetaAt(D,E,l,a)Definitions: BetaAt(D,E,l,a)Original native command in the exact edition - L102
specialize hm (l) - L103
specialize hm (l) - L104
specialize hm (a) - L105
apply hm - L106
specialize le_refl (S l) - L107
apply le_refl - L108
exact htcopy_right_left - L109
rewrite hlast_left at hsource - L110
rewrite hlast_left at hsource
25Use earlier factsL111–111
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L111
exact hsource
26Establish haL112–121
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
27Calculate and transport equalitiesL122–124
28Use earlier factsL125–125
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L125
exact hscopy_left
29Establish holdL126–135
Establish this local claim before using it. It is not an additional assumption.
- L126
- L127
specialize factor_permutation_swap_reflect_unchanged (u) - L128
specialize factor_permutation_swap_reflect_unchanged (v) - L129
specialize factor_permutation_swap_reflect_unchanged (U) - L130
specialize factor_permutation_swap_reflect_unchanged (V) - L131
specialize factor_permutation_swap_reflect_unchanged (l) - L132
specialize factor_permutation_swap_reflect_unchanged (i) - L133
specialize factor_permutation_swap_reflect_unchanged (j) - L134
specialize factor_permutation_swap_reflect_unchanged (l) - L135
specialize factor_permutation_swap_reflect_unchanged (k)
30Use earlier factsL136–142
31Establish hvalueL143–150
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hm.
- L143
have hvalue : BetaAt(D,E,z,a)Definitions: BetaAt(D,E,z,a)Original native command in the exact edition - L144
specialize hm (k) - L145
specialize hm (z) - L146
specialize hm (a) - L147
apply hm - L148
exact hk - L149
exact hold - L150
exact hsource
32Establish hzboundL151–160
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite bounded entry lt.
33Establish hzjL161–170
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hcase right.
34Use earlier factsL171–172
35Calculate and transport equalitiesL173–174
36Use earlier factsL175–176
37Establish hzlL177–186
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hlast right.
38Calculate and transport equalitiesL187–188
39Use earlier factsL189–198
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L189
exact hold - L190
exact htcopy_right_left - L191
specialize factor_permutation_swap_reflect_unchanged (d) - L192
specialize factor_permutation_swap_reflect_unchanged (e) - L193
specialize factor_permutation_swap_reflect_unchanged (D) - L194
specialize factor_permutation_swap_reflect_unchanged (E) - L195
specialize factor_permutation_swap_reflect_unchanged (l) - L196
specialize factor_permutation_swap_reflect_unchanged (j) - L197
specialize factor_permutation_swap_reflect_unchanged (p) - L198
specialize factor_permutation_swap_reflect_unchanged (q)
40Use earlier factsL199–206
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original defined command ledger · 206 lines
- 0001
intro b - 0002
intro c - 0003
intro d - 0004
intro e - 0005
intro D - 0006
intro E - 0007
intro u - 0008
intro v - 0009
intro U - 0010
intro V - 0011
intro l - 0012
intro i - 0013
intro j - 0014
intro p - 0015
intro q - 0016
intro hi - 0017
intro hj - 0018
intro hp - 0019
intro hm - 0020
intro hs - 0021
intro ht - 0022
cases hp - 0023
cases hp_right - 0024
have hscopy : BetaAt(d,e,j,p) ∧ (BetaAt(d,e,l,q) ∧ (BetaAt(D,E,j,q) ∧ (BetaAt(D,E,l,p) ∧ (∀ x. ∀ y. Lt(x,S l) → ¬x = j → ¬x = l → BetaAt(d,e,x,y) → BetaAt(D,E,x,y))))) - 0025
exact hs - 0026
cases hscopy - 0027
cases hscopy_right - 0028
cases hscopy_right_right - 0029
cases hscopy_right_right_right - 0030
have htcopy : BetaAt(u,v,i,j) ∧ (BetaAt(u,v,l,l) ∧ (BetaAt(U,V,i,l) ∧ (BetaAt(U,V,l,j) ∧ (∀ x. ∀ y. Lt(x,S l) → ¬x = i → ¬x = l → BetaAt(u,v,x,y) → BetaAt(U,V,x,y))))) - 0031
exact ht - 0032
cases htcopy - 0033
cases htcopy_right - 0034
cases htcopy_right_right - 0035
cases htcopy_right_right_right - 0036
intro k - 0037
intro z - 0038
intro a - 0039
intro hk - 0040
intro hmap - 0041
intro hsource - 0042
have hcase : k = i \/ ~(k = i) - 0043
specialize eq_decidable (k) - 0044
specialize eq_decidable (i) - 0045
apply eq_decidable - 0046
cases hcase - 0047
have hz : z = l - 0048
specialize beta_at_unique (U) - 0049
specialize beta_at_unique (V) - 0050
specialize beta_at_unique (i) - 0051
specialize beta_at_unique (z) - 0052
specialize beta_at_unique (l) - 0053
apply beta_at_unique - 0054
rewrite hcase_left at hmap - 0055
rewrite hcase_left at hmap - 0056
exact hmap - 0057
exact htcopy_right_right_left - 0058
have hvalue : BetaAt(D,E,j,a) - 0059
specialize hm (i) - 0060
specialize hm (j) - 0061
specialize hm (a) - 0062
apply hm - 0063
specialize le_succ (S i) - 0064
specialize le_succ (l) - 0065
apply le_succ - 0066
exact hi - 0067
exact htcopy_left - 0068
rewrite hcase_left at hsource - 0069
rewrite hcase_left at hsource - 0070
exact hsource - 0071
have ha : a = q - 0072
specialize beta_at_unique (D) - 0073
specialize beta_at_unique (E) - 0074
specialize beta_at_unique (j) - 0075
specialize beta_at_unique (a) - 0076
specialize beta_at_unique (q) - 0077
apply beta_at_unique - 0078
exact hvalue - 0079
exact hscopy_right_right_left - 0080
rewrite hz - 0081
rewrite hz - 0082
rewrite ha - 0083
rewrite ha - 0084
exact hscopy_right_left - 0085
have hlast : k = l \/ ~(k = l) - 0086
specialize eq_decidable (k) - 0087
specialize eq_decidable (l) - 0088
apply eq_decidable - 0089
cases hlast - 0090
have hz : z = j - 0091
specialize beta_at_unique (U) - 0092
specialize beta_at_unique (V) - 0093
specialize beta_at_unique (l) - 0094
specialize beta_at_unique (z) - 0095
specialize beta_at_unique (j) - 0096
apply beta_at_unique - 0097
rewrite hlast_left at hmap - 0098
rewrite hlast_left at hmap - 0099
exact hmap - 0100
exact htcopy_right_right_right_left - 0101
have hvalue : BetaAt(D,E,l,a) - 0102
specialize hm (l) - 0103
specialize hm (l) - 0104
specialize hm (a) - 0105
apply hm - 0106
specialize le_refl (S l) - 0107
apply le_refl - 0108
exact htcopy_right_left - 0109
rewrite hlast_left at hsource - 0110
rewrite hlast_left at hsource - 0111
exact hsource - 0112
have ha : a = p - 0113
specialize beta_at_unique (D) - 0114
specialize beta_at_unique (E) - 0115
specialize beta_at_unique (l) - 0116
specialize beta_at_unique (a) - 0117
specialize beta_at_unique (p) - 0118
apply beta_at_unique - 0119
exact hvalue - 0120
exact hscopy_right_right_right_left - 0121
rewrite hz - 0122
rewrite hz - 0123
rewrite ha - 0124
rewrite ha - 0125
exact hscopy_left - 0126
have hold : BetaAt(u,v,k,z) - 0127
specialize factor_permutation_swap_reflect_unchanged (u) - 0128
specialize factor_permutation_swap_reflect_unchanged (v) - 0129
specialize factor_permutation_swap_reflect_unchanged (U) - 0130
specialize factor_permutation_swap_reflect_unchanged (V) - 0131
specialize factor_permutation_swap_reflect_unchanged (l) - 0132
specialize factor_permutation_swap_reflect_unchanged (i) - 0133
specialize factor_permutation_swap_reflect_unchanged (j) - 0134
specialize factor_permutation_swap_reflect_unchanged (l) - 0135
specialize factor_permutation_swap_reflect_unchanged (k) - 0136
specialize factor_permutation_swap_reflect_unchanged (z) - 0137
apply factor_permutation_swap_reflect_unchanged - 0138
exact ht - 0139
exact hk - 0140
exact hcase_right - 0141
exact hlast_right - 0142
exact hmap - 0143
have hvalue : BetaAt(D,E,z,a) - 0144
specialize hm (k) - 0145
specialize hm (z) - 0146
specialize hm (a) - 0147
apply hm - 0148
exact hk - 0149
exact hold - 0150
exact hsource - 0151
have hzbound : Lt(z,S l) - 0152
specialize finite_bounded_entry_lt (u) - 0153
specialize finite_bounded_entry_lt (v) - 0154
specialize finite_bounded_entry_lt (S l) - 0155
specialize finite_bounded_entry_lt (k) - 0156
specialize finite_bounded_entry_lt (z) - 0157
apply finite_bounded_entry_lt - 0158
exact hp_left - 0159
exact hk - 0160
exact hold - 0161
have hzj : ~(z = j) - 0162
intro heq - 0163
apply hcase_right - 0164
specialize hp_right_left (k) - 0165
specialize hp_right_left (i) - 0166
specialize hp_right_left (j) - 0167
apply hp_right_left - 0168
exact hk - 0169
specialize le_succ (S i) - 0170
specialize le_succ (l) - 0171
apply le_succ - 0172
exact hi - 0173
rewrite heq at hold - 0174
rewrite heq at hold - 0175
exact hold - 0176
exact htcopy_left - 0177
have hzl : ~(z = l) - 0178
intro heq - 0179
apply hlast_right - 0180
specialize hp_right_left (k) - 0181
specialize hp_right_left (l) - 0182
specialize hp_right_left (l) - 0183
apply hp_right_left - 0184
exact hk - 0185
specialize le_refl (S l) - 0186
apply le_refl - 0187
rewrite heq at hold - 0188
rewrite heq at hold - 0189
exact hold - 0190
exact htcopy_right_left - 0191
specialize factor_permutation_swap_reflect_unchanged (d) - 0192
specialize factor_permutation_swap_reflect_unchanged (e) - 0193
specialize factor_permutation_swap_reflect_unchanged (D) - 0194
specialize factor_permutation_swap_reflect_unchanged (E) - 0195
specialize factor_permutation_swap_reflect_unchanged (l) - 0196
specialize factor_permutation_swap_reflect_unchanged (j) - 0197
specialize factor_permutation_swap_reflect_unchanged (p) - 0198
specialize factor_permutation_swap_reflect_unchanged (q) - 0199
specialize factor_permutation_swap_reflect_unchanged (z) - 0200
specialize factor_permutation_swap_reflect_unchanged (a) - 0201
apply factor_permutation_swap_reflect_unchanged - 0202
exact hs - 0203
exact hzbound - 0204
exact hzj - 0205
exact hzl - 0206
exact hvalue