it's called intuitionistic type theory

On Sat, Sep 15, 2018 at 04:47 Tim Daly <axiom...@gmail.com> wrote:

> In the video "The Most Beautiful Program Ever Written"
> https://www.youtube.com/watch?v=OyfBQmvr2Hc
>
> Byrd derives
>
> (define eval-expr (lambda (expr env)
>   (pmatch expr
>     [,x (guard (symbol? x)) (env x)]
>     [(lambda (,x) ,body)
>       (lambda (arg)
>         (eval-expr body (lambda (y) (if (eq? x y) arg (env y))))))]
>     [(,rator) (,rand)
>       ((eval-expr rator env)
>        (eval-expr rand env))])))
>
> He points out that it has lexical scope and higher-order functions.
>
> At  a glance it is obvious that the program is the lambda calculus
>  x | lambda x | (e1 e2)
>
> but it also has an interesting wrinkle in the environment encoding
> (aka Gamma) in that the 'env' argument is an expression that captures
> local scope, aka data, in a lambda binding. Since it is recursive the
> environment is built and scoped as closures in the 'env' argument.
>
> It seems straightforward to add types (as lambda expressions, not
> as the traditional symbol form like alpha, etc.). Depending on how
> they get handled in closures they could be static or dynamic.
>
> But McCarthy raises an issue of data.
>
> From McCarthy "Towards a Mathematical Science of Computation"
> http://www-formal.stanford.edu/jmc/towards.ps 1997
>
> "Procedures are usually built up from elementary procedures. What these
> elementary procedures may be, and how more complex procedures are
> constructed from them, is one of the first topics in computer science.
> This subject is not hard to understand since there is a precise notion of
> a
> computable function to guide us, and computability relative to a given
> collection of initial functions is easy to define.
>
> Procedures operate on members of certain data spaces and produce
> members of other data spaces, using in general still other data spaces
> as intermediates. A number of operations are known for constructing
> new data spaces from simpler ones, but there is as yet no general
> theory of representable data spaces comparable to the theory of
> computable functions."
>
> Most of the treatments I've seen fall back upon set theory to handle
> Gamma, such as saying that items to the left of a turnstile are sets
> or that imperative program actions modify a set of known variables.
>
> The closest I've seen to a theory of "representable data spaces"
> occurs in the Let Over Lambda book
> https://letoverlambda.com/
>
> Are you aware of any references that focus on a "theory of representable
> data spaces" that does not involve sets?
>
>
> Tim
>
>
>
>
>
> --
(c) Robert Harper. All rights reserved.
_______________________________________________
Axiom-developer mailing list
Axiom-developer@nongnu.org
https://lists.nongnu.org/mailman/listinfo/axiom-developer

Reply via email to