Repository navigation
Literature gaps: zeta functions, conjugacy invariants, decisions, regex, entropy rates, correlations, predictive RD (3/4) - #25
Merged
Conversation
Autoplectic
force-pushed
the
sofic-literature-gaps
branch
from
October 7, 2026 14:10
a913c9e to
90f40bd
Compare
…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
force-pushed
the
sofic-literature-gaps
branch
from
October 7, 2026 16:38
f15f70e to
8edf9ab
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.
Stacked on #24 (base
sofic-property-tests); retarget tomainafter #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
periodic_points(n)andzeta_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²)).bowen_franks_group(pure-integer Smith normal form, checked against sympy) andjordan_form_away_from_zero(§7.4). Splitting preserves h_top, periodic points, zeta, BF group and Jordan form in property tests.Automata
is_empty,accepted_word,is_universal,includesonLabeledAutomaton(antichains, De Wulf et al. 2006).BuchiAutomatonoverrides with ω-semantics (is_empty, newaccepted_lasso); Büchi universality/inclusion raiseNotImplementedError.parse_regex/regex_to_nfa/NFA.from_regex(Thompson 1968); fixesautomaton_to_regexambiguity for multi-character symbols. Round-trip property tests.learn_dfa_k_testable(García & Vidal 1990).Generators
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.statistical_complexity_dimension(Jurgens & Crutchfield 2021); reproduces the Cantor (log 2/log 3) and Sierpinski (log₂ 3) examples.autocorrelation,power_spectrum,mutual_information_functionin closed form (Riechers & Crutchfield 2018); Wiener–Khinchin and brute-force checks.predictive_rate_distortion(Still et al. 2010; Marzen & Crutchfield 2016; Tishby et al. 2000).relative_entropy_rate(p, q)(exact for unifilar q, ∞ without absolute continuity) andrelative_entropy_rate_bounds(Gray 1990 §3.5).Also
EpsilonMachine.from_hmm(max_states=...)(kwargs were silently ignored).entropy_rate_hmm/state_distributionhandleMixedStatelabels.riechers2017spectral2citation (its DOI resolved to an unrelated paper).Gates
pytest -n 8: 1983 passed, 17 skipped.ruff check/ruff format --checkclean. Freshsphinx-build -Wclean.