Discussion of Homotopy Type Theory and Univalent Foundations
 help / color / mirror / Atom feed
From: Michael Shulman <shulman@sandiego.edu>
To: "HomotopyTypeTheory@googlegroups.com"
	<homotopytypetheory@googlegroups.com>
Subject: Re: [HoTT] Re: Why do we need judgmental equality?
Date: Sat, 9 Feb 2019 12:34:06 -0800	[thread overview]
Message-ID: <CAOvivQzg9GEZV3bATTMUneRpC0J_V--Fdx3dio4-=A3zRnoOLA@mail.gmail.com> (raw)
In-Reply-To: <2b86e469-309d-4a7a-8ad0-d7a0cb376c74@www.fastmail.com>

From a semantic point of view, I agree that judgmental equality is
about convenience and usability.  But that shouldn't be regarded as
making it any less important.  Indeed, the whole *point* of using type
theory as an internal language for a category, rather than simply
reasoning about the category directly, is... convenience and
usability.  Of course there are degrees of convenience, and even type
theory without judgmental equality might be slightly more convenient
than reasoning directly in categorical language.  But I think we need
judgmental equality if we really want to get some substantial benefit
out of type theory as an internal language.  The problem of course is
to bridge the gap between the type theory and the category theory, and
for that purpose intermediate structures may be useful: categories
that are more like type theory (such as tribes and contextual
categories) and type theories that are more like category theory (such
as ones with fewer judgmental equalities).  But I don't think I would
want to regard the intermediate structures as fundamental, rather than
tools to get from one side to another.

From an implementation point of view, I agree that in the long run we
should have proof assistants that don't hardcode a fixed set of
judgmental equalities.  But I don't think that means eliminating all
judgmental equalities; it just means making the logical framework more
flexible, such as Agda's ability to postulate new reductions or
Andromeda's framework with equality reflection.  In particular, the
new equalities that we postulate should still be *substitutive* (as
Jon says, allowing to perturb a judgment without altering the proof
object) rather than *transportive* (requiring the proof object to be
altered) -- I think Vladimir was the one who suggested words like
those.

From a computation point of view, of course some kind of reduction is
necessary, and it makes sense to consider an object to be "equal" in
some sense to the result of computing it.  This would presumably be a
stronger sense than typal equality inside the system, whether or not
it is actually substitutive.  Conversely, in order to implement a
substitutive equality it seems very useful to have some algorithm that
can at least go some part of the way towards deciding it, and
computation is likely to play an important role in such an algorithm.

From a philosophical point of view, I think definitional/substitutive
equality is very important: as Steve Awodey pointed out some time ago,
it represents the intensional "equality of sense" rather than the
extensional "equality of reference".  This explains why it is
substitutive: if two terms have the same sense, there is no
explanation necessary for why a statement about one also applies to
the other, while if they only have the same reference, then some
explanation may be required.  If I say "I saw the morning star this
morning" and you reply "yes, and I saw it last night", it sounds weird
because there is a transport necessary along the equality of reference
"morning star = evening star", in a way that doesn't happen if instead
you reply "yes, and I saw it yesterday morning".  Foundations for
mathematics based on first-order logic, like ZFC, have no ability to
talk about equality of sense; the only equality they know about is
reference.  A type theory without definitional equality would have the
same limitation.

Judgmental, definitional, substitutive, and computational equalities
are not exactly the same thing.  But the fact that there are so many
different but related points of view on similar and overlapping
concepts, and so many different but related uses and applications for
them, suggests to me that there is an important underlying
mathematical concept that should not lightly be discarded.  On the
other hand, the proof of the pudding is in the eating, and this whole
discussion would be much more concrete if we had some actual
references working out what type theory without judgmental equality
looks like, with proofs of whatever properties it may be claimed to
have, and perhaps even an implementation of it; so I don't mean to
discourage anyone from trying to develop such a thing.

