Skip to content

CSSR and transCSSR learn from independent Trials - #28

Merged
Autoplectic merged 2 commits into
mainfrom
cssr-multitrial
Oct 12, 2026
Merged

Autoplectic merged 2 commits into
mainfrom
cssr-multitrial

Conversation

@Autoplectic

Copy link
Copy Markdown
Member

Summary

  • Adds sofic.inference.Trials. When learn_epsilon_machine_cssr, learn_epsilon_transducer_cssr, and suggest_max_history get a Trials, they pool counts across trials. No history spans the boundary between two trials. A dit.inference.Trials is accepted too.
  • Adds SuffixCounts.from_sequences, and JointSuffixCounts.from_sequences now accepts paired Trials. A single sequence behaves exactly as before.
  • Documents transCSSR's Mealy convention: the transducer reads x_t, then emits y_t. To model a channel with delay d, shift the input by d.

Needed by infoflow's machine layer (dit/infoflow machines-layer).

Tests

  • New tests/test_cssr_trials.py:
    • Hypothesis property tests: pooled counts equal the per-trial sums, and no joint history spans two trials.
    • Learning from split trials gives the same topology as the unsplit sample (golden mean, even process, a binary channel).
  • The existing CSSR, transCSSR, and inference suites pass.

Made with Cursor

Ryan James and others added 2 commits October 10, 2026 20:46
Co-authored-by: Cursor <cursoragent@cursor.com>
…dit)

Co-authored-by: Cursor <cursoragent@cursor.com>
@Autoplectic
Autoplectic merged commit 823741e into main Oct 12, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant