[TYPES] Implementing induction principles
Andreas Abel
andreas.abel at ifi.lmu.de
Mon Jun 22 10:25:49 EDT 2009
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Dear Patricia,
concerning 3., you might be interested in Scott and Okada's paper
A Note on Rewriting Theory for the Uniqueness of Iteration
They prove that uniqueness of primitive recursion destroys decidability.
Cheers,
Andreas
Patricia Johann wrote:
> [ The Types Forum, http://lists.seas.upenn.edu/mailman/listinfo/types-list ]
>
>
> Dear Types,
>
> I'm trying to implement the induction principle for the natural numbers.
>
> Briefly, given P: Nat -> * and
>
> u: P(0)
> v: forall n:Nat. Pn -> P(n+1)
>
> I can bundle these together to form a 1+_-algebra on the type Sigma n:Nat.
> P n, i.e., a function
>
> my_algebra : (1 + Sigma n:Nat. P n) -> Sigma n:Nat. P n
> my_algebra = [ (0,u), \(n,p) -> (n+1, v n p)]
>
> Then I can write
>
> ind P :: forall n:Nat. P n
> ind P n = p where (m,p) = iterate my_algebra n
>
> To show that this is correct, I need to show that n=m. This is easily done
> using the uniqueness of the iteration operator.
>
> Here are my questions:
>
> 1. Can I implement ind in a programming language, theorem prover or
> intensional type theory where the uniqueness of the iteration operator is
> not available? Maybe this can be done because I only need to know that
> projection after a specific iterator is the identity. Or maybe there is a
> different approach to implementing ind?
>
> 2. Is there a programming language or theorem prover where the uniqueness
> of the iteration operator can be used?
>
> 3. Or are there theoretical reasons (perhaps due to undecidability of type
> checking) why this is not possible?
>
> Thanks very much in advance,
> -patty
>
- --
Andreas Abel <>< Du bist der geliebte Mensch.
Theoretical Computer Science, University of Munich
http://www.tcs.informatik.uni-muenchen.de/~abel/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFKP5RtPMHaDxpUpLMRAiRyAJ9Qzvphdo/IFUJwZRPpZSBsLohCsQCePdP2
g2ECXW9blh0gocV8NOhwEQ4=
=P8so
-----END PGP SIGNATURE-----
More information about the Types-list
mailing list