Module

free_piece_of_isLocalRing_of_forall_relation_mem_span.lean

Nyll.AlgebraicCurves.Hilbert.free_piece_of_isLocalRing_of_forall_relation_mem_span
42 declarations indexed from sourceView source ↗

free piece of is Local Ring of forall relation mem span

Imports14
Imported by1

Declarations

AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.finite_homogeneousSubmodule
Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Pieces
variable {A : Type} [CommRing A]
theorem finite_homogeneousSubmodule (A : Type) [CommRing A] (d : ℕ) :
    Module.Finite A ↥(homogeneousSubmodule (Fin (n + 1)) A d)
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.free_homogeneousSubmodule
Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Pieces
variable {A : Type} [CommRing A]
theorem free_homogeneousSubmodule (A : Type) [CommRing A] (d : ℕ) :
    Module.Free A ↥(homogeneousSubmodule (Fin (n + 1)) A d)
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.decompose_eq
Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Pieces
variable {A : Type} [CommRing A]
theorem decompose_eq (q : MvPolynomial (Fin (n + 1)) A) (d : ℕ) :
    (DirectSum.decompose (homogeneousSubmodule (Fin (n + 1)) A) q d : MvPolynomial (Fin (n + 1)) A)
      =
      homogeneousComponent d q
GotzLocalLift.proj
Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Pieces
variable {A : Type} [CommRing A]
def _root_.GotzLocalLift.proj (A : Type) [CommRing A] (d : ℕ) :
    MvPolynomial (Fin (n + 1)) A →ₗ[A] ↥(homogeneousSubmodule (Fin (n + 1)) A d)
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.proj_apply_coe
Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Pieces
variable {A : Type} [CommRing A]
theorem proj_apply_coe (d : ℕ) (p : MvPolynomial (Fin (n + 1)) A) :
    (proj A d p : MvPolynomial (Fin (n + 1)) A) = homogeneousComponent d p
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.proj_of_mem
Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Pieces
variable {A : Type} [CommRing A]
theorem proj_of_mem (d : ℕ) (p : ↥(homogeneousSubmodule (Fin (n + 1)) A d)) :
    proj A d (p : MvPolynomial (Fin (n + 1)) A) = p
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.homogeneousComponent_mul_add
Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Pieces
variable {A : Type} [CommRing A]
theorem homogeneousComponent_mul_add {F : MvPolynomial (Fin (n + 1)) A} {m : ℕ} (hF :
  F.IsHomogeneous m)
    (a : MvPolynomial (Fin (n + 1)) A) (d : ℕ) :
    homogeneousComponent (m + d) (a * F) = homogeneousComponent d a * F
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.homogeneousComponent_mul_of_lt
Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Pieces
variable {A : Type} [CommRing A]
theorem homogeneousComponent_mul_of_lt {F : MvPolynomial (Fin (n + 1)) A} {m : ℕ} (hF :
  F.IsHomogeneous m)
    (a : MvPolynomial (Fin (n + 1)) A) {e : ℕ} (he : e < m) :
    homogeneousComponent e (a * F) = 0
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.map_homogeneousComponent
Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Pieces
variable {A : Type} [CommRing A]
theorem map_homogeneousComponent {B : Type} [CommRing B] (f : A →+* B) (d : ℕ)
    (p : MvPolynomial (Fin (n + 1)) A) :
    MvPolynomial.map f (homogeneousComponent d p) = homogeneousComponent d (MvPolynomial.map f p)
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.mem_span_iff
Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section SpanF
variable {A : Type} [CommRing A] {g m : ℕ}
  (F : Fin g → MvPolynomial (Fin (n + 1)) A) (hF : ∀ i, (F i).IsHomogeneous m)
theorem mem_span_iff (u : MvPolynomial (Fin (n + 1)) A) :
    u ∈ Ideal.span (Set.range F) ↔ ∃ a : Fin g → MvPolynomial (Fin (n + 1)) A, ∑ i, a i * F i = u
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.sum_mul_mem
Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section SpanF
variable {A : Type} [CommRing A] {g m : ℕ}
  (F : Fin g → MvPolynomial (Fin (n + 1)) A) (hF : ∀ i, (F i).IsHomogeneous m)
