Last active
April 12, 2019 18:52
-
-
Save kenwebb/74d4eb44421f1e0732b0ffdb6b21d855 to your computer and use it in GitHub Desktop.
MIT course - Applied Category Theory
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<!--Xholon Workbook http://www.primordion.com/Xholon/gwt/ MIT License, Copyright (C) Ken Webb, Fri Apr 12 2019 14:52:28 GMT-0400 (Eastern Daylight Time)--> | |
<XholonWorkbook> | |
<Notes><![CDATA[ | |
Xholon | |
------ | |
Title: MIT course - Applied Category Theory | |
Description: | |
Url: http://www.primordion.com/Xholon/gwt/ | |
InternalName: 74d4eb44421f1e0732b0ffdb6b21d855 | |
Keywords: | |
My Notes | |
-------- | |
April 10, 2019 | |
Applied Category Theory [1] | |
Instructor(s): Dr. David I. Spivak, Dr. Brendan Fong | |
MIT Course Number: 18.S097 | |
As Taught In: January IAP 2019 | |
Level: Undergraduate | |
Course Description: | |
Category theory is a relatively new branch of mathematics that has transformed much of pure math research. | |
The technical advance is that category theory provides a framework in which to organize formal systems and by which to translate between them, | |
allowing one to transfer knowledge from one field to another. | |
But this same organizational framework also has many compelling examples outside of pure math. | |
In this course, we will give seven sketches on real-world applications of category theory. | |
video [6 12:00+] | |
- first example | |
- I immediately see this as being about hyperedges and time | |
- I would implement using 4 Person nodes, who regulary move between Day and Night, at school and at work | |
- microbes spread by becoming part of one Person in one environment, and then hopping over to another person in a second environment | |
- David describes it in a different way | |
- partitions | |
32:30 | |
- surjection from B to A (from Person to Family) | |
- in my Xholon model: | |
go xpath(../TimesOfDay/TimeOfDay[@roleName='Night']/Family[1]) | |
this defines a port (inferred) | |
- KSW thoughts on this video | |
- the Avatar actions in my Example model, parallel David's actions while drawing on the blackboard (they both involve time) | |
- the Avatar XPath expressions compose two arrows wothin the tree, an arrow to an ancestor and an arrow to a descendant | |
- Question: if each Family is part of a Set, how do I know which family Parent and Kid both belong to? | |
- my XPath expressions use and explicit index | |
- David says something about this in video 33:nn | |
- the Avatar actions form a Recipe; see stuff on Graphical Linear Algebra | |
References | |
---------- | |
(1) https://ocw.mit.edu/courses/mathematics/18-s097-applied-category-theory-january-iap-2019/ | |
(2) http://brendanfong.com/ | |
(3) http://brendanfong.com/7sketches.html | |
18.S097: Applied Category Theory | |
No prior knowledge of category theory is assumed; we will build up from the basics to the advanced theory over the series of lectures. | |
Students are very welcome to audit. | |
(4) https://arxiv.org/abs/1803.05316 | |
Seven Sketches in Compositionality: An Invitation to Applied Category Theory | |
Brendan Fong, David I Spivak | |
(5) http://brendanfong.com/7sketches_files/flyer.pdf | |
(6) https://www.youtube.com/watch?v=UusLtx9fIjs&t=525s&index=2&list=PLhgq-BqyZ7i5lOqOqqRiS0U5SwTmPpHQ5 | |
first lecture | |
Generative Effects (cascade/emergent properties) | |
(7) https://jvns.ca/blog/2019/03/26/what-are-monoidal-categories/ | |
Julia Evans | |
In this post I’m going to try to talk about Seven Sketches in Compositionality: An Invitation to Applied Category Theory using mostly plain English. | |
(8) https://www.reddit.com/r/compositionality/ | |
]]></Notes> | |
<_-.XholonClass> | |
<PhysicalSystem/> | |
<Example/> | |
<!-- types of stuff used in Example 1 --> | |
<Person superClass="Avatar"/> | |
<People/> | |
<TimeOfDay/> | |
<TimesOfDay/> | |
<Family/> | |
<School/> | |
<Work/> | |
<!-- types of stuff used in Example 2 --> | |
<Partitioner superClass="Avatar"/> | |
<Thing/> | |
<Things/> | |
<Place/> | |
<Placez/> | |
</_-.XholonClass> | |
<xholonClassDetails> | |
</xholonClassDetails> | |
<PhysicalSystem> | |
<!-- example 1 --> | |
<Example roleName="vid1 1200"> | |
<People> | |
<Person roleName="Parent"> | |
wait 1 | |
go xpath(../TimesOfDay/TimeOfDay[@roleName='Night']/Family[1]) | |
wait 1 | |
go xpath(../../TimeOfDay[@roleName='Day']/Work) | |
</Person> | |
<Person roleName="Kid"> | |
wait 1 | |
go xpath(../TimesOfDay/TimeOfDay[@roleName='Night']/Family[1]) | |
wait 1 | |
go xpath(../../TimeOfDay[@roleName='Day']/School) | |
</Person> | |
<Person roleName="Friend"> | |
wait 1 | |
go xpath(../TimesOfDay/TimeOfDay[@roleName='Night']/Family[2]) | |
wait 1 | |
go xpath(../../TimeOfDay[@roleName='Day']/School) | |
</Person> | |
<Person roleName="Coworker"> | |
wait 1 | |
go xpath(../TimesOfDay/TimeOfDay[@roleName='Night']/Family[3]) | |
wait 1 | |
go xpath(../../TimeOfDay[@roleName='Day']/Work) | |
</Person> | |
</People> | |
<TimesOfDay> | |
<TimeOfDay roleName="Night"> | |
<Family/> | |
<Family/> | |
<Family/> | |
</TimeOfDay> | |
<TimeOfDay roleName="Day"> | |
<School/> | |
<Work/> | |
</TimeOfDay> | |
</TimesOfDay> | |
</Example> | |
<!-- example 2 | |
There are 5 ways to partition the 3 things amongst the 3 places. | |
(a)(b)(c) | |
(ab)(c) | |
(ac)(b) | |
(a)(bc) | |
(abc) | |
Question: how should we think about the 3 places, or maybe it's incorrect to think about the "sets/bins" as places? | |
I could represent (ab)(c) as ()(ab)(c) or (ab)()(c) or (ab)(c)() | |
- David says something about this, and mentions isomorphisms/homeomorphisms? | |
TODO: | |
I probably need to implement this a different way, using Set and port, rather than using an Avatar behavior. | |
--> | |
<Example roleName="vid1 41nn"> | |
<Things> | |
<Thing roleName="aaa"/> | |
<Thing roleName="bbb"/> | |
<Thing roleName="ccc"/> | |
</Things> | |
<Placez> | |
<Place roleName="One"/> | |
<Place roleName="Two"/> | |
<Place roleName="Three"/> | |
</Placez> | |
<Partitioner/> | |
</Example> | |
</PhysicalSystem> | |
<Partitionerbehavior implName="org.primordion.xholon.base.Behavior_gwtjs"><![CDATA[ | |
var ava, beh = { | |
postConfigure: function() { | |
ava = this.cnode.parent(); | |
$wnd.xh.root().append(this.cnode.remove()); | |
ava.action("who"); | |
ava.action("where"); | |
ava.action("look"); | |
ava.action("enter things;take;next;put aaa in One;put bbb in Two; put ccc in Three;"); | |
ava.println(this.cnode); | |
ava.println(ava); | |
}, | |
act: function() { | |
//me.println(this.toString()); | |
} | |
} | |
//# sourceURL=Partitionerbehavior.js | |
]]></Partitionerbehavior> | |
<SvgClient><Attribute_String roleName="svgUri"><![CDATA[data:image/svg+xml, | |
<svg width="100" height="50" xmlns="http://www.w3.org/2000/svg"> | |
<g> | |
<title>Example</title> | |
<rect id="PhysicalSystem/Example" fill="#98FB98" height="50" width="50" x="25" y="0"/> | |
<g> | |
<title>Height</title> | |
<rect id="PhysicalSystem/Example/People" fill="#6AB06A" height="50" width="10" x="80" y="0"/> | |
</g> | |
</g> | |
</svg> | |
]]></Attribute_String><Attribute_String roleName="setup">${MODELNAME_DEFAULT},${SVGURI_DEFAULT}</Attribute_String></SvgClient> | |
</XholonWorkbook> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment