internlm/Lean-Github huggingface dataset:
Theorem: DividedPowerAlgebra.T_free_and_D_to_QSplit
Proof state before:
R : Type u
inst✝⁶ : CommRing R
A : Type u
inst✝⁵ : CommRing A
inst✝⁴ : DecidableEq A
S✝ : Type u
inst✝³ : CommRing S✝
inst✝² : Algebra A S✝
I✝ : Ideal S✝
hI✝ : DividedPowers I✝
S₀✝ : Subalgebra A S✝
hIS₀✝ : IsCompl (Subalgebra.toSubmodule S₀✝) (Submodule.restrictScalars A I✝)
condTFree : CondTFree A
condD : CondD A
hM : DividedPowers (augIdeal A (↥I✝ →₀ A))
hM_eq : ∀ (n : ℕ) (x : ↥I✝ →₀ A), hM.dpow n ((ι A (↥I✝ →₀ A)) x) = dp A n x
S : Type u
inst✝¹ : CommRing S
inst✝ : Algebra A S
I : Ideal S
hI : DividedPowers I
S₀ : Subalgebra A S
hIS₀ : IsAugmentation (↥S₀) I
M : Type u := ↥I →₀ A
⊢ ∃ T x x_1 J hJ T₀,
    ∃ (_ : IsAugmentation (↥T₀) J),
      ∃ f,
        Ideal.map f J = I ∧ Subalgebra.map f T₀ = S₀ ∧ Function.Surjective ⇑f ∧ hJ.isDPMorphism hI ↑f ∧ Module.Free A T
Tactic:
let R := MvPolynomial S₀ A
Proof state after:
R✝ : Type u
inst✝⁶ : CommRing R✝
A : Type u
inst✝⁵ : CommRing A
inst✝⁴ : DecidableEq A
S✝ : Type u
inst✝³ : CommRing S✝
inst✝² : Algebra A S✝
I✝ : Ideal S✝
hI✝ : DividedPowers I✝
S₀✝ : Subalgebra A S✝
hIS₀✝ : IsCompl (Subalgebra.toSubmodule S₀✝) (Submodule.restrictScalars A I✝)
condTFree : CondTFree A
condD : CondD A
hM : DividedPowers (augIdeal A (↥I✝ →₀ A))
hM_eq : ∀ (n : ℕ) (x : ↥I✝ →₀ A), hM.dpow n ((ι A (↥I✝ →₀ A)) x) = dp A n x
S : Type u
inst✝¹ : CommRing S
inst✝ : Algebra A S
I : Ideal S
hI : DividedPowers I
S₀ : Subalgebra A S
hIS₀ : IsAugmentation (↥S₀) I
M : Type u := ↥I →₀ A
R : Type u := MvPolynomial (↥S₀) A
⊢ ∃ T x x_1 J hJ T₀,
    ∃ (_ : IsAugmentation (↥T₀) J),
      ∃ f,
        Ideal.map f J = I ∧ Subalgebra.map f T₀ = S₀ ∧ Function.Surjective ⇑f ∧ hJ.isDPMorphism hI ↑f ∧ Module.Free A T
Theorem: DividedPowerAlgebra.T_free_and_D_to_QSplit
Proof state before:
R✝ : Type u
inst✝⁶ : CommRing R✝
A : Type u
inst✝⁵ : CommRing A
inst✝⁴ : DecidableEq A
S✝ : Type u
inst✝³ : CommRing S✝
inst✝² : Algebra A S✝
I✝ : Ideal S✝
hI✝ : DividedPowers I✝
S₀✝ : Subalgebra A S✝
hIS₀✝ : IsCompl (Subalgebra.toSubmodule S₀✝) (Submodule.restrictScalars A I✝)
condTFree : CondTFree A
condD : CondD A
hM : DividedPowers (augIdeal A (↥I✝ →₀ A))
hM_eq : ∀ (n : ℕ) (x : ↥I✝ →₀ A), hM.dpow n ((ι A (↥I✝ →₀ A)) x) = dp A n x
S : Type u
inst✝¹ : CommRing S
inst✝ : Algebra A S
I : Ideal S
hI : DividedPowers I
S₀ : Subalgebra A S
hIS₀ : IsAugmentation (↥S₀) I
M : Type u := ↥I →₀ A
R : Type u := MvPolynomial (↥S₀) A
⊢ ∃ T x x_1 J hJ T₀,
    ∃ (_ : IsAugmentation (↥T₀) J),
      ∃ f,
        Ideal.map f J = I ∧ Subalgebra.map f T₀ = S₀ ∧ Function.Surjective ⇑f ∧ hJ.isDPMorphism hI ↑f ∧ Module.Free A T
