Skip to content

Feature/weak bisim inductive - #141

Open
mlaveaux wants to merge 3 commits into
MERCorg:mainfrom
mlaveaux:feature/weak-bisim-inductive
Open

mlaveaux wants to merge 3 commits into
MERCorg:mainfrom
mlaveaux:feature/weak-bisim-inductive

Conversation

@mlaveaux

Copy link
Copy Markdown
Collaborator

Overview

Added an inductive weak bisimulation variant that uses marked dirty states to only update required signatures before splitting. Benchmarks show that this does work for some examples in the VLTS benchmark set.

Screenshot 2026-10-15 202953

Copilot AI balanced review requested due to automatic review settings October 15, 2026 19:20

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

Unreclaimed historical signatures cause quadratic memory growth on linear-size inputs.

1 open finding
What changed in this PR

Adds dirty-state tracking to inductive weak bisimulation, limiting signature recomputation before partition splitting.

Changes:

  • Implements dirty-state refinement with regression and randomized tests.
  • Generalizes signature helpers for persistent storage.
  • Routes reduction and comparison through the new algorithm while retaining naive variants.
File Description
crates/​reduction/​src/​signatures.rs Generalizes signature inputs using AsRef.
crates/​reduction/​src/​signature_refinement.rs Adds dirty-state refinement and tests.
crates/​reduction/​src/​reduce.rs Adds algorithm variants and updates reduction dispatch.
crates/​reduction/​src/​compare.rs Updates comparison dispatch for both variants.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +747 to +750
let signature: OwnedSignature = Rc::from(builder.as_slice());
let key = key_to_signature.len();
id.insert(signature.clone(), key);
key_to_signature.push(signature);
@mlaveaux mlaveaux self-assigned this Oct 15, 2026
@mlaveaux mlaveaux added the enhancement New feature or request label Oct 15, 2026
@mlaveaux
mlaveaux force-pushed the feature/weak-bisim-inductive branch from 9653443 to 581a67a Compare November 6, 2026 15:24

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants