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
kube
force-pushed
the
claude/fe-1509-notebook-analyses-algorithms
branch
from
August 29, 2026 14:09
a010820 to
759a5dc
Compare
kube
force-pushed
the
claude/fe-1509-notebook-analyses-algorithms
branch
from
August 30, 2026 04:54
759a5dc to
b18fcc2
Compare
kube
force-pushed
the
claude/fe-1509-notebook-analyses-algorithms
branch
from
August 30, 2026 13:07
b18fcc2 to
55f49d7
Compare
kube
force-pushed
the
claude/fe-1509-notebook-analyses-algorithms
branch
from
August 30, 2026 13:55
55f49d7 to
548c49f
Compare
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
September 3, 2026 22:44
548c49f to
f7b8055
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.
Important
Pure algorithms and tests, nothing user-facing on its own.
Summary
Before this PR, the notebook lists cells and draws the whole-net graph, but computes nothing structural about the net. Feedback loops and places the initial state must seed are invisible, and both are the questions a reader of a net asks first.
Adds the two analyses as pure functions over places, transitions and arcs: cycle detection and initial-place analysis. Nothing consumes them yet; the layer above surfaces both, so this PR reviews as two algorithms and their test suites, plus an authored page recording why each algorithm was chosen.
Links
Changes
net-cyclesfinds every feedback group as a strongly connected componentnet-siphonsfinds the place groups the initial marking must coverTest coverage
net-cycles.test.ts:net-siphons.test.ts:How to test
npx turbo run test:unit --filter @hashintel/petrinautnet-cyclesandnet-siphonssuites green