algebraic numbers in isabelle/hol - itp 2016: interactive ... · itp 2016, august 23, 2016...
TRANSCRIPT
![Page 1: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/1.jpg)
Algebraic Numbers in Isabelle/HOL1
Rene Thiemann and Akihisa Yamada
Institute of Computer ScienceUniversity of Innsbruck
ITP 2016, August 23, 2016
1Supported by the Austrian Science Fund (FWF) project Y757
![Page 2: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/2.jpg)
Overview
Motivation
Real Algebraic NumbersWell-DefinednessCalculating Real Roots of Rational PolynomialFactorizing Rational PolynomialArithmetic on Real Algebraic Numbers
Complex Algebraic Numbers
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 2/22
![Page 3: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/3.jpg)
Motivation
Certify Complexity of Matrix Interpretations
• given: automatically generated complexity proof for program
χA = (x − 1) · (−39 + 360x − 832x2 + 512x3)
• criterions• polynomial complexity if norms of all complex roots of χA 6 1• degree d in O(nd): more calculations with complex roots of χA
• problem: certifier crashed as numbers got too complicated
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 3/22
![Page 4: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/4.jpg)
Motivation
Certify Complexity of Matrix Interpretations
• given: automatically generated complexity proof for program
χA = (x − 1) · (−39 + 360x − 832x2 + 512x3)
• criterions• polynomial complexity if norms of all complex roots of χA 6 1• degree d in O(nd): more calculations with complex roots of χA
• problem: certifier crashed as numbers got too complicated
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 3/22
![Page 5: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/5.jpg)
Motivation
Closed Form for Cubic Polynomials
• −39 + 360x − 832x2 + 512x3 = 0 iff
• x
1
= 124
(13 + 34
3√
91+9i√383
+3√
91 + 9i√
383
),
• x
2
= 1324 −
17(1+i√3)
243√
91+9i√383− 1
48
(1− i
√3))
3√
91 + 9i√
383, or
• x
3
= 1324 −
17(1−i√3)
243√
91+9i√383− 1
48
(1 + i
√3))
3√
91 + 9i√
383
• problem: calculate and decide
norm(xj) =√
Re(xj)2 + Im(xj)2 6 1
for all j ∈ {1, 2, 3}• problem: no closed form for roots of polynomials of degree 5
and higher
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 4/22
![Page 6: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/6.jpg)
Motivation
Closed Form for Cubic Polynomials
• −39 + 360x − 832x2 + 512x3 = 0 iff
• x1 = 124
(13 + 34
3√
91+9i√383
+3√
91 + 9i√
383
),
• x2 = 1324 −
17(1+i√3)
243√
91+9i√383− 1
48
(1− i
√3))
3√
91 + 9i√
383, or
• x3 = 1324 −
17(1−i√3)
243√
91+9i√383− 1
48
(1 + i
√3))
3√
91 + 9i√
383
• problem: calculate and decide
norm(xj) =√
Re(xj)2 + Im(xj)2 6 1
for all j ∈ {1, 2, 3}
• problem: no closed form for roots of polynomials of degree 5and higher
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 4/22
![Page 7: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/7.jpg)
Motivation
Closed Form for Cubic Polynomials
• −39 + 360x − 832x2 + 512x3 = 0 iff
• x1 = 124
(13 + 34
3√
91+9i√383
+3√
91 + 9i√
383
),
• x2 = 1324 −
17(1+i√3)
243√
91+9i√383− 1
48
(1− i
√3))
3√
91 + 9i√
383, or
• x3 = 1324 −
17(1−i√3)
243√
91+9i√383− 1
48
(1 + i
√3))
3√
91 + 9i√
383
• problem: calculate and decide
norm(xj) =√
Re(xj)2 + Im(xj)2 6 1
for all j ∈ {1, 2, 3}• problem: no closed form for roots of polynomials of degree 5
and higher
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 4/22
![Page 8: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/8.jpg)
Motivation
Algebraic Numbers
• number x ∈ R ∪ C is algebraic iff it is root of non-zerorational polynomial
• x1 = “root #1 of −39 + 360x − 832x2 + 512x3”• x2 = “root #2 of −39 + 360x − 832x2 + 512x3”• x3 = “root #3 of −39 + 360x − 832x2 + 512x3”
Figure: −39 + 360x − 832x2 + 512x3
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 5/22
![Page 9: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/9.jpg)
Motivation
Problems with Algebraic Numbers
• well-definedness
Sturm’s method
is there a “root #3 of −23 + x − 5x2 + x3”
• representation
factorization of rational polynomials
is there a simpler representation of “root #3 of−108− 72x + 108x2 + 84x3 − 27x4 − 32x5 − 2x6 + 4x7 + x8”
• comparisons
Sturm’s method
is “root #3 of −39 + 360x − 832x2 + 512x3” smaller than 1
• arithmetic
matrices, determinants, resultants, . . .
calculate a polynomial representing“root #2 of −2 + x2” + “root #1 of −3 + x2”
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 6/22
![Page 10: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/10.jpg)
Motivation
Problems with Algebraic Numbers
• well-definedness
Sturm’s method
is there a “root #3 of −23 + x − 5x2 + x3”
• representation
factorization of rational polynomials
is there a simpler representation of “root #3 of−108− 72x + 108x2 + 84x3 − 27x4 − 32x5 − 2x6 + 4x7 + x8”
• comparisons
Sturm’s method
is “root #3 of −39 + 360x − 832x2 + 512x3” smaller than 1
• arithmetic
matrices, determinants, resultants, . . .
calculate a polynomial representing“root #2 of −2 + x2” + “root #1 of −3 + x2”
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 6/22
![Page 11: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/11.jpg)
Motivation
Problems with Algebraic Numbers
• well-definedness
Sturm’s method
is there a “root #3 of −23 + x − 5x2 + x3”
• representation
factorization of rational polynomials
is there a simpler representation of “root #3 of−108− 72x + 108x2 + 84x3 − 27x4 − 32x5 − 2x6 + 4x7 + x8”
• comparisons
Sturm’s method
is “root #3 of −39 + 360x − 832x2 + 512x3” smaller than 1
• arithmetic
matrices, determinants, resultants, . . .
calculate a polynomial representing“root #2 of −2 + x2” + “root #1 of −3 + x2”
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 6/22
![Page 12: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/12.jpg)
Motivation
Problems with Algebraic Numbers
• well-definedness
Sturm’s method
is there a “root #3 of −23 + x − 5x2 + x3”
• representation
factorization of rational polynomials
is there a simpler representation of “root #3 of−108− 72x + 108x2 + 84x3 − 27x4 − 32x5 − 2x6 + 4x7 + x8”
• comparisons
Sturm’s method
is “root #3 of −39 + 360x − 832x2 + 512x3” smaller than 1
• arithmetic
matrices, determinants, resultants, . . .
calculate a polynomial representing“root #2 of −2 + x2” + “root #1 of −3 + x2”
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 6/22
![Page 13: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/13.jpg)
Motivation
Problems with Algebraic Numbers
• well-definedness Sturm’s method
is there a “root #3 of −23 + x − 5x2 + x3”
• representation factorization of rational polynomials
is there a simpler representation of “root #3 of−108− 72x + 108x2 + 84x3 − 27x4 − 32x5 − 2x6 + 4x7 + x8”
• comparisons Sturm’s method
is “root #3 of −39 + 360x − 832x2 + 512x3” smaller than 1
• arithmetic matrices, determinants, resultants, . . .
calculate a polynomial representing“root #2 of −2 + x2” + “root #1 of −3 + x2”
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 6/22
![Page 14: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/14.jpg)
Motivation
Main Result: Formalization of Algebraic Numbers
• common properties on algebraic numbers (R and C)
• executable real algebraic numbers
• executable complex algebraic numbers indirectly
• easy to use via data-refinement for R and C
bnorm(√
3√
2 + 3 + 2i) · 100c evaluate↪→ 216
• applicable inside (eval) and outside Isabelle (export-code)
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 7/22
![Page 15: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/15.jpg)
Motivation
Related work
• Cyril Cohen (ITP 2012)• Coq• similar, but partly based on different paper proofs• our work: more focus on efficient execution
• Wenda Li and Larry Paulson (CPP 2016)• independant Isabelle/HOL formalization, different approach• oracle (MetiTarski) performs computations• certified code validates results
• experimental comparison (examples of Li and Paulson)
MetiTarski 1.83 seconds (@ 2.66 Ghz)+ validation of Li and Paulson 4.16 seconds (@ 2.66 Ghz)Our generated Haskell code 0.03 seconds (@ 3.5 Ghz)
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 8/22
![Page 16: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/16.jpg)
Motivation
Related work
• Cyril Cohen (ITP 2012)• Coq• similar, but partly based on different paper proofs• our work: more focus on efficient execution
• Wenda Li and Larry Paulson (CPP 2016)• independant Isabelle/HOL formalization, different approach• oracle (MetiTarski) performs computations• certified code validates results
• experimental comparison (examples of Li and Paulson)
MetiTarski 1.83 seconds (@ 2.66 Ghz)+ validation of Li and Paulson 4.16 seconds (@ 2.66 Ghz)Our generated Haskell code 0.03 seconds (@ 3.5 Ghz)
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 8/22
![Page 17: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/17.jpg)
Motivation
Related work
• Cyril Cohen (ITP 2012)• Coq• similar, but partly based on different paper proofs• our work: more focus on efficient execution
• Wenda Li and Larry Paulson (CPP 2016)• independant Isabelle/HOL formalization, different approach• oracle (MetiTarski) performs computations• certified code validates results
• experimental comparison (examples of Li and Paulson)
MetiTarski 1.83 seconds (@ 2.66 Ghz)+ validation of Li and Paulson 4.16 seconds (@ 2.66 Ghz)Our generated Haskell code 0.03 seconds (@ 3.5 Ghz)
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 8/22
![Page 18: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/18.jpg)
Real Algebraic Numbers Well-Definedness
Well-Definedness
• “root #3 of −23 + x − 5x2 + x3”
• “root #3 of −25 + 155x − 304x2 + 192x3”
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 9/22
![Page 19: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/19.jpg)
Real Algebraic Numbers Well-Definedness
Sturm’s Method
• input• polynomial over R• interval ( [2, 5], (−π, 7], (−∞, 3), or (−∞,+∞) )
• output: count-roots p itval• number of distinct real roots of p in interval itval
• formalized in Isabelle by Manuel Eberl
• nearly used as black-box
• adapted functions to work over Qnumber of distinct real roots of polynomial over Q
in interval over Qreason: apply Sturm’s method to implement Rformalization: locale for homomorphisms
• precompute first phase of Sturm’s method⇒ query many intervals for same polynomial more efficiently
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 10/22
![Page 20: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/20.jpg)
Real Algebraic Numbers Well-Definedness
Sturm’s Method
• input• polynomial over R• interval ( [2, 5], (−π, 7], (−∞, 3), or (−∞,+∞) )
• output: count-roots p itval• number of distinct real roots of p in interval itval
• formalized in Isabelle by Manuel Eberl
• nearly used as black-box
• adapted functions to work over Qnumber of distinct real roots of polynomial over Q
in interval over Qreason: apply Sturm’s method to implement Rformalization: locale for homomorphisms
• precompute first phase of Sturm’s method⇒ query many intervals for same polynomial more efficiently
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 10/22
![Page 21: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/21.jpg)
Real Algebraic Numbers Well-Definedness
Sturm’s Method
• input• polynomial over R• interval ( [2, 5], (−π, 7], (−∞, 3), or (−∞,+∞) )
• output: count-roots p itval• number of distinct real roots of p in interval itval
• formalized in Isabelle by Manuel Eberl
• nearly used as black-box• adapted functions to work over Q
number of distinct real roots of polynomial over Qin interval over Q
reason: apply Sturm’s method to implement Rformalization: locale for homomorphisms
• precompute first phase of Sturm’s method⇒ query many intervals for same polynomial more efficiently
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 10/22
![Page 22: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/22.jpg)
Real Algebraic Numbers Well-Definedness
Sturm’s Method
• input• polynomial over R• interval ( [2, 5], (−π, 7], (−∞, 3), or (−∞,+∞) )
• output: count-roots p itval• number of distinct real roots of p in interval itval
• formalized in Isabelle by Manuel Eberl
• nearly used as black-box• adapted functions to work over Q
number of distinct real roots of polynomial over Qin interval over Q
reason: apply Sturm’s method to implement Rformalization: locale for homomorphisms
• precompute first phase of Sturm’s method⇒ query many intervals for same polynomial more efficiently
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 10/22
![Page 23: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/23.jpg)
Real Algebraic Numbers Well-Definedness
Applying Sturm’s Method for Well-Definedness
“root #3 of −25 + 155x − 304x2 + 192x3”
count-roots (−25 + 155x − 304x2 + 192x3) (−∞,+∞) = 2
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 11/22
![Page 24: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/24.jpg)
Real Algebraic Numbers Well-Definedness
Representation of Real Algebraic Numbers – Part 1
• quadruple• polynomial over Q: p• left and right interval bound ∈ Q: l and r• precomputation of Sturm for p: root-info• (flag for factorization information on p)
• representing real number
THE x ∈ [l , r ]. rpoly p x = 0
• five invariants• p 6= 0• root-info = count-roots p• root-info [l , r ] = 1• . . .
• invariants are ensured via a subtype (typedef)• new type of quadruples satisfying invariants• lift-definition and transfer for function definitions and proofs
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 12/22
![Page 25: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/25.jpg)
Real Algebraic Numbers Well-Definedness
Representation of Real Algebraic Numbers – Part 1
• quadruple• polynomial over Q: p• left and right interval bound ∈ Q: l and r• precomputation of Sturm for p: root-info• (flag for factorization information on p)
• representing real number
THE x ∈ [l , r ]. rpoly p x = 0
• five invariants• p 6= 0• root-info = count-roots p• root-info [l , r ] = 1• . . .
• invariants are ensured via a subtype (typedef)• new type of quadruples satisfying invariants• lift-definition and transfer for function definitions and proofs
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 12/22
![Page 26: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/26.jpg)
Real Algebraic Numbers Well-Definedness
Representation of Real Algebraic Numbers – Part 1
• quadruple• polynomial over Q: p• left and right interval bound ∈ Q: l and r• precomputation of Sturm for p: root-info• (flag for factorization information on p)
• representing real number
THE x ∈ [l , r ]. rpoly p x = 0
• five invariants• p 6= 0• root-info = count-roots p• root-info [l , r ] = 1• . . .
• invariants are ensured via a subtype (typedef)• new type of quadruples satisfying invariants• lift-definition and transfer for function definitions and proofs
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 12/22
![Page 27: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/27.jpg)
Real Algebraic Numbers Well-Definedness
Representation of Real Algebraic Numbers – Part 1
• quadruple• polynomial over Q: p• left and right interval bound ∈ Q: l and r• precomputation of Sturm for p: root-info• (flag for factorization information on p)
• representing real number
THE x ∈ [l , r ]. rpoly p x = 0
• five invariants• p 6= 0• root-info = count-roots p• root-info [l , r ] = 1• . . .
• invariants are ensured via a subtype (typedef)• new type of quadruples satisfying invariants• lift-definition and transfer for function definitions and proofs
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 12/22
![Page 28: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/28.jpg)
Real Algebraic Numbers Calculating Real Roots of Rational Polynomial
Real Roots of Rational Polynomial
input: non-zero polynomial over Qoutput: list of real algebraic numbers representing the roots
1. factorize input polynomial over Q into pm11 · . . . · pmn
n
2. apply the following steps on each pi
3. determine root-infoi for pi and initial bounds li , ri such that
root-infoi (−∞,+∞) = root-infoi [li , ri ]
4. perform bisection on [li , ri ] to obtain intervals which allcontain a single root of pi
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 13/22
![Page 29: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/29.jpg)
Real Algebraic Numbers Calculating Real Roots of Rational Polynomial
Real Roots of Rational Polynomial
input: non-zero polynomial over Qoutput: list of real algebraic numbers representing the roots
1. factorize input polynomial over Q into pm11 · . . . · pmn
n
2. apply the following steps on each pi
3. determine root-infoi for pi and initial bounds li , ri such that
root-infoi (−∞,+∞) = root-infoi [li , ri ]
4. perform bisection on [li , ri ] to obtain intervals which allcontain a single root of pi
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 13/22
![Page 30: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/30.jpg)
Real Algebraic Numbers Calculating Real Roots of Rational Polynomial
Real Roots of Rational Polynomial
input: non-zero polynomial over Qoutput: list of real algebraic numbers representing the roots
1. factorize input polynomial over Q into pm11 · . . . · pmn
n
2. apply the following steps on each pi
3. determine root-infoi for pi and initial bounds li , ri such that
root-infoi (−∞,+∞) = root-infoi [li , ri ]
4. perform bisection on [li , ri ] to obtain intervals which allcontain a single root of pi
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 13/22
![Page 31: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/31.jpg)
Real Algebraic Numbers Calculating Real Roots of Rational Polynomial
Real Roots of Rational Polynomial
input: non-zero polynomial over Qoutput: list of real algebraic numbers representing the roots
1. factorize input polynomial over Q into pm11 · . . . · pmn
n
2. apply the following steps on each pi
3. determine root-infoi for pi and initial bounds li , ri such that
root-infoi (−∞,+∞) = root-infoi [li , ri ]
4. perform bisection on [li , ri ] to obtain intervals which allcontain a single root of pi
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 13/22
![Page 32: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/32.jpg)
Real Algebraic Numbers Calculating Real Roots of Rational Polynomial
Real Roots of Rational Polynomial
input: non-zero polynomial over Qoutput: list of real algebraic numbers representing the roots
1. factorize input polynomial over Q into pm11 · . . . · pmn
n
2. apply the following steps on each pi
3. determine root-infoi for pi and initial bounds li , ri such that
root-infoi (−∞,+∞) = root-infoi [li , ri ]
4. perform bisection on [li , ri ] to obtain intervals which allcontain a single root of pi
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 13/22
![Page 33: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/33.jpg)
Real Algebraic Numbers Calculating Real Roots of Rational Polynomial
Example
• input: χA
• computation:• 39− 399x + 1192x2 − 1344x3 + 512x4
• todo = {}
•
• output:
(x − 1, [1, 1]) , (pi , [0,38 ]) , (pi , [
38 ,
34 ]) , (pi , [
34 ,
32 ])
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 14/22
![Page 34: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/34.jpg)
Real Algebraic Numbers Calculating Real Roots of Rational Polynomial
Example
• factorization
• computation:• (x − 1) · (−39 + 360x − 832x2 + 512x3)
• todo = {}
•
• output:
(x − 1, [1, 1]) , (pi , [0,38 ]) , (pi , [
38 ,
34 ]) , (pi , [
34 ,
32 ])
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 14/22
![Page 35: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/35.jpg)
Real Algebraic Numbers Calculating Real Roots of Rational Polynomial
Example
• factorization
• computation:• (x − 1) · (−39 + 360x − 832x2 + 512x3)
• todo = {}
•
• output: (x − 1, [1, 1])
, (pi , [0,38 ]) , (pi , [
38 ,
34 ]) , (pi , [
34 ,
32 ])
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 14/22
![Page 36: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/36.jpg)
Real Algebraic Numbers Calculating Real Roots of Rational Polynomial
Example
• initial bounds: 6 = degree pi ·max{d|ci |e. ci coefficient of pi}
• computation:• (x − 1) · (−39 + 360x − 832x2 + 512x3)
• todo = {[−6, 6]}
•
• output: (x − 1, [1, 1])
, (pi , [0,38 ]) , (pi , [
38 ,
34 ]) , (pi , [
34 ,
32 ])
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 14/22
![Page 37: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/37.jpg)
Real Algebraic Numbers Calculating Real Roots of Rational Polynomial
Example
• bisection
• computation:• (x − 1) · (−39 + 360x − 832x2 + 512x3)
• todo = {[−6, 0], [0, 6]}
•
• output: (x − 1, [1, 1])
, (pi , [0,38 ]) , (pi , [
38 ,
34 ]) , (pi , [
34 ,
32 ])
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 14/22
![Page 38: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/38.jpg)
Real Algebraic Numbers Calculating Real Roots of Rational Polynomial
Example
• bisection
• computation:• (x − 1) · (−39 + 360x − 832x2 + 512x3)
• todo = {[0, 6]}
•
• output: (x − 1, [1, 1])
, (pi , [0,38 ]) , (pi , [
38 ,
34 ]) , (pi , [
34 ,
32 ])
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 14/22
![Page 39: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/39.jpg)
Real Algebraic Numbers Calculating Real Roots of Rational Polynomial
Example
• bisection
• computation:• (x − 1) · (−39 + 360x − 832x2 + 512x3)
• todo = {[0, 3], [3, 6]}
•
• output: (x − 1, [1, 1])
, (pi , [0,38 ]) , (pi , [
38 ,
34 ]) , (pi , [
34 ,
32 ])
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 14/22
![Page 40: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/40.jpg)
Real Algebraic Numbers Calculating Real Roots of Rational Polynomial
Example
• bisection
• computation:• (x − 1) · (−39 + 360x − 832x2 + 512x3)
• todo = {[0, 32 ], [ 32 , 3], [3, 6]}
•
• output: (x − 1, [1, 1])
, (pi , [0,38 ]) , (pi , [
38 ,
34 ]) , (pi , [
34 ,
32 ])
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 14/22
![Page 41: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/41.jpg)
Real Algebraic Numbers Calculating Real Roots of Rational Polynomial
Example
• bisection
• computation:• (x − 1) · (−39 + 360x − 832x2 + 512x3)
• todo = {[0, 34 ], [ 34 ,32 ], [ 32 , 3], [3, 6]}
•
• output: (x − 1, [1, 1])
, (pi , [0,38 ]) , (pi , [
38 ,
34 ]) , (pi , [
34 ,
32 ])
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 14/22
![Page 42: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/42.jpg)
Real Algebraic Numbers Calculating Real Roots of Rational Polynomial
Example
• bisection
• computation:• (x − 1) · (−39 + 360x − 832x2 + 512x3)
• todo = {[0, 38 ], [ 38 ,34 ], [ 34 ,
32 ], [ 32 , 3], [3, 6]}
•
• output: (x − 1, [1, 1])
, (pi , [0,38 ]) , (pi , [
38 ,
34 ]) , (pi , [
34 ,
32 ])
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 14/22
![Page 43: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/43.jpg)
Real Algebraic Numbers Calculating Real Roots of Rational Polynomial
Example
• bisection
• computation:• (x − 1) · (−39 + 360x − 832x2 + 512x3)
• todo = {[ 38 ,34 ], [ 34 ,
32 ], [ 32 , 3], [3, 6]}
•
• output: (x − 1, [1, 1]) , (pi , [0,38 ])
, (pi , [38 ,
34 ]) , (pi , [
34 ,
32 ])
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 14/22
![Page 44: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/44.jpg)
Real Algebraic Numbers Calculating Real Roots of Rational Polynomial
Example
• bisection
• computation:• (x − 1) · (−39 + 360x − 832x2 + 512x3)
• todo = {[ 34 ,32 ], [ 32 , 3], [3, 6]}
•
• output: (x − 1, [1, 1]) , (pi , [0,38 ]) , (pi , [
38 ,
34 ])
, (pi , [34 ,
32 ])
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 14/22
![Page 45: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/45.jpg)
Real Algebraic Numbers Calculating Real Roots of Rational Polynomial
Example
• bisection
• computation:• (x − 1) · (−39 + 360x − 832x2 + 512x3)
• todo = {[ 32 , 3], [3, 6]}
•
• output: (x − 1, [1, 1]) , (pi , [0,38 ]) , (pi , [
38 ,
34 ]) , (pi , [
34 ,
32 ])
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 14/22
![Page 46: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/46.jpg)
Real Algebraic Numbers Calculating Real Roots of Rational Polynomial
Example
• bisection
• computation:• (x − 1) · (−39 + 360x − 832x2 + 512x3)
• todo = {[3, 6]}
•
• output: (x − 1, [1, 1]) , (pi , [0,38 ]) , (pi , [
38 ,
34 ]) , (pi , [
34 ,
32 ])
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 14/22
![Page 47: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/47.jpg)
Real Algebraic Numbers Calculating Real Roots of Rational Polynomial
Example
• bisection
• computation:• (x − 1) · (−39 + 360x − 832x2 + 512x3)
• todo = {}
•
• output: (x − 1, [1, 1]) , (pi , [0,38 ]) , (pi , [
38 ,
34 ]) , (pi , [
34 ,
32 ])
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 14/22
![Page 48: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/48.jpg)
Real Algebraic Numbers Calculating Real Roots of Rational Polynomial
Bisection Algorithm
• bisection takes root-info as parameter for efficiency
• does not terminate (e.g., pass λx .2)
• definition as partial-function to obtain code-equations
• soundness via well-founded induction;order based on minimal distance between roots of pi
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 15/22
![Page 49: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/49.jpg)
Real Algebraic Numbers Calculating Real Roots of Rational Polynomial
Bisection Algorithm
• bisection takes root-info as parameter for efficiency
• does not terminate (e.g., pass λx .2)
• definition as partial-function to obtain code-equations
• soundness via well-founded induction;order based on minimal distance between roots of pi
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 15/22
![Page 50: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/50.jpg)
Real Algebraic Numbers Calculating Real Roots of Rational Polynomial
Bisection Algorithm
• bisection takes root-info as parameter for efficiency
• does not terminate (e.g., pass λx .2)
• definition as partial-function to obtain code-equations
• soundness via well-founded induction;order based on minimal distance between roots of pi
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 15/22
![Page 51: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/51.jpg)
Real Algebraic Numbers Factorizing Rational Polynomial
Factorization of Rational Polynomials
• important for efficiency: keep polynomials small
• time/degree of representing polynomials for∑n
i=1
√i
factorization n = 8 n = 9 n = 10
none 2m11s/256 22m19s/512 12h19m/1024square-free 2m14s/256 15m31s/384 9h31m/768full 0.35s/16 0.35s/16 0.59s/16
• algorithm
• apply certified square-free factorization
− 108− 72x + 108x2 + 84x3 − 27x4 − 32x5 − 2x6 + 4x7 + x8
= (− 3 + x2)2 · (− 12− 8x + 4x2 + 4x3 + x4)1
• invoke oracle on each factor
−12− 8x + 4x2 + 4x3 + x4 oracle= (−2 + x2) · (6 + 4x + x2)
• check equality at runtime, not irreducibility
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 16/22
![Page 52: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/52.jpg)
Real Algebraic Numbers Factorizing Rational Polynomial
Factorization of Rational Polynomials
• important for efficiency: keep polynomials small• time/degree of representing polynomials for
∑ni=1
√i
factorization n = 8 n = 9 n = 10
none 2m11s/256 22m19s/512 12h19m/1024square-free 2m14s/256 15m31s/384 9h31m/768full 0.35s/16 0.35s/16 0.59s/16
• algorithm
• apply certified square-free factorization
− 108− 72x + 108x2 + 84x3 − 27x4 − 32x5 − 2x6 + 4x7 + x8
= (− 3 + x2)2 · (− 12− 8x + 4x2 + 4x3 + x4)1
• invoke oracle on each factor
−12− 8x + 4x2 + 4x3 + x4 oracle= (−2 + x2) · (6 + 4x + x2)
• check equality at runtime, not irreducibility
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 16/22
![Page 53: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/53.jpg)
Real Algebraic Numbers Factorizing Rational Polynomial
Factorization of Rational Polynomials
• important for efficiency: keep polynomials small• time/degree of representing polynomials for
∑ni=1
√i
factorization n = 8 n = 9 n = 10
none 2m11s/256 22m19s/512 12h19m/1024square-free 2m14s/256 15m31s/384 9h31m/768full 0.35s/16 0.35s/16 0.59s/16
• algorithm
• apply certified square-free factorization
− 108− 72x + 108x2 + 84x3 − 27x4 − 32x5 − 2x6 + 4x7 + x8
= (− 3 + x2)2 · (− 12− 8x + 4x2 + 4x3 + x4)1
• invoke oracle on each factor
−12− 8x + 4x2 + 4x3 + x4 oracle= (−2 + x2) · (6 + 4x + x2)
• check equality at runtime, not irreducibility
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 16/22
![Page 54: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/54.jpg)
Real Algebraic Numbers Factorizing Rational Polynomial
Factorization of Rational Polynomials
• important for efficiency: keep polynomials small• time/degree of representing polynomials for
∑ni=1
√i
factorization n = 8 n = 9 n = 10
none 2m11s/256 22m19s/512 12h19m/1024square-free 2m14s/256 15m31s/384 9h31m/768full 0.35s/16 0.35s/16 0.59s/16
• algorithm• apply certified square-free factorization
− 108− 72x + 108x2 + 84x3 − 27x4 − 32x5 − 2x6 + 4x7 + x8
= (− 3 + x2)2 · (− 12− 8x + 4x2 + 4x3 + x4)1
• invoke oracle on each factor
−12− 8x + 4x2 + 4x3 + x4 oracle= (−2 + x2) · (6 + 4x + x2)
• check equality at runtime, not irreducibility
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 16/22
![Page 55: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/55.jpg)
Real Algebraic Numbers Factorizing Rational Polynomial
Factorization of Rational Polynomials
• important for efficiency: keep polynomials small• time/degree of representing polynomials for
∑ni=1
√i
factorization n = 8 n = 9 n = 10
none 2m11s/256 22m19s/512 12h19m/1024square-free 2m14s/256 15m31s/384 9h31m/768full 0.35s/16 0.35s/16 0.59s/16
• algorithm• apply certified square-free factorization
− 108− 72x + 108x2 + 84x3 − 27x4 − 32x5 − 2x6 + 4x7 + x8
= (− 3 + x2)2 · (− 12− 8x + 4x2 + 4x3 + x4)1
• invoke oracle on each factor
−12− 8x + 4x2 + 4x3 + x4 oracle= (−2 + x2) · (6 + 4x + x2)
• check equality at runtime, not irreducibility
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 16/22
![Page 56: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/56.jpg)
Real Algebraic Numbers Factorizing Rational Polynomial
Factorization of Rational Polynomials
• important for efficiency: keep polynomials small• time/degree of representing polynomials for
∑ni=1
√i
factorization n = 8 n = 9 n = 10
none 2m11s/256 22m19s/512 12h19m/1024square-free 2m14s/256 15m31s/384 9h31m/768full 0.35s/16 0.35s/16 0.59s/16
• algorithm• apply certified square-free factorization
− 108− 72x + 108x2 + 84x3 − 27x4 − 32x5 − 2x6 + 4x7 + x8
= (− 3 + x2)2 · (− 12− 8x + 4x2 + 4x3 + x4)1
• invoke oracle on each factor
−12− 8x + 4x2 + 4x3 + x4 oracle= (−2 + x2) · (6 + 4x + x2)
• check equality at runtime, not irreducibilityThiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 16/22
![Page 57: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/57.jpg)
Real Algebraic Numbers Factorizing Rational Polynomial
Simplification of Representation
Considerp(x) = −108−72x + 108x2 + 84x3−27x4−32x5−2x6 + 4x7 + x8
THE root of p in [1, 1.5]
= THE root of (−3 + x2) · (6 + 4x + x2) · (−2 + x2) in [1, 1.5]
= THE root of −2 + x2 in [1, 1.5]
(=√
2)
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 17/22
![Page 58: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/58.jpg)
Real Algebraic Numbers Factorizing Rational Polynomial
Comparison of Real Algebraic Numbers
1. decide whether (p, [l , r ]) and (q, [l ′, r ′]) encode same number
THE root of p in [l , r ] = THE root of q in [l ′, r ′]
⇐⇒ gcd p q has real root in [l , r ] ∩ [l ′, r ′]
2. if not, tighten bounds of both numbers via bisection untilintervals are disjoint(bisection algorithm again defined by partial-function)
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 18/22
![Page 59: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/59.jpg)
Real Algebraic Numbers Arithmetic on Real Algebraic Numbers
Arithmetic on Real Algebraic Numbers
how to perform operations like +, −, ×, /, n√·, etc. on
algebraic numbers (p, [l , r ]) and (q, [l ′, r ′])?
1. determine polynomial• negation: p(−x)• n√·: p(xn)
• addition: resultant(p(x − y), q(y))
2. compute initial interval, e.g. [l + l ′, r + r ′] for addition
3. tighten intervals [l , r ] and [l ′, r ′] until resulting intervalcontains unique root
4. optimize representation
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 19/22
![Page 60: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/60.jpg)
Real Algebraic Numbers Arithmetic on Real Algebraic Numbers
Arithmetic on Real Algebraic Numbers
how to perform operations like +, −, ×, /, n√·, etc. on
algebraic numbers (p, [l , r ]) and (q, [l ′, r ′])?
1. determine polynomial• negation: p(−x)• n√·: p(xn)
• addition: resultant(p(x − y), q(y))
2. compute initial interval, e.g. [l + l ′, r + r ′] for addition
3. tighten intervals [l , r ] and [l ′, r ′] until resulting intervalcontains unique root
4. optimize representation
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 19/22
![Page 61: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/61.jpg)
Real Algebraic Numbers Arithmetic on Real Algebraic Numbers
Arithmetic on Real Algebraic Numbers
how to perform operations like +, −, ×, /, n√·, etc. on
algebraic numbers (p, [l , r ]) and (q, [l ′, r ′])?
1. determine polynomial• negation: p(−x)• n√·: p(xn)
• addition: resultant(p(x − y), q(y))
2. compute initial interval, e.g. [l + l ′, r + r ′] for addition
3. tighten intervals [l , r ] and [l ′, r ′] until resulting intervalcontains unique root
4. optimize representation
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 19/22
![Page 62: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/62.jpg)
Real Algebraic Numbers Arithmetic on Real Algebraic Numbers
Arithmetic on Real Algebraic Numbers
how to perform operations like +, −, ×, /, n√·, etc. on
algebraic numbers (p, [l , r ]) and (q, [l ′, r ′])?
1. determine polynomial• negation: p(−x)• n√·: p(xn)
• addition: resultant(p(x − y), q(y))
2. compute initial interval, e.g. [l + l ′, r + r ′] for addition
3. tighten intervals [l , r ] and [l ′, r ′] until resulting intervalcontains unique root
4. optimize representation
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 19/22
![Page 63: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/63.jpg)
Real Algebraic Numbers Arithmetic on Real Algebraic Numbers
Arithmetic on Real Algebraic Numbers
how to perform operations like +, −, ×, /, n√·, etc. on
algebraic numbers (p, [l , r ]) and (q, [l ′, r ′])?
1. determine polynomial• negation: p(−x)• n√·: p(xn)
• addition: resultant(p(x − y), q(y))
2. compute initial interval, e.g. [l + l ′, r + r ′] for addition
3. tighten intervals [l , r ] and [l ′, r ′] until resulting intervalcontains unique root
4. optimize representation
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 19/22
![Page 64: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/64.jpg)
Real Algebraic Numbers Arithmetic on Real Algebraic Numbers
Increase Efficiency, Representation – Part 2
• factorizations in between to simplify representations
• efficient (not optimal) computation of resultants and GCDs
• tuned algorithms on polynomials
• special treatment for rational numbers
datatype real_alg_3 =
Rational rat
| Irrational "quadruple with invariants"
typedef real_alg_4 = "real_alg_3 with invariant"
definition real_of_4 :: real_alg_4 => real
quotient_type real_alg =
real_alg_4 / "% x y. real_of_4 x = real_of_4 y"
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 20/22
![Page 65: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/65.jpg)
Real Algebraic Numbers Arithmetic on Real Algebraic Numbers
Increase Efficiency, Representation – Part 2
• factorizations in between to simplify representations
• efficient (not optimal) computation of resultants and GCDs
• tuned algorithms on polynomials
• special treatment for rational numbers
datatype real_alg_3 =
Rational rat
| Irrational "quadruple with invariants"
typedef real_alg_4 = "real_alg_3 with invariant"
definition real_of_4 :: real_alg_4 => real
quotient_type real_alg =
real_alg_4 / "% x y. real_of_4 x = real_of_4 y"
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 20/22
![Page 66: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/66.jpg)
Complex Algebraic Numbers
Complex Algebraic Numbers in Isabelle
• missing: equivalent of Sturm’s method for C
• take existing Cartesian representation: (Re(x), Im(x))
• only new difficulty: find complex roots, e.g., of p = 1 + x + x3
• basic idea:
• complex roots of rational polynomials come in complexconjugate pairs
⇒ if x is root of p then x is root of p⇒ Re(x) = 1
2 (x + x) is root of the polynomial for 12 � (p ⊕ p)
⇒ Im(x) = 12i (x − x) is root of the polynomial for 1
2i � (p p)⇒ compute all these roots
and filter: for all candidates z = Re(x) + Im(x)i , test p(z) = 0
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 21/22
![Page 67: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/67.jpg)
Complex Algebraic Numbers
Complex Algebraic Numbers in Isabelle
• missing: equivalent of Sturm’s method for C• take existing Cartesian representation: (Re(x), Im(x))
• only new difficulty: find complex roots, e.g., of p = 1 + x + x3
• basic idea:
• complex roots of rational polynomials come in complexconjugate pairs
⇒ if x is root of p then x is root of p⇒ Re(x) = 1
2 (x + x) is root of the polynomial for 12 � (p ⊕ p)
⇒ Im(x) = 12i (x − x) is root of the polynomial for 1
2i � (p p)⇒ compute all these roots
and filter: for all candidates z = Re(x) + Im(x)i , test p(z) = 0
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 21/22
![Page 68: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/68.jpg)
Complex Algebraic Numbers
Complex Algebraic Numbers in Isabelle
• missing: equivalent of Sturm’s method for C• take existing Cartesian representation: (Re(x), Im(x))
• only new difficulty: find complex roots, e.g., of p = 1 + x + x3
• basic idea:
• complex roots of rational polynomials come in complexconjugate pairs
⇒ if x is root of p then x is root of p⇒ Re(x) = 1
2 (x + x) is root of the polynomial for 12 � (p ⊕ p)
⇒ Im(x) = 12i (x − x) is root of the polynomial for 1
2i � (p p)⇒ compute all these roots
and filter: for all candidates z = Re(x) + Im(x)i , test p(z) = 0
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 21/22
![Page 69: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/69.jpg)
Complex Algebraic Numbers
Complex Algebraic Numbers in Isabelle
• missing: equivalent of Sturm’s method for C• take existing Cartesian representation: (Re(x), Im(x))
• only new difficulty: find complex roots, e.g., of p = 1 + x + x3
• basic idea:• complex roots of rational polynomials come in complex
conjugate pairs⇒ if x is root of p then x is root of p
⇒ Re(x) = 12 (x + x) is root of the polynomial for 1
2 � (p ⊕ p)⇒ Im(x) = 1
2i (x − x) is root of the polynomial for 12i � (p p)
⇒ compute all these roots
and filter: for all candidates z = Re(x) + Im(x)i , test p(z) = 0
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 21/22
![Page 70: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/70.jpg)
Complex Algebraic Numbers
Complex Algebraic Numbers in Isabelle
• missing: equivalent of Sturm’s method for C• take existing Cartesian representation: (Re(x), Im(x))
• only new difficulty: find complex roots, e.g., of p = 1 + x + x3
• basic idea:• complex roots of rational polynomials come in complex
conjugate pairs⇒ if x is root of p then x is root of p⇒ Re(x) = 1
2 (x + x) is root of the polynomial for 12 � (p ⊕ p)
⇒ Im(x) = 12i (x − x) is root of the polynomial for 1
2i � (p p)⇒ compute all these roots
and filter: for all candidates z = Re(x) + Im(x)i , test p(z) = 0
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 21/22
![Page 71: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/71.jpg)
Complex Algebraic Numbers
Complex Algebraic Numbers in Isabelle
• missing: equivalent of Sturm’s method for C• take existing Cartesian representation: (Re(x), Im(x))
• only new difficulty: find complex roots, e.g., of p = 1 + x + x3
• basic idea:• complex roots of rational polynomials come in complex
conjugate pairs⇒ if x is root of p then x is root of p⇒ Re(x) = 1
2 (x + x) is root of the polynomial for 12 � (p ⊕ p)
⇒ Im(x) = 12i (x − x) is root of the polynomial for 1
2i � (p p)
⇒ compute all these roots
and filter: for all candidates z = Re(x) + Im(x)i , test p(z) = 0
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 21/22
![Page 72: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/72.jpg)
Complex Algebraic Numbers
Complex Algebraic Numbers in Isabelle
• missing: equivalent of Sturm’s method for C• take existing Cartesian representation: (Re(x), Im(x))
• only new difficulty: find complex roots, e.g., of p = 1 + x + x3
• basic idea:• complex roots of rational polynomials come in complex
conjugate pairs⇒ if x is root of p then x is root of p⇒ Re(x) = 1
2 (x + x) is root of the polynomial for 12 � (p ⊕ p)
⇒ Im(x) = 12i (x − x) is root of the polynomial for 1
2i � (p p)⇒ compute all these roots
Re(x) =(SOME x. 8 − 24x − 88x3 + 96x4 + 288x5 + 384x6 + 768x7 + 512x9 = 0
)Im(x) =
(SOME x.
961
4096x2 −
279
512x4 +
453
256x6 −
85
32x8 +
27
8x10 − 3x12 + x14 = 0
)
and filter: for all candidates z = Re(x) + Im(x)i , test p(z) = 0
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 21/22
![Page 73: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/73.jpg)
Complex Algebraic Numbers
Complex Algebraic Numbers in Isabelle
• missing: equivalent of Sturm’s method for C• take existing Cartesian representation: (Re(x), Im(x))
• only new difficulty: find complex roots, e.g., of p = 1 + x + x3
• basic idea:• complex roots of rational polynomials come in complex
conjugate pairs⇒ if x is root of p then x is root of p⇒ Re(x) = 1
2 (x + x) is root of the polynomial for 12 � (p ⊕ p)
⇒ Im(x) = 12i (x − x) is root of the polynomial for 1
2i � (p p)⇒ compute all these roots
Re(x) =
(SOME x .
(−1
8+
1
4x + x3
)·(1 + x + x3
)= 0
)Im(x) =
(SOME x .
(−31
64+
9
16x2 − 3
2x4 + x6
)· x = 0
)
and filter: for all candidates z = Re(x) + Im(x)i , test p(z) = 0
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 21/22
![Page 74: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/74.jpg)
Complex Algebraic Numbers
Complex Algebraic Numbers in Isabelle
• missing: equivalent of Sturm’s method for C• take existing Cartesian representation: (Re(x), Im(x))
• only new difficulty: find complex roots, e.g., of p = 1 + x + x3
• basic idea:• complex roots of rational polynomials come in complex
conjugate pairs⇒ if x is root of p then x is root of p⇒ Re(x) = 1
2 (x + x) is root of the polynomial for 12 � (p ⊕ p)
⇒ Im(x) = 12i (x − x) is root of the polynomial for 1
2i � (p p)⇒ compute all these roots
Re(x) =
(SOME x .
(−1
8+
1
4x + x3
)·(1 + x + x3
)= 0
)Im(x) =
(SOME x .
(−31
64+
9
16x2 − 3
2x4 + x6
)· x = 0
)and filter: for all candidates z = Re(x) + Im(x)i , test p(z) = 0
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 21/22
![Page 75: Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016 1Supported by the Austrian Science Fund (FWF) project Y757. Overview ... • degree d in](https://reader034.vdocument.in/reader034/viewer/2022042410/5f26c9783d83547be12e6b50/html5/thumbnails/75.jpg)
Complex Algebraic Numbers
Summary
• formalization of real and complex algebraic numbers,implementing R and C+, −, ×, /, n
√·, b·c, =, <, i , Re, Im, show
• factorization algorithms for rational polynomials over Q, R, C• heavily relying on Sturm’s method and matrix library
• based on factorization oracle (S. Joosten @ Isabelle workshop)
• ∼ 20.000 loc, available in archive of formal proofs
Thiemann and Yamada (Univ. Innsbruck) Algebraic Numbers in Isabelle/HOL 22/22