Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The Howard-Curry correspondence only applies if you stick to constructive maths. This means all your proofs are also programs (and computable) for free. E.g. if trying to prove "blah(x) = blaz(x)" for a fixed x, where blah and blaz are both computable predicates, then the proof can be solved easily just by evaluating blah(x) and blaz(x). This can't be done if blah or blaz isn't computable.


Sure, but isn't it the case that either your predicates are computable, in which case both a "classical" and a "constructive" proof assistant could evaluate them, or they're not, in which case neither could evaluate them?


Yep, but one could express a computable predicate classically (e.g. by unnecessarily invoking the axiom of choice in its definition). Using a constructive proof assistant prevents accidentally doing this, and encourages using constructive definitions where possible. It also encourages using computable mathematical formulations (e.g. computable reals vs classical reals).


The Howard-Curry correspondence does not help proving

properties of concurrent systems.

Instead, need to use Actor Event induction:

https://papers.ssrn.com/abstract=3418003




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: