From: Michael Shulman <shu...@sandiego.edu>
To: James Cheney <james....@gmail.com>
Cc: Neelakantan Krishnaswami <n.krish...@cs.bham.ac.uk>,
Homotopy Type Theory <HomotopyT...@googlegroups.com>
Subject: Re: [HoTT] Re: cubical type theory with UIP
Date: Tue, 1 Aug 2017 09:26:24 -0700 [thread overview]
Message-ID: <CAOvivQxzCbCyg9kB4YuJM165WvRXdB30dOwm-U2w6c3O6KzVEg@mail.gmail.com> (raw)
In-Reply-To: <CAAdciC3hb1Lqf8q2q3R=UqeiFWHqoJxZqr2CEqR24ErgXRVTDw@mail.gmail.com>
I think I've seen something like that too; it seems to be basically
giving up on eliminating cuts involving equalities by building them
into the primitive rules. I would expect equality to be one of the
*logical* operations, so that we can eliminate its cuts, rather than
being described by axioms as if it were part of the "theory".
On Tue, Aug 1, 2017 at 2:34 AM, James Cheney <james....@gmail.com> wrote:
> Not sure if it's what you're looking for or if it is an example of a "not
> fully satisfactory" system, but Negri and von Plato's book "Structural Proof
> Theory" (esp. ch. 6) talks about axiomatic extensions to sequent calculi
> that preserve cut elimination. The main idea is to turn axioms of the form
>
> P1 & ... & Pn => Q1 | ... | Qm
>
> into right-rules of the form
>
> Q1,Gamma => Delta, ... Qm, Gamma => Delta
> ---------------------------------------------------------------
> P1,...,Pn, Gamma => Delta
>
> so that no new principal cuts are introduced. This can handle equality or
> other FOL axioms of the form forall X. /\_i Pi ==> \/_i Q_i where P_i and
> Q_i are atomic.
>
> --James
>
>
> On Tue, Aug 1, 2017 at 10:20 AM, Michael Shulman <shu...@sandiego.edu>
> wrote:
>>
>> Yes, I think I've seen something like this before. It may give a good
>> programming language, but from a semantic category-theoretic
>> perspective I don't think it's any good. Two syntactically distinct
>> terms might still turn out to be semantically equal, so you need a
>> left rule for equality that does more than just syntactically analyze
>> the terms being equated.
>>
>> On Tue, Aug 1, 2017 at 2:14 AM, Neelakantan Krishnaswami
>> <n.krish...@cs.bham.ac.uk> wrote:
>> > On Monday, July 31, 2017 at 4:51:18 PM UTC+1, Michael Shulman wrote:
>> >>
>> >> Another motivation is that as far as I know, there is not a really
>> >> satisfactory version of sequent calculus for first-order logic with
>> >> equality (e.g. not having a fully satisfactory cut-elimination
>> >> theorem). If cubical methods are a good way to treat equality
>> >> "computationally", I wonder whether a "cubical sequent calculus" would
>> >> be able to deal with equality better.
>> >
>> >
>> > Actually, there *are* good versions of sequent calculus with
>> > equality. Jean-Yves Girard and Peter Schroeder-Heister have both given
>> > the appropriate rules. So, given a language of terms with some
>> > equational theory, the right and left rules are:
>> >
>> >
>> > —————————— =R
>> > Γ ⊢ t = t
>> >
>> >
>> > ∀θ ∈ csu(s,t). θ(Γ) ⊢ Θ(C)
>> > —————————————————————————— =L
>> > Γ, s = t ⊢ C
>> >
>> > The premise of the left rule quantifies over a *complete set of
>> > unifiers* for s and t. For terms freely generated by some signature,
>> > there is a single most general unifier (if one exists), and so the
>> > left rule has at most one premise. Once you add equations then
>> > there can be more than one most general unifier -- possibly even
>> > infinite (eg, if terms are lambda-terms modulo beta/eta, as in
>> > higher-order unification).
>> >
>> > The Girard/Schroeder-Heister equality is not the same as the Martin-Lof
>> > identity type, but it gives rise to a nicer programming language than
>> > raw J
>> > does, since the left rule is invertible. Invertible left rules are what
>> > give
>> > rise to
>> > pattern matching syntax, and so languages like Agda choose a fragment
>> > where the G/SH rule and J coincide to implement pattern matching.
>> >
>> > Agda restricts pattern matching so that an identity type
>> > argument can only have a refl pattern when the two terms being equated
>> > are generated from variables and constructors. So an identity proof
>> > p : (cons x y) = (cons a b)) can be matched as refl, but an identity
>> > proof q : (append x y) = (append a b)) can't be.
>> >
>> > This restriction ensures that first-order unification suffices for the
>> > G/SH elim, and therefore to implement pattern matching.
>> >
>> > If you are very interested in this topic, Joshua Dunfield and I have a
>> > draft
>> > paper where we work out the Curry-Howard story for pattern matching
>> > with the G/SH equality (what are called GADTs by PL theorists) in gory
>> > detail:
>> >
>> > Sound and Complete Bidirectional Typechecking for Higher-Rank
>> > Polymorphism
>> > and Indexed Types
>> > <http://www.cl.cam.ac.uk/~nk480/gadt.pdf>
>> >
>> > --
>> > Neel Krishnaswami
>> > nk...@cl.cam.ac.uk
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups
>> > "Homotopy Type Theory" group.
>> > To unsubscribe from this group and stop receiving emails from it, send
>> > an
>> > email to HomotopyTypeThe...@googlegroups.com.
>> > For more options, visit https://groups.google.com/d/optout.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Homotopy Type Theory" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to HomotopyTypeThe...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>
>
next prev parent reply other threads:[~2017-08-01 16:26 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-23 22:54 Michael Shulman
2017-07-29 1:47 ` Matt Oliveri
2017-07-29 2:25 ` [HoTT] " Jon Sterling
2017-07-29 7:29 ` Matt Oliveri
2017-07-29 6:19 ` Michael Shulman
2017-07-29 7:23 ` Matt Oliveri
2017-07-29 8:07 ` Michael Shulman
2017-07-29 10:19 ` Matt Oliveri
2017-07-29 11:08 ` Matt Oliveri
2017-07-29 21:19 ` Michael Shulman
[not found] ` <8f052071-09e0-74db-13dc-7f76bc71e374@cs.bham.ac.uk>
2017-07-31 3:49 ` Matt Oliveri
2017-07-31 15:50 ` Michael Shulman
2017-07-31 17:36 ` Matt Oliveri
2017-08-01 9:14 ` Neelakantan Krishnaswami
2017-08-01 9:20 ` Michael Shulman
2017-08-01 9:34 ` James Cheney
2017-08-01 16:26 ` Michael Shulman [this message]
2017-08-01 21:27 ` Matt Oliveri
2017-07-31 4:19 ` Matt Oliveri
2017-08-02 9:40 ` [HoTT] " Andrea Vezzosi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAOvivQxzCbCyg9kB4YuJM165WvRXdB30dOwm-U2w6c3O6KzVEg@mail.gmail.com \
--to="shu..."@sandiego.edu \
--cc="HomotopyT..."@googlegroups.com \
--cc="james...."@gmail.com \
--cc="n.krish..."@cs.bham.ac.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).