The challenge-signature mapping degree (proper-map-degree, file 1 of 3) #
Unit: proper-map-degree (docs/design/proper-map-degree.md ยง3.1). Root-level wrapper of
RS.degree (Jacobian/MappingDegree/Degree.lean) matching the EXACT signature the challenge
file (docs/Jacobian_challenge.lean:147) demands.
_root_.ContMDiff.degree (f : X โ Y) (hf : ContMDiff ๐(โ) ๐(โ) ฯ f) : โโ the degree of a holomorphic map between compact Riemann surfaces;0for constant maps, elseRS.degree f.ContMDiff.degree_eq,ContMDiff.degree_of_forall_eq,ContMDiff.degree_compโ restated corollaries in wrapper form (statement bank, API parity withRS.degree/RS.degree_comp).
Deviation from the design doc (proper-map-degree.md ยง3.1): the design's sketch declared
variable {f : X โ Y} (implicit). The challenge file's own preamble
(docs/Jacobian_challenge.lean:104, variable (f : X โ Y) (hf : ContMDiff ๐(โ) ๐(โ) ฯ f))
declares f explicit โ confirmed load-bearing by its own call site
pushforward_pullback's RHS (ContMDiff.degree f hf) โข P, which applies f positionally. To
match "the exact challenge signature" this file declares f explicit throughout; hf.degree
(dot notation) still works since f is fully determined by unification against hf's type.
The degree of a holomorphic map between compact Riemann surfaces (challenge signature,
docs/Jacobian_challenge.lean:147). Equal to 0 for constant maps (RS.degree_of_forall_eq),
otherwise the usual mapping degree (RS.degree). One-line wrapper โ RS.degree already has the
right junk-0 convention definitionally, no case split needed. [Nonempty Y] (needed by
RS.degree) is discharged for free by ConnectedSpace.toNonempty
(Mathlib.Topology.Connected.Basic:636).
Equations
- ContMDiff.degree f _hf = RS.degree f
Instances For
Restated junk convention in wrapper form (RS.degree_of_forall_eq, unfolded).
Functoriality, restated in wrapper form (statement bank; no critical consumer identified,
kept for API parity with RS.degree_comp).