MachineSex/README.md
Giorgio Gilestro a6eb9b7512 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>
2026-07-04 18:10:18 +02:00

38 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 WrightFisher
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 E1E6
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)
```