finiteness-and-chi: FiniteDimensional H¹(X, O_D) via Schwartz/Montel (namespace #
RS/RS.Finiteness)
API summary (see docs/design/finiteness-and-chi.md). Unit COMPLETE: all 7 design files are
written, zero sorries, scripts/check.sh Jacobian/Finiteness passes. No file uses the
forbidden tactic.
Schwartz.lean(namespaceRS, pure Banach — zero project imports):schwartz_finite_cospan(the L. Schwartz perturbation lemma, cospan/span form: a compact perturbation of a surjectiveCLMbetween Banach spaces has finite-codimensional range),finiteDimensional_of_cospan(consumer wrapper),FiniteDimensional.of_linearMap_ker_range(finite-kernel + finite-codomain ⇒ finite domain — the extension helper reused everywhere downstream). Mirrors mathlib's ownContinuousLinearMap.exists_preimage_norm_leproof texture.BddHolo.lean(namespaceRS.Finiteness):BddHoloOn S(bounded-holomorphic functions on↥Sas a closedSubmoduleof↥S →ᵇ ℂ—isClosed_bddHoloOnvia a chart-local uniform-limit argument, henceCompleteSpace (BddHoloOn S)),restrictCLM(norm≤ 1, presheaf lawrestrictCLM_restrictCLM), the germ bridgestoGerm/evalAt_toGerm/toGerm_restrict_comm(germification intoLinSysOn 0) andrestrictGerm/toGerm_restrictGerm/restrictGerm_toGerm(de-germification viaholoRepronS' ⋐ S,[T2Space X] [CompactSpace X]).CompactRestrict.lean:isCompactOperator_restrictCLM— Montel's theorem: forS' ⋐ S ⊆ source (chartAt ℂ x₀),restrictCLM : BddHoloOn S → BddHoloOn S'is a compact operator (built fromJacobian/Forms/Montel.lean'sisCompact_closure_montelFamily). AlsoisCompactOperator_of_isCompactOperator_val(Compat: aCLMinto a closed submodule is compact once its ambient-valued composite is, viaSubtype.isCompact_iff).Chain.lean:ShrinkChain X(Forster's𝔚 ⋐ 𝔙 ⋐ 𝔘 ⋐ 𝔘*same-index-set chain, D3) withShrinkChain.nonempty(existence on[T2Space X] [CompactSpace X]), the four inducedCech.FinCover ⊤s (coverStar/coverU/coverV/coverW) and refinement facts (good_star,ref_star_U/ref_star_V/ref_star_W/ref_U_V/ref_V_W/ref_U_W, allτ = id); the Banach cochain layer at one level (NC0/NC1,deltaCLM,NZ1— bounded cocycles as aContinuousLinearMap.ker, closed and complete for free —resNC0/resNC1/resZ, and the cocycle-relation workhorseNZ1.rel_res/resNC1_mapsTo_NZ1); and Forster's 14.6(b) Banach geometry:tradeDefect(the defect CLM onZ¹(𝔘) × Z¹(𝔙) × C⁰(𝔚)),tradeSpace(Forster's subspaceLas itsContinuousLinearMap.ker, complete + normed instances registered),mem_tradeSpace_iff/mem_tradeSpace_iff_eq, and the two Schwartz-cospan projectionstradePi/tradeCompact.TradeBounded.lean(the gated centerpiece):isCompactOperator_resZ_UV/isCompactOperator_tradeCompact(§4.4's finite-PiMontel assembly, closing outChain.lean's deferred obligation); the Banach ↔ Čech germ bridgestoGermZ1/boundZ1/boundZ1C0(D5, viacoverOfP— arfl-equal stand-in forT.coverU/T.coverV/T.coverWthat sidesteps a hardisDefEqwall on nestedLinSysOn/MeroGermOnascriptions, see the file's docstrings onstarPairMem/starPairGerm/cC1/wPairMemfor the general pattern);trade_evalAt(the "repr_cocycle" pointwise evaluation ofexists_trade's conclusion);tradePi_surjective(Forster 14.6(a) upgraded to the Banach layer — the Schwartz surjectivity input);classMap(§5 step 8) with its two Schwartz-consumer propertiesclassMap_tradeDiff_eq_zeroandclassMap_surjective(§5 step 9).H1Finite.lean:finiteDimensional_h1Cover_W(the Schwartz cospan assembly at a fixedShrinkChain) ⇒finiteDimensional_H1_zero(FiniteDimensional ℂ (H1 (0 : Divisor X)), Forster §14's headline) ⇒finiteDimensional_H1(FiniteDimensional ℂ (H1 D)for ALLD, §7, via cech's six-term skyscraper fragment — decision D2, NOT twisted norms). Records theaddCommGroupH1Compat instance (AddCommGroup (H1 D)does not resolve by plaininferInstancein this codebase — a documented cech gotcha; supplied explicitly viaModule.DirectLimit.addCommGroup).Chi.lean:finiteDimensional_linSys(FiniteDimensional ℂ (LinSys D)for ALLD, same six-term recipe applied towindowMap); the χ ledgerh1 D/chi D := (l D : ℤ) − (h1 D : ℤ);sixterm_ranks(the shared rank-nullity bookkeeping);chi_of_le/chi_single_add/chi_eq_chi_zero_add_degree(the ledger identities);chi_zero_add_degree_le_l/exists_ne_zero_mem_linSys(the Riemann-inequality seed, exact names canonical-forms' §D9 Existence gate consumes);l_mono/l_le_l_add_degree/h1_le_of_le/h1_le_h1_add_degree(monotonicity corollaries).