Uh oh!
There was an error while loading. Please reload this page.
Add tent-map ε-machine for the preimage-refined partition - #4
Open
Autoplectic wants to merge 1 commit into
Open
Conversation
The existing tent-map examples read the Misiurewicz-point dynamics through
the two-letter kneading partition, split only at the critical point.
Refining by both order-1 preimages of the critical point gives a four-letter
generating partition and a five-state ε-machine for the same dynamics, which
is the natural companion for comparing how the anatomy split depends on the
partition: both presentations share the entropy rate log2(a), but the refined
one has r_mu = 0.
Probabilities are derived in Q(a) from the exact interval Markov chain on the
forward-orbit closure of {c, L, R}. Reducing by the minimal polynomial
a**3 = 2a + 2 leaves every transition a quadratic in a with rational
coefficients, so unlike the kneading presentation none carries an a-dependent
denominator, and the rows normalize identically rather than only at the root.
The 2013 supplement figures cover only the kneading partition, so the
docstrings cite James et al. for the map, parameter and anatomy framework
while stating that this presentation is derived rather than reproduced.
Co-authored-by: Cursor <cursoragent@cursor.com>
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 freeto 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.
Summary
The tent-map examples currently read the Misiurewicz-point dynamics through the two-letter kneading partition, split only at the critical point
c = 1/2. This adds the natural companion: refining by both order-1 preimages ofc(L = 1/(2a)andR = 1 - 1/(2a)) gives a four-letter generating partition and a five-state ε-machine for the same dynamics.Having both makes the partition-dependence of the anatomy directly comparable. Both presentations are generating, so both have entropy rate
log2(a); only the split differs, and the refined one hasr_mu = 0.New in
sofic/examples/epsilon_machines.py, exported fromsofic.examples:tent_map_misiurewicz_preimage_forward(a=None)— the five-state, four-letter ε-machinetent_map_misiurewicz_preimage_symbol_matrices(a=None)— the underlyingT^(x)matricestent_map_misiurewicz_preimage_information_expected(a=None)— closed-form anatomyExact probabilities
Rather than tabulating floats, the machine was derived in
Q(a)from the exact interval Markov chain on the forward-orbit closure of{c, L, R}, enumerating belief states with exact arithmetic. Reducing by the parameter's minimal polynomiala**3 = 2a + 2collapses every transition to a quadratic inawith rational coefficients:(a² − 2)/2(4 − a²)/2(a² − 2a + 2)/6(4 + 2a − a²)/6(2 + a − a²)/2(a² − a)/21Unlike the kneading presentation, which carries denominators such as
2a² + 4a + 2, none of these has ana-dependent denominator, and the rows normalize identically inarather than only at the root.Vanishing ephemeral information
r_mu = 0here is structural, not a numerical2e-16. The machine is unifilar, no two edges share both a source and a target, and every branch leads to a state with a distinguishable future, so the past and the future together always name the emitted symbol. The docstring records the argument. The process remains strictly sofic — infinite Markov and cryptic order.Citations
James, Burke & Crutchfield (2013) is cited for the map, the Misiurewicz parameter and the anatomy framework, but that paper's supplement figures cover only the kneading partition. The docstrings and module header state explicitly that this presentation is derived from the interval Markov chain rather than reproduced from a figure, per the repo's literature-reference rule.
Test plan
tests/test_information_anatomy.py: topology and closed-form probabilities, stationary distribution, the nine forbidden two-blocks, entropy rate agreeing with the kneading partition, and the vanishingr_mutests/test_symbolic_hmm.py: rows sum to one identically for a free symbol, and substituting the root reproduces the numeric machineruff check/ruff format --checkcleanty checkat its 160-diagnostic baseline (no new diagnostics)sphinx-build -W --keep-goingsucceedsMade with Cursor