update
|
@ -41,6 +41,7 @@
|
|||
\(\newcommand{\id}{\mathrm{id}}\)
|
||||
\(\newcommand{\ob}[1]{\mathrm{ob}(#1)}\)
|
||||
\(\newcommand{\hom}[1]{\mathrm{hom}(#1)}\)
|
||||
\(\newcommand{\Set}{\mathbf{Set}}\)
|
||||
</div>
|
||||
|
||||
|
||||
|
@ -212,15 +213,22 @@
|
|||
<p>Young field: <b>1942–45</b>, Samuel Eilenberg <span class="and"><span class="and">&</span></span> Saunders Mac Lane
|
||||
</section>
|
||||
<section class="slide">
|
||||
<h2>Plan</h2>
|
||||
<ul style="font-size: 2em">
|
||||
<li>Why?</li>
|
||||
<li class="yellow">What?</li>
|
||||
<li>How?</li>
|
||||
<h2>Type Theory ⇒ Categories</h2>
|
||||
|
||||
<ul>
|
||||
<li>Type theory helped to remove paradoxes in Set Theory.</li>
|
||||
<li>Prevent relations between different kind of objects.</li>
|
||||
<li>Used in computer science</li>
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li>typed λ-calculus ⇒ cartesian closed categories</li>
|
||||
<li>untyped λ-calculus ⇒ C-monoids (subclass of categories)</li>
|
||||
<li>Martin-Löf type theories ⇒ locally cartesian closed categories</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section class="slide">
|
||||
<h2>Definition: Category</h2>
|
||||
<h2>Category Definition</h2>
|
||||
|
||||
<p> A Category \(\mathcal{C}\) is defined by:</p>
|
||||
<ul>
|
||||
|
@ -231,30 +239,43 @@
|
|||
</ul>
|
||||
</section>
|
||||
<section class="slide">
|
||||
<h2>Definition: Category</h2>
|
||||
|
||||
<div style="position:relative">
|
||||
<img src="img/mp/objects.png" alt="objects" style="position:absolute;top:0;"/>
|
||||
<img class="slide" src="img/mp/morphisms.png" alt="morphisms" style="position:absolute;top:0;"/>
|
||||
</div>
|
||||
<h2>Plan</h2>
|
||||
<ul style="font-size: 2em">
|
||||
<li>Why?</li>
|
||||
<li class="yellow">What?</li>
|
||||
<li>How?</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section class="slide">
|
||||
<h2>Definition: Category [Composition]</h2>
|
||||
<h2>Category Definition: Objects</h2>
|
||||
|
||||
<img src="img/mp/objects.png" alt="objects" />
|
||||
|
||||
<p>\(\ob{\mathcal{C}}\) is a collection</p>
|
||||
</section>
|
||||
<section class="slide">
|
||||
<h2>Category Definition: Morphisms</h2>
|
||||
|
||||
<img src="img/mp/morphisms.png" alt="morphisms"/>
|
||||
|
||||
<p>\(\hom{A,B}\) is a collection</p>
|
||||
</section>
|
||||
<section class="slide">
|
||||
<h2>Category Definition: Composition</h2>
|
||||
<p>Composition (∘): \(f:A\rightarrow B, g:B\rightarrow C\)
|
||||
$$g\circ f:A\rightarrow C$$
|
||||
</p>
|
||||
<img src="img/mp/composition.png" alt="composition"/>
|
||||
</section>
|
||||
<section class="slide">
|
||||
<h2>Definition: Category [Laws]</h2>
|
||||
<ul>
|
||||
<li>for all \(X\), there is an \(\id_X\), s.t. for all \(f:A\to B\)
|
||||
<img src="img/mp/identity.png" alt="identity"/>
|
||||
</li>
|
||||
<li> Composition is associative:
|
||||
<img src="img/mp/associativecomposition.png" alt="associative composition"/>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>Category laws: neutral element</h2>
|
||||
<p>for all \(X\), there is an \(\id_X\), s.t. for all \(f:A\to B\):</p>
|
||||
<img src="img/mp/identity.png" alt="identity"/>
|
||||
</section>
|
||||
<section class="slide">
|
||||
<h2>Category laws: Associativity</h2>
|
||||
<p> Composition is associative:</p>
|
||||
<img src="img/mp/associativecomposition.png" alt="associative composition"/>
|
||||
</section>
|
||||
<section class="slide">
|
||||
<h2>Can this be a category? <span style="font-size: .5em">(\(\id_X\) implicit)</span></h2>
|
||||
|
@ -293,6 +314,36 @@
|
|||
</figure>
|
||||
</section>
|
||||
<section class="slide">
|
||||
<h2>Categories Everywhere?</h2>
|
||||
|
||||
<h3>\(\Set\)</h3>
|
||||
<ul>
|
||||
<li> \(\ob{\Set}\) are sets</li>
|
||||
<li> \(\hom{\Set}\) are functions</li>
|
||||
<li> ∘ is functions composition </li>
|
||||
</ul>
|
||||
|
||||
<ul class="slide">
|
||||
<li>\(\ob{\Set}\) is a proper class ; not a set</li>
|
||||
<li>\(\hom{E,F}\) is a set</li>
|
||||
<li>\(\Set\) is a <em>locally small category</em></li>
|
||||
</ul>
|
||||
</section>
|
||||
<section class="slide">
|
||||
<h2>Categories Everywhere?</h2>
|
||||
|
||||
<h3>Strings</h3>
|
||||
<ul>
|
||||
<li> \(\ob{Str}\) is a singleton </li>
|
||||
<li> \(\hom{Str}\) each string </li>
|
||||
<li> ∘ is concatenation <code>(++)</code> </li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li> <code>"" ++ u = u = u ++ ""</code> </li>
|
||||
<li> <code>(u ++ v) ++ w = u ++ (v ++ w)</code> </li>
|
||||
</ul>
|
||||
</section>
|
||||
<section class="slide">
|
||||
<h2>Definition: Functor</h2>
|
||||
|
||||
<p> A functor is a mapping between two categories.
|
||||
|
@ -317,12 +368,12 @@ A <em>functor</em> \(\F\) from \(\C\) to \(\D\):</p>
|
|||
<section class="slide">
|
||||
<h2>Functor: Example</h2>
|
||||
|
||||
<img src="img/mp/functor-morphism.png" alt="Functor Morphisms"/>
|
||||
<img src="img/mp/functor-morphism.png" alt="Functor"/>
|
||||
</section>
|
||||
<section class="slide">
|
||||
<h2>Functor: Example</h2>
|
||||
|
||||
<img src="img/mp/functor-morphism-color.png" alt="Functor Morphisms"/>
|
||||
<img src="img/mp/functor-morphism-color.png" alt="Functor"/>
|
||||
</section>
|
||||
<!-- End slides. -->
|
||||
|
||||
|
|
12
categories/00_Introduction/010_.html.bak
Normal file
|
@ -0,0 +1,12 @@
|
|||
<h1>Category Theory <span class="and">&</span> Programming
|
||||
<div><author style="font-size: .4em"><em class="base01">by</em> Yann Esposito
|
||||
<div>
|
||||
<twitter style="font-size: .5em">
|
||||
<a href="http://twitter.com/yogsototh">@yogsototh</a>,
|
||||
</twitter>
|
||||
<googleplus style="font-size: .5em">
|
||||
<a href="https://plus.google.com/117858550730178181663">+yogsototh</a>
|
||||
</googleplus>
|
||||
</div>
|
||||
</author></div>
|
||||
</h1>
|
6
categories/00_Introduction/020_Plan.html.bak
Normal file
|
@ -0,0 +1,6 @@
|
|||
<h2>Plan</h2>
|
||||
<ul style="font-size: 2em">
|
||||
<li class="yellow">Why?</li>
|
||||
<li>What?</li>
|
||||
<li>How?</li>
|
||||
</ul>
|
17
categories/00_Introduction/030_Abstraction_Example.html
Normal file
|
@ -0,0 +1,17 @@
|
|||
<h2>Abstraction Example</h2>
|
||||
<p>Something you see very often but in different instances.</p>
|
||||
<div class="slide">
|
||||
<p>Numbers: 1,2,3,... <em class="small">3400 BC, real numbers 760 BC</em></p>
|
||||
<figure class="left">
|
||||
<img src="categories/img/tally-count.png" style="height:3.8em" alt="Aboriginal Tally System"/>
|
||||
<figcaption>Aboriginal Tally System</figcaption>
|
||||
</figure>
|
||||
<figure class="left">
|
||||
<img src="categories/img/first-real-numbers.png" style="height:3.8em" alt="Mesopotamian Numbers"/>
|
||||
<figcaption>Mesopotamian base 60 system</figcaption>
|
||||
</figure>
|
||||
<figure class="left">
|
||||
<div class="likeimg" style="height:3.8em;margin-bottom: 1em"><span style="font-size: 3em"> 0 </span></div>
|
||||
<figcaption>Zero</figcaption>
|
||||
</figure>
|
||||
<div class="flush"></div>
|
|
@ -0,0 +1,14 @@
|
|||
<h2>Abstraction Example: Numbers</h2>
|
||||
<p>Many different things can be understood with numbers</p>
|
||||
<ul>
|
||||
<li>How many apple, goats?</li>
|
||||
<li>Distance</li>
|
||||
<li>Time</li>
|
||||
<li>...</li>
|
||||
</ul>
|
||||
<p>Manipulated with operators:
|
||||
<span class="yellow">=</span>,
|
||||
<span class="yellow"><</span>,
|
||||
<span class="yellow">></span>,
|
||||
<span class="yellow">+</span>,
|
||||
<span class="yellow">×</span>, ...</p>
|
|
@ -0,0 +1,5 @@
|
|||
<h2>Abstraction Example: Numbers</h2>
|
||||
<h3>Generalization: rational numbers</h3>
|
||||
<p>Rational numbers: \(\frac{p}{q}\) (concept is prehistoric): more precise.</p>
|
||||
<img src="categories/img/egyptian-hieroglyphics.jpg" alt="Egyptian Fractions"/>
|
||||
</div>
|
|
@ -0,0 +1,4 @@
|
|||
<h2>Abstraction Example: Numbers</h2>
|
||||
<h3>Generalization: negative numbers</h3>
|
||||
<p>Negative numbers: ..., -3, -2, -1, 0, 1, 2, ... (100-50 BC): Debts, temperature</p>
|
||||
<img src="categories/img/negative-numbers.jpg" alt="Negative Numbers (Chinese)"/>
|
|
@ -0,0 +1,4 @@
|
|||
<h2>Abstraction Example: Numbers</h2>
|
||||
<h3>Generalization: Irrational Numbers</h3>
|
||||
<p>Irrational numbers: \(\mathbb{A}\), \(\mathbb{R}\) (500 BC → Pythogoras killed Hippasus because of \(\sqrt{2}\)!)</p>
|
||||
<p>Complex numbers: \(\mathbb{C}\) (100 AD, then 16th century)</p>
|
|
@ -0,0 +1,6 @@
|
|||
<h2>Abstraction Example: Numbers</h2>
|
||||
<h3>Generalization</h3>
|
||||
<ul>
|
||||
<li>More things enter into the notion</li>
|
||||
<li>More operator to manipulate the notion</li>
|
||||
</ul>
|
30
categories/00_Introduction/090_Numbers_Sets.html.bak
Normal file
|
@ -0,0 +1,30 @@
|
|||
<h2>Numbers ⇒ Sets</h2>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Numbers</th>
|
||||
<th>Set Theory (∞)/Abstract Algebra/Topology</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>\(\mathbb{N}\): \((+,0)\)</td>
|
||||
<td>Semigroups</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>\(\mathbb{Z}\): \((+,0,\times,1)\)</td>
|
||||
<td>Rings</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>\(\mathbb{Q}\)</td>
|
||||
<td>Fields</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>\(\mathbb{R}\)</td>
|
||||
<td>Complete Fields (<em class="base01">topology</em>)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>\(\mathbb{C}\)</td>
|
||||
<td>Algebræ</td>
|
||||
</tr>
|
||||
<tr><td></td><td>Modules,Vector Spaces, Monoids, ...</td></tr>
|
||||
</table>
|
||||
<p><span class="and" style="visibility:hidden">&</span> More <strong>general</strong>: more things are sets.<br/>
|
||||
<span class="and">&</span> More <strong>precise</strong>: clear distinction between concepts.</p>
|
34
categories/00_Introduction/100_Sets_Categories.html.bak
Normal file
|
@ -0,0 +1,34 @@
|
|||
<h2>Sets ⇒? <span class="yellow">Categories</span></h2>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Numbers</th>
|
||||
<th>Sets</th>
|
||||
<th>Categories</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>\(\mathbb{N}\): \((+,0)\)</td>
|
||||
<td>Semigroups</td>
|
||||
<td>?</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>\(\mathbb{Z}\): \((+,0,\times,1)\)</td>
|
||||
<td>Rings</td>
|
||||
<td>?</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>\(\mathbb{Q}\)</td>
|
||||
<td>Fields</td>
|
||||
<td>?</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>\(\mathbb{R}\)</td>
|
||||
<td>Complete Fields (<em class="base01">topology</em>)</td>
|
||||
<td>?</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>\(\mathbb{C}\)</td>
|
||||
<td>Algebræ</td>
|
||||
<td>?</td>
|
||||
</tr>
|
||||
<tr><td></td><td>Modules,Vector Spaces, Monoids, ...</td><td>?</td></tr>
|
||||
</table>
|
11
categories/00_Introduction/110_Category_Theory.html.bak
Normal file
|
@ -0,0 +1,11 @@
|
|||
<h2><span class="yellow">/.*/</span> ⇒? Category Theory</h2>
|
||||
<p>Extend <span class="and">&</span> Merge different scientific fields</p>
|
||||
<ul>
|
||||
<li>Topology</li>
|
||||
<li>Quantum Physics</li>
|
||||
<li>Logic</li>
|
||||
<li><b>Programming</b></li>
|
||||
</ul>
|
||||
<p><span class="and" style="visibility:hidden">&</span> More <strong>general</strong>: more things are Categories.<br/>
|
||||
<span class="and">&</span> More <strong>precise</strong>: better distinction between concepts.</p>
|
||||
<p>Young field: <b>1942–45</b>, Samuel Eilenberg <span class="and">&</span> Saunders Mac Lane
|
13
categories/00_Introduction/120_Type_Theory_Categories.html
Normal file
|
@ -0,0 +1,13 @@
|
|||
<h2>Type Theory ⇒ Categories</h2>
|
||||
|
||||
<ul>
|
||||
<li>Type theory helped to remove paradoxes in Set Theory.</li>
|
||||
<li>Prevent relations between different kind of objects.</li>
|
||||
<li>Used in computer science</li>
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li>typed λ-calculus ⇒ cartesian closed categories</li>
|
||||
<li>untyped λ-calculus ⇒ C-monoids (subclass of categories)</li>
|
||||
<li>Martin-Löf type theories ⇒ locally cartesian closed categories</li>
|
||||
</ul>
|
|
@ -0,0 +1,13 @@
|
|||
<h2>Type Theory ⇒ Categories</h2>
|
||||
|
||||
<ul>
|
||||
<li>Type theory helped to remove paradoxes in Set Theory.</li>
|
||||
<li>Prevent relations between different kind of objects.</li>
|
||||
<li>Used in computer science</li>
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li>typed λ-calculus ⇒ cartesian closed categories</li>
|
||||
<li>untyped λ-calculus ⇒ C-monoids (subclass of categories)</li>
|
||||
<li>Martin-Löf type theories ⇒ locally cartesian closed categories</li>
|
||||
</ul>
|
|
@ -1,4 +1,4 @@
|
|||
<h2>Definition: Category</h2>
|
||||
<h2>Category Definition</h2>
|
||||
|
||||
<p> A Category \(\mathcal{C}\) is defined by:</p>
|
||||
<ul>
|
9
categories/01_What/010_Category_Definition.html.bak
Normal file
|
@ -0,0 +1,9 @@
|
|||
<h2>Category Definition</h2>
|
||||
|
||||
<p> A Category \(\mathcal{C}\) is defined by:</p>
|
||||
<ul>
|
||||
<li> <em>Objects (\(\ob{C}\))</em>,</li>
|
||||
<li> <em>Morphisms (\(\hom{C}\))</em>,</li>
|
||||
<li> a <em>Composition law (∘)</em></li>
|
||||
<li> obeying some <em>Properties</em>.</li>
|
||||
</ul>
|
6
categories/01_What/020_Plan.html.bak
Normal file
|
@ -0,0 +1,6 @@
|
|||
<h2>Plan</h2>
|
||||
<ul style="font-size: 2em">
|
||||
<li>Why?</li>
|
||||
<li class="yellow">What?</li>
|
||||
<li>How?</li>
|
||||
</ul>
|
5
categories/01_What/030_Category_Definition_Objects.html
Normal file
|
@ -0,0 +1,5 @@
|
|||
<h2>Category Definition: Objects</h2>
|
||||
|
||||
<img src="categories/img/mp/objects.png" alt="objects" />
|
||||
|
||||
<p>\(\ob{\mathcal{C}}\) is a collection</p>
|
|
@ -0,0 +1,5 @@
|
|||
<h2>Category Definition: Objects</h2>
|
||||
|
||||
<img src="img/mp/objects.png" alt="objects" />
|
||||
|
||||
<p>\(\ob{\mathcal{C}}\) is a collection</p>
|
|
@ -0,0 +1,5 @@
|
|||
<h2>Category Definition: Morphisms</h2>
|
||||
|
||||
<img src="categories/img/mp/morphisms.png" alt="morphisms"/>
|
||||
|
||||
<p>\(\hom{A,B}\) is a collection</p>
|
|
@ -0,0 +1,5 @@
|
|||
<h2>Category Definition: Morphisms</h2>
|
||||
|
||||
<img src="img/mp/morphisms.png" alt="morphisms"/>
|
||||
|
||||
<p>\(\hom{A,B}\) is a collection</p>
|
|
@ -0,0 +1,5 @@
|
|||
<h2>Category Definition: Composition</h2>
|
||||
<p>Composition (∘): \(f:A\rightarrow B, g:B\rightarrow C\)
|
||||
$$g\circ f:A\rightarrow C$$
|
||||
</p>
|
||||
<img src="categories/img/mp/composition.png" alt="composition"/>
|
|
@ -1,4 +1,4 @@
|
|||
<h2>Definition: Category [Composition]</h2>
|
||||
<h2>Category Definition: Composition</h2>
|
||||
<p>Composition (∘): \(f:A\rightarrow B, g:B\rightarrow C\)
|
||||
$$g\circ f:A\rightarrow C$$
|
||||
</p>
|
|
@ -0,0 +1,3 @@
|
|||
<h2>Category laws: neutral element</h2>
|
||||
<p>for all \(X\), there is an \(\id_X\), s.t. for all \(f:A\to B\):</p>
|
||||
<img src="categories/img/mp/identity.png" alt="identity"/>
|
|
@ -0,0 +1,3 @@
|
|||
<h2>Category laws: neutral element</h2>
|
||||
<p>for all \(X\), there is an \(\id_X\), s.t. for all \(f:A\to B\):</p>
|
||||
<img src="img/mp/identity.png" alt="identity"/>
|
3
categories/01_What/070_Category_laws_Associativity.html
Normal file
|
@ -0,0 +1,3 @@
|
|||
<h2>Category laws: Associativity</h2>
|
||||
<p> Composition is associative:</p>
|
||||
<img src="categories/img/mp/associativecomposition.png" alt="associative composition"/>
|
|
@ -0,0 +1,3 @@
|
|||
<h2>Category laws: Associativity</h2>
|
||||
<p> Composition is associative:</p>
|
||||
<img src="img/mp/associativecomposition.png" alt="associative composition"/>
|
|
@ -0,0 +1,34 @@
|
|||
<h2>Can this be a category? <span style="font-size: .5em">(\(\id_X\) implicit)</span></h2>
|
||||
<figure class="left">
|
||||
<img src="categories/img/mp/cat-example1.png" alt="Category example 1"/>
|
||||
<figcaption class="slide">
|
||||
<span class="green">OK</span>
|
||||
</figcaption>
|
||||
</figure>
|
||||
<figure class="left">
|
||||
<img src="categories/img/mp/cat-example2.png" alt="Category example 2"/>
|
||||
<figcaption class="slide">
|
||||
no candidate for \(g\circ f\)
|
||||
<span class="red">NO</span>
|
||||
</figcaption>
|
||||
</figure>
|
||||
<figure class="left">
|
||||
<img src="categories/img/mp/cat-example3.png" alt="Category example 3"/>
|
||||
<figcaption class="slide">
|
||||
<span class="green">YES</span>
|
||||
</figcaption>
|
||||
</figure>
|
||||
<figure class="left">
|
||||
<img src="categories/img/mp/cat-example4.png" alt="Category example 4"/>
|
||||
<figcaption class="slide">
|
||||
no candidate for \(f:C\to B\)
|
||||
<span class="red">NO</span>
|
||||
</figcaption>
|
||||
</figure>
|
||||
<figure class="left">
|
||||
<img src="categories/img/mp/cat-example5.png" alt="Category example 5"/>
|
||||
<figcaption class="slide">
|
||||
\((h∘g)∘f=\id_B∘f=f≠h=h∘\id_A=h∘(g∘f)\)
|
||||
<span class="red">NO</span>
|
||||
</figcaption>
|
||||
</figure>
|
14
categories/01_What/090_Categories_Everywhere.html
Normal file
|
@ -0,0 +1,14 @@
|
|||
<h2>Categories Everywhere?</h2>
|
||||
|
||||
<h3>\(\Set\)</h3>
|
||||
<ul>
|
||||
<li> \(\ob{\Set}\) are sets</li>
|
||||
<li> \(\hom{\Set}\) are functions</li>
|
||||
<li> ∘ is functions composition </li>
|
||||
</ul>
|
||||
|
||||
<ul class="slide">
|
||||
<li>\(\ob{\Set}\) is a proper class ; not a set</li>
|
||||
<li>\(\hom{E,F}\) is a set</li>
|
||||
<li>\(\Set\) is a <em>locally small category</em></li>
|
||||
</ul>
|
14
categories/01_What/090_Categories_Everywhere.html.bak
Normal file
|
@ -0,0 +1,14 @@
|
|||
<h2>Categories Everywhere?</h2>
|
||||
|
||||
<h3>\(\Set\)</h3>
|
||||
<ul>
|
||||
<li> \(\ob{\Set}\) are sets</li>
|
||||
<li> \(\hom{\Set}\) are functions</li>
|
||||
<li> ∘ is functions composition </li>
|
||||
</ul>
|
||||
|
||||
<ul class="slide">
|
||||
<li>\(\ob{\Set}\) is a proper class ; not a set</li>
|
||||
<li>\(\hom{E,F}\) is a set</li>
|
||||
<li>\(\Set\) is a <em>locally small category</em></li>
|
||||
</ul>
|
12
categories/01_What/100_Categories_Everywhere.html
Normal file
|
@ -0,0 +1,12 @@
|
|||
<h2>Categories Everywhere?</h2>
|
||||
|
||||
<h3>Strings</h3>
|
||||
<ul>
|
||||
<li> \(\ob{Str}\) is a singleton </li>
|
||||
<li> \(\hom{Str}\) each string </li>
|
||||
<li> ∘ is concatenation <code>(++)</code> </li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li> <code>"" ++ u = u = u ++ ""</code> </li>
|
||||
<li> <code>(u ++ v) ++ w = u ++ (v ++ w)</code> </li>
|
||||
</ul>
|
12
categories/01_What/100_Categories_Everywhere.html.bak
Normal file
|
@ -0,0 +1,12 @@
|
|||
<h2>Categories Everywhere?</h2>
|
||||
|
||||
<h3>Strings</h3>
|
||||
<ul>
|
||||
<li> \(\ob{Str}\) is a singleton </li>
|
||||
<li> \(\hom{Str}\) each string </li>
|
||||
<li> ∘ is concatenation <code>(++)</code> </li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li> <code>"" ++ u = u = u ++ ""</code> </li>
|
||||
<li> <code>(u ++ v) ++ w = u ++ (v ++ w)</code> </li>
|
||||
</ul>
|
15
categories/01_What/110_Definition_Functor.html.bak
Normal file
|
@ -0,0 +1,15 @@
|
|||
<h2>Definition: Functor</h2>
|
||||
|
||||
<p> A functor is a mapping between two categories.
|
||||
Let \(\C\) and \(\D\) be two categories.
|
||||
A <em>functor</em> \(\F\) from \(\C\) to \(\D\):</p>
|
||||
<ul>
|
||||
<li> Associate objects: \(A\in\ob{\C}\) to \(\F(A) \in\ob{\D}\) </li>
|
||||
<li> Associate morphisms: \(f:A\to B\) to \(\F(f) : \F(A) \to \F(B)\)
|
||||
such that
|
||||
<ul>
|
||||
<li>\( \F (\id_X) = \id_{\F(X)} \),</li>
|
||||
<li>\( \F (g \circ_\C f) = \F(g) \circ_\D \F(f) \)</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
3
categories/01_What/120_Functor_Example.html
Normal file
|
@ -0,0 +1,3 @@
|
|||
<h2>Functor: Example</h2>
|
||||
|
||||
<img src="categories/img/mp/functor.png" alt="Functor"/>
|
3
categories/01_What/130_Functor_Example.html
Normal file
|
@ -0,0 +1,3 @@
|
|||
<h2>Functor: Example</h2>
|
||||
|
||||
<img src="categories/img/mp/functor-morphism.png" alt="Functor"/>
|
3
categories/01_What/130_Functor_Example.html.bak
Normal file
|
@ -0,0 +1,3 @@
|
|||
<h2>Functor: Example</h2>
|
||||
|
||||
<img src="img/mp/functor-morphism.png" alt="Functor"/>
|
3
categories/01_What/140_Functor_Example.html
Normal file
|
@ -0,0 +1,3 @@
|
|||
<h2>Functor: Example</h2>
|
||||
|
||||
<img src="categories/img/mp/functor-morphism-color.png" alt="Functor"/>
|
3
categories/01_What/140_Functor_Example.html.bak
Normal file
|
@ -0,0 +1,3 @@
|
|||
<h2>Functor: Example</h2>
|
||||
|
||||
<img src="img/mp/functor-morphism-color.png" alt="Functor"/>
|
|
@ -10,13 +10,16 @@ fi
|
|||
cd $scriptdir
|
||||
|
||||
# Convert all slides from markdown
|
||||
for slide in slide-*.md(.N); do
|
||||
for slide in **/*.md(.N); do
|
||||
pandoc -f markdown -t html $slide > ${slide:r}.html
|
||||
done
|
||||
|
||||
{
|
||||
cat head.html
|
||||
for slide in slide-*.html(.N); do
|
||||
for slide in **/*.html(.N); do
|
||||
case $slide in
|
||||
head.html|tail.html) continue
|
||||
esac
|
||||
print -- '<section class="slide">'
|
||||
cat $slide | sed 's#&#<span class="and">&</span>#g'
|
||||
print -- '</section>'
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
\(\newcommand{\id}{\mathrm{id}}\)
|
||||
\(\newcommand{\ob}[1]{\mathrm{ob}(#1)}\)
|
||||
\(\newcommand{\hom}[1]{\mathrm{hom}(#1)}\)
|
||||
\(\newcommand{\Set}{\mathbf{Set}}\)
|
||||
</div>
|
||||
|
||||
|
||||
|
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 301 KiB After Width: | Height: | Size: 301 KiB |
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 9.5 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 88 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
|
@ -186,16 +186,19 @@ vardef nl_edge(expr posA,posB) =
|
|||
sub
|
||||
enddef;
|
||||
|
||||
|
||||
def drawloop(expr a,b,l) =
|
||||
vardef largeloop(expr a,b) =
|
||||
pair ba,ea;
|
||||
path circ,p,s;
|
||||
p:=a{1,1}..b..{1,-1}cycle;
|
||||
circ:= fullcircle scaled 6 shifted a;
|
||||
circ:= fullcircle scaled nodesize shifted a;
|
||||
ba = circ intersectionpoint (subpath (0,1) of p);
|
||||
ea = circ intersectionpoint (subpath (1,2) of p);
|
||||
s:= ba{1,1}..b..{1,-1}ea;
|
||||
drawarrow s;
|
||||
s
|
||||
enddef;
|
||||
|
||||
def drawloop(expr a,b,l) =
|
||||
drawarrow largeloop(a,b);
|
||||
label.top(l,b);
|
||||
enddef;
|
||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
@ -2,23 +2,33 @@
|
|||
z0=(0,0);
|
||||
z1=z0 shifted (gu,0);
|
||||
z2=z1 shifted (gu,0);
|
||||
z3=1/2[z0,z1] shifted (0,-gu);
|
||||
z4=1/2[z1,z2] shifted (0,-gu);
|
||||
z3=z2 shifted (gu,-0.5gu);
|
||||
z4=z3 shifted (gu,0);
|
||||
z5=z4 shifted (1.5u,0);
|
||||
z6=z5 shifted (2u,0);
|
||||
|
||||
drawblock(z0,z6,btex $\mathcal{C}$ etex);
|
||||
|
||||
drawState(z0, btex $A$ etex);
|
||||
drawState(z1, btex $B$ etex);
|
||||
drawState(z2, btex $C$ etex);
|
||||
|
||||
drawoptions(withcolor base01);
|
||||
drawState(z3, btex $D$ etex);
|
||||
|
||||
drawoptions(withcolor base01);
|
||||
drawarrow largeloop(z3,z3 shifted (0,3.8u)) dashed evenly;
|
||||
drawarrow largeloop(z3,z3 shifted (0,4u)) dashed evenly;
|
||||
drawState(z4, btex $E$ etex);
|
||||
draw z5 -- z6 dashed withdots withpen pencircle scaled 2bp;
|
||||
drawEdge(z3,z3, btex $id_D$ etex);
|
||||
drawEdge(z4,z4, btex $id_E$ etex);
|
||||
drawarrow edgeAngle(z3,z4,0) dashed evenly;
|
||||
drawarrow edgeAngle(z3,z4,20) dashed evenly;
|
||||
drawarrow edgeAngle(z3,z4,-20) dashed evenly;
|
||||
draw z5 -- z6 dashed withdots withpen pencircle scaled 2bp;
|
||||
|
||||
drawoptions(withcolor yellow);
|
||||
drawarrow largeloop(z3,z3 shifted (0,3.5u)) dashed evenly;
|
||||
drawEdge(z3,z3, btex $id_D$ etex);
|
||||
drawloop(z3,z3 shifted (0,2.5u),btex $\ell$ etex);
|
||||
|
||||
drawEdge(z0,z1, btex $f$ etex);
|
||||
drawEdgeWithAngle(z0,z1, btex $f'$ etex, 45);
|
BIN
categories/img/mp/morphisms.png
Normal file
After Width: | Height: | Size: 106 KiB |
|
@ -1,17 +1,19 @@
|
|||
drawoptions(withcolor yellow);
|
||||
|
||||
z0=(0,0);
|
||||
z1=z0 shifted (gu,0);
|
||||
z2=z1 shifted (gu,0);
|
||||
z3=1/2[z0,z1] shifted (0,-gu);
|
||||
z4=1/2[z1,z2] shifted (0,-gu);
|
||||
z3=z2 shifted (gu,-0.5gu);
|
||||
z4=z3 shifted (gu,0);
|
||||
z5=z4 shifted (1.5u,0);
|
||||
z6=z5 shifted (2u,0);
|
||||
|
||||
drawblock(z0,z6,btex $\mathcal{C}$ etex);
|
||||
draw z5 -- z6 dashed withdots withpen pencircle scaled 2bp;
|
||||
|
||||
drawoptions(withcolor yellow);
|
||||
drawState(z0, btex $A$ etex);
|
||||
drawState(z1, btex $B$ etex);
|
||||
drawState(z2, btex $C$ etex);
|
||||
|
||||
drawState(z3, btex $D$ etex);
|
||||
drawState(z4, btex $E$ etex);
|
||||
draw z5 -- z6 dashed withdots withpen pencircle scaled 2bp;
|
BIN
categories/img/mp/objects.png
Normal file
After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 964 KiB After Width: | Height: | Size: 964 KiB |
19
categories/renameSlideFic.sh
Executable file
|
@ -0,0 +1,19 @@
|
|||
#!/usr/bin/env zsh
|
||||
|
||||
i=10
|
||||
for fic in *.html; do
|
||||
title=$( <$fic grep h2 | sed 's/<[^>]*>//g;s/[^a-zA-Z]/_/g;s/__*/_/g;s/^_//;s/_$//')
|
||||
if ((i<100)); then
|
||||
num="0$i"
|
||||
else
|
||||
num="$i"
|
||||
fi
|
||||
((i+=10))
|
||||
newfic=${num}_$title.${fic:e}
|
||||
[[ $fic == $newfic ]] && { continue }
|
||||
[[ -e $newfic ]] && {
|
||||
print -- "$newfic already exists!" >&2
|
||||
continue
|
||||
}
|
||||
mv $fic $newfic
|
||||
done
|
|
@ -1,6 +0,0 @@
|
|||
<h2>Definition: Category</h2>
|
||||
|
||||
<div style="position:relative">
|
||||
<img src="img/mp/objects.png" alt="objects" style="position:absolute;top:0;"/>
|
||||
<img class="slide" src="img/mp/morphisms.png" alt="morphisms" style="position:absolute;top:0;"/>
|
||||
</div>
|
|
@ -1,9 +0,0 @@
|
|||
<h2>Definition: Category [Laws]</h2>
|
||||
<ul>
|
||||
<li>for all \(X\), there is an \(\id_X\), s.t. for all \(f:A\to B\)
|
||||
<img src="img/mp/identity.png" alt="identity"/>
|
||||
</li>
|
||||
<li> Composition is associative:
|
||||
<img src="img/mp/associativecomposition.png" alt="associative composition"/>
|
||||
</li>
|
||||
</ul>
|
|
@ -1,3 +0,0 @@
|
|||
<h2>Functor: Example</h2>
|
||||
|
||||
<img src="img/mp/functor-morphism.png" alt="Functor Morphisms"/>
|
|
@ -1,3 +0,0 @@
|
|||
<h2>Functor: Example</h2>
|
||||
|
||||
<img src="img/mp/functor-morphism-color.png" alt="Functor Morphisms"/>
|
Before Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 12 KiB |
|
@ -117,7 +117,7 @@
|
|||
border-right: none; }
|
||||
.deck-container ul {
|
||||
list-style: none; }
|
||||
.deck-container .corps ul li:before {
|
||||
.deck-container ul li:before {
|
||||
content: "- "; }
|
||||
.deck-container ol, .deck-container ul {
|
||||
padding-left: 0;
|
||||
|
|
|
@ -272,7 +272,7 @@ $secondTextColor: $base1
|
|||
ul
|
||||
list-style: none
|
||||
|
||||
.corps ul li:before
|
||||
ul li:before
|
||||
content: "- "
|
||||
|
||||
ol,ul
|
||||
|
|