theorem sum_mul_mem (a : Fin g → MvPolynomial (Fin (n + 1)) A) :
    ∑ i, a i * F i ∈ Ideal.span (Set.range F)
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.homogeneousComponent_sum_mul_add
Source context 11 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section SpanF
variable {A : Type} [CommRing A] {g m : ℕ}
  (F : Fin g → MvPolynomial (Fin (n + 1)) A) (hF : ∀ i, (F i).IsHomogeneous m)
include hF
theorem homogeneousComponent_sum_mul_add (a : Fin g → MvPolynomial (Fin (n + 1)) A) (d : ℕ) :
    homogeneousComponent (m + d) (∑ i, a i * F i) = ∑ i, homogeneousComponent d (a i) * F i
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.homogeneousComponent_sum_mul_of_lt
Source context 11 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section SpanF
variable {A : Type} [CommRing A] {g m : ℕ}
  (F : Fin g → MvPolynomial (Fin (n + 1)) A) (hF : ∀ i, (F i).IsHomogeneous m)
include hF
theorem homogeneousComponent_sum_mul_of_lt (a : Fin g → MvPolynomial (Fin (n + 1)) A) {e : ℕ} (he :
  e < m) :
    homogeneousComponent e (∑ i, a i * F i) = 0
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.isHomogeneous_sum_mul
Source context 11 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section SpanF
variable {A : Type} [CommRing A] {g m : ℕ}
  (F : Fin g → MvPolynomial (Fin (n + 1)) A) (hF : ∀ i, (F i).IsHomogeneous m)
include hF
theorem isHomogeneous_sum_mul (a : Fin g → MvPolynomial (Fin (n + 1)) A) (d : ℕ)
    (ha : ∀ i, (a i).IsHomogeneous d) : (∑ i, a i * F i).IsHomogeneous (m + d)
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.exists_eq_sum_of_mem
Source context 11 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section SpanF
variable {A : Type} [CommRing A] {g m : ℕ}
  (F : Fin g → MvPolynomial (Fin (n + 1)) A) (hF : ∀ i, (F i).IsHomogeneous m)
include hF
theorem exists_eq_sum_of_mem (u : MvPolynomial (Fin (n + 1)) A) (hu : u ∈ Ideal.span (Set.range F))
  (d : ℕ)
    (hud : u.IsHomogeneous (m + d)) :
    ∃ a : Fin g → MvPolynomial (Fin (n + 1)) A, (∀ i, (a i).IsHomogeneous d) ∧ ∑ i, a i * F i = u
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.eq_zero_of_mem_of_lt
Source context 11 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section SpanF
variable {A : Type} [CommRing A] {g m : ℕ}
  (F : Fin g → MvPolynomial (Fin (n + 1)) A) (hF : ∀ i, (F i).IsHomogeneous m)
include hF
theorem eq_zero_of_mem_of_lt (u : MvPolynomial (Fin (n + 1)) A) (hu : u ∈ Ideal.span (Set.range F))
  {e : ℕ}
    (he : e < m) (hue : u.IsHomogeneous e) : u = 0
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.homogeneousComponent_mem_span
Source context 11 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section SpanF
variable {A : Type} [CommRing A] {g m : ℕ}
  (F : Fin g → MvPolynomial (Fin (n + 1)) A) (hF : ∀ i, (F i).IsHomogeneous m)
include hF
theorem homogeneousComponent_mem_span {u : MvPolynomial (Fin (n + 1)) A} (hu : u ∈ Ideal.span
  (Set.range F))
    (e : ℕ) : homogeneousComponent e u ∈ Ideal.span (Set.range F)
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.InM

