fdilke / bewl

A DSL for the internal language of a topos
60 stars 3 forks source link
algebraic-structures category-theory dsl math topos-theory

Project Bewl

A DSL for the internal (Mitchell-Benabou) language of a topos.

Bewl is an ambitious and quixotic attempt to enable new techniques for manipulating set-like objects (permutations, musical objects, graphs, fuzzy sets, etc) as if they were sets. This involves a mix of advanced Scala and ludicrously abstract math. The most likely applications (still some way down the line) are to music theory or to the continuing quest for a proper explanation of permutation parity. It is also possible to use Bewl as an aid to learning category theory or as a computational algebra package where you can easily define your own algebraic structures.

To see the current to-do list and state of play, you can view this Trello board. There's also a continuous integration setup which runs all the tests on each commit.

Presentations explaining the project

Some of these are more accessible than others: pick one that's right for you.

In May 2018, I gave a talk about Bewl for S-REPLS 9 at the University of Sussex (slides, video) Requires some math.

My attempt at explaining Bewl for a general audience on cruft.io : Towards an arithmetic of sets

Using Bewl to do musical calculations - putting the chord of C major under the microscope

Overall state of play as of January 2016.

See this presentation for an attempt at "the internal language for dummies"

I've had to keep re-implementing Bewl in successively more powerful programming languages (Java, Clojure and now Scala). Now learning Idris, which is an amazing language and may be the next logical step.

This presentation explains the new "intrinsic" Bewl 2.0 DSL and why it's better than the previous "diagrammatic" 1.0 one.

Here's a presentation about Bewl's universal algebra capabilities.

This animated video was an initial attempt to explain Bewl (back when it was called Bile)

Notes on some promising breakthroughs re speeding up the topos of actions

Parity

This presentation describes my simplistic but ambitious plan to solve the mystery of permutation parity by calculating the double exponential monad for ¬, the permutation interchanging true and false. Here's one about the topos of automorphisms, another chapter in the ongoing parity quest. Here's an update. (Since then, I've decided it would be easier to generalize the transfer using the theory of Coxeter groups, but that's another story.)

Music

Here I relate Bewl to Thomas Noll's paper about music theory and topoi

Category theory tutorials

Refresher on strong monads.

If you want to use Bewl as a learning aid to study category theory, start here.

Intended applications

Done so far

To do