Tactic:
let D := DividedPowerAlgebra A M
Proof state after:
R✝ : Type u
inst✝⁶ : CommRing R✝
A : Type u
inst✝⁵ : CommRing A
inst✝⁴ : DecidableEq A
S✝ : Type u
inst✝³ : CommRing S✝
inst✝² : Algebra A S✝
I✝ : Ideal S✝
hI✝ : DividedPowers I✝
S₀✝ : Subalgebra A S✝
hIS₀✝ : IsCompl (Subalgebra.toSubmodule S₀✝) (Submodule.restrictScalars A I✝)
condTFree : CondTFree A
condD : CondD A
hM : DividedPowers (augIdeal A (↥I✝ →₀ A))
hM_eq : ∀ (n : ℕ) (x : ↥I✝ →₀ A), hM.dpow n ((ι A (↥I✝ →₀ A)) x) = dp A n x
S : Type u
inst✝¹ : CommRing S
inst✝ : Algebra A S
I : Ideal S
hI : DividedPowers I
S₀ : Subalgebra A S
hIS₀ : IsAugmentation (↥S₀) I
M : Type u := ↥I →₀ A
R : Type u := MvPolynomial (↥S₀) A
D : Type u := DividedPowerAlgebra A M
⊢ ∃ T x x_1 J hJ T₀,
    ∃ (_ : IsAugmentation (↥T₀) J),
      ∃ f,
        Ideal.map f J = I ∧ Subalgebra.map f T₀ = S₀ ∧ Function.Surjective ⇑f ∧ hJ.isDPMorphism hI ↑f ∧ Module.Free A T
Theorem: DividedPowerAlgebra.T_free_and_D_to_QSplit
Proof state before:
R✝ : Type u
inst✝⁶ : CommRing R✝
A : Type u
inst✝⁵ : CommRing A
inst✝⁴ : DecidableEq A
S✝ : Type u
inst✝³ : CommRing S✝
inst✝² : Algebra A S✝
I✝ : Ideal S✝
hI✝ : DividedPowers I✝
S₀✝ : Subalgebra A S✝
hIS₀✝ : IsCompl (Subalgebra.toSubmodule S₀✝) (Submodule.restrictScalars A I✝)
condTFree : CondTFree A
condD : CondD A
hM : DividedPowers (augIdeal A (↥I✝ →₀ A))
hM_eq : ∀ (n : ℕ) (x : ↥I✝ →₀ A), hM.dpow n ((ι A (↥I✝ →₀ A)) x) = dp A n x
S : Type u
inst✝¹ : CommRing S
inst✝ : Algebra A S
I : Ideal S
hI : DividedPowers I
S₀ : Subalgebra A S
hIS₀ : IsAugmentation (↥S₀) I
M : Type u := ↥I →₀ A
R : Type u := MvPolynomial (↥S₀) A
D : Type u := DividedPowerAlgebra A M
⊢ ∃ T x x_1 J hJ T₀,
    ∃ (_ : IsAugmentation (↥T₀) J),
      ∃ f,
        Ideal.map f J = I ∧ Subalgebra.map f T₀ = S₀ ∧ Function.Surjective ⇑f ∧ hJ.isDPMorphism hI ↑f ∧ Module.Free A T
Tactic:
obtain ⟨hM, hM_eq⟩ := condD M
Proof state after:
case intro
R✝ : Type u
inst✝⁶ : CommRing R✝
A : Type u
inst✝⁵ : CommRing A
inst✝⁴ : DecidableEq A
S✝ : Type u
inst✝³ : CommRing S✝
inst✝² : Algebra A S✝
I✝ : Ideal S✝
hI✝ : DividedPowers I✝
S₀✝ : Subalgebra A S✝
hIS₀✝ : IsCompl (Subalgebra.toSubmodule S₀✝) (Submodule.restrictScalars A I✝)
condTFree : CondTFree A
condD : CondD A
hM✝ : DividedPowers (augIdeal A (↥I✝ →₀ A))
hM_eq✝ : ∀ (n : ℕ) (x : ↥I✝ →₀ A), hM✝.dpow n ((ι A (↥I✝ →₀ A)) x) = dp A n x
S : Type u
inst✝¹ : CommRing S
inst✝ : Algebra A S
I : Ideal S
hI : DividedPowers I
S₀ : Subalgebra A S
hIS₀ : IsAugmentation (↥S₀) I
M : Type u := ↥I →₀ A
R : Type u := MvPolynomial (↥S₀) A
D : Type u := DividedPowerAlgebra A M
hM : DividedPowers (augIdeal A M)
hM_eq : ∀ (n : ℕ) (x : M), hM.dpow n ((ι A M) x) = dp A n x
⊢ ∃ T x x_1 J hJ T₀,
    ∃ (_ : IsAugmentation (↥T₀) J),
      ∃ f,
        Ideal.map f J = I ∧ Subalgebra.map f T₀ = S₀ ∧ Function.Surjective ⇑f ∧ hJ.isDPMorphism hI ↑f ∧ Module.Free A T
