Our June meeting will be held on Monday 22 June at Microsoft, 1 Denison St (L27), North Sydney (opposite the Victoria Cross metro station). We will have people downstairs to get you up to level 27 (please arrive between 6pm and 6:15 if possible).
As usual, we will start with networking over snacks and drinks, and start the talk of the evening around 6:45pm.
The main talk of the evening will be Three lenses, one mess: logic programming for the rest of us by Burin Choomnuan (abstract below).
Before or after the main talk, the stage is open to impromptu Lightning talks. Have you recently found out something interesting about programming? Read a good paper? Crafted a new algorithm? Tell us about it, with or without slides, with or without preparation. The stage is yours!
See you on Monday 22nd, with or without lightning talk!
Burin Choomnuan: Three lenses, one mess: logic programming for the rest of us
Most of us last touched Prolog in university and haven’t seen it since. Quietly, logic programming has become a practical tool again — not for academic puzzles, but for the kinds of questions that imperative code answers badly: Who can do what? Is this consistent? Can this state actually happen?
This talk follows one concrete RBAC bug (“alice has admin · admins can delete · alice can’t delete”) through three different lenses, all in plain Clojure data:
- Prolog enumerates who — including transitive role inheritance.
- Z3 / SMT-LIB detects the contradiction and names the minimal conflicting subset.
- Mermaid → Prolog turns a state diagram into a reachability proof obligation.
A short live REPL demo sits in the middle. The talk closes with five minutes on why MCP — exposing solvers as LLM tools — turns out to be a structural fit, not hype: solvers don’t hallucinate