mapping-degree: the mapping degree of a holomorphic map between compact Riemann surfaces #
(namespace RS)
API summary (see docs/design/mapping-degree.md). Standing hypotheses throughout: F : X โ Y
between compact connected Riemann surfaces (X) and Riemann surfaces (Y), with
hF : ContMDiff ๐(โ) ๐(โ) ฯ F and global nonconstancy hne : ยฌ โ c, โ x, F x = c (the bridge
to every local-multiplicity hypothesis is not_eventuallyConst).
- Basics:
fiberMultSum F y(finsumofmultiplicityover the fiber; junk0for constantF); fibers of nonconstantFare closed/discrete/finite (fiber_finite); re-exportsisOpenMap_of_not_const',surjective_of_not_const'; surface perfectness instancenhdsNE_neBot_of_chartedSpace. - RootCounting (mathlib-only): the planar identity
sum_toNat_analyticOrderAt_pow_subโ the total multiplicity ofz โฆ z ^ kover anyw : โisk. - Ramification:
ramificationLocus,branchLocus,IsRegularValue; all finite/cofinite as expected (ramificationLocus_finite,branchLocus_finite,setOf_isRegularValue_mem_cofinite,dense_setOf_isRegularValue). - LocalStructure:
FiberStack F yโโ the stack of adapted charts over an arbitrary fiber (existence:exists_fiberStack), Forster's 4.24-proof mechanism generalized to count WITH multiplicity at every point ofY, branched or not. - LocalConstancy: the heart โ
isLocallyConstant_fiberMultSum, and THE well-definedness theoremfiberMultSum_const(fiberMultSumis independent of the basepoint). - Degree:
degree F : โ(well-defined byfiberMultSum_eq_degree;0for constant maps);ncard_fiber_of_isRegularValue(fiber cardinality = degree over regular values); degree-1 โ bijective โ homeomorphism (bijective_of_degree_eq_one,homeomorphOfDegreeEqOne,isHomeomorph_of_degree_eq_one);degree_comp(multiplicativity, statement bank, needs the extra instance[CompactSpace Y]). - Covering:
isCoveringMapOn_compl_branchLocusโFis a covering map off the (finite) branch locus (mathlib'sIsCoveringMapOn.of_openPartialHomeomorph); downstream may compose with mathlib'sIsCoveringMapOn.isCoveringMap_restrictPreimageandTopology/Homotopy/Lifting.leanfor path/homotopy lifting.
Downstream notes: ContMDiff.degree (final challenge API) is the one-line wrapper RS.degree f
โ junk-0 on constants holds definitionally, so the wrapper needs no case split.
proper-map-degree reads fiberMultSum_eq_degree at y := 0/y := โ on โยน for the
zeros-minus-poles identity; meromorphic-trace/form-trace-tower consume the whole FiberStack
structure; paths-and-integrals/abel-weak consume branchLocus_finite and
isCoveringMapOn_compl_branchLocus.