morphisms-of-computational-structures icon indicating copy to clipboard operation
morphisms-of-computational-structures copied to clipboard

Find out how the categorical duality between expressions and continuations can be grounded using initial and final algebras and co-algebras

Open prathyvsh opened this issue 4 years ago • 7 comments

Lectures on Semantics: The initial algebra and final coalgebra perspectives Peter Aczel (1997)

A Tutorial on (Co)Algebras and (Co)Induction: https://fldit-www.cs.tu-dortmund.de/~peter/JR.pdf Bart Jacobs, Jan Rutten (1997)

prathyvsh avatar Sep 15 '20 14:09 prathyvsh

Screen Shot 2020-09-15 at 10 41 45 PM Screen Shot 2020-09-15 at 10 41 55 PM

Function Programming with apomorphisms (Co-Recursion): http://cs.ioc.ee/~tarmo/papers/nwpt97-peas.pdf

prathyvsh avatar Sep 15 '20 17:09 prathyvsh

Alexandra Silva seems to be doing some great work vis à vis Coalgebra: https://alexandrasilva.org/#/talks.html

prathyvsh avatar Sep 26 '20 21:09 prathyvsh

An idiosyncratic definition of Coalgebras by Paul Blain Levy: https://www.cs.bham.ac.uk/~pbl/coalglect.pdf

prathyvsh avatar Sep 29 '20 16:09 prathyvsh

Interleaving data and effects: https://bentnib.org/interleaving.html

prathyvsh avatar Feb 20 '21 16:02 prathyvsh

This looks like an accessible work to understand structural corecursion and codata which uses examples in Agda and Scheme: https://arxiv.org/pdf/2103.06913v1.pdf

prathyvsh avatar Mar 20 '21 15:03 prathyvsh

Understanding the difference between data vs. codata

https://github.com/idris-lang/Idris-dev/wiki/Copatterns https://web.archive.org/web/20201209020710/http://www.tac-tics.net/blog/data-vs-codata http://www.jucs.org/jucs_10_7/total_functional_programming/jucs_10_07_0751_0768_turner.pdf http://blog.sigfpe.com/2007/07/data-and-codata.html https://www.cs.uoregon.edu/Reports/MS-201806-Sullivan.pdf

prathyvsh avatar May 08 '21 13:05 prathyvsh

An interesting thing to be noted here is how the algebraic structures (monoid, semigroups) etc. have free/forgetful variants. And how different laws on them such as associativity / commutativity etc. gives them certain guarantees. For example, the free monoid means that in the presence of just unit elements and associativity, there is a canonical representation for them. For example, on lists, the ++ is the operator for free monoid with the unit []. But Last is also a monoid, but since it doesn’t preserve the structure, it is not considered as the free version, so with + and * on natural numbers, there too, the concatenation operation is I think considered as the monoid. TODO: Is there a theorem that there will be one and only one free monoid?

Now an interesting thing to observe is that with associativity, both foldLeft and foldRight on monoids will collapse into a single structure. This is one interesting place where associativity’s nature of providing for multiple decomposition of a problem to one confluent representation shines through.

prathyvsh avatar Dec 10 '21 23:12 prathyvsh