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.
Inputs are genuine canonical signed-pair codes, not arbitrary naturals. Products start at the actual Gaussian identity, whose code is six. The factor list uses the proved prime-divisor property; irreducibility alone is not silently renamed primality. Uniqueness supplies equal lengths, a bounded bijection, and an actual unit at each match, including repeated factors. Units have empty factorizations and zero is excluded. Sorted primary representatives, Gaussian prime classification, and Eisenstein factorization are separate targets.
Exact theorem in conservative defined notation
∀ l. ∀ b. ∀ c. ∀ P. ∀ m. ∀ d. ∀ e. ∀ Q. GAllIrreducible(b,c,l) → GProduct(b,c,l,P) → GAllIrreducible(d,e,m) → GProduct(d,e,m,Q) → GAssociate(P,Q) → l = m ∧ (∃ x. ∃ y. GMatchedFactors(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 348 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 (21)
01Induction on lL1–10
02Fix variables and assumptionsL11–13
03Establish hidentityL14–19
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian product empty value.
04Establish hunitL20–26
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian factor associate unit.
05Establish hlengthL27–35
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian all irreducible product unit length zero.
- L27
have hlength : m=0 - L28
specialize gaussian_all_irreducible_product_unit_length_zero (d) - L29
specialize gaussian_all_irreducible_product_unit_length_zero (e) - L30
specialize gaussian_all_irreducible_product_unit_length_zero (m) - L31
specialize gaussian_all_irreducible_product_unit_length_zero (Q) - L32
apply gaussian_all_irreducible_product_unit_length_zero - L33
exact hrall - L34
exact hQ - L35
exact hunit
06Separate the logical casesL36–36
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L36
split
07Calculate and transport equalitiesL37–37
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L37
symm
08Use earlier factsL38–38
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L38
exact hlength
09Construct an explicit witnessL39–40
10Use earlier factsL41–45
Instantiate or apply named facts and discharge the corresponding proof obligations.
11Fix variables and assumptionsL46–55
12Fix variables and assumptionsL56–57
13Establish hfirstL58–64
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian product successor decompose.
- L58
have hfirst : ∃ p. ∃ R. BetaAt(b,c,l,p) ∧ (GProduct(b,c,l,R) ∧ GMul(R,p,P))Definitions: BetaAt(b,c,l,p)GProduct(b,c,l,R)GMul(R,p,P)Original native command in the exact edition - L59
specialize gaussian_product_successor_decompose (b) - L60
specialize gaussian_product_successor_decompose (c) - L61
specialize gaussian_product_successor_decompose (l) - L62
specialize gaussian_product_successor_decompose (P) - L63
apply gaussian_product_successor_decompose - L64
exact hP
14Separate the logical casesL65–68
15Establish hirL69–75
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hall.
16Establish hdivL76–80
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian divides transitive.
17Construct an explicit witnessL81–81
Supply the displayed value, then prove that it has the required property.
- L81
exists (x1)
18Use earlier factsL82–90
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L82
specialize gaussian_multiply_commutative (x1) - L83
specialize gaussian_multiply_commutative (x) - L84
specialize gaussian_multiply_commutative (P) - L85
apply gaussian_multiply_commutative - L86
exact hfirst_witness_witness_right_right - L87
specialize gaussian_associate_divides (P) - L88
specialize gaussian_associate_divides (Q) - L89
apply gaussian_associate_divides - L90
exact hassoc
19Establish hmemberL91–100
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian irreducible divisor product member.
- L91
have hmember : ∃ i. ∃ q. Lt(i,m) ∧ (BetaAt(d,e,i,q) ∧ GAssociate(x,q))Definitions: Lt(i,m)BetaAt(d,e,i,q)GAssociate(x,q)Original native command in the exact edition - L92
specialize gaussian_irreducible_divisor_product_member (m) - L93
specialize gaussian_irreducible_divisor_product_member (d) - L94
specialize gaussian_irreducible_divisor_product_member (e) - L95
specialize gaussian_irreducible_divisor_product_member (Q) - L96
specialize gaussian_irreducible_divisor_product_member (x) - L97
apply gaussian_irreducible_divisor_product_member - L98
exact hrall - L99
exact hQ - L100
exact hir
20Use earlier factsL101–101
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L101
exact hdiv
21Separate the logical casesL102–105
22Establish hmL106–108
23Separate the logical casesL109–110
24Use earlier factsL111–112
25Calculate and transport equalitiesL113–113
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L113
rewrite hm_left at hmember_witness_witness_left
26Use earlier factsL114–114
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L114
exact hmember_witness_witness_left
27Separate the logical casesL115–115
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L115
cases hm_right
28Establish hrightL116–124
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian product length transport.
- L116
have hright : GProduct(d,e,S x4,Q)Definitions: GProduct(d,e,S x4,Q)Original native command in the exact edition - L117
specialize gaussian_product_length_transport (d) - L118
specialize gaussian_product_length_transport (e) - L119
specialize gaussian_product_length_transport (m) - L120
specialize gaussian_product_length_transport (S x4) - L121
specialize gaussian_product_length_transport (Q) - L122
apply gaussian_product_length_transport - L123
exact hm_right_witness - L124
exact hQ
29Establish hrightallL125–133
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian all irreducible length transport.
- L125
have hrightall : GAllIrreducible(d,e,S x4)Definitions: GAllIrreducible(d,e,S x4)Original native command in the exact edition - L126
specialize gaussian_all_irreducible_length_transport (d) - L127
specialize gaussian_all_irreducible_length_transport (e) - L128
specialize gaussian_all_irreducible_length_transport (m) - L129
specialize gaussian_all_irreducible_length_transport (S x4) - L130
apply gaussian_all_irreducible_length_transport - L131
exact hm_right_witness - L132
exact hrall - L133
rewrite hm_right_witness at hmember_witness_witness_left
30Establish hcaseL134–138
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
31Separate the logical casesL139–139
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L139
cases hcase
32Establish hlastL140–148
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian product beta index transport.
- L140
have hlast : BetaAt(d,e,x4,x3)Definitions: BetaAt(d,e,x4,x3)Original native command in the exact edition - L141
specialize gaussian_product_beta_index_transport (d) - L142
specialize gaussian_product_beta_index_transport (e) - L143
specialize gaussian_product_beta_index_transport (x2) - L144
specialize gaussian_product_beta_index_transport (x4) - L145
specialize gaussian_product_beta_index_transport (x3) - L146
apply gaussian_product_beta_index_transport - L147
exact hcase_left - L148
exact hmember_witness_witness_right_left
33Establish htailL149–157
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian product decompose at last.
- L149
have htail : ∃ T. GProduct(d,e,x4,T) ∧ GMul(T,x3,Q)Definitions: GProduct(d,e,x4,T)GMul(T,x3,Q)Original native command in the exact edition - L150
specialize gaussian_product_decompose_at_last (d) - L151
specialize gaussian_product_decompose_at_last (e) - L152
specialize gaussian_product_decompose_at_last (x4) - L153
specialize gaussian_product_decompose_at_last (Q) - L154
specialize gaussian_product_decompose_at_last (x3) - L155
apply gaussian_product_decompose_at_last - L156
exact hright - L157
exact hlast
34Separate the logical casesL158–159
35Establish hprefixL160–169
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian factor associate cancel products.
- L160
have hprefix : GAssociate(x1,x5)Definitions: GAssociate(x1,x5)Original native command in the exact edition - L161
specialize gaussian_factor_associate_cancel_products (x1) - L162
specialize gaussian_factor_associate_cancel_products (x) - L163
specialize gaussian_factor_associate_cancel_products (P) - L164
specialize gaussian_factor_associate_cancel_products (x5) - L165
specialize gaussian_factor_associate_cancel_products (x3) - L166
specialize gaussian_factor_associate_cancel_products (Q) - L167
apply gaussian_factor_associate_cancel_products - L168
exact hfirst_witness_witness_right_right - L169
exact htail_witness_right
36Use earlier factsL170–171
37Separate the logical casesL172–174
38Use earlier factsL175–175
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L175
exact hir_right_left
39Establish hrecL176–185
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
- L176
have hrec : l = x4 ∧ (∃ x. ∃ y. GMatchedFactors(b,c,d,e,x,y,l))Definitions: GMatchedFactors(b,c,d,e,x,y,l)Original native command in the exact edition - L177
specialize IH (b) - L178
specialize IH (c) - L179
specialize IH (x1) - L180
specialize IH (x4) - L181
specialize IH (d) - L182
specialize IH (e) - L183
specialize IH (x5) - L184
apply IH - L185
specialize gaussian_all_irreducible_prefix (b)
40Use earlier factsL186–195
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L186
specialize gaussian_all_irreducible_prefix (c) - L187
specialize gaussian_all_irreducible_prefix (l) - L188
apply gaussian_all_irreducible_prefix - L189
exact hall - L190
exact hfirst_witness_witness_right_left - L191
specialize gaussian_all_irreducible_prefix (d) - L192
specialize gaussian_all_irreducible_prefix (e) - L193
specialize gaussian_all_irreducible_prefix (x4) - L194
apply gaussian_all_irreducible_prefix - L195
exact hrightall
41Use earlier factsL196–197
42Separate the logical casesL198–201
43Calculate and transport equalitiesL202–203
44Use earlier factsL204–204
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L204
exact hrec_left
45Calculate and transport equalitiesL205–205
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L205
symm
46Use earlier factsL206–206
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L206
exact hm_right_witness
47Establish hfullL207–216
Establish this local claim before using it. It is not an additional assumption.
- L207
have hfull : ∃ U. ∃ V. GMatchedFactors(b,c,d,e,U,V,S l) ∧ (BetaAt(U,V,l,l) ∧ (∀ x. ∀ y. Lt(x,l) → BetaAt(x6,x7,x,y) → BetaAt(U,V,x,y)))Definitions: GMatchedFactors(b,c,d,e,U,V,S l)BetaAt(U,V,l,l)Lt(x,l)BetaAt(x6,x7,x,y)BetaAt(U,V,x,y)Original native command in the exact edition - L208
specialize gaussian_factor_matched_append (b) - L209
specialize gaussian_factor_matched_append (c) - L210
specialize gaussian_factor_matched_append (d) - L211
specialize gaussian_factor_matched_append (e) - L212
specialize gaussian_factor_matched_append (x6) - L213
specialize gaussian_factor_matched_append (x7) - L214
specialize gaussian_factor_matched_append (l) - L215
specialize gaussian_factor_matched_append (x) - L216
specialize gaussian_factor_matched_append (x3)
48Use earlier factsL217–225
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L217
apply gaussian_factor_matched_append - L218
exact hrec_right_witness_witness - L219
exact hfirst_witness_witness_left - L220
specialize gaussian_product_beta_index_transport (d) - L221
specialize gaussian_product_beta_index_transport (e) - L222
specialize gaussian_product_beta_index_transport (x4) - L223
specialize gaussian_product_beta_index_transport (l) - L224
specialize gaussian_product_beta_index_transport (x3) - L225
apply gaussian_product_beta_index_transport
49Calculate and transport equalitiesL226–226
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L226
symm
50Use earlier factsL227–229
51Separate the logical casesL230–232
52Construct an explicit witnessL233–234
53Use earlier factsL235–235
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L235
exact hfull_witness_witness_left
54Establish hswapL236–245
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian factor swapped product exists.
- L236
have hswap : ∃ D. ∃ E. ∃ t. GAllIrreducible(D,E,S x4) ∧ (GProduct(D,E,S x4,Q) ∧ (BetaAt(d,e,x2,x3) ∧ (BetaAt(d,e,x4,t) ∧ (BetaAt(D,E,x2,t) ∧ (BetaAt(D,E,x4,x3) ∧ (∀ x. ∀ y. Lt(x,S x4) → ¬x = x2 → ¬x = x4 → BetaAt(d,e,x,y) → BetaAt(D,E,x,y)))))))Definitions: GAllIrreducible(D,E,S x4)GProduct(D,E,S x4,Q)BetaAt(d,e,x2,x3)BetaAt(d,e,x4,t)BetaAt(D,E,x2,t)BetaAt(D,E,x4,x3)Lt(x,S x4)BetaAt(d,e,x,y)BetaAt(D,E,x,y)Original native command in the exact edition - L237
specialize gaussian_factor_swapped_product_exists (d) - L238
specialize gaussian_factor_swapped_product_exists (e) - L239
specialize gaussian_factor_swapped_product_exists (x4) - L240
specialize gaussian_factor_swapped_product_exists (x2) - L241
specialize gaussian_factor_swapped_product_exists (x3) - L242
specialize gaussian_factor_swapped_product_exists (Q) - L243
apply gaussian_factor_swapped_product_exists - L244
exact hrightall - L245
exact hright
55Use earlier factsL246–247
56Separate the logical casesL248–252
57Establish hlastL253–253
Establish this local claim before using it. It is not an additional assumption.
- L253
have hlast : BetaAt(x5,x6,x4,x3)Definitions: BetaAt(x5,x6,x4,x3)Original native command in the exact edition
58Separate the logical casesL254–257
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
59Use earlier factsL258–258
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L258
exact hswap_witness_witness_witness_right_right_right_right_right_left
60Establish htailL259–267
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian product decompose at last.
- L259
have htail : ∃ T. GProduct(x5,x6,x4,T) ∧ GMul(T,x3,Q)Definitions: GProduct(x5,x6,x4,T)GMul(T,x3,Q)Original native command in the exact edition - L260
specialize gaussian_product_decompose_at_last (x5) - L261
specialize gaussian_product_decompose_at_last (x6) - L262
specialize gaussian_product_decompose_at_last (x4) - L263
specialize gaussian_product_decompose_at_last (Q) - L264
specialize gaussian_product_decompose_at_last (x3) - L265
apply gaussian_product_decompose_at_last - L266
exact hswap_witness_witness_witness_right_left - L267
exact hlast
61Separate the logical casesL268–269
62Establish hprefixL270–279
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian factor associate cancel products.
- L270
have hprefix : GAssociate(x1,x8)Definitions: GAssociate(x1,x8)Original native command in the exact edition - L271
specialize gaussian_factor_associate_cancel_products (x1) - L272
specialize gaussian_factor_associate_cancel_products (x) - L273
specialize gaussian_factor_associate_cancel_products (P) - L274
specialize gaussian_factor_associate_cancel_products (x8) - L275
specialize gaussian_factor_associate_cancel_products (x3) - L276
specialize gaussian_factor_associate_cancel_products (Q) - L277
apply gaussian_factor_associate_cancel_products - L278
exact hfirst_witness_witness_right_right - L279
exact htail_witness_right
63Use earlier factsL280–281
64Separate the logical casesL282–284
65Use earlier factsL285–285
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L285
exact hir_right_left
66Establish hrecL286–295
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
- L286
have hrec : l = x4 ∧ (∃ x. ∃ y. GMatchedFactors(b,c,x5,x6,x,y,l))Definitions: GMatchedFactors(b,c,x5,x6,x,y,l)Original native command in the exact edition - L287
specialize IH (b) - L288
specialize IH (c) - L289
specialize IH (x1) - L290
specialize IH (x4) - L291
specialize IH (x5) - L292
specialize IH (x6) - L293
specialize IH (x8) - L294
apply IH - L295
specialize gaussian_all_irreducible_prefix (b)
67Use earlier factsL296–305
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L296
specialize gaussian_all_irreducible_prefix (c) - L297
specialize gaussian_all_irreducible_prefix (l) - L298
apply gaussian_all_irreducible_prefix - L299
exact hall - L300
exact hfirst_witness_witness_right_left - L301
specialize gaussian_all_irreducible_prefix (x5) - L302
specialize gaussian_all_irreducible_prefix (x6) - L303
specialize gaussian_all_irreducible_prefix (x4) - L304
apply gaussian_all_irreducible_prefix - L305
exact hswap_witness_witness_witness_left
68Use earlier factsL306–307
69Separate the logical casesL308–311
70Calculate and transport equalitiesL312–313
71Use earlier factsL314–314
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L314
exact hrec_left
72Calculate and transport equalitiesL315–315
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L315
symm
73Use earlier factsL316–325
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L316
exact hm_right_witness - L317
specialize gaussian_factor_matched_unswap_exists (b) - L318
specialize gaussian_factor_matched_unswap_exists (c) - L319
specialize gaussian_factor_matched_unswap_exists (d) - L320
specialize gaussian_factor_matched_unswap_exists (e) - L321
specialize gaussian_factor_matched_unswap_exists (x5) - L322
specialize gaussian_factor_matched_unswap_exists (x6) - L323
specialize gaussian_factor_matched_unswap_exists (x9) - L324
specialize gaussian_factor_matched_unswap_exists (x10) - L325
specialize gaussian_factor_matched_unswap_exists (l)
74Use earlier factsL326–330
Instantiate or apply named facts and discharge the corresponding proof obligations.
75Calculate and transport equalitiesL331–331
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L331
rewrite <- hrec_left at hcase_right
76Use earlier factsL332–341
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L332
exact hcase_right - L333
exact hrec_right_witness_witness - L334
exact hfirst_witness_witness_left - L335
specialize gaussian_factor_swap_length_transport (d) - L336
specialize gaussian_factor_swap_length_transport (e) - L337
specialize gaussian_factor_swap_length_transport (x5) - L338
specialize gaussian_factor_swap_length_transport (x6) - L339
specialize gaussian_factor_swap_length_transport (x4) - L340
specialize gaussian_factor_swap_length_transport (l) - L341
specialize gaussian_factor_swap_length_transport (x2)
77Use earlier factsL342–344
78Calculate and transport equalitiesL345–345
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L345
symm
Original defined command ledger · 348 lines
- 0001
induction l - 0002
intro b - 0003
intro c - 0004
intro P - 0005
intro m - 0006
intro d - 0007
intro e - 0008
intro Q - 0009
intro hall - 0010
intro hP - 0011
intro hrall - 0012
intro hQ - 0013
intro hassoc - 0014
have hidentity : P=6 - 0015
specialize gaussian_product_empty_value (b) - 0016
specialize gaussian_product_empty_value (c) - 0017
specialize gaussian_product_empty_value (P) - 0018
apply gaussian_product_empty_value - 0019
exact hP - 0020
have hunit : GUnit(Q) - 0021
specialize gaussian_factor_associate_unit (P) - 0022
specialize gaussian_factor_associate_unit (Q) - 0023
apply gaussian_factor_associate_unit - 0024
exact hassoc - 0025
rewrite hidentity - 0026
exact gaussian_one_unit - 0027
have hlength : m=0 - 0028
specialize gaussian_all_irreducible_product_unit_length_zero (d) - 0029
specialize gaussian_all_irreducible_product_unit_length_zero (e) - 0030
specialize gaussian_all_irreducible_product_unit_length_zero (m) - 0031
specialize gaussian_all_irreducible_product_unit_length_zero (Q) - 0032
apply gaussian_all_irreducible_product_unit_length_zero - 0033
exact hrall - 0034
exact hQ - 0035
exact hunit - 0036
split - 0037
symm - 0038
exact hlength - 0039
exists (0) - 0040
exists (0) - 0041
specialize gaussian_factor_empty_matching (b) - 0042
specialize gaussian_factor_empty_matching (c) - 0043
specialize gaussian_factor_empty_matching (d) - 0044
specialize gaussian_factor_empty_matching (e) - 0045
apply gaussian_factor_empty_matching - 0046
intro b - 0047
intro c - 0048
intro P - 0049
intro m - 0050
intro d - 0051
intro e - 0052
intro Q - 0053
intro hall - 0054
intro hP - 0055
intro hrall - 0056
intro hQ - 0057
intro hassoc - 0058
have hfirst : ∃ p. ∃ R. BetaAt(b,c,l,p) ∧ (GProduct(b,c,l,R) ∧ GMul(R,p,P)) - 0059
specialize gaussian_product_successor_decompose (b) - 0060
specialize gaussian_product_successor_decompose (c) - 0061
specialize gaussian_product_successor_decompose (l) - 0062
specialize gaussian_product_successor_decompose (P) - 0063
apply gaussian_product_successor_decompose - 0064
exact hP - 0065
cases hfirst - 0066
cases hfirst_witness - 0067
cases hfirst_witness_witness - 0068
cases hfirst_witness_witness_right - 0069
have hir : GIrreducible(x) - 0070
specialize hall (l) - 0071
specialize hall (x) - 0072
apply hall - 0073
specialize le_refl (S l) - 0074
apply le_refl - 0075
exact hfirst_witness_witness_left - 0076
have hdiv : GDvd(x,Q) - 0077
specialize gaussian_divides_transitive (x) - 0078
specialize gaussian_divides_transitive (P) - 0079
specialize gaussian_divides_transitive (Q) - 0080
apply gaussian_divides_transitive - 0081
exists (x1) - 0082
specialize gaussian_multiply_commutative (x1) - 0083
specialize gaussian_multiply_commutative (x) - 0084
specialize gaussian_multiply_commutative (P) - 0085
apply gaussian_multiply_commutative - 0086
exact hfirst_witness_witness_right_right - 0087
specialize gaussian_associate_divides (P) - 0088
specialize gaussian_associate_divides (Q) - 0089
apply gaussian_associate_divides - 0090
exact hassoc - 0091
have hmember : ∃ i. ∃ q. Lt(i,m) ∧ (BetaAt(d,e,i,q) ∧ GAssociate(x,q)) - 0092
specialize gaussian_irreducible_divisor_product_member (m) - 0093
specialize gaussian_irreducible_divisor_product_member (d) - 0094
specialize gaussian_irreducible_divisor_product_member (e) - 0095
specialize gaussian_irreducible_divisor_product_member (Q) - 0096
specialize gaussian_irreducible_divisor_product_member (x) - 0097
apply gaussian_irreducible_divisor_product_member - 0098
exact hrall - 0099
exact hQ - 0100
exact hir - 0101
exact hdiv - 0102
cases hmember - 0103
cases hmember_witness - 0104
cases hmember_witness_witness - 0105
cases hmember_witness_witness_right - 0106
have hm : m=0 \/ exists k. m=S k - 0107
specialize zero_or_succ (m) - 0108
apply zero_or_succ - 0109
cases hm - 0110
exfalso - 0111
specialize gaussian_search_no_index_below_zero (x2) - 0112
apply gaussian_search_no_index_below_zero - 0113
rewrite hm_left at hmember_witness_witness_left - 0114
exact hmember_witness_witness_left - 0115
cases hm_right - 0116
have hright : GProduct(d,e,S x4,Q) - 0117
specialize gaussian_product_length_transport (d) - 0118
specialize gaussian_product_length_transport (e) - 0119
specialize gaussian_product_length_transport (m) - 0120
specialize gaussian_product_length_transport (S x4) - 0121
specialize gaussian_product_length_transport (Q) - 0122
apply gaussian_product_length_transport - 0123
exact hm_right_witness - 0124
exact hQ - 0125
have hrightall : GAllIrreducible(d,e,S x4) - 0126
specialize gaussian_all_irreducible_length_transport (d) - 0127
specialize gaussian_all_irreducible_length_transport (e) - 0128
specialize gaussian_all_irreducible_length_transport (m) - 0129
specialize gaussian_all_irreducible_length_transport (S x4) - 0130
apply gaussian_all_irreducible_length_transport - 0131
exact hm_right_witness - 0132
exact hrall - 0133
rewrite hm_right_witness at hmember_witness_witness_left - 0134
have hcase : x2 = x4 ∨ Lt(x2,x4) - 0135
specialize finite_lt_succ_eq_or_lt (x4) - 0136
specialize finite_lt_succ_eq_or_lt (x2) - 0137
apply finite_lt_succ_eq_or_lt - 0138
exact hmember_witness_witness_left - 0139
cases hcase - 0140
have hlast : BetaAt(d,e,x4,x3) - 0141
specialize gaussian_product_beta_index_transport (d) - 0142
specialize gaussian_product_beta_index_transport (e) - 0143
specialize gaussian_product_beta_index_transport (x2) - 0144
specialize gaussian_product_beta_index_transport (x4) - 0145
specialize gaussian_product_beta_index_transport (x3) - 0146
apply gaussian_product_beta_index_transport - 0147
exact hcase_left - 0148
exact hmember_witness_witness_right_left - 0149
have htail : ∃ T. GProduct(d,e,x4,T) ∧ GMul(T,x3,Q) - 0150
specialize gaussian_product_decompose_at_last (d) - 0151
specialize gaussian_product_decompose_at_last (e) - 0152
specialize gaussian_product_decompose_at_last (x4) - 0153
specialize gaussian_product_decompose_at_last (Q) - 0154
specialize gaussian_product_decompose_at_last (x3) - 0155
apply gaussian_product_decompose_at_last - 0156
exact hright - 0157
exact hlast - 0158
cases htail - 0159
cases htail_witness - 0160
have hprefix : GAssociate(x1,x5) - 0161
specialize gaussian_factor_associate_cancel_products (x1) - 0162
specialize gaussian_factor_associate_cancel_products (x) - 0163
specialize gaussian_factor_associate_cancel_products (P) - 0164
specialize gaussian_factor_associate_cancel_products (x5) - 0165
specialize gaussian_factor_associate_cancel_products (x3) - 0166
specialize gaussian_factor_associate_cancel_products (Q) - 0167
apply gaussian_factor_associate_cancel_products - 0168
exact hfirst_witness_witness_right_right - 0169
exact htail_witness_right - 0170
exact hassoc - 0171
exact hmember_witness_witness_right_right - 0172
cases hir - 0173
cases hir_right - 0174
cases hir_right_right - 0175
exact hir_right_left - 0176
have hrec : l = x4 ∧ (∃ x. ∃ y. GMatchedFactors(b,c,d,e,x,y,l)) - 0177
specialize IH (b) - 0178
specialize IH (c) - 0179
specialize IH (x1) - 0180
specialize IH (x4) - 0181
specialize IH (d) - 0182
specialize IH (e) - 0183
specialize IH (x5) - 0184
apply IH - 0185
specialize gaussian_all_irreducible_prefix (b) - 0186
specialize gaussian_all_irreducible_prefix (c) - 0187
specialize gaussian_all_irreducible_prefix (l) - 0188
apply gaussian_all_irreducible_prefix - 0189
exact hall - 0190
exact hfirst_witness_witness_right_left - 0191
specialize gaussian_all_irreducible_prefix (d) - 0192
specialize gaussian_all_irreducible_prefix (e) - 0193
specialize gaussian_all_irreducible_prefix (x4) - 0194
apply gaussian_all_irreducible_prefix - 0195
exact hrightall - 0196
exact htail_witness_left - 0197
exact hprefix - 0198
cases hrec - 0199
cases hrec_right - 0200
cases hrec_right_witness - 0201
split - 0202
trans S x4 - 0203
congr - 0204
exact hrec_left - 0205
symm - 0206
exact hm_right_witness - 0207
have hfull : ∃ U. ∃ V. GMatchedFactors(b,c,d,e,U,V,S l) ∧ (BetaAt(U,V,l,l) ∧ (∀ x. ∀ y. Lt(x,l) → BetaAt(x6,x7,x,y) → BetaAt(U,V,x,y))) - 0208
specialize gaussian_factor_matched_append (b) - 0209
specialize gaussian_factor_matched_append (c) - 0210
specialize gaussian_factor_matched_append (d) - 0211
specialize gaussian_factor_matched_append (e) - 0212
specialize gaussian_factor_matched_append (x6) - 0213
specialize gaussian_factor_matched_append (x7) - 0214
specialize gaussian_factor_matched_append (l) - 0215
specialize gaussian_factor_matched_append (x) - 0216
specialize gaussian_factor_matched_append (x3) - 0217
apply gaussian_factor_matched_append - 0218
exact hrec_right_witness_witness - 0219
exact hfirst_witness_witness_left - 0220
specialize gaussian_product_beta_index_transport (d) - 0221
specialize gaussian_product_beta_index_transport (e) - 0222
specialize gaussian_product_beta_index_transport (x4) - 0223
specialize gaussian_product_beta_index_transport (l) - 0224
specialize gaussian_product_beta_index_transport (x3) - 0225
apply gaussian_product_beta_index_transport - 0226
symm - 0227
exact hrec_left - 0228
exact hlast - 0229
exact hmember_witness_witness_right_right - 0230
cases hfull - 0231
cases hfull_witness - 0232
cases hfull_witness_witness - 0233
exists (x8) - 0234
exists (x9) - 0235
exact hfull_witness_witness_left - 0236
have hswap : ∃ D. ∃ E. ∃ t. GAllIrreducible(D,E,S x4) ∧ (GProduct(D,E,S x4,Q) ∧ (BetaAt(d,e,x2,x3) ∧ (BetaAt(d,e,x4,t) ∧ (BetaAt(D,E,x2,t) ∧ (BetaAt(D,E,x4,x3) ∧ (∀ x. ∀ y. Lt(x,S x4) → ¬x = x2 → ¬x = x4 → BetaAt(d,e,x,y) → BetaAt(D,E,x,y))))))) - 0237
specialize gaussian_factor_swapped_product_exists (d) - 0238
specialize gaussian_factor_swapped_product_exists (e) - 0239
specialize gaussian_factor_swapped_product_exists (x4) - 0240
specialize gaussian_factor_swapped_product_exists (x2) - 0241
specialize gaussian_factor_swapped_product_exists (x3) - 0242
specialize gaussian_factor_swapped_product_exists (Q) - 0243
apply gaussian_factor_swapped_product_exists - 0244
exact hrightall - 0245
exact hright - 0246
exact hcase_right - 0247
exact hmember_witness_witness_right_left - 0248
cases hswap - 0249
cases hswap_witness - 0250
cases hswap_witness_witness - 0251
cases hswap_witness_witness_witness - 0252
cases hswap_witness_witness_witness_right - 0253
have hlast : BetaAt(x5,x6,x4,x3) - 0254
cases hswap_witness_witness_witness_right_right - 0255
cases hswap_witness_witness_witness_right_right_right - 0256
cases hswap_witness_witness_witness_right_right_right_right - 0257
cases hswap_witness_witness_witness_right_right_right_right_right - 0258
exact hswap_witness_witness_witness_right_right_right_right_right_left - 0259
have htail : ∃ T. GProduct(x5,x6,x4,T) ∧ GMul(T,x3,Q) - 0260
specialize gaussian_product_decompose_at_last (x5) - 0261
specialize gaussian_product_decompose_at_last (x6) - 0262
specialize gaussian_product_decompose_at_last (x4) - 0263
specialize gaussian_product_decompose_at_last (Q) - 0264
specialize gaussian_product_decompose_at_last (x3) - 0265
apply gaussian_product_decompose_at_last - 0266
exact hswap_witness_witness_witness_right_left - 0267
exact hlast - 0268
cases htail - 0269
cases htail_witness - 0270
have hprefix : GAssociate(x1,x8) - 0271
specialize gaussian_factor_associate_cancel_products (x1) - 0272
specialize gaussian_factor_associate_cancel_products (x) - 0273
specialize gaussian_factor_associate_cancel_products (P) - 0274
specialize gaussian_factor_associate_cancel_products (x8) - 0275
specialize gaussian_factor_associate_cancel_products (x3) - 0276
specialize gaussian_factor_associate_cancel_products (Q) - 0277
apply gaussian_factor_associate_cancel_products - 0278
exact hfirst_witness_witness_right_right - 0279
exact htail_witness_right - 0280
exact hassoc - 0281
exact hmember_witness_witness_right_right - 0282
cases hir - 0283
cases hir_right - 0284
cases hir_right_right - 0285
exact hir_right_left - 0286
have hrec : l = x4 ∧ (∃ x. ∃ y. GMatchedFactors(b,c,x5,x6,x,y,l)) - 0287
specialize IH (b) - 0288
specialize IH (c) - 0289
specialize IH (x1) - 0290
specialize IH (x4) - 0291
specialize IH (x5) - 0292
specialize IH (x6) - 0293
specialize IH (x8) - 0294
apply IH - 0295
specialize gaussian_all_irreducible_prefix (b) - 0296
specialize gaussian_all_irreducible_prefix (c) - 0297
specialize gaussian_all_irreducible_prefix (l) - 0298
apply gaussian_all_irreducible_prefix - 0299
exact hall - 0300
exact hfirst_witness_witness_right_left - 0301
specialize gaussian_all_irreducible_prefix (x5) - 0302
specialize gaussian_all_irreducible_prefix (x6) - 0303
specialize gaussian_all_irreducible_prefix (x4) - 0304
apply gaussian_all_irreducible_prefix - 0305
exact hswap_witness_witness_witness_left - 0306
exact htail_witness_left - 0307
exact hprefix - 0308
cases hrec - 0309
cases hrec_right - 0310
cases hrec_right_witness - 0311
split - 0312
trans S x4 - 0313
congr - 0314
exact hrec_left - 0315
symm - 0316
exact hm_right_witness - 0317
specialize gaussian_factor_matched_unswap_exists (b) - 0318
specialize gaussian_factor_matched_unswap_exists (c) - 0319
specialize gaussian_factor_matched_unswap_exists (d) - 0320
specialize gaussian_factor_matched_unswap_exists (e) - 0321
specialize gaussian_factor_matched_unswap_exists (x5) - 0322
specialize gaussian_factor_matched_unswap_exists (x6) - 0323
specialize gaussian_factor_matched_unswap_exists (x9) - 0324
specialize gaussian_factor_matched_unswap_exists (x10) - 0325
specialize gaussian_factor_matched_unswap_exists (l) - 0326
specialize gaussian_factor_matched_unswap_exists (x2) - 0327
specialize gaussian_factor_matched_unswap_exists (x) - 0328
specialize gaussian_factor_matched_unswap_exists (x3) - 0329
specialize gaussian_factor_matched_unswap_exists (x7) - 0330
apply gaussian_factor_matched_unswap_exists - 0331
rewrite <- hrec_left at hcase_right - 0332
exact hcase_right - 0333
exact hrec_right_witness_witness - 0334
exact hfirst_witness_witness_left - 0335
specialize gaussian_factor_swap_length_transport (d) - 0336
specialize gaussian_factor_swap_length_transport (e) - 0337
specialize gaussian_factor_swap_length_transport (x5) - 0338
specialize gaussian_factor_swap_length_transport (x6) - 0339
specialize gaussian_factor_swap_length_transport (x4) - 0340
specialize gaussian_factor_swap_length_transport (l) - 0341
specialize gaussian_factor_swap_length_transport (x2) - 0342
specialize gaussian_factor_swap_length_transport (x3) - 0343
specialize gaussian_factor_swap_length_transport (x7) - 0344
apply gaussian_factor_swap_length_transport - 0345
symm - 0346
exact hrec_left - 0347
exact hswap_witness_witness_witness_right_right - 0348
exact hmember_witness_witness_right_right