-- 
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 HomotopyTypeTheory+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

  reply	other threads:[~2019-02-09 20:34 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-30 11:54 [HoTT] " Felix Rech
2019-02-05 23:00 ` [HoTT] " Matt Oliveri
2019-02-06  4:13   ` Anders Mörtberg
2019-02-09 11:55     ` Felix Rech
2019-02-16 15:59     ` Thorsten Altenkirch
2019-02-17  1:25       ` Michael Shulman
2019-02-17  7:56         ` Thorsten Altenkirch
2019-02-17  9:14           ` Matt Oliveri
2019-02-17  9:18           ` Michael Shulman
2019-02-17 10:52             ` Thorsten Altenkirch
2019-02-17 11:35               ` streicher
2019-02-17 11:44                 ` Thorsten Altenkirch
2019-02-17 14:24                   ` Bas Spitters
2019-02-17 19:36                   ` Thomas Streicher
2019-02-17 21:41                     ` Thorsten Altenkirch
2019-02-17 12:08             ` Matt Oliveri
2019-02-17 12:13               ` Matt Oliveri
2019-02-20  0:22               ` Michael Shulman
2019-02-17 14:22           ` [Agda] " Andreas Abel
2019-02-17  9:05         ` Matt Oliveri
2019-02-17 13:29         ` Nicolai Kraus
2019-02-08 21:19 ` Martín Hötzel Escardó
2019-02-08 23:31   ` Valery Isaev
2019-02-09  1:41     ` Nicolai Kraus
2019-02-09  8:04       ` Valery Isaev
2019-02-09  1:58     ` Jon Sterling
2019-02-09  8:16       ` Valery Isaev
2019-02-09  1:30   ` Nicolai Kraus
2019-02-09 11:38   ` Thomas Streicher
2019-02-09 13:29     ` Thorsten Altenkirch
2019-02-09 13:40       ` Théo Winterhalter
2019-02-09 11:57   ` Felix Rech
2019-02-09 12:39     ` Martín Hötzel Escardó
2019-02-11  6:58     ` Matt Oliveri
2019-02-18 17:37   ` Martín Hötzel Escardó
2019-02-18 19:22     ` Licata, Dan
2019-02-18 20:23       ` Martín Hötzel Escardó
2019-02-09 11:53 ` Felix Rech
2019-02-09 14:04   ` Nicolai Kraus
2019-02-09 14:26     ` Gabriel Scherer
2019-02-09 14:44     ` Jon Sterling
2019-02-09 20:34       ` Michael Shulman [this message]
2019-02-11 12:17         ` Matt Oliveri
2019-02-11 13:04           ` Michael Shulman
2019-02-11 15:09             ` Matt Oliveri
2019-02-11 17:20               ` Michael Shulman
2019-02-11 18:17                 ` Thorsten Altenkirch
2019-02-11 18:45                   ` Alexander Kurz
2019-02-11 22:58                     ` Thorsten Altenkirch
2019-02-12  2:09                       ` Jacques Carette
2019-02-12 11:03                   ` Matt Oliveri
2019-02-12 15:36                     ` Thorsten Altenkirch
2019-02-12 15:59                       ` Matt Oliveri
2019-02-11 19:27                 ` Matt Oliveri
2019-02-11 21:49                   ` Michael Shulman
2019-02-12  9:01                     ` Matt Oliveri
2019-02-12 17:54                       ` Michael Shulman
2019-02-13  6:37                         ` Matt Oliveri
2019-02-13 10:01                           ` Ansten Mørch Klev
2019-02-11 20:11                 ` Matt Oliveri
2019-02-11  8:23       ` Matt Oliveri
2019-02-11 13:03         ` Jon Sterling
2019-02-11 13:22           ` Matt Oliveri
2019-02-11 13:37             ` Jon Sterling
2019-02-11  6:51   ` Matt Oliveri
2019-02-09 12:30 ` [HoTT] " Thorsten Altenkirch
2019-02-11  7:01   ` Matt Oliveri
2019-02-11  8:04     ` Valery Isaev
2019-02-11  8:28       ` Matt Oliveri
2019-02-11  8:37         ` Matt Oliveri
2019-02-11  9:32           ` Rafaël Bocquet

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='CAOvivQzg9GEZV3bATTMUneRpC0J_V--Fdx3dio4-=A3zRnoOLA@mail.gmail.com' \
    --to=shulman@sandiego.edu \
    --cc=homotopytypetheory@googlegroups.com \
    /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).