The equation compiler uses different strategies for processing recursive equations. Some of them may produce unclear runtime cost model. For example, the following fibonacci functions was running in linear time instead of exponential time because the equation compiler used the brec_on recursor. def fib : nat → nat | 0 := 1 | 1 := 1 | (n+2) := fib (n+1) + fib n @dselsam and @jroesch have reported examples were the equation compiler produces a negative performance impact. The new test (`eval` function) captures the problem reported by @jroesch. In this example, the runtime should not depend on the "amount of fuel". This commit addresses this issue. |
||
|---|---|---|
| .. | ||
| lean | ||
| .gitignore | ||