html export trial

This commit is contained in:
jlh 2021-07-19 18:33:17 +01:00
parent 5e06eeb654
commit b930e449e3
6 changed files with 561 additions and 88 deletions

41
.markdown-preview.html Normal file
View File

@ -0,0 +1,41 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimal-ui">
<title>Markdown preview</title>
<link rel="stylesheet" type="text/css" href="https://thomasf.github.io/solarized-css/solarized-dark.min.css">
<script src="http://code.jquery.com/jquery-1.12.4.min.js"></script>
<script>
(function($, undefined) {
var socket = new WebSocket("ws://localhost:7379");
socket.onopen = function() {
console.log("Connection established.");
socket.send("MDPM-Register-UUID: 95ef6ea9-905f-406e-ab19-bc8a950fbadb");
};
socket.onclose = function(event) {
if (event.wasClean) {
console.log('Connection closed gracefully.');
} else {
console.log('Connection terminated.');
}
console.log('Code: ' + event.code + ' reason: ' + event.reason);
};
socket.onmessage = function(event) {
$("#markdown-body").html($(event.data).find("#content").html()).trigger('mdContentChange');
var scroll = $(document).height() * ($(event.data).find("#position-percentage").html() / 100);
$("html, body").animate({ scrollTop: scroll }, 600);
};
socket.onerror = function(error) {
console.log("Error: " + error.message);
};
})(jQuery);
</script>
</head>
<body>
<article id="markdown-body" class="markdown-body">
<p>Markdown preview</p>
</article>
</body>
</html>

0
.projectile Normal file
View File

4
HoTTGame.agda-lib Normal file
View File

@ -0,0 +1,4 @@
name: HoTTGameLib
include: .
depend: cubical-0.3
flags: --cubical --no-import-sorts

377
Plan.html Normal file
View File

@ -0,0 +1,377 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-07-19 Mon 18:31 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>&lrm;</title>
<meta name="author" content="JLH KL" />
<meta name="generator" content="Org Mode" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
pre {
border: 1px solid #ccc;
box-shadow: 3px 3px 3px #eee;
padding: 8pt;
font-family: monospace;
overflow: auto;
margin: 1.2em;
}
pre.src {
position: relative;
overflow: auto;
padding-top: 1.2em;
}
pre.src:before {
display: none;
position: absolute;
background-color: white;
top: -10px;
right: 10px;
padding: 3px;
border: 1px solid black;
}
pre.src:hover:before { display: inline; margin-top: 14px;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
.equation-container {
display: table;
text-align: center;
width: 100%;
}
.equation {
vertical-align: middle;
}
.equation-label {
display: table-cell;
text-align: right;
vertical-align: middle;
}
.inlinetask {
padding: 10px;
border: 2px solid gray;
margin: 10px;
background: #ffffcc;
}
#org-div-home-and-up
{ text-align: right; font-size: 70%; white-space: nowrap; }
textarea { overflow-x: auto; }
.linenr { font-size: smaller }
.code-highlighted { background-color: #ffff00; }
.org-info-js_info-navigation { border-style: none; }
#org-info-js_console-label
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<script type="text/javascript">
// @license magnet:?xt=urn:btih:e95b018ef3580986a04669f1b5879592219e2a7a&dn=public-domain.txt Public Domain
<!--/*--><![CDATA[/*><!--*/
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.classList.add("code-highlighted");
target.classList.add("code-highlighted");
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.classList.remove("code-highlighted");
target.classList.remove("code-highlighted");
}
}
/*]]>*///-->
// @license-end
</script>
</head>
<body>
<div id="content">
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#orgcb7a42f">Planning The HoTT Game</a>
<ul>
<li><a href="#org86f8abf">Aims of the HoTT Game</a></li>
<li><a href="#org891bd67">Barriers</a></li>
<li><a href="#org865979d">Format</a></li>
<li><a href="#org7cb3a5d">Content</a></li>
<li><a href="#org313668c">Debriefs</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-orgcb7a42f" class="outline-2">
<h2 id="orgcb7a42f">Planning The HoTT Game</h2>
<div class="outline-text-2" id="text-orgcb7a42f">
</div>
<div id="outline-container-org86f8abf" class="outline-3">
<h3 id="org86f8abf">Aims of the HoTT Game</h3>
<div class="outline-text-3" id="text-org86f8abf">
<ul class="org-ul">
<li>To get mathematicians with no experience in proof verification interested in HoTT and able to use Agda for HoTT</li>
<li>[?] Work towards showing an interesting result in HoTT</li>
<li>Try to balance hiding cubical implementations whilst exploiting their advantages</li>
</ul>
</div>
</div>
<div id="outline-container-org891bd67" class="outline-3">
<h3 id="org891bd67">Barriers</h3>
<div class="outline-text-3" id="text-org891bd67">
<ul class="org-ul">
<li>HOLD Installation of emacs</li>
<li>TODO Usage of emacs</li>
<li>TODO General type theoretic foundations</li>
<li>TODO Cubical type theory</li>
</ul>
</div>
</div>
<div id="outline-container-org865979d" class="outline-3">
<h3 id="org865979d">Format</h3>
<div class="outline-text-3" id="text-org865979d">
<ul class="org-ul">
<li>[?] Everything done in .agda files</li>
<li>Partially written code with spaces for participants to fill in + answer files</li>
<li>Levels set out with mini-bosses like in Nat Num Game, but with an overall boss</li>
<li>[?] Side quests</li>
<li>References to Harper lectures and HoTT book</li>
</ul>
</div>
</div>
<div id="outline-container-org7cb3a5d" class="outline-3">
<h3 id="org7cb3a5d">Content</h3>
<div class="outline-text-3" id="text-org7cb3a5d">
<ul class="org-ul">
<li>emacs usage</li>
<li>agda usage
<ul class="org-ul">
<li>basic commands (all covered in <a href="https://agda.readthedocs.io/en/v2.6.0.1/getting-started/quick-guide.html">https://agda.readthedocs.io/en/v2.6.0.1/getting-started/quick-guide.html</a>)</li>
<li>recommend doom emacs</li>
<li>implicit/explicit arguments</li>
<li>holes and inferred types</li>
<li><code>_+_</code> vs <code>plus__</code></li>
</ul></li>
<li>type theory basics
<ul class="org-ul">
<li>meta (judgemental/definitional) equality vs internal (propositional) equality
<ul class="org-ul">
<li>function extensionality</li>
</ul></li>
<li>type formation
<ul class="org-ul">
<li>inductive types
<ul class="org-ul">
<li>(side Q) positive and negative constructions of Pi/Sigma types</li>
<li><code>data</code> and <code>record</code></li>
</ul></li>
</ul></li>
<li>universes</li>
<li>recursors / pattern matching</li>
<li>(side Q) some natural number exercises as early evidence of being able to &rsquo;do maths&rsquo;?</li>
<li>different notions of equivalence
<ol class="org-ol">
<li>fibers contractable</li>
<li>quasi-inverse</li>
<li>zig-zag</li>
</ol></li>
<li>(side Q) types are infinity groupoids</li>
<li>extra paths (univalence, fun ext, HITs)</li>
</ul></li>
<li>HoTT
<ul class="org-ul">
<li>basics
<ol class="org-ol">
<li>meta interval, identity type vs path type
<ul class="org-ul">
<li>mention identity type for compatability with other sources, but just use path type</li>
</ul></li>
<li>path type on other types</li>
<li>dependent path type PathP vs path over</li>
<li>univalence</li>
<li>the (non)-issue of J in (Cu)TT</li>
<li>isContr, isProp, isSet</li>
<li>drawing pictures</li>
</ol></li>
<li>Structures, using univalence to transport
<ol class="org-ol">
<li>transporting results between isomorphic structures</li>
</ol></li>
<li>HITs, examples
<ol class="org-ol">
<li>the constructed interval</li>
<li>booleans and covers</li>
<li>S<sup>n</sup></li>
<li>S<sup>1</sup> with 2 cw structures equiv</li>
</ol></li>
<li>Homotopy n-types
<ol class="org-ol">
<li>homotopy levels being closed under type constructions, in particular Set and ETT inside HoTT
<ul class="org-ul">
<li>in particular sigma types</li>
</ul></li>
</ol></li>
</ul></li>
</ul>
</div>
</div>
<div id="outline-container-org313668c" class="outline-3">
<h3 id="org313668c">Debriefs</h3>
<div class="outline-text-3" id="text-org313668c">
<ul class="org-ul">
<li>2021 July 15; Homotopy n-types
<ul class="org-ul">
<li>watched (Harper) lecture 15 on Sets being closed under type formations -&gt;- motivates showing in Agda Sets closed under Sigma.</li>
<li>Harper does product case, claiming sigma case follows analogously,</li>
<li>attempt proof in Cubical Agda but highly non-obvious how to use that fibers are Sets.</li>
<li>difficulty is that PathP not in one fiber, but PathOver is, AND PathOver &lt;-&gt; PathP NON-obvious</li>
<li>Easy to generalize situation to n-types being closed under Sigma (7.1.8 in HoTT book), we showed this assuming PathPIsoPath</li>
</ul></li>
</ul>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: JLH KL</p>
<p class="date">Created: 2021-07-19 Mon 18:31</p>
</div>
</body>
</html>

129
Plan.md
View File

@ -1,72 +1,119 @@
# Planning The HoTT Game
## Aims of the HoTT Game
- To get mathematicians with no experience in proof verification interested in HoTT and able to use Agda for HoTT
- [?] Work towards showing an interesting result in HoTT
- Try to balance hiding cubical implementations whilst exploiting their advantages
# Table of Contents
## Barriers
- HOLD Installation of emacs
- TODO Usage of emacs
- TODO General type theoretic foundations
- TODO Cubical type theory
1. [Aims of the HoTT Game](#org45da28b)
1. [To get mathematicians with no experience in proof verification interested in HoTT and able to use Agda for HoTT](#org6c86aa4)
2. [Work towards showing an interesting result in HoTT](#org5c370bf)
3. [Try to balance hiding cubical implementations whilst exploiting their advantages](#org2cc236e)
2. [Barriers](#org483c28e)
1. [Installation of emacs](#orgfaee064)
2. [Usage of emacs](#org4ec8663)
3. [General type theoretic foundations](#orgd6212c3)
4. [Cubical type theory](#orgdb053bf)
<a id="org45da28b"></a>
# Aims of the HoTT Game
<a id="org6c86aa4"></a>
## To get mathematicians with no experience in proof verification interested in HoTT and able to use Agda for HoTT
<a id="org5c370bf"></a>
## [?] Work towards showing an interesting result in HoTT
<a id="org2cc236e"></a>
## Try to balance hiding cubical implementations whilst exploiting their advantages
<a id="org483c28e"></a>
# Barriers
<a id="orgfaee064"></a>
## HOLD Installation of emacs
<a id="org4ec8663"></a>
## TODO Usage of emacs
<a id="orgd6212c3"></a>
## TODO General type theoretic foundations
<a id="orgdb053bf"></a>
## TODO Cubical type theory
\## Format
## Format
- [?] Everything done in .agda files
- Partially written code with spaces for participants to fill in + answer files
- Levels set out with mini-bosses like in Nat Num Game, but with an overall boss
- [?] Side quests
- References to Harper lectures and HoTT book
# Content
<!-- listing topics we have pursued, NO ordering -->
<!&#x2013; listing topics we have pursued, NO ordering &#x2013;>
- emacs usage
- agda usage
- basic commands (all covered in https://agda.readthedocs.io/en/v2.6.0.1/getting-started/quick-guide.html)
- recommend doom emacs? -> basic doom usage and command differences with nude agda.
- basic commands (all covered in <https://agda.readthedocs.io/en/v2.6.0.1/getting-started/quick-guide.html>)
- recommend doom emacs
- implicit/explicit arguments
- holes and inferred types
- `_+_` and `plus__`
- \`\_+\_\` and \`plus\_\_\`
- type theory basics
- meta (judgemental/definitional) equality vs internal (propositional) equality
- function extensionality
- type formation
- universes
- recursors / pattern matching
- (side Q) some natural number exercises as early evidence of being able to 'do maths'?
- different notions of equivalence
a) fibers contractable
b) quasi-inverse
c) zig-zag
- (side Q) types are infinity groupoids
- inductive types
- (side Q) positive and negative constructions of Pi/Sigma types
- `data` and `record`
- \`data\` and \`record\`
- universes
- recursors / pattern matching
- (side Q) some natural number exercises as early evidence of being able to &rsquo;do maths&rsquo;?
- different notions of equivalence
1. fibers contractable
2. quasi-inverse
3. zig-zag
- (side Q) types are infinity groupoids
- extra paths (univalence, fun ext, HITs)
- HoTT
- basics
a) meta interval, identity type vs path type
1. meta interval, identity type vs path type
- mention identity type for compatability with other sources, but just use path type
b) path type on other types
c) dependent path type PathP vs path over
d) univalence
e) the (non)-issue of J in (Cu)TT
f) isContr, isProp, isSet
g) drawing pictures
- Structures, univalence and transport
a) transporting results between isomorphic structures
2. path type on other types
3. dependent path type PathP vs path over
4. univalence
5. the (non)-issue of J in (Cu)TT
6. isContr, isProp, isSet
7. drawing pictures
- Structures, using univalence to transport
1. transporting results between isomorphic structures
- HITs, examples
a) the constructed interval
b) booleans and covers
c) S^n
d)
1. the constructed interval
2. booleans and covers
3. S<sup>n</sup>
4. S<sup>1</sup> with 2 cw structures equiv
- Homotopy n-types
a) homotopy levels being closed under type constructions, in particular Set and ETT inside HoTT
* in particular sigma types
1. homotopy levels being closed under type constructions, in particular Set and ETT inside HoTT
- in particular sigma types
# Debriefs
- 2021 July 15; Homotopy n-types
- watched (Harper) lecture 15 on Sets being closed under type formations ->- motivates showing in Agda Sets closed under Sigma.
- Harper does product case, claiming sigma case follows analogously,
- attempt proof in Cubical Agda but highly non-obvious how to use that fibers are Sets.
- difficulty is that PathP not in one fiber, but PathOver is, AND PathOver <-> PathP NON-obvious
- Easy to generalize situation to n-types being closed under Sigma (7.1.8 in HoTT book), we showed this assuming PathPIsoPath

View File

@ -1,32 +1,36 @@
# Planning The HoTT Game
#+OPTIONS: num:nil
#+AUTHOR: JLH
#+AUTHOR: KL
## Aims of the HoTT Game
- To get mathematicians with no experience in proof verification interested in HoTT and able to use Agda for HoTT
- [?] Work towards showing an interesting result in HoTT
- Try to balance hiding cubical implementations whilst exploiting their advantages
* Planning The HoTT Game
## Barriers
- HOLD Installation of emacs
- TODO Usage of emacs
- TODO General type theoretic foundations
- TODO Cubical type theory
** Aims of the HoTT Game
- To get mathematicians with no experience in proof verification interested in HoTT and able to use Agda for HoTT
- [?] Work towards showing an interesting result in HoTT
- Try to balance hiding cubical implementations whilst exploiting their advantages
## Format
- [?] Everything done in .agda files
- Partially written code with spaces for participants to fill in + answer files
- Levels set out with mini-bosses like in Nat Num Game, but with an overall boss
- [?] Side quests
- References to Harper lectures and HoTT book
** Barriers
- HOLD Installation of emacs
- TODO Usage of emacs
- TODO General type theoretic foundations
- TODO Cubical type theory
# Content
<!-- listing topics we have pursued, NO ordering -->
** Format
- [?] Everything done in .agda files
- Partially written code with spaces for participants to fill in + answer files
- Levels set out with mini-bosses like in Nat Num Game, but with an overall boss
- [?] Side quests
- References to Harper lectures and HoTT book
** Content
# listing topics we have pursued, NO ordering
- emacs usage
- agda usage
- basic commands (all covered in https://agda.readthedocs.io/en/v2.6.0.1/getting-started/quick-guide.html)
- recommend doom emacs? -> basic doom usage and command differences with nude agda.
- recommend doom emacs
- implicit/explicit arguments
- holes and inferred types
- `_+_` and `plus__`
- src_elisp{(_+_)} and src_elisp{(plus__)}
- type theory basics
- meta (judgemental/definitional) equality vs internal (propositional) equality
- function extensionality
@ -64,7 +68,7 @@
a) homotopy levels being closed under type constructions, in particular Set and ETT inside HoTT
* in particular sigma types
# Debriefs
** Debriefs
- 2021 July 15; Homotopy n-types
- watched (Harper) lecture 15 on Sets being closed under type formations ->- motivates showing in Agda Sets closed under Sigma.
- Harper does product case, claiming sigma case follows analogously,