The condition that every polynomial coefficient lies in the maximal ideal.

Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Local
variable {A : Type} [CommRing A] [IsLocalRing A]
def InM (p : MvPolynomial (Fin (n + 1)) A) : Prop
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.inM_iff_map_eq_zero
Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Local
variable {A : Type} [CommRing A] [IsLocalRing A]
theorem inM_iff_map_eq_zero (p : MvPolynomial (Fin (n + 1)) A) :
    InM p ↔ MvPolynomial.map (IsLocalRing.residue A) p = 0
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.inM_iff_mem_smul_top
Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Local
variable {A : Type} [CommRing A] [IsLocalRing A]
theorem inM_iff_mem_smul_top (p : MvPolynomial (Fin (n + 1)) A) :
    InM p ↔ p ∈ IsLocalRing.maximalIdeal A • (⊤ : Submodule A (MvPolynomial (Fin (n + 1)) A))
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.InM.zero
Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Local
variable {A : Type} [CommRing A] [IsLocalRing A]
theorem InM.zero : InM (0 : MvPolynomial (Fin (n + 1)) A)
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.InM.add
Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Local
variable {A : Type} [CommRing A] [IsLocalRing A]
theorem InM.add {p q : MvPolynomial (Fin (n + 1)) A} (hp : InM p) (hq : InM q) : InM (p + q)
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.InM.sub
Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Local
variable {A : Type} [CommRing A] [IsLocalRing A]
theorem InM.sub {p q : MvPolynomial (Fin (n + 1)) A} (hp : InM p) (hq : InM q) : InM (p - q)
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.InM.mul_left
Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Local
variable {A : Type} [CommRing A] [IsLocalRing A]
theorem InM.mul_left {p : MvPolynomial (Fin (n + 1)) A} (q : MvPolynomial (Fin (n + 1)) A) (hp :
  InM p) :
    InM (q * p)
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.InM.smul
Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Local
variable {A : Type} [CommRing A] [IsLocalRing A]
theorem InM.smul {p : MvPolynomial (Fin (n + 1)) A} (a : A) (hp : InM p) : InM (a • p)
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.inM_smul_of_mem
Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Local
variable {A : Type} [CommRing A] [IsLocalRing A]
theorem inM_smul_of_mem {a : A} (ha : a ∈ IsLocalRing.maximalIdeal A) (p : MvPolynomial (Fin (n +
  1)) A) :
    InM (a • p)
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.InM.sum
Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Local
variable {A : Type} [CommRing A] [IsLocalRing A]
theorem InM.sum {ι : Type} (s : Finset ι) {p : ι → MvPolynomial (Fin (n + 1)) A} (hp : ∀ i ∈ s, InM
  (p i)) :
    InM (∑ i ∈ s, p i)
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.InM.homogeneousComponent
Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Local
variable {A : Type} [CommRing A] [IsLocalRing A]
theorem InM.homogeneousComponent {p : MvPolynomial (Fin (n + 1)) A} (hp : InM p) (d : ℕ) :
    InM (homogeneousComponent d p)
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.inM_of_mem_smul
Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Local
variable {A : Type} [CommRing A] [IsLocalRing A]
theorem inM_of_mem_smul (N : Submodule A (MvPolynomial (Fin (n + 1)) A)) {p : MvPolynomial (Fin (n
  + 1)) A}
    (hp : p ∈ IsLocalRing.maximalIdeal A • N) : InM p
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.mem_smul_top_of_inM
Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Local
variable {A : Type} [CommRing A] [IsLocalRing A]
theorem mem_smul_top_of_inM {e : ℕ} (p : ↥(homogeneousSubmodule (Fin (n + 1)) A e))
    (hp : InM (p : MvPolynomial (Fin (n + 1)) A)) :
    p ∈ IsLocalRing.maximalIdeal A • (⊤ : Submodule A ↥(homogeneousSubmodule (Fin (n + 1)) A e))
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.inM_of_mem_smul_top
Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Local
variable {A : Type} [CommRing A] [IsLocalRing A]
theorem inM_of_mem_smul_top {e : ℕ} (p : ↥(homogeneousSubmodule (Fin (n + 1)) A e))
    (hp : p ∈ IsLocalRing.maximalIdeal A • (⊤ : Submodule A ↥(homogeneousSubmodule (Fin (n + 1)) A
      e))) :
    InM (p : MvPolynomial (Fin (n + 1)) A)
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.one_tmul_eq_zero_iff
Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Local
variable {A : Type} [CommRing A] [IsLocalRing A]
theorem one_tmul_eq_zero_iff {V : Type} [AddCommGroup V] [Module A V] (v : V) :
    (1 : IsLocalRing.ResidueField A) ⊗ₜ[A] v = 0 ↔ v ∈ IsLocalRing.maximalIdeal A • (⊤ : Submodule
      A V)
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.Lifts

