import Definitions.Def_ModularCurve_FullLevelSemistableCovering import Definitions.Def_AlgebraicCurve_Repartitions import Definitions.Def_AlgebraicCurve_IsCurveOver set_option autoImplicit false noncomputable section namespace ModularCurve.FullLevel open AlgebraicCurve IsLocalRing attribute [local instance] ModularCurve.instDecidableEqResidueFieldSemistable ModularCurve.instAlgebraResidueFieldModularFunctionFieldCSemistable variable {q : โ„•} [Fact q.Prime] {M' : โ„•} [NeZero M'] {A : ValuationSubring (AlgebraicClosure โ„š)} variable {SS : Finset (Place (ResidueField A) (modularFunctionFieldC (ResidueField A) M'))} namespace SemistableCovering def GenusClause (๐’ž : SemistableCovering q M' A SS) : Prop := AlgebraicCurve.genusFF (AlgebraicClosure โ„š) โ†ฅ(fieldBar q M') + (Nat.card (CuspidalType.ProjLine q) + SS.card) = โˆ‘แถ  โ„“ : CuspidalType.ProjLine q, AlgebraicCurve.genusFF (ResidueField A) (๐’ž.FIg โ„“) + โˆ‘ s โˆˆ SS.attach, AlgebraicCurve.genusFF (ResidueField A) (๐’ž.FSS s) + Nat.card (CuspidalType.ProjLine q) * SS.card + 1 def HasDiscFibres {Fbar : Type} [Field Fbar] [Algebra (ResidueField A) Fbar] (C : ComponentChart A (fieldBar q M') Fbar) : Prop := โˆ€ Q : Place (IsLocalRing.ResidueField A) Fbar, Q โˆ‰ C.nodes โ†’ โˆƒ (T : โ†ฅ(fieldBar q M')) (hT : T โˆˆ C.integers), C.residue โŸจT, hTโŸฉ โ‰  0 โˆง Q.ord (C.residue โŸจT, hTโŸฉ) = 1 โˆง (โˆ€ P โˆˆ C.dom, C.placeMap P = Q โ†’ T โˆˆ P.toValuationSubring โˆง โˆƒ h : P.evalAt T โˆˆ A, (โŸจP.evalAt T, hโŸฉ : A) โˆˆ IsLocalRing.maximalIdeal A) โˆง โˆ€ c : A, c โˆˆ IsLocalRing.maximalIdeal A โ†’ โˆƒ! P : Place (AlgebraicClosure โ„š) โ†ฅ(fieldBar q M'), P โˆˆ C.dom โˆง C.placeMap P = Q โˆง P.evalAt T = c def DiscFibreClause (๐’ž : SemistableCovering q M' A SS) : Prop := (โˆ€ โ„“, HasDiscFibres (๐’ž.CIg โ„“)) โˆง โˆ€ s, HasDiscFibres (๐’ž.CSS s) def CurveClause (๐’ž : SemistableCovering q M' A SS) : Prop := (โˆ€ โ„“, IsCurveOver (ResidueField A) (๐’ž.FIg โ„“) โˆง Algebra.EssFiniteType (ResidueField A) (๐’ž.FIg โ„“)) โˆง โˆ€ s, IsCurveOver (ResidueField A) (๐’ž.FSS s) โˆง Algebra.EssFiniteType (ResidueField A) (๐’ž.FSS s) end SemistableCovering end ModularCurve.FullLevel end