Hello everybody, Is it worked out somewhere that the two definitions of Sn as a suspension on one hand and a HIT with a point and an n-loop on the other hand are equivalent? This is also an exercise in the book. I know Favonia has some Agda code on spheres but I couldn't find this result in there. Thanks, Kristina -- 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/6c150b9c-fba6-47c1-2a6d-975b90f64638%40gmail.com.

Hi Kristina, We have proofs for S^0, S^1, S^2 and S^3 in Cubical Agda: https://github.com/agda/cubical/blob/master/Cubical/HITs/Susp/Base.agda However, I don't think we can even write down the general version of S^n as a type with a point and an n-loop with the schema implemented in Cubical Agda. As far as I know no other schema for HITs support this kind of types either. -- Anders On Tue, Sep 17, 2019 at 9:56 PM Kristina Sojakova <sojakova.kristina@gmail.com> wrote: > > Hello everybody, > > Is it worked out somewhere that the two definitions of Sn as a > suspension on one hand and a HIT with a point and an n-loop on the other > hand are equivalent? This is also an exercise in the book. I know > Favonia has some Agda code on spheres but I couldn't find this result in > there. > > Thanks, > > Kristina > > > -- > 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/6c150b9c-fba6-47c1-2a6d-975b90f64638%40gmail.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/CAMWCppm0sB2ZDMPM-jUYVpn8qxFJEfep6rsZs%3D8k%3Dhh6yGQF1w%40mail.gmail.com.

