The lines of the Lean statement that state the theorem, then the definitions in the file that it uses.
Local definitions the statement names, followed through the definitions they name in turn. The match is by name in the source text, so a name reached only through notation can be missed; the full file is below.
definition OAI.Nagata.AffineMultiplicity.pointIdeal line 42
def pointIdeal (point : σ → K) : Ideal (MvPolynomial σ K) := RingHom.ker (MvPolynomial.eval point)
definition OAI.Nagata.AffineMultiplicity.orderAtLeast line 45
def orderAtLeast (point : σ → K) (multiplicity : ℕ) (polynomial : MvPolynomial σ K) : Prop := polynomial ∈ pointIdeal point ^ multiplicity
definition OAI.Nagata.AffineMultiplicity.translateHom line 49
def translateHom (point : σ → K) : MvPolynomial σ K →+* MvPolynomial σ K := MvPolynomial.eval₂Hom MvPolynomial.C (fun index => MvPolynomial.X index + MvPolynomial.C (point index))
definition OAI.Nagata.AffineMultiplicity.ordinaryMultiplicity line 92
def ordinaryMultiplicity (point : σ → K) (polynomial : MvPolynomial σ K) (nonzero : polynomial ≠ 0) : ℕ := (translateHom point polynomial).support.inf' (translated_support_nonempty point polynomial nonzero) Finsupp.degree
abbreviation OAI.Nagata.ProjectiveGeometry.PlanePoint line 101
abbrev PlanePoint := Projectivization ℂ (Fin 3 → ℂ)
abbreviation OAI.Nagata.ProjectiveGeometry.OrderedDistinctPoints line 103
abbrev OrderedDistinctPoints (count : ℕ) := {points : Fin count → PlanePoint // Function.Injective points}
structure OAI.Nagata.ProjectiveGeometry.MultihomogeneousEquation line 106
structure MultihomogeneousEquation (count : ℕ) where polynomial : MvPolynomial (Fin count × Fin 3) ℂ multidegree : Fin count → ℕ homogeneous : ∀ exponent ∈ polynomial.support, ∀ index, (∑ coordinate : Fin 3, exponent (index, coordinate)) = multidegree index
definition OAI.Nagata.ProjectiveGeometry.equationVanishes line 112
def equationVanishes {count : ℕ} (equation : MultihomogeneousEquation count) (points : Fin count → PlanePoint) : Prop := ∀ (vectors : Fin count → Fin 3 → ℂ) (nonzero : ∀ index, vectors index ≠ 0), (∀ index, Projectivization.mk ℂ (vectors index) (nonzero index) = points index) → MvPolynomial.eval (fun index => vectors index.1 index.2) equation.polynomial = 0
definition OAI.Nagata.ProjectiveGeometry.IsProductZariskiClosed line 118
def IsProductZariskiClosed {count : ℕ} (locus : Set (Fin count → PlanePoint)) : Prop := ∃ equations : Set (MultihomogeneousEquation count), ∀ points, points ∈ locus ↔ ∀ equation ∈ equations, equationVanishes equation points
definition OAI.Nagata.ProjectiveGeometry.IsConfigurationZariskiClosed line 122
def IsConfigurationZariskiClosed {count : ℕ} (locus : Set (OrderedDistinctPoints count)) : Prop := ∃ ambient : Set (Fin count → PlanePoint), IsProductZariskiClosed ambient ∧ ∀ points, points ∈ locus ↔ points.val ∈ ambient
abbreviation OAI.Nagata.ProjectiveGeometry.ChartVariables line 127
abbrev ChartVariables (chart : Fin 3) := {coordinate : Fin 3 // coordinate ≠ chart}
definition OAI.Nagata.ProjectiveGeometry.dehomogenize line 129
def dehomogenize (chart : Fin 3) (polynomial : MvPolynomial (Fin 3) ℂ) : MvPolynomial (ChartVariables chart) ℂ := MvPolynomial.eval₂ MvPolynomial.C (fun coordinate => if equal : coordinate = chart then 1 else MvPolynomial.X ⟨coordinate, equal⟩) polynomial
definition OAI.Nagata.ProjectiveGeometry.chartCoordinates line 135
def chartCoordinates (chart : Fin 3) (point : PlanePoint) : ChartVariables chart → ℂ := fun coordinate => point.rep coordinate.val / point.rep chart
definition OAI.Nagata.ProjectiveGeometry.multiplicityAtLeast line 139
def multiplicityAtLeast (polynomial : MvPolynomial (Fin 3) ℂ) (point : PlanePoint) (multiplicity : ℕ) : Prop := ∀ chart : Fin 3, point.rep chart ≠ 0 → AffineMultiplicity.orderAtLeast (chartCoordinates chart point) multiplicity (dehomogenize chart polynomial)
abbreviation OAI.Nagata.Workers.W30.TernaryPolynomial line 157
abbrev TernaryPolynomial := MvPolynomial (Fin 3) ℂ
definition OAI.Nagata.Workers.W30.equationMultiplicity line 161
def equationMultiplicity (polynomial : TernaryPolynomial) : Associates TernaryPolynomial →₀ ℕ := factorization (Associates.mk polynomial)
definition OAI.Nagata.Workers.W30.associatePrincipalIdeal line 165
def associatePrincipalIdeal (associate : Associates TernaryPolynomial) : Ideal TernaryPolynomial := (Ideal.associatesEquivIsPrincipal TernaryPolynomial associate).val
definition OAI.Nagata.Workers.W30.equationIdealCycle line 169
def equationIdealCycle (polynomial : TernaryPolynomial) : Ideal TernaryPolynomial →₀ ℕ := (equationMultiplicity polynomial).mapDomain associatePrincipalIdeal
abbreviation OAI.Nagata.W16.PlanePolynomial line 188
abbrev PlanePolynomial := MvPolynomial (Fin 3) ℂ
structure OAI.Nagata.W16.NonzeroHomogeneousForm line 190
structure NonzeroHomogeneousForm (degree : ℕ) where polynomial : PlanePolynomial homogeneous : polynomial.IsHomogeneous degree nonzero : polynomial ≠ 0
definition OAI.Nagata.Workers.W10.EffectivePlaneCurve line 283
def EffectivePlaneCurve := {cycle : Ideal TernaryPolynomial →₀ ℕ // cycle ≠ 0 ∧ ∀ ideal ∈ cycle.support, ideal.IsPrime ∧ ideal ≠ ⊥ ∧ ideal.IsPrincipal ∧ ideal.IsHomogeneous (MvPolynomial.homogeneousSubmodule (Fin 3) ℂ)}
definition OAI.Nagata.Workers.W10.curveEquation line 289
def curveEquation (curve : EffectivePlaneCurve) : TernaryPolynomial := Classical.choose (exists_positive_degree_equation_of_homogeneous_cycle curve.val curve.property.1 curve.property.2)
definition OAI.Nagata.Workers.W10.curveDegree line 303
def curveDegree (curve : EffectivePlaneCurve) : ℕ := (curveEquation curve).totalDegree
definition OAI.Nagata.Workers.W10.curveForm line 309
def curveForm (curve : EffectivePlaneCurve) : NonzeroHomogeneousForm (curveDegree curve) := ⟨curveEquation curve, curveEquation_homogeneous curve, curveEquation_nonzero curve⟩
2 more definitions are reached the same way; the full file lists them.