Theorem: DividedPowerAlgebra.T_free_and_D_to_QSplit
Proof state before:
case intro
R✝ : Type u
inst✝⁶ : CommRing R✝
A : Type u
inst✝⁵ : CommRing A
inst✝⁴ : DecidableEq A
S✝ : Type u
inst✝³ : CommRing S✝
inst✝² : Algebra A S✝
I✝ : Ideal S✝
hI✝ : DividedPowers I✝
S₀✝ : Subalgebra A S✝
hIS₀✝ : IsCompl (Subalgebra.toSubmodule S₀✝) (Submodule.restrictScalars A I✝)
condTFree : CondTFree A
condD : CondD A
hM✝ : DividedPowers (augIdeal A (↥I✝ →₀ A))
hM_eq✝ : ∀ (n : ℕ) (x : ↥I✝ →₀ A), hM✝.dpow n ((ι A (↥I✝ →₀ A)) x) = dp A n x
S : Type u
inst✝¹ : CommRing S
inst✝ : Algebra A S
I : Ideal S
hI : DividedPowers I
S₀ : Subalgebra A S
hIS₀ : IsAugmentation (↥S₀) I
M : Type u := ↥I →₀ A
R : Type u := MvPolynomial (↥S₀) A
D : Type u := DividedPowerAlgebra A M
hM : DividedPowers (augIdeal A M)
hM_eq : ∀ (n : ℕ) (x : M), hM.dpow n ((ι A M) x) = dp A n x
⊢ ∃ T x x_1 J hJ T₀,
    ∃ (_ : IsAugmentation (↥T₀) J),
      ∃ f,
        Ideal.map f J = I ∧ Subalgebra.map f T₀ = S₀ ∧ Function.Surjective ⇑f ∧ hJ.isDPMorphism hI ↑f ∧ Module.Free A T
Tactic:
haveI hdpM_free : Module.Free A D := DividedPowerAlgebra.toModule_free A M
Proof state after:
case intro
R✝ : Type u
inst✝⁶ : CommRing R✝
A : Type u
inst✝⁵ : CommRing A
inst✝⁴ : DecidableEq A
S✝ : Type u
inst✝³ : CommRing S✝
inst✝² : Algebra A S✝
I✝ : Ideal S✝
hI✝ : DividedPowers I✝
S₀✝ : Subalgebra A S✝
hIS₀✝ : IsCompl (Subalgebra.toSubmodule S₀✝) (Submodule.restrictScalars A I✝)
condTFree : CondTFree A
condD : CondD A
hM✝ : DividedPowers (augIdeal A (↥I✝ →₀ A))
hM_eq✝ : ∀ (n : ℕ) (x : ↥I✝ →₀ A), hM✝.dpow n ((ι A (↥I✝ →₀ A)) x) = dp A n x
S : Type u
inst✝¹ : CommRing S
inst✝ : Algebra A S
I : Ideal S
hI : DividedPowers I
S₀ : Subalgebra A S
hIS₀ : IsAugmentation (↥S₀) I
M : Type u := ↥I →₀ A
R : Type u := MvPolynomial (↥S₀) A
D : Type u := DividedPowerAlgebra A M
hM : DividedPowers (augIdeal A M)
hM_eq : ∀ (n : ℕ) (x : M), hM.dpow n ((ι A M) x) = dp A n x
hdpM_free : Module.Free A D
⊢ ∃ T x x_1 J hJ T₀,
    ∃ (_ : IsAugmentation (↥T₀) J),
      ∃ f,
        Ideal.map f J = I ∧ Subalgebra.map f T₀ = S₀ ∧ Function.Surjective ⇑f ∧ hJ.isDPMorphism hI ↑f ∧ Module.Free A T
Theorem: DividedPowerAlgebra.T_free_and_D_to_QSplit
Proof state before:
case intro
R✝ : Type u
inst✝⁶ : CommRing R✝
A : Type u
inst✝⁵ : CommRing A
inst✝⁴ : DecidableEq A
S✝ : Type u
inst✝³ : CommRing S✝
inst✝² : Algebra A S✝
I✝ : Ideal S✝
hI✝ : DividedPowers I✝
S₀✝ : Subalgebra A S✝
hIS₀✝ : IsCompl (Subalgebra.toSubmodule S₀✝) (Submodule.restrictScalars A I✝)
condTFree : CondTFree A
condD : CondD A
hM✝ : DividedPowers (augIdeal A (↥I✝ →₀ A))
hM_eq✝ : ∀ (n : ℕ) (x : ↥I✝ →₀ A), hM✝.dpow n ((ι A (↥I✝ →₀ A)) x) = dp A n x
S : Type u
inst✝¹ : CommRing S
inst✝ : Algebra A S
I : Ideal S
hI : DividedPowers I
S₀ : Subalgebra A S
hIS₀ : IsAugmentation (↥S₀) I
M : Type u := ↥I →₀ A
R : Type u := MvPolynomial (↥S₀) A
D : Type u := DividedPowerAlgebra A M
hM : DividedPowers (augIdeal A M)
hM_eq : ∀ (n : ℕ) (x : M), hM.dpow n ((ι A M) x) = dp A n x
hdpM_free : Module.Free A D
⊢ ∃ T x x_1 J hJ T₀,
    ∃ (_ : IsAugmentation (↥T₀) J),
      ∃ f,
        Ideal.map f J = I ∧ Subalgebra.map f T₀ = S₀ ∧ Function.Surjective ⇑f ∧ hJ.isDPMorphism hI ↑f ∧ Module.Free A T
Tactic:
haveI hR_free : Module.Free A R :=
  Module.Free.of_basis (MvPolynomial.basisMonomials _ _)
