7.7 KiB
7.7 KiB
Projects Related to Geolog
Chase-Based & Geometric Logic Tools
| Project | Language | Description | Key Features | Link |
|---|---|---|---|---|
| Chase (Ramsdell) | OCaml | Model finder for finitary geometric logic. Uses an input syntax called "Geolog" — likely the direct namesake of this project. | Minimal model finding, partial functions, tree visualization of chase output, Prolog-like input syntax (.gl files) |
github.com/ramsdell/chase |
| Rusty Razor | Rust | First-order model finder using the chase algorithm. Converts arbitrary FOL to geometric normal form. | Homomorphically minimal models, no upfront bound required, model space exploration, provenance tracking | github.com/salmans/rusty-razor |
| Geometric Logic for Policy Analysis (Sagha, Naumov, Dougherty) | Haskell | Chase-based prototype for analyzing access control policies as geometric theories. | Jointly universal model sets, policy verification, comparison with SAT-based tools like Kodkod/Margrave | Paper (PDF) |
Applied Category Theory Tools
| Project | Language | Description | Key Features | Link |
|---|---|---|---|---|
| Catlab.jl | Julia | Framework for applied and computational category theory. The most mature library in this space. | Generalized algebraic theories (GATs), C-sets/acsets, chase algorithm, wiring diagrams, limits/colimits | github.com/AlgebraicJulia/Catlab.jl |
| CatColab (Topos Institute) | Rust + TypeScript | Collaborative web environment for formal, interoperable conceptual modeling. Closest in spirit to Geolog's vision. | Notebook UI, multiple domain-specific logics, collaborative editing, double-theory framework, visualization | github.com/ToposInstitute/CatColab / catcolab.org |
| AlgebraicJulia (ecosystem) | Julia | Broader ecosystem around Catlab for scientific computing with category theory. | Agent-based modeling, differential equations, epidemiological modeling, Petri nets | algebraicjulia.org |
Relational/Formal Specification Tools (Broader Family)
| Project | Language | Description | Key Features | Link |
|---|---|---|---|---|
| Alloy Analyzer | Java | The most well-known lightweight formal methods tool. Relational logic + bounded model finding via SAT. | Signatures/relations, SAT-based Kodkod engine, bounded scope checking, graphical counterexamples, temporal logic (v6) | alloytools.org / GitHub |
Theoretical Foundations
| Work | Author(s) | Description | Link |
|---|---|---|---|
| Geometric Logic as a Specification Language (1994) | Steven Vickers | Seminal paper proposing geometric logic as the basis for a Z-like specification language. The intellectual ancestor of Geolog. | Springer / PDF |
| Geometric Logic in Computer Science (1993) | Steven Vickers | Introduction to geometric logic, categorical logic, toposes, and their applications in computer science. | Springer |
What Makes Geolog Distinctive
Compared to the above projects, Geolog combines several features that no single existing tool offers together:
- Typed theories with geometric axioms (like Chase/Razor) but with a richer sort/function/relation vocabulary (closer to Catlab)
- Dependent/parameterized theories — theories can take instances of other theories as parameters (e.g.
theory (N : PetriNet instance) Marking) - Nested instances — instances can contain instances of parameterized theories inline
- Chase + equality saturation — not just model finding but collapsing equivalent terms (as in the Category example)
- Persistent, append-only storage with version control — designed as infrastructure, not just a one-shot tool
- Interactive REPL — explore and mutate instances dynamically, unlike batch-mode model finders
- Constructive proof witnesses — the Petri net showcase demonstrates solutions as typed diagrammatic objects, not just boolean answers
Changelog
- Feb 27, 2026 -- The first version was created.