Unfortunatley Boop is written in Swift using Apple UI librarys and Apple’s JavascriptCore, so its not possible to use it on linux (or windows). I decide to rewrite it in Rust with GTK and Chrome’s V8 engine. The result is Boop-GTK.

Boop-GTK is completely cross-platform, feature complete (as far as I can tell) and script compatible with Boop. If you like the look of Boop, you will like Boop-GTK!

Check it out on Github: https://github.com/mrbenshef/Boop-GTK

Pull requests welcome :)

]]>The theme for Ludum Dare 46 was “keep it alive”. Inspired by the ongoing pandemic I created a game about protecting a cell. You play as a nanobot tasked with defending the nucleus from a virus.

You start with 25 seconds to prepare before the next wave. Fly around the edge of the cell to find where the viruses are planning to mount their attack. After the preparation timer is up, blast the hostile DNA they release.

Destroying the hostile DNA will drop protein points (PP). Once you have collected all the protein points head back to the nucleus and press E to interact. The nucleus allows you to purchase turrets with PP. Surrounding the nucleus are 3 mitochondria which offer powerful upgrades for PP.

Hopefully you are ready for the next round, because the virus is returning, and it wonâ€™t be so easily defeated this time!

- W - fly up
- S - fly down
- A - fly left
- D - fly right
- E - interact
- Left click - shoot

You can rate my game and others on ldjam.com.

]]>When analysing a logic, one property of interest is its’ completeness. A logic is complete iff every valid formula is provable, and by proof we mean every formula is derivable from a deductive system which comprises axioms and rules of inference.

In 1983 Kozen presented $\mu$-calculus in the form we know it today and gave a complete deductive system for a restricted version. It wasn’t until 1995 when Walukiewicz proved completeness for the full language with a stronger deductive system then with Kozen’s original axiomatization in 2000. In this report, we present an implementation of Walukiewicz original proof procedure.

The full report can be found here.

Note, some of these images are extremely large and may not display properly within a web browser, use an image viewer such as FEH.

Formula | Tableau | Automaton | Unwinding | Assignment |
---|---|---|---|---|

$\mu X_0. (p_0 \land \neg p_0) \lor \langle a_0 \rangle X_0$ | view | view | view | view |

$\mu X_0. (p_1) \land (\langle a_0 \rangle ((\langle a1 \rangle (((X_0) \lor (X_0)) \lor (p_0))) \land (\langle a_0 \rangle (X_0))))$ | view | view | view | view |

$\nu X_0. \mu X_1. \nu X_2. \nu X_3. (\langle a1 \rangle (\langle a_1 \rangle (X_1))) \land ((\langle a1 \rangle([a_1] (((p_1) \langle ((p_1) \lor ((X_1) \lor (X_2)))) \land (p_0)))) \lor ((\langle a0 \rangle (X_0)) \land ((p_1) \land (\langle a0 \rangle(X_3)))))$ | view | view | view | view |

$\mu X_0. \mu X_1. \nu X_2. \langle a_0 \rangle(([a_1] (((X_1) \land (X_0)) \land (X_1))) \land (([a_1] (X_2)) \land (\langle a_1 \rangle(X_0))))$ | view | view | view | view |