Proof state after:
case intro
R✝ : Type u
inst✝⁶ : CommRing R✝
A : Type u
inst✝⁵ : CommRing A
inst✝⁴ : DecidableEq A
S✝ : Type u
inst✝³ : CommRing S✝
inst✝² : Algebra A S✝
I✝ : Ideal S✝
hI✝ : DividedPowers I✝
S₀✝ : Subalgebra A S✝
hIS₀✝ : IsCompl (Subalgebra.toSubmodule S₀✝) (Submodule.restrictScalars A I✝)
condTFree : CondTFree A
condD : CondD A
hM✝ : DividedPowers (augIdeal A (↥I✝ →₀ A))
hM_eq✝ : ∀ (n : ℕ) (x : ↥I✝ →₀ A), hM✝.dpow n ((ι A (↥I✝ →₀ A)) x) = dp A n x
S : Type u
inst✝¹ : CommRing S
inst✝ : Algebra A S
I : Ideal S
hI : DividedPowers I
S₀ : Subalgebra A S
hIS₀ : IsAugmentation (↥S₀) I
M : Type u := ↥I →₀ A
R : Type u := MvPolynomial (↥S₀) A
D : Type u := DividedPowerAlgebra A M
hM : DividedPowers (augIdeal A M)
hM_eq : ∀ (n : ℕ) (x : M), hM.dpow n ((ι A M) x) = dp A n x
hdpM_free : Module.Free A D
hR_free : Module.Free A R
⊢ ∃ T x x_1 J hJ T₀,
    ∃ (_ : IsAugmentation (↥T₀) J),
      ∃ f,
        Ideal.map f J = I ∧ Subalgebra.map f T₀ = S₀ ∧ Function.Surjective ⇑f ∧ hJ.isDPMorphism hI ↑f ∧ Module.Free A T
Theorem: DividedPowerAlgebra.T_free_and_D_to_QSplit
Proof state before:
case intro
R✝ : Type u
inst✝⁶ : CommRing R✝
A : Type u
inst✝⁵ : CommRing A
inst✝⁴ : DecidableEq A
S✝ : Type u
inst✝³ : CommRing S✝
inst✝² : Algebra A S✝
I✝ : Ideal S✝
hI✝ : DividedPowers I✝
S₀✝ : Subalgebra A S✝
hIS₀✝ : IsCompl (Subalgebra.toSubmodule S₀✝) (Submodule.restrictScalars A I✝)
condTFree : CondTFree A
condD : CondD A
hM✝ : DividedPowers (augIdeal A (↥I✝ →₀ A))
hM_eq✝ : ∀ (n : ℕ) (x : ↥I✝ →₀ A), hM✝.dpow n ((ι A (↥I✝ →₀ A)) x) = dp A n x
S : Type u
inst✝¹ : CommRing S
inst✝ : Algebra A S
I : Ideal S
hI : DividedPowers I
S₀ : Subalgebra A S
hIS₀ : IsAugmentation (↥S₀) I
M : Type u := ↥I →₀ A
R : Type u := MvPolynomial (↥S₀) A
D : Type u := DividedPowerAlgebra A M
hM : DividedPowers (augIdeal A M)
hM_eq : ∀ (n : ℕ) (x : M), hM.dpow n ((ι A M) x) = dp A n x
hdpM_free : Module.Free A D
hR_free : Module.Free A R
⊢ ∃ T x x_1 J hJ T₀,
    ∃ (_ : IsAugmentation (↥T₀) J),
      ∃ f,
        Ideal.map f J = I ∧ Subalgebra.map f T₀ = S₀ ∧ Function.Surjective ⇑f ∧ hJ.isDPMorphism hI ↑f ∧ Module.Free A T
Tactic:
let T := R ⊗[A] D
Proof state after:
case intro
R✝ : Type u
inst✝⁶ : CommRing R✝
A : Type u
inst✝⁵ : CommRing A
inst✝⁴ : DecidableEq A
S✝ : Type u
inst✝³ : CommRing S✝
inst✝² : Algebra A S✝
I✝ : Ideal S✝
hI✝ : DividedPowers I✝
S₀✝ : Subalgebra A S✝
hIS₀✝ : IsCompl (Subalgebra.toSubmodule S₀✝) (Submodule.restrictScalars A I✝)
condTFree : CondTFree A
condD : CondD A
hM✝ : DividedPowers (augIdeal A (↥I✝ →₀ A))
hM_eq✝ : ∀ (n : ℕ) (x : ↥I✝ →₀ A), hM✝.dpow n ((ι A (↥I✝ →₀ A)) x) = dp A n x
S : Type u
inst✝¹ : CommRing S
inst✝ : Algebra A S
I : Ideal S
hI : DividedPowers I
S₀ : Subalgebra A S
hIS₀ : IsAugmentation (↥S₀) I
M : Type u := ↥I →₀ A
R : Type u := MvPolynomial (↥S₀) A
D : Type u := DividedPowerAlgebra A M
hM : DividedPowers (augIdeal A M)
hM_eq : ∀ (n : ℕ) (x : M), hM.dpow n ((ι A M) x) = dp A n x
hdpM_free : Module.Free A D
hR_free : Module.Free A R
T : Type u := R ⊗[A] D
⊢ ∃ T x x_1 J hJ T₀,
    ∃ (_ : IsAugmentation (↥T₀) J),
      ∃ f,
        Ideal.map f J = I ∧ Subalgebra.map f T₀ = S₀ ∧ Function.Surjective ⇑f ∧ hJ.isDPMorphism hI ↑f ∧ Module.Free A T
