- aext recalibrated to 0.275 against ATUS and social-media time-use data; baseline attention headroom now ~0.49 instead of rising to 0.65 - T03/T04 stages stay reproducible (t03_params, t04_params; verified) - organism_grid.py: factorial analysis; lineage ownership is the strongest organism lever, then membrane control, then attention protection (which acts on A, not on power); lineage x membrane complementary at baseline; organism governance without attention protection raises attention draw Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 1494246@bnt-lap001 Assistant-Session: caf6de6f-f9e4-47ce-a584-49baa271fa4b
63 lines
2.6 KiB
Python
63 lines
2.6 KiB
Python
"""Hypothesis P3 and scenario table for GADM-0.3 with wealth separated from power.
|
|
|
|
P3: wealth taxation alone does not bound domination P when the membrane
|
|
channel dominates. Test: sweep the wealth-tax lever wtax in [0, 1] in three
|
|
settings and compare wealth W with the channels it can and cannot reach.
|
|
|
|
Runs the T04 stage (gadm03.t04_params(): attention extraction as in GADM-0.2)
|
|
so the results in models/GADM-0.3.md § 3 stay reproducible after T05.
|
|
|
|
Usage: python3 -B simulations/gadm02/wealth.py
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
sys.dont_write_bytecode = True
|
|
|
|
import gadm03 as g # noqa: E402
|
|
from scenarios import load_all # noqa: E402
|
|
|
|
OUT = Path(__file__).resolve().parent / "results"
|
|
TAX = [0.0, 0.25, 0.5, 0.75, 1.0]
|
|
CASES = [
|
|
("baseline", "Baseline"),
|
|
("generative_concentrated_lineages", "Membrane/lineage-dominated (generative, concentrated lineages)"),
|
|
("automated_capitalism", "Wealth-heavy contrast (automated capitalism)"),
|
|
]
|
|
|
|
|
|
def main() -> None:
|
|
OUT.mkdir(exist_ok=True)
|
|
scs = load_all()
|
|
lines = [f"# {g.MODEL_VERSION} + wealth: hypothesis P3 and scenarios", "",
|
|
"Generated by `simulations/gadm02/wealth.py`. T04 stage of GADM-0.3 (wealth on,",
|
|
"GADM-0.2 attention extraction).",
|
|
"Final values at t = 100 years.", "",
|
|
"## P3: wealth tax sweep", ""]
|
|
for name, title in CASES:
|
|
sc = scs[name]
|
|
lines += [f"### {title}", "",
|
|
"| wtax | W | market | political | membrane | lineage | P | VFAC |",
|
|
"|---|---|---|---|---|---|---|---|"]
|
|
for t in TAX:
|
|
r = g.simulate({**sc["params"], **g.t04_params(), "wtax": t}, sc["init"])[-1]
|
|
lines.append(f"| {t:.2f} | {r['W']:.2f} | {r['Pm']:.2f} | {r['Ppol']:.2f} | "
|
|
f"{r['Pmem']:.2f} | {r['Plin']:.2f} | {r['P']:.2f} | {r['VFAC']:.3f} |")
|
|
lines.append("")
|
|
lines += ["## Scenarios: T03 stage vs. with wealth", "",
|
|
"| Scenario | P (T03) | P (+wealth) | W | market | political | VFAC (T03) | VFAC (+wealth) |",
|
|
"|---|---|---|---|---|---|---|---|"]
|
|
for name, sc in scs.items():
|
|
a = g.simulate({**sc["params"], **g.t03_params()}, sc["init"])[-1]
|
|
b = g.simulate({**sc["params"], **g.t04_params()}, sc["init"])[-1]
|
|
lines.append(f"| {sc['title']} | {a['P']:.2f} | {b['P']:.2f} | {b['W']:.2f} | {b['Pm']:.2f} | "
|
|
f"{b['Ppol']:.2f} | {a['VFAC']:.3f} | {b['VFAC']:.3f} |")
|
|
(OUT / "wealth.md").write_text("\n".join(lines) + "\n")
|
|
print("\n".join(lines))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|