| |
| ▲ | solomonb 2 hours ago | parent | next [-] | | Correct. There are awful tricks to write [1] dependent Haskell but even then it isn't powerful enough and has a significantly worse user experience then a proper dependently typed proof checker (as bad as the UX is on those!). That said there are other languages such as Agda, Idris, and Rocq that would be fantastic replacements to Lean, especially if you care about staying constructive. 1. https://homepages.inf.ed.ac.uk/slindley/papers/hasochism.pdf | | |
| ▲ | ux266478 an hour ago | parent [-] | | I mentioned in another comment, but that worse user experience is also going to exist with Idris. It's not a theorem prover, you can just use it as one. | | |
| ▲ | solomonb 21 minutes ago | parent [-] | | Idris has pi and sigma types, dependent pattern matching, view patterns, totality checking, proof search, interactive case splitting, etc, etc. It is orders of magnitude better then Haskell where the best you can do is hacky bullshit with singletons, GADTs, and type families. |
|
| |
| ▲ | ux266478 an hour ago | parent | prev [-] | | That's not quite right, Haskell's type system is fully turing complete. Strictly speaking, it can encode anything any other program can. If we put aside language extensions, I can see a pragmatic and ergonomic limitations obviously, but that's not an expressibility problem, and I wouldn't really equate what remains practical with triviality. With language extensions, you can just kind of do whatever as shown by Liquid Haskell. I can see the real pain point more being the fact that it's not like a typical proof assistant, and utilizing it as one is going to be unintuitive and strange. https://hackage.haskell.org/package/type-settheory |
|