Discussion of Homotopy Type Theory and Univalent Foundations
 help / Atom feed
From: Anders Mortberg <andersmortberg@gmail.com>
To: Jasper Hugunin <jasperh@cs.washington.edu>
Cc: "Licata, Dan" <dlicata@wesleyan.edu>,
	 "HomotopyTypeTheory@googlegroups.com"
	<HomotopyTypeTheory@googlegroups.com>
Subject: Re: [HoTT] A question about the problem with regularity in CCHM cubical type theory
Date: Wed, 18 Sep 2019 14:16:16 +0200
Message-ID: <CAMWCpp=EMvH+XtRn7AfyjRDjmiwxfML2JQqKyPjXAhM+M2vcjw@mail.gmail.com> (raw)
In-Reply-To: <CAGTS-a8E03C3BMEwi-T4qjet4EbCgnePhR3Ffa1MepxNmtZoUA@mail.gmail.com>

I tried to recall what the problem with regularity for comp for
universes was in CCHM and here's what I've come up with. As pointed
out by Dan and Jasper we need an equation like "Glue [ phi |-> (A,
reflEquiv) ] A = A" to get a regular version of the reduction of comp
for U to comp for Glue. This indeed seems very unnatural and it is not
what we tried.

What we instead did in the old buggy version of cubicaltt was to add
new hcomp_U values to CCHM for compositions of types and reduce comp
in U to one of these:

comp^i U [phi -> A] A0 = hcomp^i_U [phi -> A] A0

For regularity we need the following condition on hcomp_U (where "i #
A" means that i does not occur in A, i.e. if we're only attaching
degenerate sides to A0):

if i # A then hcomp^i_U [phi -> A] A0 = A0


The problem is then to define

comp^j (hcomp^i_U [phi -> A] A0) [psi -> B] B0

such that it satisfies the standard equations for comp/hcomp_U and
regularity. There are in particular two regularity conditions that we
need to take into account:

1. if j # (hcomp^i_U [phi -> A] A0) and j # B then

comp^j (hcomp^i_U [phi -> A] A0) [psi -> B] B0 = B0

2. if i # A then

comp^j (hcomp^i_U [phi -> A] A0) [psi -> B] B0 = comp^j A0 [psi -> B] B0


We achieved 1 by essentially doing the same algorithm as for comp Glue
(which Jasper pointed out is indeed regular), but this only satisfied
the equation

comp^j (hcomp^i_U [] A0) [psi -> B] B0 = comp^j A0 [psi -> B] B0

and not the full version of 2. I think this is what Dan and the others
found and reported to us, at least that's how I read the old thread.
It might be possible to get 2 and not 1, but I would be very surprised
if we can get both 1 and 2 by just adapting the algorithms. Indeed, in
light of Andrew's negative results I would expect substantial changes
and some new ideas to be necessary in order to give a constructive
model of univalent type theory where Path = Id.

--
Anders






