coq-club AT inria.fr
Subject: The Coq mailing list
List archive
[Coq-Club] Philosophical and other perspectives (Coq and Metamath) - Re: Why does CIC have substitution?
Chronological Thread
- From: Ken Kubota <mail AT kenkubota.de>
- To: coq-club AT inria.fr
- Cc: metamath AT googlegroups.com
- Subject: [Coq-Club] Philosophical and other perspectives (Coq and Metamath) - Re: Why does CIC have substitution?
- Date: Tue, 29 May 2018 23:35:53 +0200
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=mail AT kenkubota.de; spf=Pass smtp.mailfrom=mail AT kenkubota.de; spf=None smtp.helo=postmaster AT plasma2.jpberlin.de
- Ironport-phdr: 9a23:vESydxQ47J8WmFXqDsXic8ISqdpsv+yvbD5Q0YIujvd0So/mwa6yZBSN2/xhgRfzUJnB7Loc0qyK6/2mATRIyK3CmUhKSIZLWR4BhJdetC0bK+nBN3fGKuX3ZTcxBsVIWQwt1Xi6NU9IBJS2PAWK8TW94jEIBxrwKxd+KPjrFY7OlcS30P2594HObwlSizexfbN/IA+qoQnNq8IbnZZsJqEtxxXTv3BGYf5WxWRmJVKSmxbz+MK994N9/ipTpvws6ddOXb31cKokQ7NYCi8mM30u683wqRbDVwqP6WACXWgQjxFFHhLK7BD+Xpf2ryv6qu9w0zSUMMHqUbw5Xymp4qF2QxHqlSgHLSY0/33YhcJtjKxUohyvqR9xw4DKZ4+YL+Bxcr/Yfd4ARWpNQsRcWipcCY28dYsPCO8BMP5doYbjoVsFsB6wBRS3C+Po1j9HnGL90Ko/0+s7EAHG2BctH9EQv3TSr9X1KbwdUeepzKbS1znMcu1Z1C775YPVfB4hpvSMUqhxccrX0UQgDR/KjlCKpYziJTOV2fwBvHWc7+phT+6vjHQnqw5prjioyMYsjo7JhowQylDF8yV23pw1JcOiR0JhZ96rDodQuzmGOIRsR8MuWXtntzogxr0bup62ejUBxpc/xxPHb/GLbpKE7g/nWeuSOzt0mnJodK6lixqv/kWs1vXwWtep3FtItCZJjNbBu38X2xDN6sWKReFx8lqn1D2SzQ7c8PtELloxlafDK54u3Lowlp0LvETbGi/5gl72jKqMeUk64OSo6fznba74qZ+GM490iwf+Pr4zlcOhGeg4Mw4OUHaH+emk0LDv4Ff1TKhOg/A1iKXVrpDXKdgBqqKkDAJZzp4v6xOlADen1NQYk2MHLFVAeB+fiojmIVDOIPTjAPe8nVusljRrx+3dMb3mHpXCNGLPn6r/crpl8U5T1BIzzcxD55JTErwOPPXzWlbouNPECh85Lhe7zv38CNR904MeQXiADrWYMKPUq1+I5/ggL/OCZI8P637BLK0u4Oerhnskk3cce7Oo1N0ZciOWBPNjdmaUZzLPn90GDW5C6g83TejCi1CEUiNZYGq7Ga4xsGJoQLm6BJvOE9j+yIeK2z22S8UPNzJ2T2uUGHKtTL2qHvIFaSacOMhky2BWVrWnSJIr0g2n8gP3meM+crjkvxYAvJem7+BbovXJnEhupz95CceA2WaRRid4kzFQHmJk7OVEuUV4j2y7/+14jvhfT4UB//dASQIzb9je1+Z3EdTzXETNc4XRRQ==
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?).
Just recently I wrote a few words on different ways of representation:
The bottom line is that philosophical and other representations (e.g., logical frameworks,
or for the purpose of automation) have conflicting design principles, but are related to each other.
The philosophical approach (bottom-up representation) aims at finding very general
principles/rules (e.g., Andrews' Q0), even at the cost of efficiency.
The top-down representation makes metatheorems symbolically representable,
and provability relations explicit (within the formal language).
For example, Q0 is a Hilbert-style system, in which metatheorems are inexpressible
and which is not suited for automation.
(Somebody argued in this context that Metamath is Hilbert-style, which I find problematic,
as Metamath's formal language is that of a logical framework, starting already at the meta-level
with much more powerful expressiveness. The point of Q0 as a Hilbert-style system
– at the object language level! – is that Andrews can reduce all rules to a single one
(substitution: Rule R), obtaining all of mathematics with very little means.
With the very strong expressiveness of the meta-level this is much easier,
although less elegant.)
In my chart at
the conflicting design principles are reflected by the two different branches emerging from
Church's Simple Theory of Types:
1. Andrews' Q0 (focusing on expressiveness), and
2. Gordon's HOL (focusing on automation).
In the text linked above I argue that the top-down representations obtain their legitimacy
through the bottom-up (philosophical) representation.
Am 26.05.2018 um 19:44 schrieb William J. Bowman <wjb AT williamjbowman.com>: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,get
What is the reduction rule for let, e.g. for weak head reduction?
If you assume reduction under a local context of definitions, then yousomething like:let's
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 consideras head normal somehow, no?a
— Matthieu
Le jeu. 24 mai 2018 à 19:31, William J. Bowman <wjb AT williamjbowman.com>é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
- [Coq-Club] Philosophical and other perspectives (Coq and Metamath) - Re: Why does CIC have substitution?, Ken Kubota, 05/29/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.