Theorem: DividedPowerAlgebra.T_free_and_D_to_QSplit
Proof state before:
case intro
R✝ : Type u
inst✝⁶ : CommRing R✝
A : Type u
inst✝⁵ : CommRing A
inst✝⁴ : DecidableEq A
S✝ : Type u
inst✝³ : CommRing S✝
inst✝² : Algebra A S✝
I✝ : Ideal S✝
hI✝ : DividedPowers I✝
S₀✝ : Subalgebra A S✝
hIS₀✝ : IsCompl (Subalgebra.toSubmodule S₀✝) (Submodule.restrictScalars A I✝)
condTFree : CondTFree A
condD : CondD A
hM✝ : DividedPowers (augIdeal A (↥I✝ →₀ A))
hM_eq✝ : ∀ (n : ℕ) (x : ↥I✝ →₀ A), hM✝.dpow n ((ι A (↥I✝ →₀ A)) x) = dp A n x
S : Type u
inst✝¹ : CommRing S
inst✝ : Algebra A S
I : Ideal S
hI : DividedPowers I
S₀ : Subalgebra A S
hIS₀ : IsAugmentation (↥S₀) I
M : Type u := ↥I →₀ A
R : Type u := MvPolynomial (↥S₀) A
D : Type u := DividedPowerAlgebra A M
hM : DividedPowers (augIdeal A M)
hM_eq : ∀ (n : ℕ) (x : M), hM.dpow n ((ι A M) x) = dp A n x
hdpM_free : Module.Free A D
hR_free : Module.Free A R
T : Type u := R ⊗[A] D
⊢ ∃ T x x_1 J hJ T₀,
    ∃ (_ : IsAugmentation (↥T₀) J),
      ∃ f,
        Ideal.map f J = I ∧ Subalgebra.map f T₀ = S₀ ∧ Function.Surjective ⇑f ∧ hJ.isDPMorphism hI ↑f ∧ Module.Free A T
Tactic:
use T, by infer_instance, by infer_instance
Proof state after:
case h
R✝ : Type u
inst✝⁶ : CommRing R✝
A : Type u
inst✝⁵ : CommRing A
inst✝⁴ : DecidableEq A
S✝ : Type u
inst✝³ : CommRing S✝
inst✝² : Algebra A S✝
I✝ : Ideal S✝
hI✝ : DividedPowers I✝
S₀✝ : Subalgebra A S✝
hIS₀✝ : IsCompl (Subalgebra.toSubmodule S₀✝) (Submodule.restrictScalars A I✝)
condTFree : CondTFree A
condD : CondD A
hM✝ : DividedPowers (augIdeal A (↥I✝ →₀ A))
hM_eq✝ : ∀ (n : ℕ) (x : ↥I✝ →₀ A), hM✝.dpow n ((ι A (↥I✝ →₀ A)) x) = dp A n x
S : Type u
inst✝¹ : CommRing S
inst✝ : Algebra A S
I : Ideal S
hI : DividedPowers I
S₀ : Subalgebra A S
hIS₀ : IsAugmentation (↥S₀) I
M : Type u := ↥I →₀ A
R : Type u := MvPolynomial (↥S₀) A
D : Type u := DividedPowerAlgebra A M
hM : DividedPowers (augIdeal A M)
hM_eq : ∀ (n : ℕ) (x : M), hM.dpow n ((ι A M) x) = dp A n x
hdpM_free : Module.Free A D
hR_free : Module.Free A R
T : Type u := R ⊗[A] D
⊢ ∃ J hJ T₀,
    ∃ (_ : IsAugmentation (↥T₀) J),
      ∃ f,
        Ideal.map f J = I ∧ Subalgebra.map f T₀ = S₀ ∧ Function.Surjective ⇑f ∧ hJ.isDPMorphism hI ↑f ∧ Module.Free A T
Theorem: DividedPowerAlgebra.T_free_and_D_to_QSplit
Proof state before:
case h
R✝ : Type u
inst✝⁶ : CommRing R✝
A : Type u
inst✝⁵ : CommRing A
inst✝⁴ : DecidableEq A
S✝ : Type u
inst✝³ : CommRing S✝
inst✝² : Algebra A S✝
I✝ : Ideal S✝
hI✝ : DividedPowers I✝
S₀✝ : Subalgebra A S✝
hIS₀✝ : IsCompl (Subalgebra.toSubmodule S₀✝) (Submodule.restrictScalars A I✝)
condTFree : CondTFree A
condD : CondD A
hM✝ : DividedPowers (augIdeal A (↥I✝ →₀ A))
hM_eq✝ : ∀ (n : ℕ) (x : ↥I✝ →₀ A), hM✝.dpow n ((ι A (↥I✝ →₀ A)) x) = dp A n x
S : Type u
inst✝¹ : CommRing S
inst✝ : Algebra A S
I : Ideal S
hI : DividedPowers I
S₀ : Subalgebra A S
hIS₀ : IsAugmentation (↥S₀) I
M : Type u := ↥I →₀ A
R : Type u := MvPolynomial (↥S₀) A
D : Type u := DividedPowerAlgebra A M
hM : DividedPowers (augIdeal A M)
hM_eq : ∀ (n : ℕ) (x : M), hM.dpow n ((ι A M) x) = dp A n x
hdpM_free : Module.Free A D
hR_free : Module.Free A R
T : Type u := R ⊗[A] D
⊢ ∃ J hJ T₀,
    ∃ (_ : IsAugmentation (↥T₀) J),
      ∃ f,
        Ideal.map f J = I ∧ Subalgebra.map f T₀ = S₀ ∧ Function.Surjective ⇑f ∧ hJ.isDPMorphism hI ↑f ∧ Module.Free A T
