[Haskell-cafe] Re: Maybe and partial functions
Neil Mitchell
ndmitchell at gmail.com
Tue Mar 13 14:28:47 EDT 2007
Hi Nicolas,
> It seems like we could refine the first parameter of carryPropagate
> just as the second: make an= type N1 that only admits values [1..].
How?
newtype N1 = N1 Int
(put that in a module and don't export N1)
define the constant 2, define the increment operator, change div and mod.
Now we've mainly got a proof in the type checker, but we still don't
actually have a proof for our core N1 definition - but I think that is
probably ok, provided it is a common core which can be reused and is
minimal.
> Would not that suffice to prove that base is never 0 and not have to
> go beyond the type-checker for a proof?
We've now encoded some properties in the type checker, changed most of
the code, and still don't actually have a complete proof. Maybe the
type checker isn't a proof tool ;)
Thanks
Neil
More information about the Haskell-Cafe
mailing list