FE-1509: Add the structural analyses β cycles and initial places - #9431
Draft
kube wants to merge 1 commit into
Draft
FE-1509: Add the structural analyses β cycles and initial places#9431kube wants to merge 1 commit into
kube wants to merge 1 commit into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
This was referenced Aug 29, 2026
Two pure, unit-tested analyses over the net's arc structure: - Cycle detection as iterative Tarjan strongly connected components, sized above one, labelled in document order. - Initial-place analysis as minimal siphons β the place sets nothing in the net can seed, unifying plain source places with resource pools that only circulate what they start with. Found by a polynomial greedy shrink; transitions referencing deleted places are excluded because they can never fire; capped at 100 places. Nothing consumes them yet; the layer above surfaces both in the cell list and the graph explorer. An authored arch-docs deep-dive records why each algorithm was chosen.
kube
force-pushed
the
claude/fe-1509-notebook-analyses-algorithms
branch
from
August 29, 2026 14:09
a010820 to
759a5dc
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
π What is the purpose of this PR?
The notebook's structural analyses as pure algorithms, stacked on #9408: cycle detection and initial-place (siphon) analysis over the net's arc structure. Nothing consumes them yet β the UI layer above surfaces both β so this PR reviews as two algorithms and their test suites.
π Related links
π What does this change?
net-cycles: cycles as iterative Tarjan strongly connected components, sized above one, labelled in document order. SCCs rather than elementary cycles because their count can be exponential and the reader's question is "these nodes feed back into each other".net-siphons: "which places must the initial marking cover" as minimal siphons β place sets nothing in the net can seed, unifying plain source places with resource pools that only circulate what they start with. Found per place by a polynomial greedy shrink from the maximal siphon; groups merely containing or overlapping a reported group are dropped for readability; transitions referencing deleted places are excluded because they can never fire; nets above 100 places skip the analysis rather than stall a render.notebook/graph-analyses) recording why each algorithm was chosen, linked from the notebook layer's README.Pre-Merge Checklist π
π’ Has this modified a publishable library?
This PR:
π Does this require a change to the docs?
The changes in this PR:
πΈοΈ Does this require a change to the Turbo Graph?
The changes in this PR:
π‘ What tests cover this?
net-cycles.test.ts: SCC detection, document-order labelling, membership maps.net-siphons.test.ts: source places, circulating pools, source transitions, contained-group filtering, stale-arc handling, and the shipped example nets (production machines, satellites, SIR).β How to test this?
npx turbo run test:unit --filter @hashintel/petrinautlibs/@local/petrinaut-arch-docs/content/notebook/graph-analyses.mdx.