| import Lean | |
| def f (x : Nat) := | |
| let g (y z : Nat) := match y with | 0 => x * z * x * y * y | .succ y => y + z | |
| let h (x : Nat) := g x x | |
| h (x+1) + | |
| h (x+2) + | |
| h (x+3) + | |
| h (x+4) + | |
| h (x+5) + | |
| h (x+6) + | |
| h (x+7) + | |
| h (x+8) + | |
| h (x+9) | |
| #eval Lean.Compiler.compile #[``f] | |
| -- set_option trace.Compiler.simp true -- TODO: uncomment | |
| #eval Lean.Compiler.compile #[``f] |