On Mon, Sep 16, 2019 at 10:17 PM Jasper Hugunin
<jasperh@cs.washington.edu> wrote:
>
> I agree with the problem of using Glue types for the composition operation in the universe.
> You could imagine an extra equation that Glue [ phi |-> (A, reflEquiv) ] A = A, but this is somehow unnatural.
> However, it is what I was postulating in step 1 of the initial message of this thread.
> (You then need comp Glue to respect this equation, which appears impossible.)
>
> The way to get around it is, in my opinion, to add a separate type former Box^i [ phi |-> T ] A for phi |- A = T(i1), satisfying the laws phi |- Box^i [ phi |-> T ] A = T(i0) and regularity: Box^i [ phi |-> A ] A = A.
> You then need comp Box to respect Box^i [ phi |-> A ] A = A, and this is also apparently not possible in CCHM, but you now have the extra information that A is a line of types. (Using Box to turn an equivalence into a line of types in the definition of comp Box is circular.)
>
> I've developed a notion of (regular) n-dimensional composition, which I think might suffice to complete the argument.
> If you call a notion of Box that satisfies Box^i [ phi |-> A ] A = A "regular Box's", then the problem can be reduced to saying that to give regular 1-dimensional composition of regular 1-dimensional boxes, you need some sort of "(doubly) regular 2-dimensional composition" for A, and in CCHM such we can only get this "2-dimensional composition" which is regular in one direction or the other.
> Of course (I haven't actually checked, but my intuition says that), once you have 2-dimensional composition you will need n-dimensional composition, and then hopefully regular (n+m)-dimensional composition for A will suffice to define regular n-dimensional composition of regular n-dimensional Box's.
>
> Below I'll put an explanation of my idea of regular n-dimensional composition (returning an (n-1)-dimensional cube), since it feels unfair to say "I know how to do this" and hide "how to do this".
> Unfortunately, it is quite complex; read at your own peril.
>
> I don't yet know how to intelligibly describe n-dimensional composition for Glue and Box.
> For now I'll just say that they should be essentially the same as in the 1-dimensional case, but with extra faces in the equiv and final hcomp steps corresponding to faces in the result.
>
> ===============
>
> In CCHM, the basic Kan operation is (comp^i A [ phi |-> a ] a0 : A(i1) [ phi |-> a(i1) ]) for i |- A with phi, i |- a : A and a0 : A(i0) [ phi |-> a(i0) ].
> Regularity for this operation means that if A and a are independent of i, then comp^i A [ phi |-> a ] a0 = a0.
> We have regular composition for Glue types, but we don't have comp^i (Glue [ phi |-> (A, equivRefl) ] A) = comp^i A.
> Simplifying things a little, we can take hcom^i U [ phi |-> T ] A = Box^i [ phi |-> T(i := ~ i) ] A to be a new type former, and give that a regular composition operation.
> Here the thing blocking us from getting comp^i (Box^j [ phi |-> A ] A) = comp^i A is that, given i, j |- T with phi, i, j |- t : T and t0 : T(i0)(j0)[ phi |-> t(i0)(j0) ],
> we need a Path T(i1)(j1) (comp^i T(j1) [ phi |-> t(j1) ] (comp^j T(i0) [ phi |-> t(i0) ] t0)) (comp^j T(i1) [ phi |-> t(i1) ] (comp^i T(j0) [ phi |-> t(j0) ] t0)) which is refl if T is degenerate in i OR j.
> This path plays the role that pres does in composition for Glue.
> (I will write (i o j) for composition over j then over i, and (i = j) for composition over the diagonal (i = j). Then we want a path from (i o j) to (j o i) which is degenerate if T is degenerate in i OR j.
>
> We can't construct such a doubly regular path, but we can postulate it as a new operation our types have to have, as a sort of regular composition over two dimensions simultaneously. Write (i ?'[a] j) for this, where a gives the location in the path.
> However, my intuition tells me that while this two-dimensional regular composition may be preserved by all the usual type formers, optimistically including Glue and Box, because the two-dimensional composition for Box will have to satisfy an additional law comp2^i^j (Box [ phi |-> A ] A) = comp2^i^j A, we will end up needing some sort of three-dimensional analogue.
> Once we need dimensions 1 and 2, we will almost certainly need dimension n.
>
> But what should the type of three dimensional regular composition be? There are six ways to compose along the edges of a cube, forming a hexagon that we wan't to fill, but hexagons don't fit nicely into cubical type theory.
> Here, we remember that there is one more way to compose across a square: along the diagonal (comp^k T(i,j:=k) [ phi |-> t(i,j:=k) ] t0), which agrees with composing either right then up or up then right when T is degenerate in i or j (with regularity).
> Allowing diagonals, for each square we can give a path from the diagonal to going up then right, with swapping i and j giving a path to going right then up. Then if both of these are degenerate when T is degenerate in i or j, their composition is also, so we recover a path between (i o j) and (j o i). And this formulation can be extended to higher dimensions straightforwardly.
>
> For each n-cube i_1, ..., i_n |- A, we have an n-dimensional regular composition operation which is a (n-1)-dimensional cube. Consider notation (i_1 ?[j_1] i_2 ?[j_2] ... ?[j_n-1] i_n) This is supposed to represent composition in an n-cube indexed by the i's, where our position in the resulting (n-1)-cube is given by the j's. We have to describe the faces of this cube, which we describe by saying that ?[0] reduces to = and ?[1] reduces to o.
> Thus for 2-dimensional A, we have a line (i = j) --- (i ?[a] j) --- (i o j), and for three dimensional A, we have a square with four faces (i = j ?[a_2] k), (i o j ?[a_2] k), (i ?[a1] j = k) (i ?[a1] j o k), relating the four corners given by coercing over i then j then k, coercing over i then j and k simultaneously, coercing over i and j simultaneously then coercing over k, and coercing over i, j, and k simultaneously.
> The point is that this gives a well-defined notion of cube.
> We also have to define the regularity condition: what happens when A, a are degenerate in i_k? We require that (i_1 ... i_k-1 ?[j_k-1] i_k ?[j_k] i_k+1 ... i_n) is equal to (i_1 ... i_k-1 ?[j_k-1 v j_k] i_k+1 ... i_n), treating j_0 = j_n = 1.
> Extending this to = and o, if A, a are degenerate in i, then (i = j) and (i o j) reduce to (j).
> On a two-dimensional cube, this says that (i ?[a] j) reduces to (j) when A, a are degenerate in i, and to (i) when A, a are degenerate in j.
> (That this is all coherent is obvious to me, but I have no idea how to explain it well)
>
> This all gives a notion of n-dimensional regular composition, which takes an n-cube type A and partial term phi, i1, ..., in |- a and a base point a0 : A(i_k := 0)[ phi |-> a(i_k := 0) ] and returns an (n-1)-cube in A(i_k := 1) [ phi |-> everywhere a(i_k := 1) ].
> There are three classes of equations that this has to satisfy, two for the face maps j_k = 0 and j_k = 1 in the output, and one for when A, a are degenerate in i_k.
> In the one-dimensional case, this is the same as the specification of the usual regular comp.
> Considering j_k to be formally extended with j_0 = j_n = 1, we get a "zero-dimensional" composition operation, which should be taken to be the identity. (I have no idea what it would mean to let j_0 and j_n vary)
> I am reasonably confident that this operation is closed under usual type formers (Pi, Sg, Path, ...) by essentially the same argument as for 1-dimensional comp.
> I think I have worked out how to give a regular n-dimensional composition operation for Glue, by essentially the same argument as in CCHM, but with additional faces for j_k = 1 in the equiv and final hcomp steps.
>
> In this setting, we want Box to also be m-dimensional: j_1 ... j_n-1 |- Box^i1...^im _{j_1}..._{j_n-1} [ phi |-> T ] A for phi, i1, ..., im |- T, with phi |- A = T(i_k := 1).
> I think I have worked out how to give a regular n-dimensional composition operation for m-dimensional Box, using essentially the same argument as for Glue, but replacing pres with the composition of two paths given by (m+n)-dimensional regular composition.
> To use Box as the regular n-dimensional composition operation for the universe, we need that (Box, comp Box) respects the equations for when j_k = 0, j_k = 1, or T is independent of j.
> My hope is that, as in the (1, 1) dimensional case, using (m+n)-dimensional regular composition for pres will make this work.
>
> I have sketched on paper that composition for Glue and Box are regular, but that is already pushing the limits of my confidence in paper calculations.
> Checking that comp Box respects the equations that it needs to is another layer more complex, and I haven't managed to do so on paper.
> However, by analogy with the (1, 1) dimensional case, I am hopeful.
>
> On Mon, Sep 16, 2019 at 3:01 PM Licata, Dan <dlicata@wesleyan.edu> wrote:
>>
>> Wow! I read that pretty closely and couldn’t find a problem. That is surprising to me. Will look more later.
>>
>> What I was saying about fill for the aligning algorithm is also wrong — I wasn’t thinking that the type of the filling was also degenerate, but of course it is here. So that might work too.
>>
>> However, even if there can be a universe of regular types that is closed under glue types, there’s still a problem with using those glue types to show that that universe is itself regularly fibrant, I think? If you define comp U [phi -> i.T] B to be Glue [phi -> T(1),...] B then no matter how nice the equivalence is (eg the identity) when i doesn’t occur in T, the type will not equal B — that would be an extra equation about the Glue type constructor itself. Does that seem right?
>>
>> -Dan
>>
>> On Sep 16, 2019, at 1:09 PM, Jasper Hugunin <jasperh@cs.washington.edu> wrote:
>>
>> Hi Dan,
>>
>> Of course. I'm thinking primarily of composition for Glue given in the CCHM paper you linked, reproduced below.
>> As you know, the single potential issue is that we need pres of a degenerate filling problem and function to be reflexivity. I claim that this holds by regularity of composition in T and A, partly as a consequence of the fact that regularity of composition implies regularity of filling (that fill of a degenerate system is refl), which certainly holds for fill defined by connections (and I believe also holds for fill as defined in ABCFHL).
>>
>> (a)
>> Given i |- B = Glue [ phi |-> (T, f) ] A, with psi, i |- b : B and b0 : B(i0)[ psi |-> b(i0) ], we want to compute b1 = comp^i B [ psi |-> b ] b0 : B(i1)[ psi |-> b(i1) ].
>> We set a := unglue b and a0 := unglue b0.
>> Set delta := forall i. phi.
>> Then we take:
>> a1' := comp^i A [ psi |-> a ] a0
>> delta |- t1' := comp^i T [ psi |-> b ] b0
>> delta |- omega := pres^i f [ psi |-> b ] b0
>> phi(i1) |- (t, alpha) := equiv f(i1) [ delta |-> (t1', omega), psi |-> (b(i1), refl a1') ] a1'
>> a1 := hcomp^j A(i1) [ phi(i1) |-> alpha j, psi |-> a(i1) ] a1' (note that in the regular setting the psi face is redundant)
>> b1 := glue [ phi(i1) |-> t1 ] a1
>>
>> With given i |- f : T -> A, with psi, i |- b : T and b0 : T(i0)[ psi |-> b(i0) ], we define
>> pres^i f [ psi |-> b ] b0 = <j> comp^i A [ psi |-> f b, j = 1 |-> f (fill^i T [ psi |-> b ] b0) ] (f(i0) b0).
>>
>> (b)
>> Now consider the regular case, where phi, T, f, and A are independent of i. We want that b1 = b0.
>> We have that a is independent of i, and delta = phi.
>>
>> First consider delta (= phi) |- pres^i f [ psi |-> b ] b0. (This is the explanation of your first dash)
>> Note that if comp^i A is regular, then fill^i A [ psi |-> b ] b0 = b
>> This is <j> comp^i A [ psi |-> f b, j = 1 |-> f (fill^i T [ psi |-> t ] t0) ] (f t0) = <j> comp^i A [ psi |-> f b, j = 1 |-> f t0 ] (f t0) = <j> f t0.
>> Thus pres of a degenerate filling problem and function is reflexivity.
>>
>> Going back to composition of Glue,
>> a1' = a0
>> phi |- t1' = b0
>> phi |- omega = refl (f b0)
>> phi |- (t1, alpha) = (t1', omega) (since delta = phi, so we end up in the delta face of equiv)
>> a1 = a1' (the only dependence on j is via (alpha j), but alpha = omega = refl, so this filling problem is degenerate)
>> b1 = glue [ phi |-> t1 ] a1 = glue [ phi |-> b0 ] a0 = glue [ phi |-> b0 ] (unglue b0) = b0 (by eta, see Figure 4 in CCHM)
>>
>> Thus this algorithm for composition of Glue is regular.
>> Other algorithms, such as the one in ABCFHL, may not be, but I am prone to believe that there exist regular algorithms in other settings including Orton-Pitts and Cartesian cubes.
>>
>> Best regards,
>> - Jasper Hugunin
>>
>> On Mon, Sep 16, 2019 at 12:18 PM Licata, Dan <dlicata@wesleyan.edu> wrote:
>>>
>>> Hi Jasper,
>>>
>>> It would help me follow the discussion if you could say a little more about (a) which version of composition for Glue exactly you mean (because there is at least the one in the CCHM paper and the “aligned” one from Orton-Pitts, which are intensionally different, as well as other possible variations), and (b) include some of your reasoning for why you think things are regular, to make it easier for me and others to reconstruct.
>>>
>>> My current understanding is that
>>>
>>> - For CCHM proper https://arxiv.org/pdf/1611.02108.pdf the potential issue is with the ‘pres’ path omega, which via the equiv operation ends up in alpha, so the system in a1 may not be degenerate even if the input is.  Do you think this does work out to be degenerate?
>>>
>>> - For the current version of ABCFHL https://github.com/dlicata335/cart-cube/blob/master/cart-cube.pdf which uses aligning “all the way at the outside”, an issue is with the adjust_com operation on page 20, which is later used for aligning (in that case beta is (forall i phi)).  The potential issue is that adjust_com uses a *filler*, not just a composition from 0 to 1, so even if t doesn’t depend on z, the filling does, and the outer com won’t cancel.  In CCHM, filling is defined using connections, so it’s a little different, but I think there still has to be a dependence on z for it to even type check — it should come up because of the connection term that is substituted into the type of the composition problem.  So I’d guess there is still a problem in the aligned algorithm for CCHM.
>>>
>>> However, it would be great if this is wrong and something does work!
>>>
>>> -Dan
>>>
>>> > On Sep 15, 2019, at 10:18 PM, Jasper Hugunin <jasperh@cs.washington.edu> wrote:
>>> >
>>> > This doesn't seem right; as far as I can tell, composition for Glue types in CCHM preserves regularity and reduces to composition in A on phi.
>>> >
>>> > - Jasper Hugunin
>>> >
>>> > On Sun, Sep 15, 2019 at 3:28 AM Anders Mortberg <anders.mortberg@math.su.se> wrote:
>>> > Hi Jasper,
>>> >
>>> > Indeed, the problem is to construct an algorithm for comp (or even
>>> > coe/transp) for Glue that reduces to the one of A when phi is true
>>> > while still preserving regularity. It was pointed out independently by
>>> > Sattler and Orton around 2016 that one can factor out this step in our
>>> > algorithm in a separate lemma that is now called "alignment". This is
>>> > Thm 6.13 in Orton-Pitts and discussed in a paragraph in the end of
>>> > section 2.11 of ABCFHL. Unless I'm misremembering this is exactly
>>> > where regularity for comp for Glue types break down. In this step we
>>> > do an additional comp/hcomp that inserts an additional forall i. phi
>>> > face making the comp/coe irregular.
>>> >
>>> > One could imagine there being a way to modify the algorithm to avoid
>>> > this, maybe by inlining the alignment step... But despite considerable
>>> > efforts no one has been able to figure this out and I think Swan's
>>> > recent paper (https://arxiv.org/abs/1808.00920v3) shows that this is
>>> > not even possible!
>>> >
>>> > Another approach would be to have weak Glue types that don't strictly
>>> > reduce to A when phi is true, but this causes problems for the
>>> > composition in the universe and would be weird for cubical type
>>> > theory...
>>> >
>>> > In light of Swan's negative results I think we need a completely new
>>> > approach if we ever hope to solve this problem. Luckily for you Andrew
>>> > Swan is starting as a postdoc over in Baker Hall in October, so he can
>>> > explain his counterexamples to you in person.
>>> >
>>> > Best,
>>> > Anders
>>> >
>>> > On Sun, Sep 15, 2019 at 7:57 AM Jasper Hugunin
>>> > <jasperh@cs.washington.edu> wrote:
>>> > >
>>> > > Offline, Carlo Angiuli showed me that the difficulty was in part 1, because of a subtlety I had been forgetting.
>>> > >
>>> > > Since types are *Kan* cubical sets, we need that the Kan operations agree as well as the sets.
>>> > > So part 1 could be thought of as (Glue [ phi |-> equivRefl A ] A, compGlue) = (A, compA), and getting that the Kan operations to agree was/is difficult.
>>> > > (Now that I know what the answer is, it is clear that this was already explained in the initial discussion.)
>>> > >
>>> > > Humbly,
>>> > > - Jasper Hugunin
>>> > >
>>> > > On Fri, Sep 13, 2019 at 2:10 AM Jasper Hugunin <jasperh@cs.washington.edu> wrote:
>>> > >>
>>> > >> Hello all,
>>> > >>
>>> > >> I've been trying to understand better why composition for the universe does not satisfy regularity.
>>> > >> Since comp^i [ phi |-> E ] A is defined as (roughly) Glue [ phi |-> equiv^i E ] A, I would expect regularity to follow from two parts:
>>> > >> 1. That Glue [ phi |-> equivRefl A ] A reduces to A (a sort of regularity condition for the Glue type constructor itself)
>>> > >> 2. That equiv^i (refl A) reduces to equivRefl A
>>> > >> I'm curious as to which (or both) of these parts was the issue, or if regularity for the universe was supposed to follow from a different argument.
>>> > >>
>>> > >> Context:
>>> > >> I've been studying and using CCHM cubical type theory recently, and often finding myself wishing that J computed strictly.
>>> > >> If I understand correctly, early implementations of ctt did have strict J for Path types, and this was justified by a "regularity" condition on the composition operation, but as discussed in this thread on the HoTT mailing list, the definition of composition for the universe was found to not satisfy regularity.
>>> > >> I don't remember seeing the regularity condition defined anywhere, but my understanding is that it requires that composition in a degenerate line of types, with the system of constraints giving the sides of the box also degenerate in that direction, reduces to just the bottom of the box. This seems to be closed under the usual type formers, plus Glue, but not the universe with computation defined as in the CCHM paper (for trivial reasons and non-trivial reasons; it gets stuck at the start with Glue [ phi |-> equiv^i refl ] A not reducing to anything).
>>> > >>
>>> > >> Best regards,
>>> > >> - Jasper Hugunin
>>> > >
>>> > > --
>>> > > 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.
>>> > > To view this discussion on the web visit https://groups.google.com/d/msgid/HomotopyTypeTheory/CAGTS-a9oS0CQDGKgj7ghCh8%2BZwAcAefiTg4JJVHemV3HUPcPEg%40mail.gmail.com.
>>> >
>>> > --
>>> > 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.
>>> > To view this discussion on the web visit https://groups.google.com/d/msgid/HomotopyTypeTheory/CAGTS-a8SZx8PiaD-9rq5QWffU75Wz8myrXD1g5P3DCjSO%3DfvOQ%40mail.gmail.com.
>>>
> --
> 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.
> To view this discussion on the web visit https://groups.google.com/d/msgid/HomotopyTypeTheory/CAGTS-a8E03C3BMEwi-T4qjet4EbCgnePhR3Ffa1MepxNmtZoUA%40mail.gmail.com.

-- 
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.
To view this discussion on the web visit https://groups.google.com/d/msgid/HomotopyTypeTheory/CAMWCpp%3DEMvH%2BXtRn7AfyjRDjmiwxfML2JQqKyPjXAhM%2BM2vcjw%40mail.gmail.com.

  reply index

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-13  6:10 Jasper Hugunin
2019-09-15  5:57 ` [HoTT] " Jasper Hugunin
     [not found]   ` <CAMWCppk4PWzfZ1HKNLMdAZ=RBC-ARxtJXR8okvwO3raea5gC8Q@mail.gmail.com>
     [not found]     ` <CAGTS-a-SvWWF+br6sKxGj6ufVY=4m830FH9BDg06QJR1vbNFsw@mail.gmail.com>
2019-09-16  2:18       ` Fwd: " Jasper Hugunin
2019-09-16 16:18         ` [HoTT] " Licata, Dan
2019-09-16 17:09           ` Jasper Hugunin
2019-09-16 19:01             ` Licata, Dan
2019-09-16 20:17               ` Jasper Hugunin
2019-09-18 12:16                 ` Anders Mortberg [this message]
2019-09-18 12:52                   ` Thierry Coquand
2019-09-15 11:55 ` [HoTT] " Andrew Swan
2019-09-15 22:38   ` Jasper Hugunin
2019-09-16  1:04   ` Jon Sterling
     [not found]     ` <A605E6EE-0101-4390-B50D-A6AEB36FDCC2@icloud.com>
2019-09-16  1:44       ` Jon Sterling

Reply instructions:

You may reply publically 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='CAMWCpp=EMvH+XtRn7AfyjRDjmiwxfML2JQqKyPjXAhM+M2vcjw@mail.gmail.com' \
    --to=andersmortberg@gmail.com \
    --cc=HomotopyTypeTheory@googlegroups.com \
    --cc=dlicata@wesleyan.edu \
    --cc=jasperh@cs.washington.edu \
    /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

Discussion of Homotopy Type Theory and Univalent Foundations

Archives are clonable: git clone --mirror http://inbox.vuxu.org/hott

Newsgroup available over NNTP:
	nntp://inbox.vuxu.org/vuxu.archive.hott


AGPL code for this site: git clone https://public-inbox.org/ public-inbox