Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016...

75
Algebraic Numbers in Isabelle/HOL 1 Ren´ e Thiemann and Akihisa Yamada Institute of Computer Science University of Innsbruck ITP 2016, August 23, 2016 1 Supported by the Austrian Science Fund (FWF) project Y757

Transcript of Algebraic Numbers in Isabelle/HOL - ITP 2016: Interactive ... · ITP 2016, August 23, 2016...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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