Exploring Clang/LLVM optimization on programming horror
The core simplification is due to LLVM's induction-detection step. Even after doing induction-based proofs in school, until reading this I had the sense that induction is kinda magical and kinda not real.<p>I still cannot fathom how you can encode induction detection into an algorithm, any pointers welcome (keeping it simple, please, and ideally with working code).<p>The only case that makes sense to me is if you did numeric computation against some fixed number of cases and if that worked out then you assume it's right.<p>I guess this is what proof assistants do (among other things). Maybe I should look into how to write a basic proof assistant.