Skip to content

Automata and shift ideas ported to processes (4/4) - #26

Merged
Autoplectic merged 3 commits into
sofic-literature-gapsfrom
sofic-process-ports
Oct 8, 2026
Merged

Autoplectic merged 3 commits into
sofic-literature-gapsfrom
sofic-process-ports

Conversation

@Autoplectic

Copy link
Copy Markdown
Member

Stacked on #25 (base sofic-literature-gaps); retarget to main after #23–#25 merge.

Implements the ports D1–D10 from the correctness-and-coverage plan, each with docstring citations, a docs page, and property/metamorphic tests.

Ports

  • D1 SlidingBlockCode.apply_to_process / image_process, and HiddenMarkovModel.higher_block(k). h_μ never increases under factor maps; E and C_μ are not conjugacy invariants (E(β_k X) = E(X) + (k−1)h_μ, asserted exactly).
  • D2 Process-preserving HMM out-/in-splitting (split_state) and amalgamate (Lind & Marcus §2.4; Upper 1997).
  • D3 minimal_quasi_realization and process_rank (Schützenberger 1961); dimension equals the brute-force Hankel rank.
  • D4 bisimulation_partition / coarsest_lumping (Larsen & Skou 1991); lump(partition=None) is the coarsest lumping.
  • D5 learn_epsilon_machine_active + ProcessOracle (Angluin 1987; Shalizi & Crutchfield 2001): exact on golden mean, even, nemo, butterfly and random machines with polynomial queries.
  • D6 Public support_nfa, support_includes, is_absolutely_continuous, support_equal.
  • D7 condition_on_language via the Doob h-transform; the uniform i.i.d. process conditioned on an irreducible SFT recovers its Parry measure.
  • D8 omega_probability for deterministic Büchi properties and regular_language_probability (Baier & Katoen 2008).
  • D9 renyi_entropy_rate (α ∈ [0, ∞]), pressure, rate_function (Rached et al. 2001; Dembo & Zeitouni 1998).
  • D10 Experimental canonical_residual_hmm (requires experimental=True; Denis et al. 2002; Maarand & Tamm 2022; Löhr & Ay 2009): strictly smaller than the ε-machine on a constructed 4-symbol example.

Fixes found along the way

  • EpsilonMachine.from_hmm split causal states that differed only by belief-update round-off (a fair-coin HMM gave 33 states, C_μ ≈ 2.46); numeric probabilities now compare within the mixed-state tolerance. Its docstring documents that numeric merging can close a converging infinite belief set at a finite approximation.
  • to_support_dfa accepted only terminal recurrent subsets and rejected words of positive probability (e.g. 1 for the even process).
  • entropy_rate/state_entropy with mixed int/tuple state labels; is_equal_process on sympy HMMs; DFA.add_transition with a new source state.

Gates

pytest -n 8: 2246 passed, 17 skipped. ruff check / ruff format --check clean. Fresh sphinx-build -W clean.

@Autoplectic
Autoplectic force-pushed the sofic-literature-gaps branch from a913c9e to 90f40bd Compare October 7, 2026 14:10
@Autoplectic
Autoplectic force-pushed the sofic-process-ports branch 2 times, most recently from 7a636b6 to 70daf1e Compare October 7, 2026 16:13
Ryan James and others added 3 commits October 7, 2026 10:38
…plitting, minimal quasi-realization, bisimulation, active epsilon-machine learning, support decisions, conditioning, omega-regular probability, Renyi spectrum, experimental canonical residual HMM

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…talls only the test extra)

Co-authored-by: Cursor <cursoragent@cursor.com>
@Autoplectic
Autoplectic force-pushed the sofic-literature-gaps branch from f15f70e to 8edf9ab Compare October 7, 2026 16:38
@Autoplectic
Autoplectic merged commit 2f97022 into sofic-literature-gaps Oct 8, 2026
48 of 64 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