Skip to content

Extended causal loop diagrams#664

Closed
tim-at-topos wants to merge 19 commits intomainfrom
ecld
Closed

Extended causal loop diagrams#664
tim-at-topos wants to merge 19 commits intomainfrom
ecld

Conversation

@tim-at-topos
Copy link
Copy Markdown
Contributor

@tim-at-topos tim-at-topos commented Aug 5, 2025

Implements a new logic of extended causal loop diagrams: causal loop diagrams labelled with differential degree and order of delay (both natural numbers).

This PR also adds a pre-processing function (catlog/src/stdlib/analyses/ecld/atomisations.rs) for future analyses, which is currently unused but included simply because it's already written (along with a simple test). If preferred, this could be moved to a separate PR :-)

To-do:

@tim-at-topos tim-at-topos added enhancement New feature or request core Rust core for categorical logic and general computation labels Aug 5, 2025
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Aug 5, 2025

@tim-at-topos
Copy link
Copy Markdown
Contributor Author

@jrb137 I think that catlog/src/stdlib/analyses/ecld/atomisations.rs is now ready for us read through and review, and then we can open this PR for proper review :-)

@tim-at-topos tim-at-topos force-pushed the ecld branch 3 times, most recently from dc7d32d to ac964c7 Compare August 26, 2025 04:09
jrb137 added 3 commits August 26, 2025 19:53
Morphism generator types changes from "deg" to "Degree", etc.
Previously all derivatives were named the same thing, resulting in an error.
@tim-at-topos tim-at-topos marked this pull request as ready for review September 7, 2025 06:12
Comment thread .rustfmt.toml
Comment thread math-docs/trees/dct-000C.tree Outdated
\taxon{doctrine}
\import{macros}

\p{Degree-delay signed categories are categories graded in the monoid #{\mathbb{N} \times \mathbb{N} \times \mathbb{Z}_2}. The two copies of #{\mathbb{N}} label edges by the \em{differential degree} and \em{order of delay}. The order of the differential degree is meant to indicate which derivative of the target is affected (linearly) by the source. For example, an edge #{A \to B} with degree 2 indicates a contribution of the form #{\ddot{B} \mathrel{+}= kA} for some #{k \in \mathbb{R}}. The \em{order of delay} only has meaning with the assumption that the delays are modelled stochastically by Erlang distributions with the same time-scale parameter (see, for example, [here](https://en.wikipedia.org/wiki/Erlang_distribution)). The labelling in #{\mathbb{Z}_2} indicates the "sign" of the influence, as described in \ref{dct-0002}.}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps worth explaining that the reason you're talking about the Erlang distribution is that it's a sum of i.i.d. Gammas, where the number of summands is the "order of delay" in the ECLD.

Comment thread math-docs/trees/thy-000C.tree Outdated
@@ -0,0 +1,4 @@
//! Utilities for analyses of ECLDs
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you planning to add more submodules here? If not, I'd suggest removing the extra directory level and having just stdlib/analyses/ecld.rs.

Comment thread packages/catlog/src/stdlib/analyses/ecld/atomisations.rs Outdated
Comment thread packages/catlog/src/stdlib/analyses/ecld/atomisations.rs
Comment thread packages/catlog/src/stdlib/analyses/ecld/atomisations.rs Outdated
Comment thread packages/catlog/src/stdlib/analyses/ecld/atomisations.rs
domains.insert(name("f"), 0);
domains.insert(name("g"), 2);
domains.insert(name("l"), 0);
domains
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto.

@tim-at-topos tim-at-topos marked this pull request as draft November 18, 2025 17:06
@epatters
Copy link
Copy Markdown
Member

@tim-at-topos, this PR has become pretty stale, unfortunately. Is this something that you'd still like to push forward? One thing that gives me pause is that I still don't really understand atomization or why it needs to be so complicated, though I'm sure there's a reason.

@tim-at-topos
Copy link
Copy Markdown
Contributor Author

atomization is complicated for simple reasons, but really this PR should be preceded by an RFC! feel free to close this and I'll write an RFC

@epatters
Copy link
Copy Markdown
Member

Ok, thanks! Happy to read such a document if/when you find the time for it.

@epatters epatters closed this Mar 23, 2026
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.

3 participants