Skip to content

Literature gaps: zeta functions, conjugacy invariants, decisions, regex, entropy rates, correlations, predictive RD (3/4) - #25

Merged
Autoplectic merged 3 commits into
mainfrom
sofic-literature-gaps
Oct 8, 2026
Merged

Autoplectic merged 3 commits into
mainfrom
sofic-literature-gaps

Conversation

@Autoplectic

Copy link
Copy Markdown
Member

Stacked on #24 (base sofic-property-tests); retarget to main after #23 and #24 merge.

Implements the literature gaps C1–C10 from the correctness-and-coverage plan, each with docstring citations, a docs page, and tests against known values or brute force.

Shifts

  • C3 periodic_points(n) and zeta_function() for TMCs, SFTs and sofic shifts (Manning's signed-subset formula; Lind & Marcus §6.4). Exact integer counts; reproduces L&M Example 6.4.10 (even shift: (1+t)/(1−t−t²)).
  • C7 In-/out-state splitting and amalgamation with division and edge matrices (A = DE, A′ = ED; §2.4); bowen_franks_group (pure-integer Smith normal form, checked against sympy) and jordan_form_away_from_zero (§7.4). Splitting preserves h_top, periodic points, zeta, BF group and Jordan form in property tests.

Automata

  • C8 is_empty, accepted_word, is_universal, includes on LabeledAutomaton (antichains, De Wulf et al. 2006). BuchiAutomaton overrides with ω-semantics (is_empty, new accepted_lasso); Büchi universality/inclusion raise NotImplementedError.
  • C2 parse_regex / regex_to_nfa / NFA.from_regex (Thompson 1968); fixes automaton_to_regex ambiguity for multi-character symbols. Round-trip property tests.
  • C10 learn_dfa_k_testable (García & Vidal 1990).

Generators

  • C1 entropy_rate(method="auto"|"exact"|"bounds"|"blackwell") for non-unifilar HMMs; Cover & Thomas Thm 4.5.1 bounds and a Blackwell-measure estimator. SNS bounds bracket the exact renewal value 0.677867181.
  • C9 statistical_complexity_dimension (Jurgens & Crutchfield 2021); reproduces the Cantor (log 2/log 3) and Sierpinski (log₂ 3) examples.
  • C4 autocorrelation, power_spectrum, mutual_information_function in closed form (Riechers & Crutchfield 2018); Wiener–Khinchin and brute-force checks.
  • C5 predictive_rate_distortion (Still et al. 2010; Marzen & Crutchfield 2016; Tishby et al. 2000).
  • C6 relative_entropy_rate(p, q) (exact for unifilar q, ∞ without absolute continuity) and relative_entropy_rate_bounds (Gray 1990 §3.5).

Also

  • EpsilonMachine.from_hmm(max_states=...) (kwargs were silently ignored).
  • entropy_rate_hmm / state_distribution handle MixedState labels.
  • Fixed the riechers2017spectral2 citation (its DOI resolved to an unrelated paper).

Gates

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

Ryan James and others added 3 commits October 7, 2026 10:38
…x parsing, k-testable learning, non-unifilar entropy rate, complexity dimension, correlations, predictive rate-distortion, relative entropy rate

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…eference)

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 changed the base branch from sofic-property-tests to main October 7, 2026 23:55
@Autoplectic
Autoplectic merged commit 892763e into main Oct 8, 2026
46 of 48 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