[TYPES] What's a program? (Seriously)
Hendrik Boom
hendrik at topoi.pooq.com
Wed May 19 09:20:39 EDT 2021
On Tue, May 18, 2021 at 10:51:56PM +0100, Martin Escardo wrote:
> [ The Types Forum, http://lists.seas.upenn.edu/mailman/listinfo/types-list ]
>
>
>
> On 18/05/2021 22:18, Talia Ringer wrote:
...
...
> >
> > What makes it more specific? In my mind, you can certainly view any
> > program in any language as a proof in some logical system, even if the
> > logical system is not actually implemented as the language's type
> > checker, and even if the corresponding logic is unsound.
> > A proof in an
> > unsound logic is still a proof, I think---just a possibly useless one
> > (possibly useful, though, since you can have incorrect assumptions and
> > still sometimes prove things that in no way rely on them).
>
> I am not sure I understand this, but I would be willing to discuss it to
> clarify it.
Example of a useful inconsistent logic. Useful only if used properly,
of course, but it leaves it to the user to determine wnat is proper.
Take a usual univers-hierarchy type theory, one with u0 : U1, U1 : U2 an
so forth.
How far to follow that hierarchy? Two levels? an infinite sequence?
Index the U's with all the ordinals:
There are always limits on expressing things that generalise over
universes.
The obvious thing to do is to introduce a type of all universes, and to
consider it a universe.
U : U
Of course, that's inconsistent.
But it allows you to take any type to index universes by using a
constant function that always returns U.
And then you'll be able to construct any infinite herarchy you want.
You could even make a reasonable one and prove its reasonable
properties.
Afterward, you can use this hierarchy consitently as long as you forget
you ever had U : U lying around, because using U : U directly can lead
to trouble.
-- hendrik
More information about the Types-list
mailing list