Skip to content

Conversation

@kris-brown
Copy link
Collaborator

@kris-brown kris-brown commented Oct 6, 2025

This PR introduces a data structure for morphisms of diagrams $D:J \rightarrow C$ to $D': J'\rightarrow C$, each of which presents a C-Set viewing $D$ and $D'$. The morphisms we care about are morphisms between these (implicit) C-Sets.

The key features associated with this are checking whether a purported diagram morphism is natural and whether two diagrammatic morphisms represent the same C-Set morphism.

The way one refers to the elements of the sets underlying a C-Set, given a diagram $D:J->C$, is to give an object $j \in J$ and a morphism $D(j)\rightarrow c$ in $C$. There are many ways to refer to the same object. The key algorithm is zigzag which checks whether two such references have the same referent.

There is still some work to do in the documentation and finding good / rich / intuitive examples to run tests on to verify things are actually working properly.

@kris-brown kris-brown self-assigned this Oct 6, 2025
@kris-brown kris-brown added core Rust core for categorical logic and general computation enhancement New feature or request labels Oct 6, 2025
@epatters epatters changed the title Initial diagrammatic morphisms + validation Morphisms between diagrammatic instances: data structures and validation Oct 6, 2025
@epatters epatters marked this pull request as draft October 6, 2025 21:27
@github-actions
Copy link

github-actions bot commented Oct 8, 2025

clippy after rustup

some negative tests
epatters and others added 22 commits December 4, 2025 13:47
By taking Solid.js out of the notebook change handling, we can finally
implement this refactor. Not only is it conceptually cleaner to hand off
the whole notebook, this will eventually enable better error reporting
since errors can be attached to specific cells.
No idea why this wasn't an issue earlier.
This change decouples whether we're using document def IDs or Automerge
document IDs from the caching logic of the model library.
This didn't actually become a bug until very recently, when the model
library was introduced, but passing ownership in JavaScript is a big
footgun regardless.
Now that the frontend is caching elaborated models (via the model
library), it makes sense to make them cheaply cloneable.
---------

Co-authored-by: Matt Cuffaro <[email protected]>
Co-authored-by: Evan Patterson <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core Rust core for categorical logic and general computation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants