[Haskell] Correct interpretation of the curry-howard isomorphism
Philippa Cowderoy
flippa at flippac.org
Fri Apr 23 19:23:53 EDT 2004
On Fri, 23 Apr 2004, Bruno Oliveira wrote:
> and haskell type system is sound
>
> then we cannot write coerce.
>
> Which as been shown in the last emails that it is not true.
>
> So, either the interpretation of the isomorphism is wrong, or Haskell
> type system is in fact unsound. Right ? They cannot be both true!
>
_|_ is an element of all types in Haskell because any function can fail to
terminate as far as the type system's concerned. You can't write a
coercion that doesn't do one of: return _|_, return a conversion (which
can't be done for a->b) or return a constant (also not doable in the
general case with the exception of _|_).
AIUI (I'm no logician), that's just going to amount to something akin to
"given a proof everything's true" or similar. Don't look at me for
soundness, mind!
--
flippa at flippac.org
More information about the Haskell
mailing list