[TYPES] What's a program? (Seriously)
Freek Wiedijk
freek at cs.ru.nl
Wed May 19 05:29:47 EDT 2021
Dear Talia and others,
Of course there is no inherent meaning to the word "program".
It depends on the person what they mean with it. Also it's
a bit like Wittgenstein's analysis of the notion of "game".
These concepts are not very precisely delineated, there
is just a social consensus based on how the word is used
in general.
For me a program is something for which there is a notion of
time evolution. I.e., if there is a notion to be denoted by
->
a notion of taking steps. In type theory that's term
reduction, in operational semantics it's state transition,
the physical state of every processor continuously evaluates
through time too, hell, even a Turing machine takes steps.
So the notion of time is for me the essential ingredient:
in time a program makes progress towards something that it
is supposed to accomplish.
Of course, a value already is a finished result, so that's
a trivial program that won't take any steps anymore: but
still it can be in a domain for which such an arrow exists,
and then it still counts as a program to me too.
We have various things;
- terms
- proofs
- programs
- states
I guess Talia's question is what inclusions between these
notions we think are natural. I don't see any obvious
inclusion in any direction myself, but I guess others
will disagree.
Also (I think this already was asked, but I would like to
repeat it): the original question was whether every proof is
a program, but from discussions with Dan Synek I remember
the question: can every program (in the general sense)
be seen as a proof?
Freek
More information about the Types-list
mailing list