Tactic:
let idK : Ideal T := K A ⊥ (augIdeal A M)
Proof state after:
case h
R✝ : Type u
inst✝⁶ : CommRing R✝
A : Type u
inst✝⁵ : CommRing A
inst✝⁴ : DecidableEq A
S✝ : Type u
inst✝³ : CommRing S✝
inst✝² : Algebra A S✝
I✝ : Ideal S✝
hI✝ : DividedPowers I✝
S₀✝ : Subalgebra A S✝
hIS₀✝ : IsCompl (Subalgebra.toSubmodule S₀✝) (Submodule.restrictScalars A I✝)
condTFree : CondTFree A
condD : CondD A
hM✝ : DividedPowers (augIdeal A (↥I✝ →₀ A))
hM_eq✝ : ∀ (n : ℕ) (x : ↥I✝ →₀ A), hM✝.dpow n ((ι A (↥I✝ →₀ A)) x) = dp A n x
S : Type u
inst✝¹ : CommRing S
inst✝ : Algebra A S
I : Ideal S
hI : DividedPowers I
S₀ : Subalgebra A S
hIS₀ : IsAugmentation (↥S₀) I
M : Type u := ↥I →₀ A
R : Type u := MvPolynomial (↥S₀) A
D : Type u := DividedPowerAlgebra A M
hM : DividedPowers (augIdeal A M)
hM_eq : ∀ (n : ℕ) (x : M), hM.dpow n ((ι A M) x) = dp A n x
hdpM_free : Module.Free A D
hR_free : Module.Free A R
T : Type u := R ⊗[A] D
idK : Ideal T := K A ⊥ (augIdeal A M)
⊢ ∃ J hJ T₀,
    ∃ (_ : IsAugmentation (↥T₀) J),
      ∃ f,
        Ideal.map f J = I ∧ Subalgebra.map f T₀ = S₀ ∧ Function.Surjective ⇑f ∧ hJ.isDPMorphism hI ↑f ∧ Module.Free A T
Theorem: DividedPowerAlgebra.T_free_and_D_to_QSplit
Proof state before:
case h
R✝ : Type u
inst✝⁶ : CommRing R✝
A : Type u
inst✝⁵ : CommRing A
inst✝⁴ : DecidableEq A
S✝ : Type u
inst✝³ : CommRing S✝
inst✝² : Algebra A S✝
I✝ : Ideal S✝
hI✝ : DividedPowers I✝
S₀✝ : Subalgebra A S✝
hIS₀✝ : IsCompl (Subalgebra.toSubmodule S₀✝) (Submodule.restrictScalars A I✝)
condTFree : CondTFree A
condD : CondD A
hM✝ : DividedPowers (augIdeal A (↥I✝ →₀ A))
hM_eq✝ : ∀ (n : ℕ) (x : ↥I✝ →₀ A), hM✝.dpow n ((ι A (↥I✝ →₀ A)) x) = dp A n x
S : Type u
inst✝¹ : CommRing S
inst✝ : Algebra A S
I : Ideal S
hI : DividedPowers I
S₀ : Subalgebra A S
hIS₀ : IsAugmentation (↥S₀) I
M : Type u := ↥I →₀ A
R : Type u := MvPolynomial (↥S₀) A
D : Type u := DividedPowerAlgebra A M
hM : DividedPowers (augIdeal A M)
hM_eq : ∀ (n : ℕ) (x : M), hM.dpow n ((ι A M) x) = dp A n x
hdpM_free : Module.Free A D
hR_free : Module.Free A R
T : Type u := R ⊗[A] D
idK : Ideal T := K A ⊥ (augIdeal A M)
⊢ ∃ J hJ T₀,
    ∃ (_ : IsAugmentation (↥T₀) J),
      ∃ f,
        Ideal.map f J = I ∧ Subalgebra.map f T₀ = S₀ ∧ Function.Surjective ⇑f ∧ hJ.isDPMorphism hI ↑f ∧ Module.Free A T
Tactic:
have hidK : idK = Ideal.map Algebra.TensorProduct.includeRight (augIdeal A M) := by
  simp only [K, Ideal.map_bot, i2, ge_iff_le, bot_le, sup_of_le_right, idK]
