Happy new year, all! Pleased to announce the release of tlauc, a
TLA⁺ unicode converter tool written in rust and using the tree-sitter grammar under the hood. You can find it here:
https://github.com/tlaplus-community/tlauc
This is a library & command line tool you can use to convert ASCII TLA⁺ specs to use unicode-equivalent symbols. For example:
S^+ == {e \in S : e > 0}
Infinitesimal == \A x \in Real^+: \E y \in Real^+: y < x
becomes
S⁺ ≜ {e ∈ S : e > 0}
Infinitesimal ≜ ∀ x ∈ ℝ⁺: ∃ y ∈ ℝ⁺: y < x
Currently it successfully round-trip-converts all specs in the tlaplus/examples repo while maintaining the same parse tree, so you can be pretty sure it'll be able to handle your spec. Don't hesitate to file an issue if it doesn't, though! I look forward to hearing about what people do with it.
Andrew Helwer
P.S. do submit your specs to the tlaplus/examples repo if you have time, it is difficult to emphasize how helpful it is in the development of tools like this!