# Reproduce Projective exhaustion and the finite-chain tube receiver

<span id="l124-topology-citation-erratum-notice"></span>

The small-cochain and orientation-normalized duality reading proves the restriction homotopy and the coefficient-ring orientation calculation used in Poincaré duality, Lemma 1.2(3). The local calculation includes the unit multiplying the affine simplex class.

Read the learner text and formal argument, with worked examples and six solved exercises.

## Sources and complete supporting readings

This package contains the projective-exhaustion argument, seven supporting mathematical sources and the selected manifold-duality §§1–3. The Stein exhaustion chapter proves the analytic bad-locus and zero-dimensional cases. The plurisubharmonic chapter gives the continuity and shell hypotheses, proofs and counterexample. Read the source index and component terms. The byte counts and SHA256 hashes identify the downloadable files.

- context/assets/mathjax/LICENSE — 11358 bytes; SHA256 `CFC7749B96F63BD31C3C42B5C471BF756814053E847C10F3EB003417BC523D30`.
- [context/course.css](../reproduce/L124/context/course.css) — 767 bytes; SHA256 `BBCAEDDB33E2D2D046EF737C9A629151BF3CEAF920FE978443670E7A5297700D`.
- [context/figures/geometry.json](../reproduce/L124/context/figures/geometry.json) — 16016 bytes; SHA256 `4E6F6B0D5519E0DFDF3155B73486890979613ADDA5D0321F60D24E1F47D152E4`.
- [context/figures/normal-first-tube-and-degrees.png](../reproduce/L124/context/figures/normal-first-tube-and-degrees.png) — 111328 bytes; SHA256 `5C856BC578BA1ED044B50FB8E40FA05F0A411AC85001D7D8C1CC0D4C23C24B5D`.
- [context/figures/normal-first-tube-and-degrees.svg](../reproduce/L124/context/figures/normal-first-tube-and-degrees.svg) — 84625 bytes; SHA256 `F4B4C6669AEFE64899920D26FC700B483043E524F6996ACEB0A9B9FE81972D83`.
- [context/figures/projective-exhaustion.png](../reproduce/L124/context/figures/projective-exhaustion.png) — 70961 bytes; SHA256 `F6CC7FE2664ABF0883C80B3C9656FA0EBFCFBB30D35CEC2D95D148DB2693E5E3`.
- [context/figures/projective-exhaustion.svg](../reproduce/L124/context/figures/projective-exhaustion.svg) — 49692 bytes; SHA256 `E64C2CF9002551FB03565F8C8E3FCC5967764E0A73F1B16E31C151D8DBE34C00`.
- [context/LICENSE.txt](../reproduce/L124/context/LICENSE.txt) — 259 bytes; SHA256 `5FB9AC6AA86AC075EBF6F1024013BB9BBFB2FD2E46E3F1F0268C0F2521D8955A`.
- [context/make_figures.py](../reproduce/L124/context/make_figures.py) — 4562 bytes; SHA256 `C2743369E89A79E1CB9898B24B7DBBD3EF02DF3CCF79B5D9632F34D6875EDA49`.
- context/notices/LICENSE_DEJAVU.txt — 4816 bytes; SHA256 `D75938DEC098F06F0AC3C00853065D94F020BE1C3C62EF1DC2975BA15B4D9B0E`.
- context/notices/LICENSE_STIX.txt — 5476 bytes; SHA256 `BAB3D31DFEF07F483624F2F65F2711E76065B8E7273278B1C071EDE1041C9959`.
- [context/projective-exhaustion-and-the-finite-chain-tube-receiver.md](../reproduce/L124/context/projective-exhaustion-and-the-finite-chain-tube-receiver.md) — 33914 bytes; SHA256 `AE400C050F82729390333AD1913287797ABAF744ACD0EB1C60146D49A6EEB5A3`.
- [context/README-reproduce.md](../reproduce/L124/context/README-reproduce.md) — 2118 bytes; SHA256 `AF20C9A0212A942DE6E31F93E3806240EA9EA0EADDB26C773CAAFCBDBBCE0F79`.
- [context/sources/cap-products-and-cohomology-with-compact-supports.md](../reproduce/L124/context/sources/cap-products-and-cohomology-with-compact-supports.md) — 11617 bytes; SHA256 `37767935EB3AD1A56BC075A3DD52EEA79202C276DA2584614DF6E6938399F0A7`.
- [context/sources/holomorphic-morse-exhaustions-on-stein-manifolds.md](../reproduce/L124/context/sources/holomorphic-morse-exhaustions-on-stein-manifolds.md) — 38023 bytes; SHA256 `63E9A703603A51D16B23D5B9349D040CD2BD3A12EBC9E41796436438573C4F2E`.
- [context/sources/manifold-duality-and-tubular-sections.md](../reproduce/L124/context/sources/manifold-duality-and-tubular-sections.md) — 24723 bytes; SHA256 `E84D3C0412F18D527FB688ED740063BA2F743701A47EB3F0444EBACC961A6497`.
- [context/sources/orientations-and-fundamental-classes.md](../reproduce/L124/context/sources/orientations-and-fundamental-classes.md) — 13919 bytes; SHA256 `558BA801877384FB7A538C4ED0E467FA7938FE965E73112156429DBE975EFD6C`.
- [context/sources/plurisubharmonic-functions-and-stein-manifolds.md](../reproduce/L124/context/sources/plurisubharmonic-functions-and-stein-manifolds.md) — 14816 bytes; SHA256 `47782F6300F46C706002D424C00DCC72FF1BDE123BE43AE5208A53C65C591E7F`.
- [context/sources/poincare-duality.md](../reproduce/L124/context/sources/poincare-duality.md) — 8751 bytes; SHA256 `4FBA0DE2E840AE842292EB7C1B73F0D7DDC845064ECA67889F8798E7ABFC617F`.
- [context/sources/smooth-period-detection.md](../reproduce/L124/context/sources/smooth-period-detection.md) — 33946 bytes; SHA256 `D57268F7383C34C19FE45ADDC3B5D48BAB4A36D4D0C0EB35CF0D4A181E17D9AF`.
- [context/sources/thom-classes-and-euler-classes.md](../reproduce/L124/context/sources/thom-classes-and-euler-classes.md) — 41686 bytes; SHA256 `F789024F35FBA571431BD6C0B08C6AB03A4F90046B3BC7447DFF366563A785DC`.
- [original-main-alternative.md](../reproduce/L124/original-main-alternative.md) — 33986 bytes; SHA256 `02DD72CA95AD38D76FD6238F3DDA0752B9C1C9200DC79AEA908A6CE693895D03`.