Proof state after:
case h
R✝ : Type u
inst✝⁶ : CommRing R✝
A : Type u
inst✝⁵ : CommRing A
inst✝⁴ : DecidableEq A
S✝ : Type u
inst✝³ : CommRing S✝
inst✝² : Algebra A S✝
I✝ : Ideal S✝
hI✝ : DividedPowers I✝
S₀✝ : Subalgebra A S✝
hIS₀✝ : IsCompl (Subalgebra.toSubmodule S₀✝) (Submodule.restrictScalars A I✝)
condTFree : CondTFree A
condD : CondD A
hM✝ : DividedPowers (augIdeal A (↥I✝ →₀ A))
hM_eq✝ : ∀ (n : ℕ) (x : ↥I✝ →₀ A), hM✝.dpow n ((ι A (↥I✝ →₀ A)) x) = dp A n x
S : Type u
inst✝¹ : CommRing S
inst✝ : Algebra A S
I : Ideal S
hI : DividedPowers I
S₀ : Subalgebra A S
hIS₀ : IsAugmentation (↥S₀) I
M : Type u := ↥I →₀ A
R : Type u := MvPolynomial (↥S₀) A
D : Type u := DividedPowerAlgebra A M
hM : DividedPowers (augIdeal A M)
hM_eq : ∀ (n : ℕ) (x : M), hM.dpow n ((ι A M) x) = dp A n x
hdpM_free : Module.Free A D
hR_free : Module.Free A R
T : Type u := R ⊗[A] D
idK : Ideal T := K A ⊥ (augIdeal A M)
hidK : idK = Ideal.map Algebra.TensorProduct.includeRight (augIdeal A M)
⊢ ∃ J hJ T₀,
    ∃ (_ : IsAugmentation (↥T₀) J),
      ∃ f,
        Ideal.map f J = I ∧ Subalgebra.map f T₀ = S₀ ∧ Function.Surjective ⇑f ∧ hJ.isDPMorphism hI ↑f ∧ Module.Free A T
Theorem: DividedPowerAlgebra.T_free_and_D_to_QSplit
Proof state before:
case h
R✝ : Type u
inst✝⁶ : CommRing R✝
A : Type u
inst✝⁵ : CommRing A
inst✝⁴ : DecidableEq A
S✝ : Type u
inst✝³ : CommRing S✝
inst✝² : Algebra A S✝
I✝ : Ideal S✝
hI✝ : DividedPowers I✝
S₀✝ : Subalgebra A S✝
hIS₀✝ : IsCompl (Subalgebra.toSubmodule S₀✝) (Submodule.restrictScalars A I✝)
condTFree : CondTFree A
condD : CondD A
hM✝ : DividedPowers (augIdeal A (↥I✝ →₀ A))
hM_eq✝ : ∀ (n : ℕ) (x : ↥I✝ →₀ A), hM✝.dpow n ((ι A (↥I✝ →₀ A)) x) = dp A n x
S : Type u
inst✝¹ : CommRing S
inst✝ : Algebra A S
I : Ideal S
hI : DividedPowers I
S₀ : Subalgebra A S
hIS₀ : IsAugmentation (↥S₀) I
M : Type u := ↥I →₀ A
R : Type u := MvPolynomial (↥S₀) A
D : Type u := DividedPowerAlgebra A M
hM : DividedPowers (augIdeal A M)
hM_eq : ∀ (n : ℕ) (x : M), hM.dpow n ((ι A M) x) = dp A n x
hdpM_free : Module.Free A D
hR_free : Module.Free A R
T : Type u := R ⊗[A] D
idK : Ideal T := K A ⊥ (augIdeal A M)
hidK : idK = Ideal.map Algebra.TensorProduct.includeRight (augIdeal A M)
⊢ ∃ J hJ T₀,
    ∃ (_ : IsAugmentation (↥T₀) J),
      ∃ f,
        Ideal.map f J = I ∧ Subalgebra.map f T₀ = S₀ ∧ Function.Surjective ⇑f ∧ hJ.isDPMorphism hI ↑f ∧ Module.Free A T
Tactic:
use idK
Proof state after:
case h
R✝ : Type u
inst✝⁶ : CommRing R✝
A : Type u
inst✝⁵ : CommRing A
inst✝⁴ : DecidableEq A
S✝ : Type u
inst✝³ : CommRing S✝
inst✝² : Algebra A S✝
I✝ : Ideal S✝
hI✝ : DividedPowers I✝
S₀✝ : Subalgebra A S✝
hIS₀✝ : IsCompl (Subalgebra.toSubmodule S₀✝) (Submodule.restrictScalars A I✝)
condTFree : CondTFree A
condD : CondD A
hM✝ : DividedPowers (augIdeal A (↥I✝ →₀ A))
hM_eq✝ : ∀ (n : ℕ) (x : ↥I✝ →₀ A), hM✝.dpow n ((ι A (↥I✝ →₀ A)) x) = dp A n x
S : Type u
inst✝¹ : CommRing S
inst✝ : Algebra A S
I : Ideal S
hI : DividedPowers I
S₀ : Subalgebra A S
hIS₀ : IsAugmentation (↥S₀) I
M : Type u := ↥I →₀ A
R : Type u := MvPolynomial (↥S₀) A
D : Type u := DividedPowerAlgebra A M
hM : DividedPowers (augIdeal A M)
hM_eq : ∀ (n : ℕ) (x : M), hM.dpow n ((ι A M) x) = dp A n x
hdpM_free : Module.Free A D
hR_free : Module.Free A R
T : Type u := R ⊗[A] D
idK : Ideal T := K A ⊥ (augIdeal A M)
hidK : idK = Ideal.map Algebra.TensorProduct.includeRight (augIdeal A M)
⊢ ∃ hJ T₀,
    ∃ (_ : IsAugmentation (↥T₀) idK),
      ∃ f,
        Ideal.map f idK = I ∧
          Subalgebra.map f T₀ = S₀ ∧ Function.Surjective ⇑f ∧ hJ.isDPMorphism hI ↑f ∧ Module.Free A T
