The project (algae) is a algebraic specification tool. This means it is intended to allow you to write algebraic specs, in which you define your data types (sorts), operations (ops), and the the equations chatacterizing the operations (axioms). It is a formal specification technique. I designed because I want something to pratice/improve my proof theory skills, so, distinct from Lean4 or Roqc, all the proof information is visible in the surface syntax, but it still lack ergonomics.
About the tutorial and the game, I want it to be "proof theory introction"-like but the generated proofs are really not as good as I want they to be. The dificult progressions does not exist, the help sometimes does not help, some lemmas provide the proof in their arguments. To fix that I will need to go proof by proof and fix the help manually and also work on the progression. The AI is terrible at generating the proofs (yes it was made with AI help but I have formal specs experience).
About the game, it may still be buggy, feel free to open issues at https://github.com/dhilst/algae/issues, and I will fix it. I want to provide a cool playground for ppl to learn proof theory and for me to pratice it too.
To me, what makes a game a game is that you can learn how it works simply by interacting with it; you don't need to open a separate wiki. That is not entirely true, as for examples fighting games have been infamous for needing to go online to learn how combos work, but this is widely considered to be a major factor of why the genre is unpopular, and recent games have tried to at least give proper tools (in training mode).
Right now, it feels a bit like a series of exercises with the guiding text replaced by dungeon fluff; it's pretty neat, yet you could as much say 'just give me the tutorial'.
In a game format I would for instance expect not to have to type the "proof [...] qed" part for example; its purpose is to be a bounding box, but interacting through text is cumbersome -- it isn't really for a developer who sees the benefit of plain text, but it is for a most users who might bang their head against the syntactic impedance mismatch.
To put that into perspective though, I remember Brett Victor's "Alligator Eggs", and the idea is very compelling; games are self-motivating, so if you can learn some real skills then you solved everything.
Combinatory logic, sequent calculi etc naturally lend themselves pretty well to the puzzle formats, yet I don't think there's anyone who really succeeded at any real implementation of it.
I'm mostly rambling my own view on the subject here, it's certainly an interesting experiment :-)
Have you looked at Metamath Zero[1] before? You mentioned using sorts which is what reminded me of it. Just thought I'd point to some additional interesting work :)
I sort of reverse engineered the first couple riddles (the help menu helped too) before really getting the logic here.
What I gathered:
- the paramaeters in lemma banish() are "given"
- the statement right after lemma banish() is what we want to prove
- all "wip" needs to replaced by something
- blocks need to be finished with "qed;"
I had the exact opposite experience. It doesn't teach the basics needed to even solve the first puzzle. Which language are we even writing in? Clicking help explains what exactly to do but not why, as well as lots of rules with unexplained terminology.
There is a tutorial: https://dhilst.github.io/algae
The project (algae) is a algebraic specification tool. This means it is intended to allow you to write algebraic specs, in which you define your data types (sorts), operations (ops), and the the equations chatacterizing the operations (axioms). It is a formal specification technique. I designed because I want something to pratice/improve my proof theory skills, so, distinct from Lean4 or Roqc, all the proof information is visible in the surface syntax, but it still lack ergonomics.
About the tutorial and the game, I want it to be "proof theory introction"-like but the generated proofs are really not as good as I want they to be. The dificult progressions does not exist, the help sometimes does not help, some lemmas provide the proof in their arguments. To fix that I will need to go proof by proof and fix the help manually and also work on the progression. The AI is terrible at generating the proofs (yes it was made with AI help but I have formal specs experience).
About the game, it may still be buggy, feel free to open issues at https://github.com/dhilst/algae/issues, and I will fix it. I want to provide a cool playground for ppl to learn proof theory and for me to pratice it too.
reply