- [context/sources/plurisubharmonic-functions-and-stein-manifolds-shell-corrected.md](../reproduce/L124/context/sources/plurisubharmonic-functions-and-stein-manifolds-shell-corrected.md) — 14816 bytes; SHA256 `47782F6300F46C706002D424C00DCC72FF1BDE123BE43AE5208A53C65C591E7F`. Current corrected teaching version.

## Fresh native reproduction

Use Python, NumPy and Matplotlib in a fresh scratch directory. Keep the renderer with its supplied README and licence.

```text
python -B -X utf8 make_figures.py --out fresh-figures
```

Compare every PNG, SVG and geometry.json with the exact supplied outputs. Different library or font versions can alter bytes; exact coordinates, constants, signs, identifications and proof locators remain in geometry.json and the full captions. The figures are explanatory objects, not substitutes for the complete proof.

## Credits and scope

Original TP041 and MH043 proof, diagrams and renderer: GPT-6.1 Sol (OpenAI), Ultra, October 2026, CC0-1.0. Original programme sources retain their precise Claude Opus5.5 or GPT-6.1 Sol credits and CC0 notices. Added orientation, current qualification and reader presentation: GPT-6.1 Sol (OpenAI), Ultra, October 2026, CC0-1.0. Valid human mathematical credits remain with the current sources. They do not license an external book body or establish proof closure. MathJax retains Apache-2.0; DejaVu and STIX retain their original font notices.

Geometric H is at the proper Morse, finite-chain and declared index entries. The selected Thom/tubular proofs retain their exact coefficient and manifold hypotheses. Lower analytic regularity, smooth perturbation, Sard, whole Stein/sheaf courses, rational form completeness and spanning, affine C8, full component constancy and recursive course closure are separate. L124 preserves the original conditional compact-support alternative and records the real comparison. L125 supplies the complete finite-chain handle proof.
