| Crates.io | caso |
| lib.rs | caso |
| version | 0.2.2 |
| created_at | 2022-03-23 09:53:47.253359+00 |
| updated_at | 2022-03-23 15:44:12.113517+00 |
| description | Category Theory Solver for Commutative Diagrams |
| homepage | https://github.com/advancedresearch/caso |
| repository | https://github.com/advancedresearch/caso.git |
| max_upload_size | |
| id | 555127 |
| size | 57,408 |
Category Theory Solver for Commutative Diagrams.
=== Caso 0.2 ===
Type `help` for more information.
> (A <-> B)[(A <-> C) -> (B <-> D)] <=> (C -> D)
(A <-> B)[(A <-> C) -> (B <-> D)] <=> (C <-> D)
To run Case from your Terminal, type:
cargo install --example caso caso
Then, to run:
caso
A commuative diagram in Caso is written in the following grammar:
<left>[<top> -> <bottom>] <=> <right>
This syntax is based on the notation for Path Semantics.
Caso automatically corrects directional errors,
e.g. when you type (a -> b)[(c -> a) -> ...] <=> ....
the c is wrong relative to a,
so, Caso corrects this to (a -> b)[(a <- c) -> ...] <=> ....
Higher morpisms are supported by counting - (1) and = (2) in the arrow.
For example, <-> is a 1-isomorphism and <=> is a 2-isomorphism.
| Morphism | Notation |
|---|---|
| Directional | -> |
| Reverse Directional | <- |
| Epi | ->> |
| Reverse Epi | <<- |
| Mono | !-> |
| Reverse Mono | <-! |
| Right Inverse | <->> |
| Left Inverse | <<-> |
| Epi-Mono | !->> |
| Reverse Epi-Mono | <<-! |
| Iso | <-> |
| Zero | <> |
Triangles can be expanded into commutative square using identity morphisms.
For example:
> (A <-> B)[(A -> C) -> (B -> C)] <=> (C -> C)
(A <-> B)[(A -> C) -> (B -> C)] <=> (C <-> C)
Here, C -> C is an identity morphism from C to itself.
Caso uses Avalog as monotonic solver.
The Avalog rules are located in "assets/cat.txt".
The automated theorem prover uses the following steps: