useful-notes/hassan/001-similar-projects.md
Hassan Abedi 929c71488a WIP
2026-03-04 12:37:56 +01:00

7.7 KiB

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.