automated complexity analysis of rewrite systems
play

Automated Complexity Analysis of Rewrite Systems Florian Frohn RWTH - PowerPoint PPT Presentation

Automated Complexity Analysis of Rewrite Systems Florian Frohn RWTH Aachen University, Germany December 11, 2018 Automated Complexity Analysis of Rewrite Systems 1 Automated Complexity Analysis of Rewrite Systems Florian Frohn RWTH Aachen


  1. What is Rewriting? Rule-Based Representation of Programs input: x, y ∈ N Example (Integer Transition System (ITS)) z = 0 while x > 0 do 1 init ( x, y ) − → while ( x, y, 0) [ x ≥ 0 ∧ y ≥ 0] x = x − 1 5 while ( x, y, z ) → − while ( x − 1 , y, z + y ) [ x > 0] z = z + y 1 while ( x, y, z ) → − return ( z ) [ x = 0] end return z Example (Term Rewrite System (TRS)) 0 � 0 1 s ( 0 ) � length ( cons ( x, x ′ )) − → s ( length ( x ′ )) 2 s ( s ( 0 )) � length ( nil ) − → 0 Automated Complexity Analysis of Rewrite Systems 4

  2. What is Rewriting? Rule-Based Representation of Programs input: x, y ∈ N Example (Integer Transition System (ITS)) z = 0 while x > 0 do 1 init ( x, y ) − → while ( x, y, 0) [ x ≥ 0 ∧ y ≥ 0] x = x − 1 5 while ( x, y, z ) → − while ( x − 1 , y, z + y ) [ x > 0] z = z + y 1 while ( x, y, z ) → − return ( z ) [ x = 0] end return z Example (Term Rewrite System (TRS)) 0 � 0 1 s ( 0 ) � length ( cons ( x, x ′ )) − → s ( length ( x ′ )) 2 s ( s ( 0 )) � length ( nil ) − → 0 . . . Automated Complexity Analysis of Rewrite Systems 4

  3. Upper, Lower, Worst Case, Best Case, ... runtime input size Automated Complexity Analysis of Rewrite Systems 5

  4. Upper, Lower, Worst Case, Best Case, ... runtime input size Automated Complexity Analysis of Rewrite Systems 5

  5. Upper, Lower, Worst Case, Best Case, ... runtime input size Automated Complexity Analysis of Rewrite Systems 5

  6. Upper, Lower, Worst Case, Best Case, ... runtime input size Automated Complexity Analysis of Rewrite Systems 5

  7. Upper, Lower, Worst Case, Best Case, ... runtime input size Automated Complexity Analysis of Rewrite Systems 5

  8. Outline 1 Introduction 2 Lower Bounds for ITSs 3 Lower Bounds for TRSs 4 Constant Upper Bounds for TRSs Automated Complexity Analysis of Rewrite Systems 6

  9. Evaluating ITSs Example (ITS) 5 while ( x, y, z ) − → while ( x − 1 , y, z + y ) [ x > 0] 1 while ( x, y, z ) − → return ( z ) [ x = 0] Automated Complexity Analysis of Rewrite Systems 7

  10. Evaluating ITSs Example (ITS) 5 while ( x, y, z ) − → while ( x − 1 , y, z + y ) [ x > 0] 1 while ( x, y, z ) − → return ( z ) [ x = 0] Example (Evaluation) while (2 , 2 , 0) Automated Complexity Analysis of Rewrite Systems 7

  11. Evaluating ITSs Example (ITS) 5 while ( x, y, z ) − → while ( x − 1 , y, z + y ) [ x > 0] 1 while ( x, y, z ) − → return ( z ) [ x = 0] Example (Evaluation) while (2 , 2 , 0) [ x/ 2 , y/ 2 , z/ 0] Automated Complexity Analysis of Rewrite Systems 7

  12. Evaluating ITSs Example (ITS) 5 while ( x, y, z ) − → while ( x − 1 , y, z + y ) [ x > 0] 1 while ( x, y, z ) − → return ( z ) [ x = 0] Example (Evaluation) while (2 , 2 , 0) [ x/ 2 , y/ 2 , z/ 0] | = x > 0 Automated Complexity Analysis of Rewrite Systems 7

  13. Evaluating ITSs Example (ITS) 5 while ( x, y, z ) − → while ( x − 1 , y, z + y ) [ x > 0] 1 while ( x, y, z ) − → return ( z ) [ x = 0] Example (Evaluation) while (2 , 2 , 0) [ x/ 2 , y/ 2 , z/ 0] | = x > 0 5 − → while (1 , 2 , 2) Automated Complexity Analysis of Rewrite Systems 7

  14. Evaluating ITSs Example (ITS) 5 while ( x, y, z ) − → while ( x − 1 , y, z + y ) [ x > 0] 1 while ( x, y, z ) − → return ( z ) [ x = 0] Example (Evaluation) while (2 , 2 , 0) [ x/ 2 , y/ 2 , z/ 0] | = x > 0 5 − → while (1 , 2 , 2) [ x/ 1 , y/ 2 , z/ 2] Automated Complexity Analysis of Rewrite Systems 7

  15. Evaluating ITSs Example (ITS) 5 while ( x, y, z ) − → while ( x − 1 , y, z + y ) [ x > 0] 1 while ( x, y, z ) − → return ( z ) [ x = 0] Example (Evaluation) while (2 , 2 , 0) [ x/ 2 , y/ 2 , z/ 0] | = x > 0 5 − → while (1 , 2 , 2) [ x/ 1 , y/ 2 , z/ 2] | = x > 0 Automated Complexity Analysis of Rewrite Systems 7

  16. Evaluating ITSs Example (ITS) 5 while ( x, y, z ) − → while ( x − 1 , y, z + y ) [ x > 0] 1 while ( x, y, z ) − → return ( z ) [ x = 0] Example (Evaluation) while (2 , 2 , 0) [ x/ 2 , y/ 2 , z/ 0] | = x > 0 5 − → while (1 , 2 , 2) [ x/ 1 , y/ 2 , z/ 2] | = x > 0 5 − → while (0 , 2 , 4) Automated Complexity Analysis of Rewrite Systems 7

  17. Evaluating ITSs Example (ITS) 5 while ( x, y, z ) − → while ( x − 1 , y, z + y ) [ x > 0] 1 while ( x, y, z ) − → return ( z ) [ x = 0] Example (Evaluation) while (2 , 2 , 0) [ x/ 2 , y/ 2 , z/ 0] | = x > 0 5 − → while (1 , 2 , 2) [ x/ 1 , y/ 2 , z/ 2] | = x > 0 5 − → while (0 , 2 , 4) [ x/ 0 , y/ 2 , z/ 4] Automated Complexity Analysis of Rewrite Systems 7

  18. Evaluating ITSs Example (ITS) 5 while ( x, y, z ) − → while ( x − 1 , y, z + y ) [ x > 0] 1 while ( x, y, z ) − → return ( z ) [ x = 0] Example (Evaluation) while (2 , 2 , 0) [ x/ 2 , y/ 2 , z/ 0] | = x > 0 5 − → while (1 , 2 , 2) [ x/ 1 , y/ 2 , z/ 2] | = x > 0 5 − → while (0 , 2 , 4) [ x/ 0 , y/ 2 , z/ 4] �| = x > 0 Automated Complexity Analysis of Rewrite Systems 7

  19. Evaluating ITSs Example (ITS) 5 while ( x, y, z ) − → while ( x − 1 , y, z + y ) [ x > 0] 1 while ( x, y, z ) − → return ( z ) [ x = 0] Example (Evaluation) while (2 , 2 , 0) [ x/ 2 , y/ 2 , z/ 0] | = x > 0 5 − → while (1 , 2 , 2) [ x/ 1 , y/ 2 , z/ 2] | = x > 0 5 − → while (0 , 2 , 4) [ x/ 0 , y/ 2 , z/ 4] | = x = 0 Automated Complexity Analysis of Rewrite Systems 7

  20. Evaluating ITSs Example (ITS) 5 while ( x, y, z ) − → while ( x − 1 , y, z + y ) [ x > 0] 1 while ( x, y, z ) − → return ( z ) [ x = 0] Example (Evaluation) while (2 , 2 , 0) [ x/ 2 , y/ 2 , z/ 0] | = x > 0 5 − → while (1 , 2 , 2) [ x/ 1 , y/ 2 , z/ 2] | = x > 0 5 − → while (0 , 2 , 4) [ x/ 0 , y/ 2 , z/ 4] | = x = 0 1 − → return (4) Automated Complexity Analysis of Rewrite Systems 7

  21. Loop Acceleration Example (Loop Acceleration) 5 while ( x, y, z ) − → while ( x − 1 , y, z + y ) [ x > 0] Automated Complexity Analysis of Rewrite Systems 8

  22. Loop Acceleration Example (Loop Acceleration) 5 while ( x, y, z ) − → while ( x − 1 , y, z + y ) [ x > 0] 5 · n � while ( x, y, z ) − − → while ( x − n, y, z + y · n ) [ x > 0 ∧ 0 < n ≤ x ] Automated Complexity Analysis of Rewrite Systems 8

  23. Loop Acceleration Example (Loop Acceleration) 5 while ( x, y, z ) − → while ( x − 1 , y, z + y ) [ x > 0] 5 · n � while ( x, y, z ) − − → while ( x − n, y, z + y · n ) [ x > 0 ∧ 0 < n ≤ x ] 5 · n : cost of n iterations Automated Complexity Analysis of Rewrite Systems 8

  24. Loop Acceleration Example (Loop Acceleration) 5 while ( x, y, z ) − → while ( x − 1 , y, z + y ) [ x > 0] 5 · n � while ( x, y, z ) − − → while ( x − n, y, z + y · n ) [ x > 0 ∧ 0 < n ≤ x ] 5 · n : cost of n iterations x − n : value of x after n iterations Automated Complexity Analysis of Rewrite Systems 8

  25. Loop Acceleration Example (Loop Acceleration) 5 while ( x, y, z ) − → while ( x − 1 , y, z + y ) [ x > 0] 5 · n � while ( x, y, z ) − − → while ( x − n, y, z + y · n ) [ x > 0 ∧ 0 < n ≤ x ] 5 · n : cost of n iterations x − n : value of x after n iterations z + y · n : value of z after n iterations Automated Complexity Analysis of Rewrite Systems 8

  26. Loop Acceleration Example (Loop Acceleration) 5 while ( x, y, z ) − → while ( x − 1 , y, z + y ) [ x > 0] 5 · n � while ( x, y, z ) − − → while ( x − n, y, z + y · n ) [ x > 0 ∧ 0 < n ≤ x ] 5 · n : cost of n iterations x − n : value of x after n iterations z + y · n : value of z after n iterations Example (Recurrence Equations) x ( n − 1) − 1 x ( n ) = y ( n ) y ( n − 1) = z ( n − 1) + y ( n − 1) z ( n ) = Automated Complexity Analysis of Rewrite Systems 8

  27. Loop Acceleration Example (Loop Acceleration) 5 while ( x, y, z ) − → while ( x − 1 , y, z + y ) [ x > 0] 5 · n � while ( x, y, z ) − − → while ( x − n, y, z + y · n ) [ x > 0 ∧ 0 < n ≤ x ] 5 · n : cost of n iterations x − n : value of x after n iterations z + y · n : value of z after n iterations Example (Recurrence Equations) x ( n − 1) − 1 x ( n ) = y ( n ) y ( n − 1) = z ( n − 1) + y ( n − 1) z ( n ) = Automated Complexity Analysis of Rewrite Systems 8

  28. Loop Acceleration Example (Loop Acceleration) 5 while ( x, y, z ) − → while ( x − 1 , y, z + y ) [ x > 0] 5 · n � while ( x, y, z ) − − → while ( x − n, y, z + y · n ) [ x > 0 ∧ 0 < n ≤ x ] 5 · n : cost of n iterations x : maximal number of loop iterations x − n : value of x after n iterations z + y · n : value of z after n iterations Example (Recurrence Equations) x ( n − 1) − 1 x ( n ) = y ( n ) y ( n − 1) = z ( n − 1) + y ( n − 1) z ( n ) = Automated Complexity Analysis of Rewrite Systems 8

  29. Loop Acceleration Example (Loop Acceleration) 5 while ( x, y, z ) − → while ( x − 1 , y, z + y ) [ x > 0] 5 · n � while ( x, y, z ) − − → while ( x − n, y, z + y · n ) [ x > 0 ∧ 0 < n ≤ x ] 5 · n : cost of n iterations x : maximal number of loop iterations 2 , x − 1 , . . . would be fine, too x x − n : value of x after n iterations z + y · n : value of z after n iterations Example (Recurrence Equations) x ( n − 1) − 1 x ( n ) = y ( n ) y ( n − 1) = z ( n − 1) + y ( n − 1) z ( n ) = Automated Complexity Analysis of Rewrite Systems 8

  30. Loop Acceleration Example (Loop Acceleration) 5 while ( x, y, z ) − → while ( x − 1 , y, z + y ) [ x > 0] 5 · n � while ( x, y, z ) − − → while ( x − n, y, z + y · n ) [ x > 0 ∧ 0 < n ≤ x ] 5 · n : cost of n iterations x : maximal number of loop iterations 2 , x − 1 , . . . would be fine, too x x − n : value of x after n iterations search for metering function z + y · n : value of z after n iterations Example (Recurrence Equations) x ( n − 1) − 1 x ( n ) = y ( n ) y ( n − 1) = z ( n − 1) + y ( n − 1) z ( n ) = Automated Complexity Analysis of Rewrite Systems 8

  31. Loop Acceleration Example (Loop Acceleration) 5 while ( x, y, z ) − → while ( x − 1 , y, z + y ) [ x > 0] 5 · n � while ( x, y, z ) − − → while ( x − n, y, z + y · n ) [ x > 0 ∧ 0 < n ≤ x ] 5 · n : cost of n iterations x : maximal number of loop iterations 2 , x − 1 , . . . would be fine, too x x − n : value of x after n iterations search for metering function z + y · n : value of z after n iterations Example (Recurrence Equations) x ( n − 1) − 1 x ( n ) = y ( n ) y ( n − 1) = z ( n − 1) + y ( n − 1) z ( n ) = Automated Complexity Analysis of Rewrite Systems 8

  32. Chaining Example 1 init ( x, y ) − → while ( x, y, 0) [ x ≥ 0 ∧ y ≥ 0] 5 · n while ( x, y, z ) − − → while ( x − n, y, z + y · n ) [ x > 0 ∧ 0 < n ≤ x ] 1 while ( x, y, z ) − → return ( z ) [ x = 0] Automated Complexity Analysis of Rewrite Systems 9

  33. Chaining Example 1 init ( x, y ) − → while ( x, y, 0) [ x ≥ 0 ∧ y ≥ 0] 5 · n while ( x, y, z ) − − → while ( x − n, y, z + y · n ) [ x > 0 ∧ 0 < n ≤ x ] 1 while ( x, y, z ) − → return ( z ) [ x = 0] Automated Complexity Analysis of Rewrite Systems 9

  34. Chaining Example 1 init ( x, y ) − → while ( x, y, 0) [ x ≥ 0 ∧ y ≥ 0] 5 · n while ( x, y, 0) − − → while ( x − n, y, 0 + y · n ) [ x > 0 ∧ 0 < n ≤ x ] 1 while ( x, y, z ) − → return ( z ) [ x = 0] Automated Complexity Analysis of Rewrite Systems 9

  35. Chaining Example 1 init ( x, y ) − → while ( x, y, 0) [ x ≥ 0 ∧ y ≥ 0] 5 · n while ( x, y, 0) − − → while ( x − n, y, y · n ) [ x > 0 ∧ 0 < n ≤ x ] 1 while ( x, y, z ) − → return ( z ) [ x = 0] Automated Complexity Analysis of Rewrite Systems 9

  36. Chaining Example 1 init ( x, y ) − → while ( x, y, 0) [ x ≥ 0 ∧ y ≥ 0] 5 · n while ( x, y, 0) − − → while ( x − n, y, y · n ) [ x > 0 ∧ 0 < n ≤ x ] 1 while ( x, y, z ) − → return ( z ) [ x = 0] Automated Complexity Analysis of Rewrite Systems 9

  37. Chaining Example 1 init ( x, y ) − → while ( x, y, 0) [ x ≥ 0 ∧ y ≥ 0] 5 · x while ( x, y, 0) − − → while ( x − x, y, y · x ) [ x > 0 ∧ 0 < x ≤ x ] 1 while ( x, y, z ) − → return ( z ) [ x = 0] Automated Complexity Analysis of Rewrite Systems 9

  38. Chaining Example 1 init ( x, y ) − → while ( x, y, 0) [ x ≥ 0 ∧ y ≥ 0] 5 · x while ( x, y, 0) − − → while (0 , y, y · x ) [ x > 0] 1 while ( x, y, z ) − → return ( z ) [ x = 0] Automated Complexity Analysis of Rewrite Systems 9

  39. Chaining Example 1 init ( x, y ) − → while ( x, y, 0) [ x ≥ 0 ∧ y ≥ 0] 5 · x while ( x, y, 0) − − → while (0 , y, y · x ) [ x > 0] 1 while ( x, y, z ) − → return ( z ) [ x = 0] 5 · x +2 init ( x, y ) − − − → return ( y · x ) [ x > 0 ∧ y ≥ 0] � Automated Complexity Analysis of Rewrite Systems 9

  40. Chaining Example 1 init ( x, y ) − → while ( x, y, 0) [ x ≥ 0 ∧ y ≥ 0] 5 · x while ( x, y, 0) − − → while (0 , y, y · x ) [ x > 0] 1 while ( x, y, z ) − → return ( z ) [ x = 0] 5 · x +2 init ( x, y ) − − − → return ( y · x ) [ x > 0 ∧ y ≥ 0] � Automated Complexity Analysis of Rewrite Systems 9

  41. Chaining Example 1 init ( x, y ) − → while ( x, y, 0) [ x ≥ 0 ∧ y ≥ 0] 5 · x while ( x, y, 0) − − → while (0 , y, y · x ) [ x > 0] 1 while ( x, y, z ) → − return ( z ) [ x = 0] 5 · x +2 init ( x, y ) − − − → return ( y · x ) [ x > 0 ∧ y ≥ 0] � � whole program compressed into a single rule Automated Complexity Analysis of Rewrite Systems 9

  42. Chaining Example 1 init ( x, y ) − → while ( x, y, 0) [ x ≥ 0 ∧ y ≥ 0] 5 · x while ( x, y, 0) − − → while (0 , y, y · x ) [ x > 0] 1 while ( x, y, z ) − → return ( z ) [ x = 0] 5 · x +2 init ( x, y ) − − − → return ( y · x ) [ x > 0 ∧ y ≥ 0] � � whole program compressed into a single rule � lower bound 5 · x + 2 for all x > 0 , y ≥ 0 Automated Complexity Analysis of Rewrite Systems 9

  43. Chaining Example 1 init ( x, y ) − → while ( x, y, 0) [ x ≥ 0 ∧ y ≥ 0] 5 · x while ( x, y, 0) − − → while (0 , y, y · x ) [ x > 0] 1 while ( x, y, z ) − → return ( z ) [ x = 0] 5 · x +2 init ( x, y ) − − − → return ( y · x ) [ x > 0 ∧ y ≥ 0] � � whole program compressed into a single rule � lower bound 5 · x + 2 for all x > 0 , y ≥ 0 Works for arbitrary programs! Automated Complexity Analysis of Rewrite Systems 9

  44. Lower Bounds for ITSs – Wrap-Up first technique to infer worst case lower bounds for ITSs Automated Complexity Analysis of Rewrite Systems 10

  45. Lower Bounds for ITSs – Wrap-Up first technique to infer worst case lower bounds for ITSs key idea: loop acceleration Automated Complexity Analysis of Rewrite Systems 10

  46. Lower Bounds for ITSs – Wrap-Up first technique to infer worst case lower bounds for ITSs key idea: loop acceleration many other features, e.g.: Automated Complexity Analysis of Rewrite Systems 10

  47. Lower Bounds for ITSs – Wrap-Up first technique to infer worst case lower bounds for ITSs key idea: loop acceleration many other features, e.g.: non-determinism Automated Complexity Analysis of Rewrite Systems 10

  48. Lower Bounds for ITSs – Wrap-Up first technique to infer worst case lower bounds for ITSs key idea: loop acceleration many other features, e.g.: non-determinism asymptotic bounds Automated Complexity Analysis of Rewrite Systems 10

  49. Lower Bounds for ITSs – Wrap-Up first technique to infer worst case lower bounds for ITSs key idea: loop acceleration many other features, e.g.: non-determinism asymptotic bounds recursive void functions SMT encodings . . . Automated Complexity Analysis of Rewrite Systems 10

  50. Lower Bounds for ITSs – Wrap-Up first technique to infer worst case lower bounds for ITSs key idea: loop acceleration many other features, e.g.: LoAT Ω( n 2 ) Ω( n 3 ) Ω( n 4 ) non-determinism rc ( n ) Ω(1) Ω( n ) EXP ∞ Best Upper Bound O (1) (132) – – – – – – asymptotic bounds O ( n ) 37 126 – – – – – recursive void functions O ( n 2 ) 8 14 35 – – – – SMT encodings O ( n 3 ) 2 – 2 1 – – – O ( n 4 ) 1 – – – 2 – – . . . EXP – – – – – 5 – ∞ 53 31 1 – – – 176 Automated Complexity Analysis of Rewrite Systems 10

  51. Outline 1 Introduction 2 Lower Bounds for ITSs 3 Lower Bounds for TRSs 4 Constant Upper Bounds for TRSs Automated Complexity Analysis of Rewrite Systems 11

  52. Evaluating TRSs Example (TRS) inf ( y ) − → cons ( y, inf ( s ( y ))) Automated Complexity Analysis of Rewrite Systems 12

  53. Evaluating TRSs Example (TRS) inf ( y ) − → cons ( y, inf ( s ( y ))) Example (Evaluation) inf ( 0 ) Automated Complexity Analysis of Rewrite Systems 12

  54. Evaluating TRSs Example (TRS) inf ( y ) − → cons ( y, inf ( s ( y ))) Example (Evaluation) inf ( 0 ) [ y/ 0 ] Automated Complexity Analysis of Rewrite Systems 12

  55. Evaluating TRSs Example (TRS) inf ( y ) − → cons ( y, inf ( s ( y ))) Example (Evaluation) inf ( 0 ) [ y/ 0 ] − → cons ( 0 , inf ( s ( 0 ))) Automated Complexity Analysis of Rewrite Systems 12

  56. Evaluating TRSs Example (TRS) inf ( y ) − → cons ( y, inf ( s ( y ))) Example (Evaluation) inf ( 0 ) [ y/ 0 ] − → cons ( 0 , inf ( s ( 0 ))) [ y/ s ( 0 )] Automated Complexity Analysis of Rewrite Systems 12

  57. Evaluating TRSs Example (TRS) inf ( y ) − → cons ( y, inf ( s ( y ))) Example (Evaluation) inf ( 0 ) [ y/ 0 ] − → cons ( 0 , inf ( s ( 0 ))) [ y/ s ( 0 )] − → cons ( 0 , cons ( s ( 0 ) , inf ( s ( s ( 0 ))))) Automated Complexity Analysis of Rewrite Systems 12

  58. Evaluating TRSs Example (TRS) inf ( y ) − → cons ( y, inf ( s ( y ))) Example (Evaluation) inf ( 0 ) [ y/ 0 ] − → cons ( 0 , inf ( s ( 0 ))) [ y/ s ( 0 )] − → cons ( 0 , cons ( s ( 0 ) , inf ( s ( s ( 0 ))))) [ y/ s ( s ( 0 ))] Automated Complexity Analysis of Rewrite Systems 12

  59. Evaluating TRSs Example (TRS) inf ( y ) − → cons ( y, inf ( s ( y ))) Example (Evaluation) inf ( 0 ) [ y/ 0 ] − → cons ( 0 , inf ( s ( 0 ))) [ y/ s ( 0 )] − → cons ( 0 , cons ( s ( 0 ) , inf ( s ( s ( 0 ))))) [ y/ s ( s ( 0 ))] − → . . . Automated Complexity Analysis of Rewrite Systems 12

  60. Evaluating TRSs Example (TRS) inf ( y ) − → cons ( y, inf ( s ( y ))) Loop Automated Complexity Analysis of Rewrite Systems 12

  61. Evaluating TRSs Example (TRS) inf ( y ) − → cons ( y, inf ( s ( y ))) Loop = ⇒ Non-Termination Automated Complexity Analysis of Rewrite Systems 12

  62. Evaluating TRSs Example (TRS) inf ( y ) − → cons ( y, inf ( s ( 0 ))) Loop = ⇒ Non-Termination Automated Complexity Analysis of Rewrite Systems 12

  63. Decreasing Loops Example length ( cons ( x, x ′ )) − → s ( length ( x ′ )) Automated Complexity Analysis of Rewrite Systems 13

  64. Decreasing Loops Example length ( cons ( x, x ′ )) − → s ( length ( x ′ )) Loop Automated Complexity Analysis of Rewrite Systems 13

  65. Decreasing Loops Example length ( cons ( x, x ′ )) − → s ( length ( x ′ )) Decreasing Loop Loop Automated Complexity Analysis of Rewrite Systems 13

  66. Decreasing Loops Example length ( cons ( x, x ′ )) − → s ( length ( x ′ )) Decreasing Loop = ⇒ Linear Lower Bound Loop Automated Complexity Analysis of Rewrite Systems 13

  67. � Decreasing Loops Example length ( cons ( x, x ′ )) − → s ( length ( nil )) Decreasing Loop = ⇒ Linear Lower Bound Loop Automated Complexity Analysis of Rewrite Systems 13

  68. Decreasing Loops Example length ( cons ( x, x ′ )) − → s ( length ( x ′ )) Decreasing Loop = ⇒ Linear Lower Bound Loop Automated Complexity Analysis of Rewrite Systems 13

Recommend


More recommend