The Mathematics of Anthropology
================================
Alexy Khrabrov - Version 1.1.0 - expanded teaching edition, 4 October 2026

This is the tutorial companion to The Dual Geometry of People and News. It
starts with the minimum vector prerequisites, then develops the person/article
incidence matrix, weighted profiles, the people SVD, forward/backward navigation,
time, evidence, and the proposed ontology calibration. The Mathematics of Eigen
Times remains the deeper prerequisite text; chapter links in the manuscript
point to its stable reader anchors.

Teaching edition and version policy
-----------------------------------
Version 1.1.0 expands the intermediate reasoning, definitions, worked arithmetic,
and mathematical checks. Both complete-text notebooks compute the worked examples
with native Python and OCaml. Upfront notation, a glossary, and a linked subject
index provide routes back to explanations. The dated empirical measurements and
historical evidence remain unchanged. New teaching content uses a minor version;
future corrections use patch increments. Every delivered name includes the
semantic version and the recorded source commit.

Ownership
---------
This directory is an independent book inside the Anthropology source repository.
Do not invoke the repository-root book config, which builds the research paper.
FIRSTPAIR.md records the exact nested-book build and publication contract.

Build and checks
----------------
From the repository root, regenerate the synthetic examples with:

  python3 papers/mathematics-of-anthropology/scripts/examples.py

The example generator requires NumPy and rsvg-convert. It writes SVG masters
and corresponding PNGs; no plotting library or news-archive access is needed.
The book toolchain is shared with The Mathematics of Eigen Times: Pandoc, Typst,
Poppler, FirstPair's pinned Python environment, and EPUBCheck 5.4.0 on Java.

  python3 papers/mathematics-of-anthropology/package.py build
  python3 papers/mathematics-of-anthropology/package.py verify

Set EPUBCHECK_JAR and EPUBCHECK_JAVA if EPUBCheck is installed elsewhere. Use
--firstpair-root on package.py build to choose another FirstPair checkout.

The book formats, shelf cover, public source ZIP, VERSION.md, and
package-validation.json are written under dist/. Build intermediates and the
EPUBCheck report stay under the repository's ignored tmp/anthropology-math/.
The Python validator checks the source inventory, output hashes, every local
resource and fragment, native MathML counts, figure/table counts, and heading
anchors in single HTML, chapter HTML, and EPUB. EPUBCheck must report no messages.
PDF layout also goes through FirstPair's layout validator. Render and inspect
every PDF page after the last material edit; structural checks do not establish
legibility by themselves.

Reproducibility and evidence
----------------------------
Small examples are synthetic and reproducible; they are not empirical estimates
of the live graph. The manuscript distinguishes deployed algorithms from future
ontology calibration and monitoring. Live-catalog numbers and profiles are dated
snapshots. Catalog growth does not imply a refit of the people-vector model.

The public source ZIP preserves repository-relative paths for this tutorial and
the supplied shelf headboard artwork, with a SHA-256 inventory. It excludes restricted news
archives, raw catalog data, secrets, and generated publication files. The bounded inventory excludes mutable notebook
receipts and reading copies so repeated builds do not change their own inputs. FirstPair
owns its reusable builder; the Anthropology repository owns this book's content.

Artwork
-------
The user's composed headboard, originally
~/src/anthropology/cover/anthropology-math.png, is preserved byte-for-byte in
assets/anthropology-math.png. Its exact bytes become both the shelf cover and
headboard; there is no additional wrapper, crop, or repeated title. The package
manifest records its origin and SHA-256. No artwork is inserted into the PDF or
EPUB body.
The files html-mathml.lua and book.build.json adapt the established Eigen Times
companion workflow, keeping native MathML in the browser and EPUB editions.

Complete study delivery
-----------------------
Use notebooks/build.py to build and execute the pair after committing and pushing
finished source. Export the readers, then run notebooks/check_pair.py. Draft work
uses --draft and an isolated EIGENMATH_ROOT. See notebooks/README.txt for commands.
With the notebook Python runtime, scripts/package_companion.py --verify-only
checks the book and teaching pair together against the recorded source revision.
After every final PDF page is visually reviewed, run scripts/package_companion.py
to deliver the PDF, EPUB, HTML, manifest and source/study ZIP to ~/icloud/papers.
Run notebooks/deliver.py for the separately versioned notebooks and saved readers.
Public FirstPair publication remains a separate operation.
