Layer 1 core: Wright-Fisher knowledge-transmission model with E1-E2
Scaffold plus the Layer 1 analytical core and the first two experiments. - knowledge/: truth, metrics, teachers (2.7.1 shared-switch construction), step, lineage, experiment, config, seeding (imported as `knowledge`). - Validation spine green: neutral decay (Pred 1), fixation (Pred 2), exact mutation-drift equilibrium (Pred 3), union coverage (Pred 5). 68 tests pass. - E1 reproduces tail-first collapse. E2 delivers the headline: a grounding phase boundary g* << 1, with stationary H tracking the exact H_eq closed form (g=0.005 -> 68% of truth diversity; g=0.05 -> 96%). - Reproducibility: uv venv from a hash-pinned uv.lock is the source of truth; every run writes results.parquet + resolved_config.yaml + manifest.json (lib versions, git commit, sha256). Figures and manifests tracked; the large regenerable parquet is gitignored. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
commit
a6eb9b7512
33 changed files with 4356 additions and 0 deletions
38
README.md
Normal file
38
README.md
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
# The Lamarckian Society — Layer 1 (analytical core)
|
||||
|
||||
A parametric population-genetics model of knowledge transmission across generations of
|
||||
learning agents. Knowledge transmission is modelled *literally* as a Wright–Fisher
|
||||
process (not by analogy): a model's knowledge is a distribution `p_t` over `K` discrete
|
||||
items; a fixed true distribution `p*` has a rare tail; each generational step is
|
||||
"sample from the parent (drift) + mix in fresh real samples (grounding/immigration) +
|
||||
refit." Model collapse is the loss of rare alleles under drift.
|
||||
|
||||
See `paper/blueprint.md` (the normative build spec) and
|
||||
`paper/the-lamarckian-society-v4.md` (the perspective paper).
|
||||
|
||||
## Reproduce
|
||||
|
||||
Environment is a `uv` venv built from the committed, hash-pinned `uv.lock` — that
|
||||
lockfile is the single source of truth for "it runs" (Layer 1 is pure NumPy/SciPy and
|
||||
bitwise-reproducible from a seed; no container needed).
|
||||
|
||||
```bash
|
||||
# one-time: install uv (https://astral.sh/uv)
|
||||
curl -LsSf https://astral.sh/uv/install.sh | sh
|
||||
|
||||
uv sync # build .venv from uv.lock
|
||||
make test # correctness + scientific-validation tests (the spine of trust)
|
||||
make layer1 # run experiments E1–E6
|
||||
make figures # regenerate figures from committed results
|
||||
```
|
||||
|
||||
## Layout
|
||||
|
||||
```
|
||||
src/knowledge/ Layer 1 package (imported as `knowledge`)
|
||||
configs/layer1/ one YAML per experiment (E1..E6)
|
||||
figures/ plot_EX.py — read results.parquet only
|
||||
tests/ test_correctness.py + test_scientific_validation.py (analytic checks)
|
||||
paper/ blueprint.md, perspective paper, figure_manifest.md
|
||||
results/ written artifacts (gitignored; hashes tracked in manifest.json)
|
||||
```
|
||||
Loading…
Add table
Add a link
Reference in a new issue