closed forms for numerical loops
play

Closed Forms for Numerical Loops Zachary Kincaid 1 Jason Breck 2 John - PowerPoint PPT Presentation

January 16, 2019 Closed Forms for Numerical Loops Zachary Kincaid 1 Jason Breck 2 John Cyphert 2 Thomas Reps 2 , 3 1 Princeton University 2 University of Wisconsin-Madison 3 GrammaTech, Inc Is i Loop summarization n j loop n j Summary


  1. January 16, 2019 Closed Forms for Numerical Loops Zachary Kincaid 1 Jason Breck 2 John Cyphert 2 Thomas Reps 2 , 3 1 Princeton University 2 University of Wisconsin-Madison 3 GrammaTech, Inc

  2. • Is i Loop summarization n j loop n j Summary can be used to answer questions about program behavior i j n j i After exec Before exec Loop counter i The problem : given a loop, compute a formula that represents its behavior. k while (i < n): i := i + 2 j := j + 1 k i i j k j k n n i n i valid?

  3. • Is i Loop summarization The problem : given a loop, compute a formula that represents its behavior. j loop n j Summary can be used to answer questions about program behavior i j n j i After exec Before exec Loop counter i valid? while (i < n): i := i + 2 j := j + 1   i ′ = i + 2 k j ′ = j + k   ∧   ∃ k ∈ N . n ′ = n   ∧ i ′ ≥ n ∧ ( k ≥ 1 ⇒ i ′ ≤ n + 1) ∧

  4. Loop summarization while (i < n): i := i + 2 j := j + 1 Before exec After exec Summary can be used to answer questions about program behavior Loop counter The problem : given a loop, compute a formula that represents its behavior. i = j = 0 ∧ n > 0 ∧   i ′ = i + 2 k j ′ = j + k   ∧   ∃ k ∈ N . n ′ = n   ∧ i ′ ≥ n ∧ ( k ≥ 1 ⇒ i ′ ≤ n + 1) ∧ ∧¬ (2 j ′ = i ′ ) • Is { i = j = 0 ∧ n > 0 } loop { 2 j = i } valid?

  5. • In the paper: affine & solvable polynomial loops Today: Linear loops while ( * ): non-deterministic [Rodríguez-Carbonell & Kapur, ISAAC 2004]. x := A x A ∈ Q n × n

  6. Today: Linear loops while ( * ): non-deterministic [Rodríguez-Carbonell & Kapur, ISAAC 2004]. x := A x A ∈ Q n × n • In the paper: affine & solvable polynomial loops

  7. • Practical applications • Any loop can be approximated by a linear loop [KBCR POPL’18] • Summary for the approximation gives invariants for the loop Why linear loops? • Natural problem

  8. Why linear loops? • Natural problem • Practical applications • Any loop can be approximated by a linear loop [KBCR POPL’18] • Summary for the approximation gives invariants for the loop

  9. k hi Approximating general loops [KBCR POPL’18] x ticks hi lo y z s s v v k kz x z y k y z z k ticks ticks k hi lo x y binary-search(A,target) : while (*): lo = 1, hi = size(A), ticks = 0 while (lo <= hi): ticks++; mid = lo + (hi-lo)/2 if A[mid] == target: return mid else if A[mid] < target: lo = mid+1 else : hi = mid-1 Not a linear transformation x x y z x y z ticks lo hi mid target A lo

  10. k hi Approximating general loops [KBCR POPL’18] y y lo hi ticks x z A x s target mid hi lo ticks z z s binary-search(A,target) : z lo hi k ticks ticks k z v k y y kz x x k v y x lo else if A[mid] < target: while (*): x y z else : hi = mid-1 lo = mid+1 Not a linear transformation return mid if A[mid] == target: lo = 1, hi = size(A), ticks = 0 mid = lo + (hi-lo)/2 ticks++; while (lo <= hi):       1 0 1 1     :=    0 0  2 0 0 1

  11. k hi Approximating general loops [KBCR POPL’18] v z binary-search(A,target) : ticks lo hi mid target A x y z s s k v x x x kz y k y z z k ticks ticks k hi lo y lo hi = mid-1 else if A[mid] < target: x y z else : while (*): lo = mid+1 return mid if A[mid] == target: mid = lo + (hi-lo)/2 ticks++; while (lo <= hi): lo = 1, hi = size(A), ticks = 0 Not a linear transformation              ⇐  ∼ ⇒ x = ticks ∧ hi − lo ≤ y ∧ z = 1             1 0 1 1     :=    0 0  2 0 0 1

  12. k hi Approximating general loops [KBCR POPL’18] x lo hi ticks x z y A z target mid hi lo ticks z y s x z lo hi k ticks ticks k z v k y y kz x x k binary-search(A,target) : y lo y lo = 1, hi = size(A), ticks = 0 while (lo <= hi): ticks++; mid = lo + (hi-lo)/2 if A[mid] == target: return mid else if A[mid] < target: lo = mid+1 else : hi = mid-1 Not a linear transformation while (*): x z �       s ′ v ′ 1 0 1 � 1     :=    0 0  2 0 0 1

  13. k hi Approximating general loops [KBCR POPL’18] hi z ticks lo hi mid target A x y z x ticks lo binary-search(A,target) : y z s s v v k ticks ticks k hi lo y x lo z lo = 1, hi = size(A), ticks = 0 while (lo <= hi): ticks++; mid = lo + (hi-lo)/2 if A[mid] == target: return mid else if A[mid] < target: lo = mid+1 else : hi = mid-1 Not a linear transformation while (*): y x     x ′ = x + kz     1 0 1 ∧ y ′ = (1/2) k y  1    ∃ k ∈ N .   :=    0 0  ∧ z ′ = z 2 0 0 1

  14. Approximating general loops [KBCR POPL’18] x y lo hi ticks x z y A s target mid hi lo ticks binary-search(A,target) : z z s y lo = mid+1 lo = 1, hi = size(A), ticks = 0 while (lo <= hi): ticks++; mid = lo + (hi-lo)/2 if A[mid] == target: return mid else if A[mid] < target: else : v hi = mid-1 Not a linear transformation while (*): v x y z x ( ticks ′ = ticks + k ) ∃ k ∈ N . ∧ hi ′ − lo ′ ≤ (1/2) k ( hi − lo )     x ′ = x + kz     1 0 1 ∧ y ′ = (1/2) k y  1    ∃ k ∈ N .   :=    0 0  ∧ z ′ = z 2 0 0 1

  15. Hasn’t this problem already been solved? n k d n Algebraic numbers Camille Jordan while (*): x A x k x A k x Given a square matrix A ∈ Q n × n , can compute A k symbolically Entries of A k are exponential polynomials: 1 k d 1 + · · · + a n λ k a 1 λ k

  16. Hasn’t this problem already been solved? n k d n Algebraic numbers Camille Jordan while (*): Given a square matrix A ∈ Q n × n , can compute A k symbolically Entries of A k are exponential polynomials: 1 k d 1 + · · · + a n λ k a 1 λ k ∃ k ∈ N . x ′ = A k x x := A x

  17. No. Skolem’s problem (variant): Given an exponential-polynomial f over the alge- Decidability of Skolem’s problem is unknown! Thoraf Skolem Essential problem: algebraic numbers. braic numbers, does there exists some n ∈ N such that f ( k ) = 0 ?

  18. No. Skolem’s problem (variant): Given an exponential-polynomial f over the alge- Decidability of Skolem’s problem is unknown! Thoraf Skolem Essential problem: algebraic numbers. braic numbers, does there exists some n ∈ N such that f ( k ) = 0 ?

  19. Outline Starting point of this work: avoid algebraic numbers 2 All matrices have best periodic-rational approximations. 3 Exponential-polynomial arithmetic over is decidable. 1 Periodic rational matrices have closed forms over Q . • Computable in polytime

  20. Outline Starting point of this work: avoid algebraic numbers 2 All matrices have best periodic-rational approximations. 3 Exponential-polynomial arithmetic over is decidable. 1 Periodic rational matrices have closed forms over Q . • Computable in polytime

  21. Outline Starting point of this work: avoid algebraic numbers 2 All matrices have best periodic-rational approximations. 1 Periodic rational matrices have closed forms over Q . • Computable in polytime 3 Exponential-polynomial arithmetic over Q is decidable.

  22. Closed forms for linear loops

  23. A k can be • [Boigelot PhD thesis ’99]: A generates a finite monoid power p such that A p has rational eigenvalues. • A periodic rational k p A i x Known: p A p x i mod p k i x k A k x k can express closed form as Common generalization: A matrix A is periodic rational if there is some expressed in Presburger arithmetic. Rational eigenvalues • Eigenvalues of A are rational ⇒ A k can be expressed in exponential-polynomial arithmetic over Q .

  24. power p such that A p has rational eigenvalues. • A periodic rational k p A i x Known: k A p x i mod p k i p x A k x k can express closed form as Common generalization: A matrix A is periodic rational if there is some expressed in Presburger arithmetic. Rational eigenvalues • Eigenvalues of A are rational ⇒ A k can be expressed in exponential-polynomial arithmetic over Q . • [Boigelot PhD thesis ’99]: A generates a finite monoid ⇒ A k can be

  25. • A periodic rational k p A i x Known: k A p x i mod p k i p x A k x k can express closed form as expressed in Presburger arithmetic. Rational eigenvalues • Eigenvalues of A are rational ⇒ A k can be expressed in exponential-polynomial arithmetic over Q . • [Boigelot PhD thesis ’99]: A generates a finite monoid ⇒ A k can be Common generalization: A matrix A is periodic rational if there is some power p such that A p has rational eigenvalues.

  26. Known: expressed in Presburger arithmetic. Rational eigenvalues • Eigenvalues of A are rational ⇒ A k can be expressed in exponential-polynomial arithmetic over Q . • [Boigelot PhD thesis ’99]: A generates a finite monoid ⇒ A k can be Common generalization: A matrix A is periodic rational if there is some power p such that A p has rational eigenvalues. • A periodic rational ⇒ can express closed form as ( ) p − 1 ( ) ∨ ∃ k ∈ N . x ′ = A k x k ≡ i mod p ∧ x ′ = ( A p ) ⌊ k / p ⌋ A i x ≡ ∃ k ∈ N . i =0

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend