Skip to content

Coupled generators, generator-state LP, support bounds, and a generative-model driver - #37

Open
Autoplectic wants to merge 5 commits into
mainfrom
coupled-generators
Open

Autoplectic wants to merge 5 commits into
mainfrom
coupled-generators

Conversation

@Autoplectic

Copy link
Copy Markdown
Member

Summary

Generators beyond the lifted search, a linear-programming test for generator states, support-based lower bounds, and a driver that brackets the generative complexity.

  • sofic.generators.coupled_generators
    • coupled_search / coupled_generative_model: minimize state entropy over all k-state generators (state law, beliefs about S+ and S-, and a free kernel) subject to the edge law and past/future consistency; augmented Lagrangian with analytic gradients.
    • memory_lift / memory_lift_search: state W_t = (V_t, V_{t+1}) with V_t ~ nu(. | B_t), so consecutive states share randomness.
    • generator_kernel: for a fixed channel the generator equations are linear in the kernel; a linear program returns the smallest violation and the kernel.
    • polish_separating_channel: re-solve a separating variable's decomposition exactly (dit's optima satisfy it only to a tolerance, enough to fail generator_kernel).
    • bilevel_search (experimental).
  • sofic.generators.generator_bounds: support_type_bound, a lower bound on G[S+ : S-] (hence C_g) from the rectangular supports of separating values.
  • sofic.generators.generative_search.generative_model: lower bounds, the persistent-crypticity check, polished exact-common-information optima tested with the kernel program, then ε-machines, memory lifts, deterministic and lifted channels, and the coupled search seeded with everything found; returns the best verified generator and a bracket [lower, upper] on C_g.

Results

process lifted search this PR bracket on C_g
golden mean 0.9183 0.9183 certified
(2,inf) run-length-limited 1.5 1.5 [1.4056, 1.5]
Z_t = Z_{t-2} xor Bern(0.1) 1.9911 1.9822 = 2h(4/9) upper bound

On all 142 binary unifilar 3-state topologies (43 searchable with positive persistent crypticity), the driver certifies C_g in 9, beats the lifted search in 7 of 25 (by up to 0.22 bits) and finds generators below C_mu in 15.

Test plan

  • pytest tests/test_coupled_generators.py tests/test_lifted_common_information.py (35 passed)
  • ruff check, ruff format --check, ty check on the new modules

Ryan James and others added 5 commits October 26, 2026 17:25
…r-kernel LP, and support-type lower bounds

Co-authored-by: Cursor <cursoragent@cursor.com>
…ma, search nested generator classes

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…sition and test each for generation

Co-authored-by: Cursor <cursoragent@cursor.com>
…redecessor flows, concave branch-and-bound)

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

This branch has not been deployed

No deployments
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