Lifting of homogeneous relations to coefficients lying in the maximal ideal.

Source context 11 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Local
variable {A : Type} [CommRing A] [IsLocalRing A]
variable {g m : ℕ} (F : Fin g → MvPolynomial (Fin (n + 1)) A)
def Lifts (d : ℕ) : Prop
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.exists_eq_sum_of_mem_smul
Source context 11 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Local
variable {A : Type} [CommRing A] [IsLocalRing A]
variable {g m : ℕ} (F : Fin g → MvPolynomial (Fin (n + 1)) A)
theorem exists_eq_sum_of_mem_smul {y : MvPolynomial (Fin (n + 1)) A}
    (hy : y ∈ IsLocalRing.maximalIdeal A • (Ideal.span (Set.range F)).restrictScalars A) :
    ∃ μ : Fin g → MvPolynomial (Fin (n + 1)) A, (∀ i, InM (μ i)) ∧ y = ∑ i, μ i * F i
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.lifts_of_projective
Source context 13 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Local
variable {A : Type} [CommRing A] [IsLocalRing A]
variable {g m : ℕ} (F : Fin g → MvPolynomial (Fin (n + 1)) A)
variable (hF : ∀ i, (F i).IsHomogeneous m)
include hF
theorem lifts_of_projective (d : ℕ) (hproj : Module.Projective A (piece (Ideal.span (Set.range F))
  (m + d))) :
    Lifts F d
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.lifts_of_forall_relation
Source context 14 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Local
variable {A : Type} [CommRing A] [IsLocalRing A]
variable {g m : ℕ} (F : Fin g → MvPolynomial (Fin (n + 1)) A)
variable (hF : ∀ i, (F i).IsHomogeneous m)
include hF
omit hF in
theorem lifts_of_forall_relation (h0 : Lifts F 0) (h1 : Lifts F 1)
    (hrel : ∀ (d : ℕ) (c : Fin g → MvPolynomial (Fin (n + 1)) (IsLocalRing.ResidueField A)),
      (∀ i, (c i).IsHomogeneous d) →
      ∑ i, c i * MvPolynomial.map (IsLocalRing.residue A) (F i) = 0 →
      c ∈ Submodule.span (MvPolynomial (Fin (n + 1)) (IsLocalRing.ResidueField A))
        {l : Fin g → MvPolynomial (Fin (n + 1)) (IsLocalRing.ResidueField A) |
          (∃ d' ≤ 1, ∀ i, (l i).IsHomogeneous d') ∧
          ∑ i, l i * MvPolynomial.map (IsLocalRing.residue A) (F i) = 0})
    (d : ℕ) : Lifts F d
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.presMap

The homogeneous presentation map that multiplies coefficient polynomials by the selected generators.

