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
∀ l. ∀ n. ∀ b. ∀ c. ∀ m. ∀ d. ∀ e. PrimeFactorList(n,b,c,l) → PrimeFactorList(n,d,e,m) → l = m ∧ (∃ x. ∃ y. PermutationPrefix(x,y,l) ∧ FactorListMatching(b,c,d,e,x,y,l))
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 227 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 (9)
01Induction on lL1–9
02Establish hproductL10–10
Establish this local claim before using it. It is not an additional assumption.
- L10
have hproduct : Product(b,c,0,n)Definitions: Product(b,c,0,n)Original native command in the exact edition
03Separate the logical casesL11–12
04Use earlier factsL13–13
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L13
exact hA_right_left
05Establish honeL14–19
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta product zero.
06Establish hlengthL20–27
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply factor permutation unit length zero.
- L20
have hlength : m = 0 - L21
specialize factor_permutation_unit_length_zero (n) - L22
specialize factor_permutation_unit_length_zero (d) - L23
specialize factor_permutation_unit_length_zero (e) - L24
specialize factor_permutation_unit_length_zero (m) - L25
apply factor_permutation_unit_length_zero - L26
exact hB - L27
exact hone
07Separate the logical casesL28–28
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L28
split
08Calculate and transport equalitiesL29–29
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L29
symm
09Use earlier factsL30–30
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L30
exact hlength
10Construct an explicit witnessL31–32
11Use earlier factsL33–37
Instantiate or apply named facts and discharge the corresponding proof obligations.
12Fix variables and assumptionsL38–45
13Establish hdL46–52
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply factor permutation successor decompose.
- L46
have hd : ∃ p. ∃ r. Prime(p) ∧ (BetaAt(b,c,l,p) ∧ (n = r · p ∧ PrimeFactorList(r,b,c,l)))Definitions: Prime(p)BetaAt(b,c,l,p)PrimeFactorList(r,b,c,l)Original native command in the exact edition - L47
specialize factor_permutation_successor_decompose (n) - L48
specialize factor_permutation_successor_decompose (b) - L49
specialize factor_permutation_successor_decompose (c) - L50
specialize factor_permutation_successor_decompose (l) - L51
apply factor_permutation_successor_decompose - L52
exact hA
14Separate the logical casesL53–57
15Establish hmemberL58–66
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply factor permutation prime member.
- L58
have hmember : ∃ i. Lt(i,m) ∧ BetaAt(d,e,i,x)Definitions: Lt(i,m)BetaAt(d,e,i,x)Original native command in the exact edition - L59
specialize factor_permutation_prime_member (n) - L60
specialize factor_permutation_prime_member (d) - L61
specialize factor_permutation_prime_member (e) - L62
specialize factor_permutation_prime_member (m) - L63
specialize factor_permutation_prime_member (x) - L64
apply factor_permutation_prime_member - L65
exact hB - L66
exact hd_witness_witness_left
16Construct an explicit witnessL67–67
Supply the displayed value, then prove that it has the required property.
- L67
exists x1
17Calculate and transport equalitiesL68–68
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L68
trans x1 * x
18Use earlier factsL69–70
19Separate the logical casesL71–72
20Establish hmnonzeroL73–78
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply factor permutation below zero impossible.
21Establish hpredecessorL79–82
22Separate the logical casesL83–83
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L83
cases hpredecessor
23Establish hBsuccessorL84–89
Establish this local claim before using it. It is not an additional assumption.
- L84
have hBsuccessor : PrimeFactorList(n,d,e,S x3)Definitions: PrimeFactorList(n,d,e,S x3)Original native command in the exact edition - L85
rewrite hpredecessor_witness at hB - L86
rewrite hpredecessor_witness at hB - L87
rewrite hpredecessor_witness at hB - L88
rewrite hpredecessor_witness at hB - L89
exact hB
24Establish hboundL90–92
Establish this local claim before using it. It is not an additional assumption.
25Establish hpositionL93–97
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
26Separate the logical casesL98–98
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L98
cases hposition
27Establish hlastL99–102
Establish this local claim before using it. It is not an additional assumption.
- L99
have hlast : BetaAt(d,e,x3,x)Definitions: BetaAt(d,e,x3,x)Original native command in the exact edition - L100
rewrite hposition_left at hmember_witness_right - L101
rewrite hposition_left at hmember_witness_right - L102
exact hmember_witness_right
28Establish hprefixL103–112
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply factor permutation cancel last.
- L103
have hprefix : PrimeFactorList(x1,d,e,x3)Definitions: PrimeFactorList(x1,d,e,x3)Original native command in the exact edition - L104
specialize factor_permutation_cancel_last (n) - L105
specialize factor_permutation_cancel_last (x) - L106
specialize factor_permutation_cancel_last (x1) - L107
specialize factor_permutation_cancel_last (d) - L108
specialize factor_permutation_cancel_last (e) - L109
specialize factor_permutation_cancel_last (x3) - L110
apply factor_permutation_cancel_last - L111
exact hBsuccessor - L112
exact hlast
29Use earlier factsL113–113
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L113
exact hd_witness_witness_right_right_left
30Establish hrecL114–123
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
- L114
have hrec : l = x3 ∧ (∃ x. ∃ y. PermutationPrefix(x,y,l) ∧ FactorListMatching(b,c,d,e,x,y,l))Definitions: PermutationPrefix(x,y,l)FactorListMatching(b,c,d,e,x,y,l)Original native command in the exact edition - L115
specialize IH (x1) - L116
specialize IH (b) - L117
specialize IH (c) - L118
specialize IH (x3) - L119
specialize IH (d) - L120
specialize IH (e) - L121
apply IH - L122
exact hd_witness_witness_right_right_right - L123
exact hprefix
31Separate the logical casesL124–126
32Establish hlastalignedL127–130
Establish this local claim before using it. It is not an additional assumption.
- L127
have hlastaligned : BetaAt(d,e,l,x)Definitions: BetaAt(d,e,l,x)Original native command in the exact edition - L128
rewrite hrec_left - L129
rewrite hrec_left - L130
exact hlast
33Separate the logical casesL131–131
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L131
split
34Calculate and transport equalitiesL132–133
35Use earlier factsL134–134
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L134
exact hrec_left
36Calculate and transport equalitiesL135–135
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L135
symm
37Use earlier factsL136–145
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L136
exact hpredecessor_witness - L137
specialize factor_permutation_matched_append_exists (b) - L138
specialize factor_permutation_matched_append_exists (c) - L139
specialize factor_permutation_matched_append_exists (d) - L140
specialize factor_permutation_matched_append_exists (e) - L141
specialize factor_permutation_matched_append_exists (x4) - L142
specialize factor_permutation_matched_append_exists (x5) - L143
specialize factor_permutation_matched_append_exists (l) - L144
specialize factor_permutation_matched_append_exists (x) - L145
apply factor_permutation_matched_append_exists
38Use earlier factsL146–148
39Establish hswapL149–158
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply factor permutation swapped factorization exists.
- L149
have hswap : ∃ B. ∃ C. ∃ q. PrimeFactorList(n,B,C,S x3) ∧ (BetaAt(d,e,x2,x) ∧ (BetaAt(d,e,x3,q) ∧ (BetaAt(B,C,x2,q) ∧ (BetaAt(B,C,x3,x) ∧ (∀ y. ∀ z. Lt(y,S x3) → ¬y = x2 → ¬y = x3 → BetaAt(d,e,y,z) → BetaAt(B,C,y,z))))))Definitions: PrimeFactorList(n,B,C,S x3)BetaAt(d,e,x2,x)BetaAt(d,e,x3,q)BetaAt(B,C,x2,q)BetaAt(B,C,x3,x)Lt(y,S x3)BetaAt(d,e,y,z)BetaAt(B,C,y,z)Original native command in the exact edition - L150
specialize factor_permutation_swapped_factorization_exists (n) - L151
specialize factor_permutation_swapped_factorization_exists (d) - L152
specialize factor_permutation_swapped_factorization_exists (e) - L153
specialize factor_permutation_swapped_factorization_exists (x3) - L154
specialize factor_permutation_swapped_factorization_exists (x2) - L155
specialize factor_permutation_swapped_factorization_exists (x) - L156
apply factor_permutation_swapped_factorization_exists - L157
exact hBsuccessor - L158
exact hposition_right
40Use earlier factsL159–159
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L159
exact hmember_witness_right
41Separate the logical casesL160–163
42Establish hlastL164–164
Establish this local claim before using it. It is not an additional assumption.
- L164
have hlast : BetaAt(x4,x5,x3,x)Definitions: BetaAt(x4,x5,x3,x)Original native command in the exact edition
43Separate the logical casesL165–168
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
44Use earlier factsL169–169
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L169
exact hswap_witness_witness_witness_right_right_right_right_left
45Establish hprefixL170–179
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply factor permutation cancel last.
- L170
have hprefix : PrimeFactorList(x1,x4,x5,x3)Definitions: PrimeFactorList(x1,x4,x5,x3)Original native command in the exact edition - L171
specialize factor_permutation_cancel_last (n) - L172
specialize factor_permutation_cancel_last (x) - L173
specialize factor_permutation_cancel_last (x1) - L174
specialize factor_permutation_cancel_last (x4) - L175
specialize factor_permutation_cancel_last (x5) - L176
specialize factor_permutation_cancel_last (x3) - L177
apply factor_permutation_cancel_last - L178
exact hswap_witness_witness_witness_left - L179
exact hlast
46Use earlier factsL180–180
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L180
exact hd_witness_witness_right_right_left
47Establish hrecL181–190
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
- L181
have hrec : l = x3 ∧ (∃ x. ∃ y. PermutationPrefix(x,y,l) ∧ FactorListMatching(b,c,x4,x5,x,y,l))Definitions: PermutationPrefix(x,y,l)FactorListMatching(b,c,x4,x5,x,y,l)Original native command in the exact edition - L182
specialize IH (x1) - L183
specialize IH (b) - L184
specialize IH (c) - L185
specialize IH (x3) - L186
specialize IH (x4) - L187
specialize IH (x5) - L188
apply IH - L189
exact hd_witness_witness_right_right_right - L190
exact hprefix
48Separate the logical casesL191–193
49Establish hpivotL194–196
Establish this local claim before using it. It is not an additional assumption.
50Establish hswapalignedL197–204
Establish this local claim before using it. It is not an additional assumption.
- L197
have hswapaligned : BetaAt(d,e,x2,x) ∧ (BetaAt(d,e,l,x6) ∧ (BetaAt(x4,x5,x2,x6) ∧ (BetaAt(x4,x5,l,x) ∧ (∀ y. ∀ z. Lt(y,S l) → ¬y = x2 → ¬y = l → BetaAt(d,e,y,z) → BetaAt(x4,x5,y,z)))))Definitions: BetaAt(d,e,x2,x)BetaAt(d,e,l,x6)BetaAt(x4,x5,x2,x6)BetaAt(x4,x5,l,x)Lt(y,S l)BetaAt(d,e,y,z)BetaAt(x4,x5,y,z)Original native command in the exact edition - L198
rewrite hrec_left - L199
rewrite hrec_left - L200
rewrite hrec_left - L201
rewrite hrec_left - L202
rewrite hrec_left - L203
rewrite hrec_left - L204
exact hswap_witness_witness_witness_right
51Separate the logical casesL205–205
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L205
split
52Calculate and transport equalitiesL206–207
53Use earlier factsL208–208
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L208
exact hrec_left
54Calculate and transport equalitiesL209–209
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L209
symm
55Use earlier factsL210–219
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L210
exact hpredecessor_witness - L211
specialize factor_permutation_matched_unswap_exists (b) - L212
specialize factor_permutation_matched_unswap_exists (c) - L213
specialize factor_permutation_matched_unswap_exists (d) - L214
specialize factor_permutation_matched_unswap_exists (e) - L215
specialize factor_permutation_matched_unswap_exists (x4) - L216
specialize factor_permutation_matched_unswap_exists (x5) - L217
specialize factor_permutation_matched_unswap_exists (x7) - L218
specialize factor_permutation_matched_unswap_exists (x8) - L219
specialize factor_permutation_matched_unswap_exists (l)
56Use earlier factsL220–227
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L220
specialize factor_permutation_matched_unswap_exists (x2) - L221
specialize factor_permutation_matched_unswap_exists (x) - L222
specialize factor_permutation_matched_unswap_exists (x6) - L223
apply factor_permutation_matched_unswap_exists - L224
exact hpivot - L225
exact hrec_right_witness_witness - L226
exact hd_witness_witness_right_left - L227
exact hswapaligned
Original defined command ledger · 227 lines
- 0001
induction l - 0002
intro n - 0003
intro b - 0004
intro c - 0005
intro m - 0006
intro d - 0007
intro e - 0008
intro hA - 0009
intro hB - 0010
have hproduct : Product(b,c,0,n) - 0011
cases hA - 0012
cases hA_right - 0013
exact hA_right_left - 0014
have hone : n = 1 - 0015
specialize beta_product_zero (b) - 0016
specialize beta_product_zero (c) - 0017
specialize beta_product_zero (n) - 0018
apply beta_product_zero - 0019
exact hproduct - 0020
have hlength : m = 0 - 0021
specialize factor_permutation_unit_length_zero (n) - 0022
specialize factor_permutation_unit_length_zero (d) - 0023
specialize factor_permutation_unit_length_zero (e) - 0024
specialize factor_permutation_unit_length_zero (m) - 0025
apply factor_permutation_unit_length_zero - 0026
exact hB - 0027
exact hone - 0028
split - 0029
symm - 0030
exact hlength - 0031
exists 0 - 0032
exists 0 - 0033
specialize factor_permutation_empty_matching (b) - 0034
specialize factor_permutation_empty_matching (c) - 0035
specialize factor_permutation_empty_matching (d) - 0036
specialize factor_permutation_empty_matching (e) - 0037
apply factor_permutation_empty_matching - 0038
intro n - 0039
intro b - 0040
intro c - 0041
intro m - 0042
intro d - 0043
intro e - 0044
intro hA - 0045
intro hB - 0046
have hd : ∃ p. ∃ r. Prime(p) ∧ (BetaAt(b,c,l,p) ∧ (n = r · p ∧ PrimeFactorList(r,b,c,l))) - 0047
specialize factor_permutation_successor_decompose (n) - 0048
specialize factor_permutation_successor_decompose (b) - 0049
specialize factor_permutation_successor_decompose (c) - 0050
specialize factor_permutation_successor_decompose (l) - 0051
apply factor_permutation_successor_decompose - 0052
exact hA - 0053
cases hd - 0054
cases hd_witness - 0055
cases hd_witness_witness - 0056
cases hd_witness_witness_right - 0057
cases hd_witness_witness_right_right - 0058
have hmember : ∃ i. Lt(i,m) ∧ BetaAt(d,e,i,x) - 0059
specialize factor_permutation_prime_member (n) - 0060
specialize factor_permutation_prime_member (d) - 0061
specialize factor_permutation_prime_member (e) - 0062
specialize factor_permutation_prime_member (m) - 0063
specialize factor_permutation_prime_member (x) - 0064
apply factor_permutation_prime_member - 0065
exact hB - 0066
exact hd_witness_witness_left - 0067
exists x1 - 0068
trans x1 * x - 0069
exact hd_witness_witness_right_right_left - 0070
apply mul_comm - 0071
cases hmember - 0072
cases hmember_witness - 0073
have hmnonzero : ~(m = 0) - 0074
intro hzero - 0075
specialize factor_permutation_below_zero_impossible (x2) - 0076
apply factor_permutation_below_zero_impossible - 0077
rewrite hzero at hmember_witness_left - 0078
exact hmember_witness_left - 0079
have hpredecessor : exists t. m = S t - 0080
specialize nonzero_is_succ (m) - 0081
apply nonzero_is_succ - 0082
exact hmnonzero - 0083
cases hpredecessor - 0084
have hBsuccessor : PrimeFactorList(n,d,e,S x3) - 0085
rewrite hpredecessor_witness at hB - 0086
rewrite hpredecessor_witness at hB - 0087
rewrite hpredecessor_witness at hB - 0088
rewrite hpredecessor_witness at hB - 0089
exact hB - 0090
have hbound : Lt(x2,S x3) - 0091
rewrite hpredecessor_witness at hmember_witness_left - 0092
exact hmember_witness_left - 0093
have hposition : x2 = x3 ∨ Lt(x2,x3) - 0094
specialize finite_lt_succ_eq_or_lt (x3) - 0095
specialize finite_lt_succ_eq_or_lt (x2) - 0096
apply finite_lt_succ_eq_or_lt - 0097
exact hbound - 0098
cases hposition - 0099
have hlast : BetaAt(d,e,x3,x) - 0100
rewrite hposition_left at hmember_witness_right - 0101
rewrite hposition_left at hmember_witness_right - 0102
exact hmember_witness_right - 0103
have hprefix : PrimeFactorList(x1,d,e,x3) - 0104
specialize factor_permutation_cancel_last (n) - 0105
specialize factor_permutation_cancel_last (x) - 0106
specialize factor_permutation_cancel_last (x1) - 0107
specialize factor_permutation_cancel_last (d) - 0108
specialize factor_permutation_cancel_last (e) - 0109
specialize factor_permutation_cancel_last (x3) - 0110
apply factor_permutation_cancel_last - 0111
exact hBsuccessor - 0112
exact hlast - 0113
exact hd_witness_witness_right_right_left - 0114
have hrec : l = x3 ∧ (∃ x. ∃ y. PermutationPrefix(x,y,l) ∧ FactorListMatching(b,c,d,e,x,y,l)) - 0115
specialize IH (x1) - 0116
specialize IH (b) - 0117
specialize IH (c) - 0118
specialize IH (x3) - 0119
specialize IH (d) - 0120
specialize IH (e) - 0121
apply IH - 0122
exact hd_witness_witness_right_right_right - 0123
exact hprefix - 0124
cases hrec - 0125
cases hrec_right - 0126
cases hrec_right_witness - 0127
have hlastaligned : BetaAt(d,e,l,x) - 0128
rewrite hrec_left - 0129
rewrite hrec_left - 0130
exact hlast - 0131
split - 0132
trans S x3 - 0133
congr - 0134
exact hrec_left - 0135
symm - 0136
exact hpredecessor_witness - 0137
specialize factor_permutation_matched_append_exists (b) - 0138
specialize factor_permutation_matched_append_exists (c) - 0139
specialize factor_permutation_matched_append_exists (d) - 0140
specialize factor_permutation_matched_append_exists (e) - 0141
specialize factor_permutation_matched_append_exists (x4) - 0142
specialize factor_permutation_matched_append_exists (x5) - 0143
specialize factor_permutation_matched_append_exists (l) - 0144
specialize factor_permutation_matched_append_exists (x) - 0145
apply factor_permutation_matched_append_exists - 0146
exact hrec_right_witness_witness - 0147
exact hd_witness_witness_right_left - 0148
exact hlastaligned - 0149
have hswap : ∃ B. ∃ C. ∃ q. PrimeFactorList(n,B,C,S x3) ∧ (BetaAt(d,e,x2,x) ∧ (BetaAt(d,e,x3,q) ∧ (BetaAt(B,C,x2,q) ∧ (BetaAt(B,C,x3,x) ∧ (∀ y. ∀ z. Lt(y,S x3) → ¬y = x2 → ¬y = x3 → BetaAt(d,e,y,z) → BetaAt(B,C,y,z)))))) - 0150
specialize factor_permutation_swapped_factorization_exists (n) - 0151
specialize factor_permutation_swapped_factorization_exists (d) - 0152
specialize factor_permutation_swapped_factorization_exists (e) - 0153
specialize factor_permutation_swapped_factorization_exists (x3) - 0154
specialize factor_permutation_swapped_factorization_exists (x2) - 0155
specialize factor_permutation_swapped_factorization_exists (x) - 0156
apply factor_permutation_swapped_factorization_exists - 0157
exact hBsuccessor - 0158
exact hposition_right - 0159
exact hmember_witness_right - 0160
cases hswap - 0161
cases hswap_witness - 0162
cases hswap_witness_witness - 0163
cases hswap_witness_witness_witness - 0164
have hlast : BetaAt(x4,x5,x3,x) - 0165
cases hswap_witness_witness_witness_right - 0166
cases hswap_witness_witness_witness_right_right - 0167
cases hswap_witness_witness_witness_right_right_right - 0168
cases hswap_witness_witness_witness_right_right_right_right - 0169
exact hswap_witness_witness_witness_right_right_right_right_left - 0170
have hprefix : PrimeFactorList(x1,x4,x5,x3) - 0171
specialize factor_permutation_cancel_last (n) - 0172
specialize factor_permutation_cancel_last (x) - 0173
specialize factor_permutation_cancel_last (x1) - 0174
specialize factor_permutation_cancel_last (x4) - 0175
specialize factor_permutation_cancel_last (x5) - 0176
specialize factor_permutation_cancel_last (x3) - 0177
apply factor_permutation_cancel_last - 0178
exact hswap_witness_witness_witness_left - 0179
exact hlast - 0180
exact hd_witness_witness_right_right_left - 0181
have hrec : l = x3 ∧ (∃ x. ∃ y. PermutationPrefix(x,y,l) ∧ FactorListMatching(b,c,x4,x5,x,y,l)) - 0182
specialize IH (x1) - 0183
specialize IH (b) - 0184
specialize IH (c) - 0185
specialize IH (x3) - 0186
specialize IH (x4) - 0187
specialize IH (x5) - 0188
apply IH - 0189
exact hd_witness_witness_right_right_right - 0190
exact hprefix - 0191
cases hrec - 0192
cases hrec_right - 0193
cases hrec_right_witness - 0194
have hpivot : Lt(x2,l) - 0195
rewrite hrec_left - 0196
exact hposition_right - 0197
have hswapaligned : BetaAt(d,e,x2,x) ∧ (BetaAt(d,e,l,x6) ∧ (BetaAt(x4,x5,x2,x6) ∧ (BetaAt(x4,x5,l,x) ∧ (∀ y. ∀ z. Lt(y,S l) → ¬y = x2 → ¬y = l → BetaAt(d,e,y,z) → BetaAt(x4,x5,y,z))))) - 0198
rewrite hrec_left - 0199
rewrite hrec_left - 0200
rewrite hrec_left - 0201
rewrite hrec_left - 0202
rewrite hrec_left - 0203
rewrite hrec_left - 0204
exact hswap_witness_witness_witness_right - 0205
split - 0206
trans S x3 - 0207
congr - 0208
exact hrec_left - 0209
symm - 0210
exact hpredecessor_witness - 0211
specialize factor_permutation_matched_unswap_exists (b) - 0212
specialize factor_permutation_matched_unswap_exists (c) - 0213
specialize factor_permutation_matched_unswap_exists (d) - 0214
specialize factor_permutation_matched_unswap_exists (e) - 0215
specialize factor_permutation_matched_unswap_exists (x4) - 0216
specialize factor_permutation_matched_unswap_exists (x5) - 0217
specialize factor_permutation_matched_unswap_exists (x7) - 0218
specialize factor_permutation_matched_unswap_exists (x8) - 0219
specialize factor_permutation_matched_unswap_exists (l) - 0220
specialize factor_permutation_matched_unswap_exists (x2) - 0221
specialize factor_permutation_matched_unswap_exists (x) - 0222
specialize factor_permutation_matched_unswap_exists (x6) - 0223
apply factor_permutation_matched_unswap_exists - 0224
exact hpivot - 0225
exact hrec_right_witness_witness - 0226
exact hd_witness_witness_right_left - 0227
exact hswapaligned