coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: "William J. Bowman" <wjb AT williamjbowman.com>
- To: coq-club AT inria.fr
- Subject: Re: [Coq-Club] Why does CIC have substitution?
- Date: Sat, 26 May 2018 13:44:24 -0400
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=wjb AT williamjbowman.com; spf=Pass smtp.mailfrom=wjb AT williamjbowman.com; spf=Pass smtp.helo=postmaster AT williamjbowman.com
- Ironport-phdr: 9a23:jqqxNxbRI/FA0U1IHvR/Pzn/LSx+4OfEezUN459isYplN5qZoMS+bnLW6fgltlLVR4KTs6sC17KN9fi4EUU7or+5+EgYd5JNUxJXwe43pCcHRPC/NEvgMfTxZDY7FskRHHVs/nW8LFQHUJ2mPw6arXK99yMdFQviPgRpOOv1BpTSj8Oq3Oyu5pHfeQpFiCazbL9oMBm6sRjau9ULj4dlNqs/0AbCrGFSe+RRy2NoJFaTkAj568yt4pNt8Dletuw4+cJYXqr0Y6o3TbpDDDQ7KG81/9HktQPCTQSU+HQRVHgdnwdSDAjE6BH6WYrxsjf/u+Fg1iSWIdH6QLYpUjmk8qxlSgLniD0fOjA38G/ZlNF+gqFVoB2uuxNw3oHab4ObO/dlYqPQfskXSXZdUstLVSFMBJ63YYsVD+oGOOZVt4fxqFsPrRu6AQmsBfngyjpVjXHyx6ExzvksEQbI3QwlBd0OtnrYp8jyOaYcU+C617LFzDvCb/NS3Tf96ZLHchUjof6XWrJxf8/RxlMpFw/fklqQronlMiqT2+8QvWab6O9gWviui24hswx+uCSgxsI2honOnIIVxVbJ/jh6zoYtPdC0VUp2bcC+HJdNtyyXN5F6T8AhTm1ypSo217wLtYamcCUFyZkr3QPTZ+GHfoSS4R/uW/ydLDd4iX9jZbmxnQy98VK6xe35TsS00EhFri5CktTUuHEN1hjT6syGSvRn+0eh2y2A1wfd6+FBO080k7DXJIImwr41jpYTsELDETHqmEjukaObclso9vK15+nnYrjqvJyROoxuhg3jL6gjm9SzAeEiPQgPW2ib9/681Lrm/UDhTrRKjOY5n7LXsZDbIcQboq+5DBVQ0oYh8Bm/CDmn0NECknkBNl5KZBWHj43xN1HUPP/4Feu/g0irkDpz2//GOaThDozRIXjHjbfuZq1w61VcyQo21dBQ/YhYCrAHIPLpW0/+rsbUDhEjM1/8/+GyA9Jkk4gaRGinA6mDMaqUv0XbyPgoJrzGW44RvDf0LrAHobbEimA8kFlXNf2235E/d3G8GvVvJkeTZmXpi9FHGmAP6FltBNf2gUGPBGYAL025WLgxs2liWdCWSLzbT4Xou4SvmSKyH5lYfGdDUAjeDnbsc4SNXvUGbz2XK8knmTsBB+H4F90RkCq2vQq/8IJJa/LO83dA543i0Nx07ujRnxYt8DVySc+a1jPVFjwmriYzXzYzmZtHjwl9x1OEi/AqnP1cEd1a4vFDVRg/PJiaxOt/WYn/
I agree that the additional judgment in ΠΣ appears at least as complicated as
substitution.
The definition of "Oleg" in McBride's thesis (chapter 2.1, page 20) is a
better
comparison to CIC, I think, and *seems to me* somewhat simpler for omitting
substitution.
I guess I was wondering if anyone had considered performance implications (is
it
more efficient to substitute than to use let as a kind of explicit
substitution?) or philosophical perspectives (is it better to use let as a
object-level representation of substitution than to treat substitution as a
meta-level operation?).
–
William J. Bowman
On Sat, May 26, 2018 at 06:14:36PM +0200, Matthieu Sozeau wrote:
> Right, it's possible to phrase it like this. I understand ΠΣ's motivation
> for turning these x := v into equalities x = v for reflection/conversion
> but I'm not wondering how an intensional type theory like CIC would benefit
> from this. The additional complication in the reduction rules looks
> equivalent to me to the definition of substitution.
> Note that the delta/let reduction rule of CIC is performing immediate
> substitution.
> -- Matthieu
>
> On Sat, May 26, 2018 at 5:19 PM William J. Bowman
> <wjb AT williamjbowman.com>
> wrote:
>
> > Matthieu,
> >
> > Yes that should be one of the closure rules.
> > I suppose this means let is head normal when its body has no more
> > reductions;
> > alternatively, we could have:
> >
> > x := v |- B -> B’
> > ------------------- (when x ∉ FreeVars(B'))
> > let x = v in B -> B’
> >
> > McBride's thesis has a reduction rule like this, and the ΠΣ calculus
> > Thorsten
> > mentioned does something similar via an auxiliary relation that normalizes
> > let
> > bindings.
> >
> > --
> > William J. Bowman
> >
> > On Fri, May 25, 2018 at 10:44:55AM +0200, Matthieu Sozeau wrote:
> > > Hi,
> > >
> > > What is the reduction rule for let, e.g. for weak head reduction?
> > > If you assume reduction under a local context of definitions, then you
> > get
> > > something like:
> > >
> > > x := v |- B -> B’
> > > -------------------
> > > Let x = v in B -> let x = v in B’
> > >
> > > B' might still contain references to x, so you will need to consider
> > let's
> > > as head normal somehow, no?
> > > — Matthieu
> > >
> > > Le jeu. 24 mai 2018 à 19:31, William J. Bowman
> > > <wjb AT williamjbowman.com>
> > a
> > > écrit :
> > >
> > > > McBride and McKinna observe that when you have let and δ reduction,
> > > > including substitution is unnecesary.
> > > > (The View From The Left, https://dl.acm.org/citation.cfm?id=967496)
> > > > Instead, we can replace dependent typing rules such as:
> > > >
> > > > ...
> > > > ------------------
> > > > Γ ⊢ e₁ e₂ : B[e₂/x]
> > > >
> > > > By
> > > >
> > > > ...
> > > > ------------------
> > > > Γ ⊢ e₁ e₂ : let x = e₂ in B
> > > >
> > > > And replace substitution in reduction, such as β, by:
> > > >
> > > > Γ ⊢ (λ x.e) v → let x = v in e
> > > >
> > > > Why does CIC include both let + δ reduction *and* substitution?
> > > >
> > > > --
> > > > William J. Bowman
> > > > Northeastern University
> > > > College of Computer and Information Science
> > > >
> >
- [Coq-Club] Why does CIC have substitution?, William J. Bowman, 05/24/2018
- Re: [Coq-Club] Why does CIC have substitution?, Matthieu Sozeau, 05/25/2018
- Re: [Coq-Club] Why does CIC have substitution?, Thorsten Altenkirch, 05/25/2018
- Re: [Coq-Club] Why does CIC have substitution?, William J. Bowman, 05/26/2018
- Re: [Coq-Club] Why does CIC have substitution?, Matthieu Sozeau, 05/26/2018
- Re: [Coq-Club] Why does CIC have substitution?, William J. Bowman, 05/26/2018
- Re: [Coq-Club] Why does CIC have substitution?, Matthieu Sozeau, 05/26/2018
- Re: [Coq-Club] Why does CIC have substitution?, Matthieu Sozeau, 05/25/2018
Archive powered by MHonArc 2.6.18.