Theorem: DividedPowerAlgebra.T_free_and_D_to_QSplit
Proof state before:
case h
R✝ : Type u
inst✝⁶ : CommRing R✝
A : Type u
inst✝⁵ : CommRing A
inst✝⁴ : DecidableEq A
S✝ : Type u
inst✝³ : CommRing S✝
inst✝² : Algebra A S✝
I✝ : Ideal S✝
hI✝ : DividedPowers I✝
S₀✝ : Subalgebra A S✝
hIS₀✝ : IsCompl (Subalgebra.toSubmodule S₀✝) (Submodule.restrictScalars A I✝)
condTFree : CondTFree A
condD : CondD A
hM✝ : DividedPowers (augIdeal A (↥I✝ →₀ A))
hM_eq✝ : ∀ (n : ℕ) (x : ↥I✝ →₀ A), hM✝.dpow n ((ι A (↥I✝ →₀ A)) x) = dp A n x
S : Type u
inst✝¹ : CommRing S
inst✝ : Algebra A S
I : Ideal S
hI : DividedPowers I
S₀ : Subalgebra A S
hIS₀ : IsAugmentation (↥S₀) I
M : Type u := ↥I →₀ A
R : Type u := MvPolynomial (↥S₀) A
D : Type u := DividedPowerAlgebra A M
hM : DividedPowers (augIdeal A M)
hM_eq : ∀ (n : ℕ) (x : M), hM.dpow n ((ι A M) x) = dp A n x
hdpM_free : Module.Free A D
hR_free : Module.Free A R
T : Type u := R ⊗[A] D
idK : Ideal T := K A ⊥ (augIdeal A M)
hidK : idK = Ideal.map Algebra.TensorProduct.includeRight (augIdeal A M)
⊢ ∃ hJ T₀,
    ∃ (_ : IsAugmentation (↥T₀) idK),
      ∃ f,
        Ideal.map f idK = I ∧
          Subalgebra.map f T₀ = S₀ ∧ Function.Surjective ⇑f ∧ hJ.isDPMorphism hI ↑f ∧ Module.Free A T
Tactic:
let hK : DividedPowers idK := (condτ A S I S₀ condTFree hM).choose
Proof state after:
case h
R✝ : Type u
inst✝⁶ : CommRing R✝
A : Type u
inst✝⁵ : CommRing A
inst✝⁴ : DecidableEq A
S✝ : Type u
inst✝³ : CommRing S✝
inst✝² : Algebra A S✝
I✝ : Ideal S✝
hI✝ : DividedPowers I✝
S₀✝ : Subalgebra A S✝
hIS₀✝ : IsCompl (Subalgebra.toSubmodule S₀✝) (Submodule.restrictScalars A I✝)
condTFree : CondTFree A
condD : CondD A
hM✝ : DividedPowers (augIdeal A (↥I✝ →₀ A))
hM_eq✝ : ∀ (n : ℕ) (x : ↥I✝ →₀ A), hM✝.dpow n ((ι A (↥I✝ →₀ A)) x) = dp A n x
S : Type u
inst✝¹ : CommRing S
inst✝ : Algebra A S
I : Ideal S
hI : DividedPowers I
S₀ : Subalgebra A S
hIS₀ : IsAugmentation (↥S₀) I
M : Type u := ↥I →₀ A
R : Type u := MvPolynomial (↥S₀) A
D : Type u := DividedPowerAlgebra A M
hM : DividedPowers (augIdeal A M)
hM_eq : ∀ (n : ℕ) (x : M), hM.dpow n ((ι A M) x) = dp A n x
hdpM_free : Module.Free A D
hR_free : Module.Free A R
T : Type u := R ⊗[A] D
idK : Ideal T := K A ⊥ (augIdeal A M)
hidK : idK = Ideal.map Algebra.TensorProduct.includeRight (augIdeal A M)
hK : DividedPowers idK := Exists.choose ⋯
⊢ ∃ hJ T₀,
    ∃ (_ : IsAugmentation (↥T₀) idK),
      ∃ f,
        Ideal.map f idK = I ∧
          Subalgebra.map f T₀ = S₀ ∧ Function.Surjective ⇑f ∧ hJ.isDPMorphism hI ↑f ∧ Module.Free A T