talk idea termination idris vs ethereum - benclifford/text GitHub Wiki
Two different notions of termination
idris
- prove termination
- don't care how long, as long as its finite
- needed for proof-like values that might never be computed
- avoid being allowed to pass in bottom as a value
- try to avoid you writing an infinite loop at compile time
ethereum
- provide "gas". you buy "gas" and your program runs till it runs out.
- can make some predictions about how long it will take but execution is in a context you don't fully know - eg there is block information, and the current time. However, you can still do analysis.
- you can write an infinite loop however it won't run forever.