Source context 13 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Local
variable {A : Type} [CommRing A] [IsLocalRing A]
variable {g m : ℕ} (F : Fin g → MvPolynomial (Fin (n + 1)) A)
variable (hF : ∀ i, (F i).IsHomogeneous m)
include hF
def presMap (d : ℕ) :
    (Fin g → ↥(homogeneousSubmodule (Fin (n + 1)) A d)) →ₗ[A] ↥(homogeneousSubmodule (Fin (n + 1))
      A (m + d))
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.presMap_apply_coe
Source context 14 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Local
variable {A : Type} [CommRing A] [IsLocalRing A]
variable {g m : ℕ} (F : Fin g → MvPolynomial (Fin (n + 1)) A)
variable (hF : ∀ i, (F i).IsHomogeneous m)
include hF
omit [IsLocalRing A] in
theorem presMap_apply_coe (d : ℕ) (a : Fin g → ↥(homogeneousSubmodule (Fin (n + 1)) A d)) :
    (presMap F hF d a : MvPolynomial (Fin (n + 1)) A) = ∑ i, (a i : MvPolynomial (Fin (n + 1)) A) *
      F i
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.range_presMap
Source context 14 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Local
variable {A : Type} [CommRing A] [IsLocalRing A]
variable {g m : ℕ} (F : Fin g → MvPolynomial (Fin (n + 1)) A)
variable (hF : ∀ i, (F i).IsHomogeneous m)
include hF
omit [IsLocalRing A] in
theorem range_presMap (d : ℕ) :
    LinearMap.range (presMap F hF d) =
      Submodule.comap (homogeneousSubmodule (Fin (n + 1)) A (m + d)).subtype
        ((Ideal.span (Set.range F)).restrictScalars A)
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.free_piece_add
Source context 13 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Local
variable {A : Type} [CommRing A] [IsLocalRing A]
variable {g m : ℕ} (F : Fin g → MvPolynomial (Fin (n + 1)) A)
variable (hF : ∀ i, (F i).IsHomogeneous m)
include hF
theorem free_piece_add (d : ℕ) (hL : Lifts F d) : Module.Free A (piece (Ideal.span (Set.range F))
  (m + d))
AlgebraicCurves.Hilbert.Proofs.HilbertLocalRelations.GotzLocalLift.free_piece_of_lt
Source context 14 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
namespace GotzLocalLift
variable {n : ℕ}
section Local
variable {A : Type} [CommRing A] [IsLocalRing A]
variable {g m : ℕ} (F : Fin g → MvPolynomial (Fin (n + 1)) A)
variable (hF : ∀ i, (F i).IsHomogeneous m)
include hF
omit [IsLocalRing A] hF in
theorem free_piece_of_lt (hF : ∀ i, (F i).IsHomogeneous m) {e : ℕ} (he : e < m) :
    Module.Free A (piece (Ideal.span (Set.range F)) e)
AlgebraicGeometry.HilbertFunctor.free_piece_of_isLocalRing_of_forall_relation_mem_span
Source context 9 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Hilbert.Proofs
namespace HilbertLocalRelations
open MvPolynomial AlgebraicGeometry.HilbertFunctor
open scoped TensorProduct
attribute [local instance] MvPolynomial.gradedAlgebra
attribute [local simp] GotzLocalLift.proj_apply_coe
open _root_.AlgebraicCurves.Hilbert.Proofs in
open HilbertLocalRelations.GotzLocalLift in
theorem
  _root_.AlgebraicGeometry.HilbertFunctor.free_piece_of_isLocalRing_of_forall_relation_mem_span
    (n m g : ℕ) (A : Type) [CommRing A] [IsLocalRing A]
    (F : Fin g → MvPolynomial (Fin (n + 1)) A) (hF : ∀ i, (F i).IsHomogeneous m)
    (h₀ : Module.Projective A (piece (Ideal.span (Set.range F)) m))
    (h₁ : Module.Projective A (piece (Ideal.span (Set.range F)) (m + 1)))
    (hrel : ∀ (d : ℕ) (c : Fin g → MvPolynomial (Fin (n + 1)) (IsLocalRing.ResidueField A)),
      (∀ i, (c i).IsHomogeneous d) →
      ∑ i, c i * MvPolynomial.map (IsLocalRing.residue A) (F i) = 0 →
      c ∈ Submodule.span (MvPolynomial (Fin (n + 1)) (IsLocalRing.ResidueField A))
        {l : Fin g → MvPolynomial (Fin (n + 1)) (IsLocalRing.ResidueField A) |
          (∃ d' ≤ 1, ∀ i, (l i).IsHomogeneous d') ∧
          ∑ i, l i * MvPolynomial.map (IsLocalRing.residue A) (F i) = 0}) :
    ∀ e, Module.Free A (piece (Ideal.span (Set.range F)) e)