|
|
- ---
- title: The Complete History of isoToEquiv
- date: December 17th, 2021
- ---
-
- # What's isoToEquiv?
-
- It's a standard fact in (higher) category theory and homotopy theory
- that any equivalence of categories (homotopy equivalence) can be
- improved to an _adjoint_ equivalence of categories (strong homotopy
- equivalence). Adjoint equivalences (and strong homotopy equivalences)
- are "more structured" notions in the sense that the data of an adjoint
- equivalence is _contractible if inhabited_.
-
- In Homotopy Type Theory, the notion of (half) adjoint equivalence lets
- us split the type $A \simeq B$ into _structure_ and _property_: the
- structure is a function $A \to B$, and the property is "being an
- equivalence". This is in contrast to the type of _isomorphisms_ $A \cong
- B$, which are the _structure_ of maps $f : A \to B$ and $g : B \to A$
- together with homotopies $f \circ g \sim \mathrm{id}$ and $g \circ f
- \sim \mathrm{id}$. Notably, the type of "isomorphism data" for a
- particular function is [not always a proposition], whereas [being an
- equivalence is].
-
- [not always a proposition]: https://cubical.1lab.dev/1Lab.Counterexamples.IsIso.html
- [being an equivalence is]: https://cubical.1lab.dev/1Lab.Equiv.html#isProp-isEquiv
-
- Recently, I've been working on [the 1Lab], an open-source, formalised
- and explorable resource for univalent mathematics. This means that,
- among other things, I had to write an explanation for [the proof that
- isomorphisms can be made into equivalences][1], i.e., the map
- `isoToEquiv`. Our proof comes essentially from [the Cubical Agda
- library], where it is presented with a single comment:
-
- ```agda
- -- Any iso is an equivalence
- ```
-
- That's helpful. So where does it come from?
-
- [the 1Lab]: https://cubical.1lab.dev
- [1]: https://cubical.1lab.dev/1Lab.Equiv.html#equivalences-from-isomorphisms
- [the Cubical Agda library]: https://github.com/agda/cubical/blob/22bea9586b67fa90cf90abea04360080d369c68c/Cubical/Foundations/Isomorphism.agda#L53-L112
-
- # Where it comes from
-
- Since _I_ know where I got it from, I knew where to start looking. On
- the Git log of the Cubical Agda library, we find that the Cubical Agda
- version of `isoToEquiv` was added in [October 31, 2018] by Anders
- Mörtberg, with the same handy comment and no attribution.
-
- It's reasonable to assume, then, that Mörtberg proved it himself right
- then and there. However, the HoTT book, published in 2013, already has a
- proof that any isomorphism data can be "strengthened" into equivalence
- data, so it seems unreasonable to assume that the first time this was
- formalised was 2018. Fortunately, we're not dead in the water.
-
- [October 31, 2018]: https://github.com/agda/cubical/commit/e139a6f09ea59da2032be8ebaf07e8b5fc8bc0c4
-
- The Cubical Agda implementation of `isoToEquiv` comes from [cubicaltt],
- an older, prototype implementation of cubical type theory. Looking at
- _that_ Git history, we find that it was added by.. Mörtberg again! This
- time on [January 4, 2016], over two years prior. Again, there is no
- attribution, and this is the oldest implementation of cubical type
- theory, so it's reasonable to assume that this is where the proof
- originates, right? Wrong.
-
- [cubicaltt]: https://github.com/mortberg/cubicaltt/blob/a5c6f94bfc0da84e214641e0b87aa9649ea114ea/examples/equiv.ctt#L177-L225
- [January 4, 2016]: https://github.com/mortberg/cubicaltt/commit/26b70046ce7e45197f14ead82daae7e0354e9945
-
- # The name "gradLemma"
-
- If you look at the commit that originally introduced a proof that `isIso
- f → isEquiv f` to cubicaltt, you'll see that the map _wasn't_ named
- `isoToEquiv`, it was named `gradLemma`. This name is _especially_
- unhelpful, [quoting Mike Shulman]:
-
- [quoting Mike Shulman]: https://github.com/mortberg/cubicaltt/issues/72
-
- > Generally there are two ways that theorems and lemmas are named in
- > mathematics: descriptively (giving some information about what the
- > theorem says, e.g. "the intermediate value theorem") and attributively
- > (giving credit to whoever proved it, e.g. "Cauchy's theorem"). Whatever
- > your feelings about the relative merits of the two, the name "grad
- > lemma" achieves neither: it conveys no information about what the lemma
- > says, nor does it give any credit to the people it refers to, instead
- > depersonalizing them as "some nameless graduate students". Moreover it
- > is even factually incorrect, since some of the people in question were
- > actually postdocs at the time.
-
- Shulman is right! The name is depersonalizing, and it does not credit
- the people who originally came up with the proof. So who _are_ they?
- Where does this proof come from? Well, reading the rest of those GitHub
- issues, we learn two things:
-
- 1. Mörtberg did not come up with the proof out of thin air, though as
- far as I can tell he was the first to adapt it to a direct cubical
- argument;
-
- 2. The name "gradLemma" comes from UniMath.
-
- # UniMath
-
- UniMath (**uni**valent **math**ematics) is the second oldest library for
- Homotopy Type Theory in a proof assistant, and the oldest actively
- maintained. It was, in fact, originally written by Voevodsky himself!
- Thus, it comes with its own proof of `isoToEquiv`, which we find [in the
- massive file `Foundations/PartA.v`][3]:
-
- [3]: https://github.com/UniMath/UniMath/blob/f9645aeb354f34f0841cb796e33ccc0a5cba1d67/UniMath/Foundations/PartA.v
-
- ```
- (** This is kept to preserve compatibility with publications that use the
- name "gradth" for the "grad theorem". *)
- Definition gradth {X Y : UU} (f : X -> Y) (g : Y -> X)
- (egf: ∏ x : X, g (f x) = x)
- (efg: ∏ y : Y, f (g y) = y) : isweq f := isweq_iso f g egf efg.
- ```
-
- Good to know that at least the theorem isn't _called_ "grad theorem"
- anymore, but there are still many references to `gradth` in the
- codebase. By the way, the name `isweq_iso`? [Changed by Mörtberg]! It's
- him we have to thank for introducing the _useful_ name `isweq_iso`, and
- the corresponding `isoToEquiv`. Thank goodness we don't call it "grad
- theorem" anymore.
-
- [Changed by Mörtberg]: https://github.com/UniMath/UniMath/pull/848
-
- But wait, the name "grad theorem" refers to *grad*uate students.. And
- graduate students are _people_.. So who are these people? Let's keep
- digging. The README to UniMath mentions that it is based on a previous library, [Foundations]:
-
- [Foundations]: https://github.com/UniMath/Foundations
-
- > The UniMath project was started in 2014 by merging the repository
- > Foundations, by Vladimir Voevodsky (written in 2010), \[...\]
-
- I'll cut to the chase: The history of `gradth` ends with foundations;
- It's been there since [the initial commit]. This means that the trail
- has run cold. Voevodsky certainly wasn't a grad student in 2010, he was
- a fields medalist! Mörtberg didn't name the theorem either. And so, I
- kept digging. I started looking for sources other than code: talks,
- papers, theses, etc.
-
- # An unlikely source
-
- [the initial commit]: https://github.com/UniMath/Foundations/commit/d56271180c00a8a545c29db06001ae71a910c1b1#diff-ba65cad07cb794c06ab63e0e04dc95d785fee1374791ea974099e355ff20ff7bR433-R439
-
- I found a handful of papers ([here] [are] [some]) which refer to this
- result as "the graduate theorem", but none of them mentioned _who_ the
- graduate students are. However, I did find a source, however unlikely.
-
- [here]: https://arxiv.org/pdf/1809.11168.pdf
- [are]: https://arxiv.org/pdf/1401.0053.pdf
- [some]: https://arxiv.org/pdf/1210.5658.pdf
-
- In 2011, Mike Shulman wrote [a series of posts] introducing the
- $n$-category café to the ideas of homotopy type theory. In this post,
- Shulman mentions the notion of equivalence following Voevodsky, but he
- also mentions the notion of [half-adjoint equivalence], and mentions
- where it comes from:
-
- > This other way to define $\mathrm{IsEquiv}$ should be attributed to a
- > handful of people who came up with it a year ago at an informal
- > gathering at CMU, but I don’t know the full list of names; maybe someone
- > else can supply it.
-
- [a series of posts]: https://golem.ph.utexas.edu/category/2011/03/homotopy_type_theory_ii.html
- [half-adjoint equivalence]: https://cubical.1lab.dev/1Lab.Equiv.HalfAdjoint.html
-
- Now, as Shulman says, he does not know the full list of names. However,
- Steve Awodey does, [as is stated in a comment]:
-
- > Let’s see: Mike Shulman, Peter Lumdaine, Michael Warren, Dan Licata –
- > right? I think it’s called “gradlemma” in VV’s coq files (although only
- > 2 of the 4 were actually still grad students at the time).
-
- [as is stated in a comment]: https://golem.ph.utexas.edu/category/2011/03/homotopy_type_theory_ii.html#c037120
-
- However, note the use of "right?" - this comment isn't a primary source
- (Awodey wasn't involved in coming up with the graduate lemma), and it's
- not even certain on top of that. However, you know what would be a
- primary source?
-
- Someone who was there.
-
- And you know who follows me on twitter?
-
- [Dan Licata].
-
- [Dan Licata]: https://twitter.com/admitscut/status/1472014521673859072
-
- # The Complete History of isoToEquiv
-
- With this, we have a full picture of the history of isoToEquiv, albeit
- with a handful of details still fuzzy. Here's a timeline:
-
- * (2010-??-??) Mike Shulman, Peter Lumsdaine, Michael Warren and Dan
- Licata come up the notion of half-adjoint equivalence in homotopy type
- theory, and adapt a standard result from category theory to show that
- any isomorphism improves to a half-adjoint equivalence. **This is the
- origin of `isoToEquiv`**; The "grad" in "grad theorem" refers to Licata
- and Lumsdaine, who were graduate students at the time.
-
- * (2010-10-04) Vladimir Voevodsky makes the first commit of Foundations,
- where `isoToEquiv` is present - under the name `gradth`. Nowhere in the
- repository, its entire history, or anywhere in Voevodsky's works are the
- grads from the th mentioned. There are no git logs that can trace the
- history of `isoToEquiv` before this point.
-
- * (2014-03-21) Foundations becomes UniMath, and the name `gradth` is
- kept. This is the first “leap” in the history of `isoToEquiv`, the first
- non-trivial historical path.
-
- * (2016-01-04) Mörtberg adapts the proof of `gradth` from UniMath to his
- experimental implementation of Cubbical Type Theory, which at the time
- was brand new. There, the result is called `gradLemma`.
-
- As far as I can tell, this is the origin of the code for `isoToEquiv`
- that can still be found, alive and kicking, in the Cubical library
- (and the 1lab) to this day. I've emailed Mörtberg to set the record
- straight, but I'm writing this at 11:00pm on a Friday, so I still
- haven't heard back. I'll update the post when (and if) he replies.
-
- * (2017-08-11) Mike Shulman files an issue in the cubicaltt repository
- complaining about the name `gradLemma`. Mörtberg addresses the issue by
- renaming it to `isoToEquiv`.
-
- * (2018-10-30) Mörtberg ports `isoToEquiv` from cubicaltt to Cubical
- Agda, which is where I stole it from.
-
- I am in no position to speculate as to _why_ Voevodsky did not credit
- Licata, Lumsdaine, Shulman and Warren with `gradth`, or why he chose a
- name that mentions the existence of graduate students without naming the
- students. It feels like a great misstep in the history of our community
- that such a fundamental result was never properly accredited. While the
- Wikipedia page for Homotopy Type Theory has mentioned Licata, Lumsdaine,
- Shulman and Warren as the authors of the proof [since 2014], _none_ of
- the primary sources I consulted - the Foundations repo, the UniMath
- repo, the cubicaltt repo, the Cubical Agda repo, or _any_ of the
- associated papers - do.
-
- [since 2014]: https://en.wikipedia.org/w/index.php?title=Homotopy_type_theory&diff=prev&oldid=638938391
-
- I'm glad the name `gradth` is no longer in widespread usage (outside of
- UniMath, which has neglected to remove the deprecated name). If we were
- to name it after people, it should be called the
- Licata-Lumsdaine-Shulman-Warren Theorem, and that's unwieldy. Let's
- stick with `isoToEquiv`, but acknowledge where it comes from.
-
- I know this post isn't what I usually write - I'm not a historian, after
- all - so thanks for reading it. I wanted to chronicle how I spent the
- afternoon and evening of a Friday in December 2021: Chasing the ghost of
- proper attribution. I'm probably not going to write any technical
- content on this blog for a while yet; I might write a short announcement
- of the 1lab, which otherwise takes up all of my spoons.
|