Hi, We give a definition of S^n with one point and one n-loop by introduction/elimination/reduction rules in our paper with Dan Licata (https://guillaumebrunerie.github.io/pdf/lb13cpp.pdf), which can be implemented in Agda (so Kristina’s question can be formulated and can presumably be formalized in Agda) but I don’t think we actually proved it. Best, Guillaume Den ons 18 sep. 2019 kl 10:32 skrev Anders Mortberg <andersmortberg@gmail.com>: > > Hi Kristina, > > We have proofs for S^0, S^1, S^2 and S^3 in Cubical Agda: > https://github.com/agda/cubical/blob/master/Cubical/HITs/Susp/Base.agda > > However, I don't think we can even write down the general version of > S^n as a type with a point and an n-loop with the schema implemented > in Cubical Agda. As far as I know no other schema for HITs support > this kind of types either. > > -- > Anders > > On Tue, Sep 17, 2019 at 9:56 PM Kristina Sojakova > <sojakova.kristina@gmail.com> wrote: > > > > Hello everybody, > > > > Is it worked out somewhere that the two definitions of Sn as a > > suspension on one hand and a HIT with a point and an n-loop on the other > > hand are equivalent? This is also an exercise in the book. I know > > Favonia has some Agda code on spheres but I couldn't find this result in > > there. > > > > Thanks, > > > > Kristina > > > > > > -- > > 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/6c150b9c-fba6-47c1-2a6d-975b90f64638%40gmail.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/CAMWCppm0sB2ZDMPM-jUYVpn8qxFJEfep6rsZs%3D8k%3Dhh6yGQF1w%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/CAFJ3QW%2BznvLhFgBODptrjnKcY8QaEH8BxD3adrgRUNvo5fU%2BEQ%40mail.gmail.com.

[-- Attachment #1.1: Type: text/plain, Size: 3433 bytes --] Let me elaborate a bit on my answer. One might naively try to copy Dan and Guillaume's definition and write the following in Cubical Agda: Omega : (A : Type₀) → A → Type₀ Omega A a = (a ≡ a) itOmega : ℕ → (A : Type₀) → A → Type₀ itOmega zero A a = Omega A a itOmega (suc n) A a = itOmega n (Omega A a) refl data Sn (n : ℕ) : Type₀ where base : Sn n surf : itOmega n (Sn n) base However Agda will complain as surf is not constructing an element of Sn. This might seem a bit funny as Cubical Agda is perfectly happy with data S³ : Type₀ where base : S³ surf : Path (Path (base ≡ base) refl refl) refl refl But what is happening under the hood is that surf is a constructor taking i, j, and k in the interval and returning an element of S^3 with boundary "base" whenever i, j and k are 0 or 1. In cubicaltt we can write this HIT in the following way: data S3 = base | surf <i j k> [ (i=0) -> base , (i=1) -> base , (j=0) -> base , (j=1) -> base , (k=0) -> base , (k=1) -> base ] The problem is then clearer: in order to write the surf constructor of Sn we would have to quantify over n interval variables and specify the boundary of the n-cell. This is what that is not supported by any of the cubical schemas for HITs. -- Anders On Wednesday, September 18, 2019 at 11:00:22 AM UTC+2, Guillaume Brunerie wrote: > > Hi, > > We give a definition of S^n with one point and one n-loop by > introduction/elimination/reduction rules in our paper with Dan Licata > (https://guillaumebrunerie.github.io/pdf/lb13cpp.pdf), which can be > implemented in Agda (so Kristina’s question can be formulated and can > presumably be formalized in Agda) but I don’t think we actually proved > it. > > Best, > Guillaume > > Den ons 18 sep. 2019 kl 10:32 skrev Anders Mortberg <andersm...@gmail.com > <javascript:>>: > > > > Hi Kristina, > > > > We have proofs for S^0, S^1, S^2 and S^3 in Cubical Agda: > > https://github.com/agda/cubical/blob/master/Cubical/HITs/Susp/Base.agda > > > > However, I don't think we can even write down the general version of > > S^n as a type with a point and an n-loop with the schema implemented > > in Cubical Agda. As far as I know no other schema for HITs support > > this kind of types either. > > > > -- > > Anders > > > > On Tue, Sep 17, 2019 at 9:56 PM Kristina Sojakova > > <sojakova...@gmail.com <javascript:>> wrote: > > > > > > Hello everybody, > > > > > > Is it worked out somewhere that the two definitions of Sn as a > > > suspension on one hand and a HIT with a point and an n-loop on the > other > > > hand are equivalent? This is also an exercise in the book. I know > > > Favonia has some Agda code on spheres but I couldn't find this result > in > > > there. > > > > > > Thanks, > > > > > > Kristina > > > > > > > -- 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/db712ad2-396f-4328-bb73-898dcb956834%40googlegroups.com. [-- Attachment #1.2: Type: text/html, Size: 19638 bytes --] <div dir="ltr"><div>Let me elaborate a bit on my answer. One might naively try to copy Dan and Guillaume's definition and write the following in Cubical Agda:<br></div><div><br></div><div><br></div><div style="background-color: rgb(250, 250, 250); border-color: rgb(187, 187, 187); border-style: solid; border-width: 1px; overflow-wrap: break-word;" class="prettyprint"><code class="prettyprint"><div class="subprettyprint"><span style="color: #606;" class="styled-by-prettify">Omega</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">:</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">(</span><span style="color: #000;" class="styled-by-prettify">A </span><span style="color: #660;" class="styled-by-prettify">:</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #606;" class="styled-by-prettify">Type</span><span style="color: #660;" class="styled-by-prettify">₀)</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">→</span><span style="color: #000;" class="styled-by-prettify"> A </span><span style="color: #660;" class="styled-by-prettify">→</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #606;" class="styled-by-prettify">Type</span><span style="color: #660;" class="styled-by-prettify">₀</span><span style="color: #000;" class="styled-by-prettify"><br></span><span style="color: #606;" class="styled-by-prettify">Omega</span><span style="color: #000;" class="styled-by-prettify"> A a </span><span style="color: #660;" class="styled-by-prettify">=</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">(</span><span style="color: #000;" class="styled-by-prettify">a </span><span style="color: #660;" class="styled-by-prettify">≡</span><span style="color: #000;" class="styled-by-prettify"> a</span><span style="color: #660;" class="styled-by-prettify">)</span><span style="color: #000;" class="styled-by-prettify"><br><br>itOmega </span><span style="color: #660;" class="styled-by-prettify">:</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">ℕ</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">→</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">(</span><span style="color: #000;" class="styled-by-prettify">A </span><span style="color: #660;" class="styled-by-prettify">:</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #606;" class="styled-by-prettify">Type</span><span style="color: #660;" class="styled-by-prettify">₀)</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">→</span><span style="color: #000;" class="styled-by-prettify"> A </span><span style="color: #660;" class="styled-by-prettify">→</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #606;" class="styled-by-prettify">Type</span><span style="color: #660;" class="styled-by-prettify">₀</span><span style="color: #000;" class="styled-by-prettify"><br>itOmega zero A a </span><span style="color: #660;" class="styled-by-prettify">=</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #606;" class="styled-by-prettify">Omega</span><span style="color: #000;" class="styled-by-prettify"> A a<br>itOmega </span><span style="color: #660;" class="styled-by-prettify">(</span><span style="color: #000;" class="styled-by-prettify">suc n</span><span style="color: #660;" class="styled-by-prettify">)</span><span style="color: #000;" class="styled-by-prettify"> A a </span><span style="color: #660;" class="styled-by-prettify">=</span><span style="color: #000;" class="styled-by-prettify"> itOmega n </span><span style="color: #660;" class="styled-by-prettify">(</span><span style="color: #606;" class="styled-by-prettify">Omega</span><span style="color: #000;" class="styled-by-prettify"> A a</span><span style="color: #660;" class="styled-by-prettify">)</span><span style="color: #000;" class="styled-by-prettify"> refl<br><br>data </span><span style="color: #606;" class="styled-by-prettify">Sn</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">(</span><span style="color: #000;" class="styled-by-prettify">n </span><span style="color: #660;" class="styled-by-prettify">:</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">ℕ)</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">:</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #606;" class="styled-by-prettify">Type</span><span style="color: #660;" class="styled-by-prettify">₀</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #008;" class="styled-by-prettify">where</span><span style="color: #000;" class="styled-by-prettify"><br> </span><span style="color: #008;" class="styled-by-prettify">base</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">:</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #606;" class="styled-by-prettify">Sn</span><span style="color: #000;" class="styled-by-prettify"> n<br> surf </span><span style="color: #660;" class="styled-by-prettify">:</span><span style="color: #000;" class="styled-by-prettify"> itOmega n </span><span style="color: #660;" class="styled-by-prettify">(</span><span style="color: #606;" class="styled-by-prettify">Sn</span><span style="color: #000;" class="styled-by-prettify"> n</span><span style="color: #660;" class="styled-by-prettify">)</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #008;" class="styled-by-prettify">base</span></div></code></div><br><div><br></div><div>However Agda will complain as surf is not constructing an element of Sn. This might seem a bit funny as Cubical Agda is perfectly happy with</div><div><br></div><div><br></div><div style="background-color: rgb(250, 250, 250); border-color: rgb(187, 187, 187); border-style: solid; border-width: 1px; overflow-wrap: break-word;" class="prettyprint"><code class="prettyprint"><div class="subprettyprint"><span style="color: #000;" class="styled-by-prettify">data S</span><span style="color: #660;" class="styled-by-prettify">³</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">:</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #606;" class="styled-by-prettify">Type</span><span style="color: #660;" class="styled-by-prettify">₀</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #008;" class="styled-by-prettify">where</span><span style="color: #000;" class="styled-by-prettify"> <br> </span><span style="color: #008;" class="styled-by-prettify">base</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">:</span><span style="color: #000;" class="styled-by-prettify"> S</span><span style="color: #660;" class="styled-by-prettify">³</span><span style="color: #000;" class="styled-by-prettify"> <br> surf </span><span style="color: #660;" class="styled-by-prettify">:</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #606;" class="styled-by-prettify">Path</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">(</span><span style="color: #606;" class="styled-by-prettify">Path</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">(</span><span style="color: #008;" class="styled-by-prettify">base</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">≡</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #008;" class="styled-by-prettify">base</span><span style="color: #660;" class="styled-by-prettify">)</span><span style="color: #000;" class="styled-by-prettify"> refl refl</span><span style="color: #660;" class="styled-by-prettify">)</span><span style="color: #000;" class="styled-by-prettify"> refl refl <br></span></div></code></div><div><br></div><div><br></div><div>But what is happening under the hood is that surf is a constructor taking i, j, and k in the interval and returning an element of S^3 with boundary "base" whenever i, j and k are 0 or 1. In cubicaltt we can write this HIT in the following way:</div><div><br></div><div><br></div><div><div style="background-color: rgb(250, 250, 250); border-color: rgb(187, 187, 187); border-style: solid; border-width: 1px; overflow-wrap: break-word;" class="prettyprint"><code class="prettyprint"><div class="subprettyprint"><span style="color: #000;" class="styled-by-prettify">data S3 </span><span style="color: #660;" class="styled-by-prettify">=</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #008;" class="styled-by-prettify">base</span><span style="color: #000;" class="styled-by-prettify"><br> </span><span style="color: #660;" class="styled-by-prettify">|</span><span style="color: #000;" class="styled-by-prettify"> surf </span><span style="color: #660;" class="styled-by-prettify"><</span><span style="color: #000;" class="styled-by-prettify">i j k</span><span style="color: #660;" class="styled-by-prettify">></span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">[</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">(</span><span style="color: #000;" class="styled-by-prettify">i</span><span style="color: #660;" class="styled-by-prettify">=</span><span style="color: #066;" class="styled-by-prettify">0</span><span style="color: #660;" class="styled-by-prettify">)</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">-></span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #008;" class="styled-by-prettify">base</span><span style="color: #000;" class="styled-by-prettify"><br> </span><span style="color: #660;" class="styled-by-prettify">,</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">(</span><span style="color: #000;" class="styled-by-prettify">i</span><span style="color: #660;" class="styled-by-prettify">=</span><span style="color: #066;" class="styled-by-prettify">1</span><span style="color: #660;" class="styled-by-prettify">)</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">-></span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #008;" class="styled-by-prettify">base</span><span style="color: #000;" class="styled-by-prettify"><br> </span><span style="color: #660;" class="styled-by-prettify">,</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">(</span><span style="color: #000;" class="styled-by-prettify">j</span><span style="color: #660;" class="styled-by-prettify">=</span><span style="color: #066;" class="styled-by-prettify">0</span><span style="color: #660;" class="styled-by-prettify">)</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">-></span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #008;" class="styled-by-prettify">base</span><span style="color: #000;" class="styled-by-prettify"><br> </span><span style="color: #660;" class="styled-by-prettify">,</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">(</span><span style="color: #000;" class="styled-by-prettify">j</span><span style="color: #660;" class="styled-by-prettify">=</span><span style="color: #066;" class="styled-by-prettify">1</span><span style="color: #660;" class="styled-by-prettify">)</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">-></span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #008;" class="styled-by-prettify">base</span><span style="color: #000;" class="styled-by-prettify"><br> </span><span style="color: #660;" class="styled-by-prettify">,</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">(</span><span style="color: #000;" class="styled-by-prettify">k</span><span style="color: #660;" class="styled-by-prettify">=</span><span style="color: #066;" class="styled-by-prettify">0</span><span style="color: #660;" class="styled-by-prettify">)</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">-></span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #008;" class="styled-by-prettify">base</span><span style="color: #000;" class="styled-by-prettify"><br> </span><span style="color: #660;" class="styled-by-prettify">,</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">(</span><span style="color: #000;" class="styled-by-prettify">k</span><span style="color: #660;" class="styled-by-prettify">=</span><span style="color: #066;" class="styled-by-prettify">1</span><span style="color: #660;" class="styled-by-prettify">)</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">-></span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #008;" class="styled-by-prettify">base</span><span style="color: #000;" class="styled-by-prettify"> </span><span style="color: #660;" class="styled-by-prettify">]</span><span style="color: #000;" class="styled-by-prettify"><br></span></div></code></div><br><table class="highlight tab-size js-file-line-container" data-tab-size="8"><tbody><tr><td id="LC50" class="blob-code blob-code-inner js-file-line"> <br></td> </tr> <tr> </tr></tbody></table></div><div>The problem is then clearer: in order to write the surf constructor of Sn we would have to quantify over n interval variables and specify the boundary of the n-cell. This is what that is not supported by any of the cubical schemas for HITs.<br></div><div><br></div><div>--</div><div>Anders<br></div><div><br></div>On Wednesday, September 18, 2019 at 11:00:22 AM UTC+2, Guillaume Brunerie wrote:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">Hi, <br> <br>We give a definition of S^n with one point and one n-loop by <br>introduction/elimination/<wbr>reduction rules in our paper with Dan Licata <br>(<a href="https://guillaumebrunerie.github.io/pdf/lb13cpp.pdf" target="_blank" rel="nofollow" onmousedown="this.href='https://www.google.com/url?q\x3dhttps%3A%2F%2Fguillaumebrunerie.github.io%2Fpdf%2Flb13cpp.pdf\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHVCIouiKMb5ofjV8iaDm4Ekb0zRw';return true;" onclick="this.href='https://www.google.com/url?q\x3dhttps%3A%2F%2Fguillaumebrunerie.github.io%2Fpdf%2Flb13cpp.pdf\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHVCIouiKMb5ofjV8iaDm4Ekb0zRw';return true;">https://guillaumebrunerie.<wbr>github.io/pdf/lb13cpp.pdf</a>), which can be <br>implemented in Agda (so Kristina’s question can be formulated and can <br>presumably be formalized in Agda) but I don’t think we actually proved <br>it. <br> <br>Best, <br>Guillaume <br> <br>Den ons 18 sep. 2019 kl 10:32 skrev Anders Mortberg <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="kXEXDOXSAwAJ" rel="nofollow" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">andersm...@gmail.com</a>>: <br>> <br>> Hi Kristina, <br>> <br>> We have proofs for S^0, S^1, S^2 and S^3 in Cubical Agda: <br>> <a href="https://github.com/agda/cubical/blob/master/Cubical/HITs/Susp/Base.agda" target="_blank" rel="nofollow" onmousedown="this.href='https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fagda%2Fcubical%2Fblob%2Fmaster%2FCubical%2FHITs%2FSusp%2FBase.agda\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGpFGHco6XST3xx33l9x6gyHg4NBw';return true;" onclick="this.href='https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fagda%2Fcubical%2Fblob%2Fmaster%2FCubical%2FHITs%2FSusp%2FBase.agda\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGpFGHco6XST3xx33l9x6gyHg4NBw';return true;">https://github.com/agda/<wbr>cubical/blob/master/Cubical/<wbr>HITs/Susp/Base.agda</a> <br>> <br>> However, I don't think we can even write down the general version of <br>> S^n as a type with a point and an n-loop with the schema implemented <br>> in Cubical Agda. As far as I know no other schema for HITs support <br>> this kind of types either. <br>> <br>> -- <br>> Anders <br>> <br>> On Tue, Sep 17, 2019 at 9:56 PM Kristina Sojakova <br>> <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="kXEXDOXSAwAJ" rel="nofollow" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">sojakova...@gmail.com</a>> wrote: <br>> > <br>> > Hello everybody, <br>> > <br>> > Is it worked out somewhere that the two definitions of Sn as a <br>> > suspension on one hand and a HIT with a point and an n-loop on the other <br>> > hand are equivalent? This is also an exercise in the book. I know <br>> > Favonia has some Agda code on spheres but I couldn't find this result in <br>> > there. <br>> > <br>> > Thanks, <br>> > <br>> > Kristina <br>> > <br>> > <br></blockquote></div> <p></p> -- <br /> You received this message because you are subscribed to the Google Groups "Homotopy Type Theory" group.<br /> To unsubscribe from this group and stop receiving emails from it, send an email to <a href="mailto:HomotopyTypeTheory+unsubscribe@googlegroups.com">HomotopyTypeTheory+unsubscribe@googlegroups.com</a>.<br /> To view this discussion on the web visit <a href="https://groups.google.com/d/msgid/HomotopyTypeTheory/db712ad2-396f-4328-bb73-898dcb956834%40googlegroups.com?utm_medium=email&utm_source=footer">https://groups.google.com/d/msgid/HomotopyTypeTheory/db712ad2-396f-4328-bb73-898dcb956834%40googlegroups.com</a>.<br />

Thanks Anders. To be clear, I don’t think we have any schemas or semantics of HITs that accept this definition of S^n (with an n-loop for an internally-specified n) in any non-cubical settings either; at the time, I was thinking of it more as exploring what you can do with the definition. Proving the two definitions equivalent should be the same (modulo which definitional equalities you get) as implementing the one-n-loop rules in terms of suspensions, so that would be one way to justify these rules. Also, the proof of pi_n(S^n) = Z that Guillaume mentioned, which predated Freudenthal, is a lot more work than the one that you get from Freudenthal, so I’m not sure we have any motivating examples for why the one-n-loop definition is better than the suspension definition for arbitrary n. -Dan > On Sep 18, 2019, at 8:00 AM, Anders Mörtberg <andersmortberg@gmail.com> wrote: > > Let me elaborate a bit on my answer. One might naively try to copy Dan and Guillaume's definition and write the following in Cubical Agda: > > > Omega : (A : Type₀) → A → Type₀ > Omega A a = (a ≡ a) > > itOmega : ℕ → (A : Type₀) → A → Type₀ > itOmega zero A a = Omega A a > itOmega (suc n) A a = itOmega n (Omega A a) refl > > data Sn (n : ℕ) : Type₀ where > base : Sn n > surf : itOmega n (Sn n) base > > > However Agda will complain as surf is not constructing an element of Sn. This might seem a bit funny as Cubical Agda is perfectly happy with > > > data S³ : Type₀ where > base : S³ > surf : Path (Path (base ≡ base) refl refl) refl refl > > > But what is happening under the hood is that surf is a constructor taking i, j, and k in the interval and returning an element of S^3 with boundary "base" whenever i, j and k are 0 or 1. In cubicaltt we can write this HIT in the following way: > > > data S3 = base > | surf <i j k> [ (i=0) -> base > , (i=1) -> base > , (j=0) -> base > , (j=1) -> base > , (k=0) -> base > , (k=1) -> base ] > > > The problem is then clearer: in order to write the surf constructor of Sn we would have to quantify over n interval variables and specify the boundary of the n-cell. This is what that is not supported by any of the cubical schemas for HITs. > > -- > Anders > > On Wednesday, September 18, 2019 at 11:00:22 AM UTC+2, Guillaume Brunerie wrote: > Hi, > > We give a definition of S^n with one point and one n-loop by > introduction/elimination/reduction rules in our paper with Dan Licata > (https://guillaumebrunerie.github.io/pdf/lb13cpp.pdf), which can be > implemented in Agda (so Kristina’s question can be formulated and can > presumably be formalized in Agda) but I don’t think we actually proved > it. > > Best, > Guillaume > > Den ons 18 sep. 2019 kl 10:32 skrev Anders Mortberg <andersm...@gmail.com>: > > > > Hi Kristina, > > > > We have proofs for S^0, S^1, S^2 and S^3 in Cubical Agda: > > https://github.com/agda/cubical/blob/master/Cubical/HITs/Susp/Base.agda > > > > However, I don't think we can even write down the general version of > > S^n as a type with a point and an n-loop with the schema implemented > > in Cubical Agda. As far as I know no other schema for HITs support > > this kind of types either. > > > > -- > > Anders > > > > On Tue, Sep 17, 2019 at 9:56 PM Kristina Sojakova > > <sojakova...@gmail.com> wrote: > > > > > > Hello everybody, > > > > > > Is it worked out somewhere that the two definitions of Sn as a > > > suspension on one hand and a HIT with a point and an n-loop on the other > > > hand are equivalent? This is also an exercise in the book. I know > > > Favonia has some Agda code on spheres but I couldn't find this result in > > > there. > > > > > > Thanks, > > > > > > Kristina > > > > > > > > -- > 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/db712ad2-396f-4328-bb73-898dcb956834%40googlegroups.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/DBF368F2-295C-4175-93F2-1EA01D49B95D%40wesleyan.edu.

What I find more interesting is that it's even *possible* to parametrize a definition of S^n with one n-loop by an internal n. It would be intriguing to try to find a schema or semantics for HITs that allow paths of arbitrary internally-specified dimensions, and see whether there are other examples that are more useful. The only other vaguely similar example that I know of is mentioned at the end of https://homotopytypetheory.org/2014/11/02/universal-properties-without-function-extensionality/ (and implemented in the HoTT/Coq library), a definition of localization that works in the absence of funext. On Wed, Sep 18, 2019 at 9:27 AM Licata, Dan <dlicata@wesleyan.edu> wrote: > > Thanks Anders. To be clear, I don’t think we have any schemas or semantics of HITs that accept this definition of S^n (with an n-loop for an internally-specified n) in any non-cubical settings either; at the time, I was thinking of it more as exploring what you can do with the definition. Proving the two definitions equivalent should be the same (modulo which definitional equalities you get) as implementing the one-n-loop rules in terms of suspensions, so that would be one way to justify these rules. > > Also, the proof of pi_n(S^n) = Z that Guillaume mentioned, which predated Freudenthal, is a lot more work than the one that you get from Freudenthal, so I’m not sure we have any motivating examples for why the one-n-loop definition is better than the suspension definition for arbitrary n. > > -Dan > > > On Sep 18, 2019, at 8:00 AM, Anders Mörtberg <andersmortberg@gmail.com> wrote: > > > > Let me elaborate a bit on my answer. One might naively try to copy Dan and Guillaume's definition and write the following in Cubical Agda: > > > > > > Omega : (A : Type₀) → A → Type₀ > > Omega A a = (a ≡ a) > > > > itOmega : ℕ → (A : Type₀) → A → Type₀ > > itOmega zero A a = Omega A a > > itOmega (suc n) A a = itOmega n (Omega A a) refl > > > > data Sn (n : ℕ) : Type₀ where > > base : Sn n > > surf : itOmega n (Sn n) base > > > > > > However Agda will complain as surf is not constructing an element of Sn. This might seem a bit funny as Cubical Agda is perfectly happy with > > > > > > data S³ : Type₀ where > > base : S³ > > surf : Path (Path (base ≡ base) refl refl) refl refl > > > > > > But what is happening under the hood is that surf is a constructor taking i, j, and k in the interval and returning an element of S^3 with boundary "base" whenever i, j and k are 0 or 1. In cubicaltt we can write this HIT in the following way: > > > > > > data S3 = base > > | surf <i j k> [ (i=0) -> base > > , (i=1) -> base > > , (j=0) -> base > > , (j=1) -> base > > , (k=0) -> base > > , (k=1) -> base ] > > > > > > The problem is then clearer: in order to write the surf constructor of Sn we would have to quantify over n interval variables and specify the boundary of the n-cell. This is what that is not supported by any of the cubical schemas for HITs. > > > > -- > > Anders > > > > On Wednesday, September 18, 2019 at 11:00:22 AM UTC+2, Guillaume Brunerie wrote: > > Hi, > > > > We give a definition of S^n with one point and one n-loop by > > introduction/elimination/reduction rules in our paper with Dan Licata > > (https://guillaumebrunerie.github.io/pdf/lb13cpp.pdf), which can be > > implemented in Agda (so Kristina’s question can be formulated and can > > presumably be formalized in Agda) but I don’t think we actually proved > > it. > > > > Best, > > Guillaume > > > > Den ons 18 sep. 2019 kl 10:32 skrev Anders Mortberg <andersm...@gmail.com>: > > > > > > Hi Kristina, > > > > > > We have proofs for S^0, S^1, S^2 and S^3 in Cubical Agda: > > > https://github.com/agda/cubical/blob/master/Cubical/HITs/Susp/Base.agda > > > > > > However, I don't think we can even write down the general version of > > > S^n as a type with a point and an n-loop with the schema implemented > > > in Cubical Agda. As far as I know no other schema for HITs support > > > this kind of types either. > > > > > > -- > > > Anders > > > > > > On Tue, Sep 17, 2019 at 9:56 PM Kristina Sojakova > > > <sojakova...@gmail.com> wrote: > > > > > > > > Hello everybody, > > > > > > > > Is it worked out somewhere that the two definitions of Sn as a > > > > suspension on one hand and a HIT with a point and an n-loop on the other > > > > hand are equivalent? This is also an exercise in the book. I know > > > > Favonia has some Agda code on spheres but I couldn't find this result in > > > > there. > > > > > > > > Thanks, > > > > > > > > Kristina > > > > > > > > > > > > -- > > 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/db712ad2-396f-4328-bb73-898dcb956834%40googlegroups.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/DBF368F2-295C-4175-93F2-1EA01D49B95D%40wesleyan.edu. -- 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/CAOvivQy%2BUGKt3q8P8ed9N6E%2BjOUcjgQ49pxp0rBuDM%3DSoV-QbQ%40mail.gmail.com.