meromorphic-and-divisors (CC2/CC3): junk-free ℳ(X), divisors, L(D) (namespace RS) #
API summary (see docs/design/meromorphic-and-divisors.md):
- Chart layer (
Predicates.lean):MeromorphicAtX f x/MeromorphicOnX f U,ordAtX f x(chart-composite order); chart invariance, arithmetic, classification; CC4 compatibilityordAtX_of_contMDiffAt_eq_zero. - Codiscrete bridge (
CodiscreteBridge.lean, D2): for openU,codiscreteWithin Umembership /=ᶠ/ eventual properties are purely pointwise𝓝[≠] xstatements (eventuallyEq_codiscreteWithin_iff_of_isOpenand friends) — meromorphy-free. The meromorphic identity dichotomy on a connected surface:f =ᶠ[codiscrete X] 0or∀ x, ordAtX f x ≠ ⊤. - Germ space (
GermSpace.lean, D1/D6):MeroGermOn X U(a subalgebra ofFilter.Germ (codiscreteWithin U) ℂ; junk-free by construction),ℳ X := MeroGermOn X univ.MeroGermOn.mk/mk_eq_mk/exists_rep/ind, ring/algebra ops viamk;MeroGermOn.restrictas anAlgHom(Čech structure maps), with presheaf lawsrestrict_restrict/restrict_id. - Order and canonical value (
OrderEval.lean, D3/D5):MeroGermOn.ord/evalAtdescend fromordAtX(meromorphy-free congr);MeroGermOn.holoRepris the canonical repaired representative —holoRepr_contMDiffAt(honestly holomorphic wherever0 ≤ ord) andmk_holoRepr(recovers the class) are the rigidified normal form Čech needs. Field (ℳ X)(Field.lean,[T2Space X] [ConnectedSpace X]): pointwiseInv(unconditional),Mero.ord_eq_top_iff(dichotomy corollary), field axioms viaMero.mul_inv_cancel.- Divisors (
Divisor.lean, CC2/D7):Divisor X,Function.locallyFinsuppWithin.degree(Compat),MeroGermOn.divisorOn/divisor : ℳ X → Divisor X(total;divisor 0 = 0honestly), algebra (divisor_mul/inv/smul),divisor_nonneg_iff, compactness finiteness. L(D)(LinearSystem.lean, CC3/D4):LinSys D/l D,mem_linSys_iff_eq_zero_or_le_divisor(CC3's frozen shape recovered as a theorem),linSys_zero_eq_span_one/l_zero(Liouville), vanishing lemmas, the conditionallinSys_eq_bot_of_degree_neg,LinSysOn/mem_linSys_iff_forall_restrict(ČechH⁰(𝔘, O_D) = L(D)bookkeeping).- Sheaf gluing (
Gluing.lean, §6.6):MeroGermOn.exists_glue/glue_unique— compatible germ classes on an open cover glue uniquely, viaholoRepr's pointwise rigidity (no coherence lemma needed). The ČechH⁰engine. - Linear equivalence (
LinSysMulEquiv.lean, §6.7):linSysMulEquiv— multiplication by a nonzero class is aℂ-linear equivalenceL(D) ≃ₗ L(D - divisor φ)(riemann-roch's lattice tool).
Every export listed in the design doc §4.1–§4.7 and the six hard proof plans (§6.1–§6.7, including gluing) is proved; zero sorries.