NeSyCat · v0.x · 2026

Category theory, structured for neuro-symbolic AI.

The divide between AI and category theory is deep. NeSyCat begins to close it — not by proving new categorical results about AI, but by structuring the plethora of existing ones into a bridge between categorical-logic syntax/semantics and the Haskell type system.

Read the paper GitHubOpen editor
Logic · AI · Semiotics
§ 1 What is NeSyCat?

A bridge — not a new continent.

NeSyCatNeuro-Symbolic Category— applies the results that decades of category-theory research have already proven, organising them into a form a programmer can actually pick up. The structural spine is the duality between categorical-logic syntax and semantics, mirrored in Haskell's type system.

The framework is laid out in six layers — Categorical, Logical, Domain, Grammatical, Inferential, Statistical — each with the same six components: theory, vocabulary, category, type system, parameters, training. A formula written in the grammatical layer specialises simultaneously to a probabilistic universe (measure theory, Dist monad) and a geometric one (smooth maps, Identity monad for gradient training).

The reference implementation lives in HaskTorch — a Haskell project mirroring the layers one-for-one — and the visible surface for assembling diagrams lives in Semiotics, the in-browser string-diagram editor.

§ 2 Three pillars

Theory, implementation, editor.

Logic
The formal core. Categorical logic, monads, and the syntax/semantics duality that lets a single formula specialise to classical, fuzzy, and probabilistic readings — published as a paper on arXiv.
Read on arXiv
AI
The neuro-symbolic implementation. HaskTorch ports the categorical framework into Haskell — modules per theoretical layer, runnable benchmarks, a binary-classification example wired through measure-theoretic and geometric universes.
View on GitHub
Semiotics
The diagram editor. Compose shapes, wire their points, round-trip diagrams as JSON — the visible surface for authoring the string diagrams that the codegen layer compiles to runnable code.
Open editor
§ 3 The six layers

From category to metric, in six steps.

Each layer specifies six interrelated components: a theory, vocabulary, category, type system, parameters, and training. Each HaskTorch module mirrors one layer.

α01Categorical
Picks the ambient category (Cat or Hask) and the paradigm-specific monads. Sets the stage for everything above it.
β02Logical
Equips a truth sort with a 2Mon-BLat of connectives and quantifiers. Cartesian-closed: Set, QBS for measure, Dflg for geometry.
γ03Domain
Declares non-logical sorts and function symbols — the actual objects of the theory: tensors, reals, measurable sets.
δ04Grammatical
Generates formulas via a context-free grammar combining domain and logical symbols. The CCC into which both Logical and Domain embed.
ε05Inferential
Turns formulas into a combined loss J(θ) = (1−λ)·J_data + λ·J_know. Where data and knowledge meet.
ζ06Statistical
Provides evaluation metrics — accuracy, F1, precision. The thin top layer that connects back to ML practice.
§ 4 Papers

Read the foundations.

NeSyCat: A Monad-Based Categorical Semantics of the Neurosymbolic ULLER Framework

Daniel Romero Schellhorn · Till Mossakowski · 2026-04-27 · cs.AI / cs.LO / math.CT / math.LO

ULLER (Unified Language for LEarning and Reasoning) offers a unified first-order logic (FOL) syntax, enabling its knowledge bases to be used directly across a wide range of neurosymbolic systems. The original specification endows this syntax with three pairwise independent semantics: classical, fuzzy, and probabilistic, each accompanied by dedicated semantic rules. We show that these seemingly disparate semantics are all instances of one categorical framework based on monads, the very construct that models side effects in functional programming. This enables the modular addition of new semantics and systematic translations between them. As example, we outline the addition of generalised quantification in Logic Tensor Networks (LTN) to arbitrary (also infinite) domains by extending the Giry monad to probability spaces. In particular, our approach allows a modular implementation of ULLER in Python and Haskell, of which we have published initial versions on GitHub.

@misc{schellhorn2026nesycat,
  title         = {NeSyCat: A Monad-Based Categorical Semantics of the Neurosymbolic ULLER Framework},
  author        = {Schellhorn, Daniel Romero and Mossakowski, Till},
  year          = {2026},
  eprint        = {2604.24612},
  archivePrefix = {arXiv},
  primaryClass  = {cs.AI},
  url           = {https://arxiv.org/abs/2604.24612},
}
Read on arXiv PDF
§ 5 Source

All on GitHub.

Theory paper sources, the Haskell implementation, the Semiotics editor, and this site — all under the NeSyCat organisation.

github.com/NeSyCat