feat(active_inference): four AIF extensions — precision sweep, cue-T-maze, Dirichlet learning, Lean identity#22
Merged
Conversation
…cue-maze, learning, Lean) Complete the survey's remaining AIF additions, each closed-form/deterministic, fully tested, figure-bound, and narrated as a machine-verified Results result. - Precision (gamma) sweep: q(pi)=softmax(-gamma*G); entropy + optimal-set mass vs precision; honest optimal-SET framing (absorbing-goal tie). 20 tests, 100%. - Cue-then-reward T-maze: resolves the 'too small / no advantage' null. Hidden reward context (info gain ln 2) makes epistemic value strictly necessary; sophisticated cue-sampling agent beats greedy by 4.0 nats; flat decomposition scores them identically (why observation-conditioned eval is required). 14 tests, 100%. - Dirichlet likelihood learning: pA<-pA+c; KL(A_true||A_learned) 0.74->1.3e-3 monotone. 16 tests, 100%. - Lean EFE additive identity: risk+ambiguity = -(pragmatic+epistemic) proved Mathlib-free via omega; axioms [propext, Quot.sound]; +6 tests. Three figures fully registered + hydrated tokens + Results prose each. Full suite 343/343, 90.7% (up from 90.3%); PDF renders (2.37 MB); ruff/mypy clean.
A freshly-published advisory against pip 26.1.1 (the CI runner's bundled installer, fixed in 26.1.2) makes the Security Scan pip-audit step fail on every PR + main, unrelated to any project code. pip is the environment's installer, not a runtime/shipped dependency of the template, so it is not an exploitable vector here, and the runner's pip cannot be pinned from the project (uv manages the env). Add it to the documented .github/pip-audit-ignore.txt with full justification + a re-evaluation trigger (remove once the runner ships pip>=26.1.2). Verified: 'pip-audit --ignore-vuln PYSEC-2026-196' -> No known vulnerabilities found, 1 ignored.
This was referenced Jun 5, 2026
Merged
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.
Completes the survey's remaining Active Inference additions (after the EFE decomposition #19/#20/#21), each closed-form/deterministic, fully tested, figure-bound, and narrated as a machine-verified result.
q(π)=softmax(−γG); entropy + optimal-set mass vs precision. Honest framing: the absorbing goal ties 2 policies, so concentration is optimal-set mass (→0.99 at γ=3), not one-hot. 20 tests, 100%.pA←pA+c;KL(A_true‖A_learned)falls monotonically 0.74→1.3e-3. 16 tests, 100%.risk+ambiguity = −(pragmatic+epistemic)proved Mathlib-free viaomega; axioms[propext, Quot.sound]; pinned in the audited-decl gate. +6 Python tests; existing Lean gates still pass.Three figures registered across all contracts (generator + figures.yaml + section_figures + REQUIRED_OUTPUTS + figure_source_map provenance); hydrated tokens + Results prose for each. Full active_inference suite 343/343, coverage 90.7% (up from 90.3%); PDF renders (2.37 MB); ruff/mypy clean; lake build clean.