internlm/Lean-Github huggingface dataset:
Theorem: isUnramifiedAt_of_Separable_minpoly'
Proof state before:
case a
R : Type u_1
K : Type u_2
L : Type u_3
S : Type u_4
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
inst✝¹² : Field K
inst✝¹¹ : Field L
inst✝¹⁰ : IsDedekindDomain R
inst✝⁹ : Algebra R K
inst✝⁸ : IsFractionRing R K
inst✝⁷ : Algebra S L
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra R L
inst✝⁴ : IsScalarTower R S L
inst✝³ : IsScalarTower R K L
inst✝² : IsIntegralClosure S R L
inst✝¹ : FiniteDimensional K L
inst✝ : IsSeparable K L
p : Ideal R
hp : p.IsPrime
hpbot : p ≠ ⊥
x : S
hx' : Algebra.adjoin K {(algebraMap S L) x} = ⊤
h : (map (Ideal.Quotient.mk p) (minpoly R x)).Separable
this✝⁸ : IsDomain S
hRS : Function.Injective ⇑(algebraMap R S)
this✝⁷ : NoZeroSMulDivisors R S
this✝⁶ : IsNoetherian R S
this✝⁵ : IsDedekindDomain S
this✝⁴ : IsFractionRing S L
this✝³ : (aeval x) (derivative (minpoly R x)) ∈ differentIdeal R S
H :
  (algebraMap (FractionRing R) (FractionRing S)).comp ↑(FractionRing.algEquiv R K).symm.toRingEquiv =
    (↑(FractionRing.algEquiv S L).symm.toRingEquiv).comp (algebraMap K L)
this✝² : IsSeparable (FractionRing R) (FractionRing S)
this✝¹ : p.IsMaximal
P : Ideal S
hP : P ∈ primesOver S p
this✝ : IsScalarTower S (S ⧸ P) (S ⧸ P) := IsScalarTower.right
this : P.IsMaximal
⊢ Ideal.ramificationIdx (algebraMap R S) p P ≤ 1
Tactic:
rw [← tsub_eq_zero_iff_le]
Proof state after:
case a
R : Type u_1
K : Type u_2
L : Type u_3
S : Type u_4
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
inst✝¹² : Field K
inst✝¹¹ : Field L
inst✝¹⁰ : IsDedekindDomain R
inst✝⁹ : Algebra R K
inst✝⁸ : IsFractionRing R K
inst✝⁷ : Algebra S L
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra R L
inst✝⁴ : IsScalarTower R S L
inst✝³ : IsScalarTower R K L
inst✝² : IsIntegralClosure S R L
inst✝¹ : FiniteDimensional K L
inst✝ : IsSeparable K L
p : Ideal R
hp : p.IsPrime
hpbot : p ≠ ⊥
x : S
hx' : Algebra.adjoin K {(algebraMap S L) x} = ⊤
h : (map (Ideal.Quotient.mk p) (minpoly R x)).Separable
this✝⁸ : IsDomain S
hRS : Function.Injective ⇑(algebraMap R S)
this✝⁷ : NoZeroSMulDivisors R S
this✝⁶ : IsNoetherian R S
this✝⁵ : IsDedekindDomain S
this✝⁴ : IsFractionRing S L
this✝³ : (aeval x) (derivative (minpoly R x)) ∈ differentIdeal R S
H :
  (algebraMap (FractionRing R) (FractionRing S)).comp ↑(FractionRing.algEquiv R K).symm.toRingEquiv =
    (↑(FractionRing.algEquiv S L).symm.toRingEquiv).comp (algebraMap K L)
this✝² : IsSeparable (FractionRing R) (FractionRing S)
this✝¹ : p.IsMaximal
P : Ideal S
hP : P ∈ primesOver S p
this✝ : IsScalarTower S (S ⧸ P) (S ⧸ P) := IsScalarTower.right
this : P.IsMaximal
⊢ Ideal.ramificationIdx (algebraMap R S) p P - 1 = 0
Theorem: isUnramifiedAt_of_Separable_minpoly'
Proof state before:
case a
R : Type u_1
K : Type u_2
L : Type u_3
S : Type u_4
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
inst✝¹² : Field K
inst✝¹¹ : Field L
inst✝¹⁰ : IsDedekindDomain R
inst✝⁹ : Algebra R K
inst✝⁸ : IsFractionRing R K
inst✝⁷ : Algebra S L
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra R L
inst✝⁴ : IsScalarTower R S L
inst✝³ : IsScalarTower R K L
inst✝² : IsIntegralClosure S R L
inst✝¹ : FiniteDimensional K L
inst✝ : IsSeparable K L
p : Ideal R
hp : p.IsPrime
hpbot : p ≠ ⊥
x : S
hx' : Algebra.adjoin K {(algebraMap S L) x} = ⊤
h : (map (Ideal.Quotient.mk p) (minpoly R x)).Separable
this✝⁸ : IsDomain S
hRS : Function.Injective ⇑(algebraMap R S)
this✝⁷ : NoZeroSMulDivisors R S
this✝⁶ : IsNoetherian R S
this✝⁵ : IsDedekindDomain S
this✝⁴ : IsFractionRing S L
this✝³ : (aeval x) (derivative (minpoly R x)) ∈ differentIdeal R S
H :
  (algebraMap (FractionRing R) (FractionRing S)).comp ↑(FractionRing.algEquiv R K).symm.toRingEquiv =
    (↑(FractionRing.algEquiv S L).symm.toRingEquiv).comp (algebraMap K L)
this✝² : IsSeparable (FractionRing R) (FractionRing S)
this✝¹ : p.IsMaximal
P : Ideal S
hP : P ∈ primesOver S p
this✝ : IsScalarTower S (S ⧸ P) (S ⧸ P) := IsScalarTower.right
this : P.IsMaximal
⊢ Ideal.ramificationIdx (algebraMap R S) p P - 1 = 0
Tactic:
by_contra H
Proof state after:
case a
R : Type u_1
K : Type u_2
L : Type u_3
S : Type u_4
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
inst✝¹² : Field K
inst✝¹¹ : Field L
inst✝¹⁰ : IsDedekindDomain R
inst✝⁹ : Algebra R K
inst✝⁸ : IsFractionRing R K
inst✝⁷ : Algebra S L
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra R L
inst✝⁴ : IsScalarTower R S L
inst✝³ : IsScalarTower R K L
inst✝² : IsIntegralClosure S R L
inst✝¹ : FiniteDimensional K L
inst✝ : IsSeparable K L
p : Ideal R
hp : p.IsPrime
hpbot : p ≠ ⊥
x : S
hx' : Algebra.adjoin K {(algebraMap S L) x} = ⊤
h : (map (Ideal.Quotient.mk p) (minpoly R x)).Separable
this✝⁸ : IsDomain S
hRS : Function.Injective ⇑(algebraMap R S)
this✝⁷ : NoZeroSMulDivisors R S
this✝⁶ : IsNoetherian R S
this✝⁵ : IsDedekindDomain S
this✝⁴ : IsFractionRing S L
this✝³ : (aeval x) (derivative (minpoly R x)) ∈ differentIdeal R S
H✝ :
  (algebraMap (FractionRing R) (FractionRing S)).comp ↑(FractionRing.algEquiv R K).symm.toRingEquiv =
    (↑(FractionRing.algEquiv S L).symm.toRingEquiv).comp (algebraMap K L)
this✝² : IsSeparable (FractionRing R) (FractionRing S)
this✝¹ : p.IsMaximal
P : Ideal S
hP : P ∈ primesOver S p
this✝ : IsScalarTower S (S ⧸ P) (S ⧸ P) := IsScalarTower.right
this : P.IsMaximal
H : ¬Ideal.ramificationIdx (algebraMap R S) p P - 1 = 0
⊢ False
Theorem: isUnramifiedAt_of_Separable_minpoly'
Proof state before:
case a
R : Type u_1
K : Type u_2
L : Type u_3
S : Type u_4
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
inst✝¹² : Field K
inst✝¹¹ : Field L
inst✝¹⁰ : IsDedekindDomain R
inst✝⁹ : Algebra R K
inst✝⁸ : IsFractionRing R K
inst✝⁷ : Algebra S L
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra R L
inst✝⁴ : IsScalarTower R S L
inst✝³ : IsScalarTower R K L
inst✝² : IsIntegralClosure S R L
inst✝¹ : FiniteDimensional K L
inst✝ : IsSeparable K L
p : Ideal R
hp : p.IsPrime
hpbot : p ≠ ⊥
x : S
hx' : Algebra.adjoin K {(algebraMap S L) x} = ⊤
h : (map (Ideal.Quotient.mk p) (minpoly R x)).Separable
this✝⁸ : IsDomain S
hRS : Function.Injective ⇑(algebraMap R S)
this✝⁷ : NoZeroSMulDivisors R S
this✝⁶ : IsNoetherian R S
this✝⁵ : IsDedekindDomain S
this✝⁴ : IsFractionRing S L
this✝³ : (aeval x) (derivative (minpoly R x)) ∈ differentIdeal R S
H✝ :
  (algebraMap (FractionRing R) (FractionRing S)).comp ↑(FractionRing.algEquiv R K).symm.toRingEquiv =
    (↑(FractionRing.algEquiv S L).symm.toRingEquiv).comp (algebraMap K L)
this✝² : IsSeparable (FractionRing R) (FractionRing S)
this✝¹ : p.IsMaximal
P : Ideal S
hP : P ∈ primesOver S p
this✝ : IsScalarTower S (S ⧸ P) (S ⧸ P) := IsScalarTower.right
this : P.IsMaximal
H : ¬Ideal.ramificationIdx (algebraMap R S) p P - 1 = 0
⊢ False
Tactic:
have hxP : aeval x (derivative (minpoly R x)) ∈ P := by
  have : differentIdeal R S ≤ P := by
    rw [← Ideal.dvd_iff_le]
    exact (dvd_pow_self _ H).trans (pow_sub_one_dvd_differentIdeal R S P _ hpbot
    (Ideal.dvd_iff_le.mpr <| Ideal.le_pow_ramificationIdx (p := p) (f := algebraMap R S)))
  exact this (aeval_derivative_mem_differentIdeal R K L _ hx')
Proof state after:
case a
R : Type u_1
K : Type u_2
L : Type u_3
S : Type u_4
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
inst✝¹² : Field K
inst✝¹¹ : Field L
inst✝¹⁰ : IsDedekindDomain R
inst✝⁹ : Algebra R K
inst✝⁸ : IsFractionRing R K
inst✝⁷ : Algebra S L
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra R L
inst✝⁴ : IsScalarTower R S L
inst✝³ : IsScalarTower R K L
inst✝² : IsIntegralClosure S R L
inst✝¹ : FiniteDimensional K L
inst✝ : IsSeparable K L
p : Ideal R
hp : p.IsPrime
hpbot : p ≠ ⊥
x : S
hx' : Algebra.adjoin K {(algebraMap S L) x} = ⊤
h : (map (Ideal.Quotient.mk p) (minpoly R x)).Separable
this✝⁸ : IsDomain S
hRS : Function.Injective ⇑(algebraMap R S)
this✝⁷ : NoZeroSMulDivisors R S
this✝⁶ : IsNoetherian R S
this✝⁵ : IsDedekindDomain S
this✝⁴ : IsFractionRing S L
this✝³ : (aeval x) (derivative (minpoly R x)) ∈ differentIdeal R S
H✝ :
  (algebraMap (FractionRing R) (FractionRing S)).comp ↑(FractionRing.algEquiv R K).symm.toRingEquiv =
    (↑(FractionRing.algEquiv S L).symm.toRingEquiv).comp (algebraMap K L)
this✝² : IsSeparable (FractionRing R) (FractionRing S)
this✝¹ : p.IsMaximal
P : Ideal S
hP : P ∈ primesOver S p
this✝ : IsScalarTower S (S ⧸ P) (S ⧸ P) := IsScalarTower.right
this : P.IsMaximal
H : ¬Ideal.ramificationIdx (algebraMap R S) p P - 1 = 0
hxP : (aeval x) (derivative (minpoly R x)) ∈ P
⊢ False
Theorem: isUnramifiedAt_of_Separable_minpoly'
Proof state before:
case a
R : Type u_1
K : Type u_2
L : Type u_3
S : Type u_4
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
inst✝¹² : Field K
inst✝¹¹ : Field L
inst✝¹⁰ : IsDedekindDomain R
inst✝⁹ : Algebra R K
inst✝⁸ : IsFractionRing R K
inst✝⁷ : Algebra S L
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra R L
inst✝⁴ : IsScalarTower R S L
inst✝³ : IsScalarTower R K L
inst✝² : IsIntegralClosure S R L
inst✝¹ : FiniteDimensional K L
inst✝ : IsSeparable K L
p : Ideal R
hp : p.IsPrime
hpbot : p ≠ ⊥
x : S
hx' : Algebra.adjoin K {(algebraMap S L) x} = ⊤
h : (map (Ideal.Quotient.mk p) (minpoly R x)).Separable
this✝⁸ : IsDomain S
hRS : Function.Injective ⇑(algebraMap R S)
this✝⁷ : NoZeroSMulDivisors R S
this✝⁶ : IsNoetherian R S
this✝⁵ : IsDedekindDomain S
this✝⁴ : IsFractionRing S L
this✝³ : (aeval x) (derivative (minpoly R x)) ∈ differentIdeal R S
H✝ :
  (algebraMap (FractionRing R) (FractionRing S)).comp ↑(FractionRing.algEquiv R K).symm.toRingEquiv =
    (↑(FractionRing.algEquiv S L).symm.toRingEquiv).comp (algebraMap K L)
this✝² : IsSeparable (FractionRing R) (FractionRing S)
this✝¹ : p.IsMaximal
P : Ideal S
hP : P ∈ primesOver S p
this✝ : IsScalarTower S (S ⧸ P) (S ⧸ P) := IsScalarTower.right
this : P.IsMaximal
H : ¬Ideal.ramificationIdx (algebraMap R S) p P - 1 = 0
hxP : (aeval x) (derivative (minpoly R x)) ∈ P
⊢ False
Tactic:
rw [← Ideal.Quotient.eq_zero_iff_mem, ← Ideal.Quotient.algebraMap_eq] at hxP
Proof state after:
case a
R : Type u_1
K : Type u_2
L : Type u_3
S : Type u_4
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
inst✝¹² : Field K
inst✝¹¹ : Field L
inst✝¹⁰ : IsDedekindDomain R
inst✝⁹ : Algebra R K
inst✝⁸ : IsFractionRing R K
inst✝⁷ : Algebra S L
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra R L
inst✝⁴ : IsScalarTower R S L
inst✝³ : IsScalarTower R K L
inst✝² : IsIntegralClosure S R L
inst✝¹ : FiniteDimensional K L
inst✝ : IsSeparable K L
p : Ideal R
hp : p.IsPrime
hpbot : p ≠ ⊥
x : S
hx' : Algebra.adjoin K {(algebraMap S L) x} = ⊤
h : (map (Ideal.Quotient.mk p) (minpoly R x)).Separable
this✝⁸ : IsDomain S
hRS : Function.Injective ⇑(algebraMap R S)
this✝⁷ : NoZeroSMulDivisors R S
this✝⁶ : IsNoetherian R S
this✝⁵ : IsDedekindDomain S
this✝⁴ : IsFractionRing S L
this✝³ : (aeval x) (derivative (minpoly R x)) ∈ differentIdeal R S
H✝ :
  (algebraMap (FractionRing R) (FractionRing S)).comp ↑(FractionRing.algEquiv R K).symm.toRingEquiv =
    (↑(FractionRing.algEquiv S L).symm.toRingEquiv).comp (algebraMap K L)
this✝² : IsSeparable (FractionRing R) (FractionRing S)
this✝¹ : p.IsMaximal
P : Ideal S
hP : P ∈ primesOver S p
this✝ : IsScalarTower S (S ⧸ P) (S ⧸ P) := IsScalarTower.right
this : P.IsMaximal
H : ¬Ideal.ramificationIdx (algebraMap R S) p P - 1 = 0
hxP : (algebraMap S (S ⧸ P)) ((aeval x) (derivative (minpoly R x))) = 0
⊢ False
Theorem: isUnramifiedAt_of_Separable_minpoly'
Proof state before:
case a
R : Type u_1
K : Type u_2
L : Type u_3
S : Type u_4
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
inst✝¹² : Field K
inst✝¹¹ : Field L
inst✝¹⁰ : IsDedekindDomain R
inst✝⁹ : Algebra R K
inst✝⁸ : IsFractionRing R K
inst✝⁷ : Algebra S L
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra R L
inst✝⁴ : IsScalarTower R S L
inst✝³ : IsScalarTower R K L
inst✝² : IsIntegralClosure S R L
inst✝¹ : FiniteDimensional K L
inst✝ : IsSeparable K L
p : Ideal R
hp : p.IsPrime
hpbot : p ≠ ⊥
x : S
hx' : Algebra.adjoin K {(algebraMap S L) x} = ⊤
h : (map (Ideal.Quotient.mk p) (minpoly R x)).Separable
this✝⁸ : IsDomain S
hRS : Function.Injective ⇑(algebraMap R S)
this✝⁷ : NoZeroSMulDivisors R S
this✝⁶ : IsNoetherian R S
this✝⁵ : IsDedekindDomain S
this✝⁴ : IsFractionRing S L
this✝³ : (aeval x) (derivative (minpoly R x)) ∈ differentIdeal R S
H✝ :
  (algebraMap (FractionRing R) (FractionRing S)).comp ↑(FractionRing.algEquiv R K).symm.toRingEquiv =
    (↑(FractionRing.algEquiv S L).symm.toRingEquiv).comp (algebraMap K L)
this✝² : IsSeparable (FractionRing R) (FractionRing S)
this✝¹ : p.IsMaximal
P : Ideal S
hP : P ∈ primesOver S p
this✝ : IsScalarTower S (S ⧸ P) (S ⧸ P) := IsScalarTower.right
this : P.IsMaximal
H : ¬Ideal.ramificationIdx (algebraMap R S) p P - 1 = 0
hxP : (algebraMap S (S ⧸ P)) ((aeval x) (derivative (minpoly R x))) = 0
⊢ False
Tactic:
have := (separable_map (Ideal.quotientMap P (algebraMap R S) hP.2.ge)).mpr h
Proof state after:
case a
R : Type u_1
K : Type u_2
L : Type u_3
S : Type u_4
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
inst✝¹² : Field K
inst✝¹¹ : Field L
inst✝¹⁰ : IsDedekindDomain R
inst✝⁹ : Algebra R K
inst✝⁸ : IsFractionRing R K
inst✝⁷ : Algebra S L
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra R L
inst✝⁴ : IsScalarTower R S L
inst✝³ : IsScalarTower R K L
inst✝² : IsIntegralClosure S R L
inst✝¹ : FiniteDimensional K L
inst✝ : IsSeparable K L
p : Ideal R
hp : p.IsPrime
hpbot : p ≠ ⊥
x : S
hx' : Algebra.adjoin K {(algebraMap S L) x} = ⊤
h : (map (Ideal.Quotient.mk p) (minpoly R x)).Separable
this✝⁹ : IsDomain S
hRS : Function.Injective ⇑(algebraMap R S)
this✝⁸ : NoZeroSMulDivisors R S
this✝⁷ : IsNoetherian R S
this✝⁶ : IsDedekindDomain S
this✝⁵ : IsFractionRing S L
this✝⁴ : (aeval x) (derivative (minpoly R x)) ∈ differentIdeal R S
H✝ :
  (algebraMap (FractionRing R) (FractionRing S)).comp ↑(FractionRing.algEquiv R K).symm.toRingEquiv =
    (↑(FractionRing.algEquiv S L).symm.toRingEquiv).comp (algebraMap K L)
this✝³ : IsSeparable (FractionRing R) (FractionRing S)
this✝² : p.IsMaximal
P : Ideal S
hP : P ∈ primesOver S p
this✝¹ : IsScalarTower S (S ⧸ P) (S ⧸ P) := IsScalarTower.right
this✝ : P.IsMaximal
H : ¬Ideal.ramificationIdx (algebraMap R S) p P - 1 = 0
hxP : (algebraMap S (S ⧸ P)) ((aeval x) (derivative (minpoly R x))) = 0
this : (map (Ideal.quotientMap P (algebraMap R S) ⋯) (map (Ideal.Quotient.mk p) (minpoly R x))).Separable
⊢ False
Theorem: isUnramifiedAt_of_Separable_minpoly'
Proof state before:
case a
R : Type u_1
K : Type u_2
L : Type u_3
S : Type u_4
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
inst✝¹² : Field K
inst✝¹¹ : Field L
inst✝¹⁰ : IsDedekindDomain R
inst✝⁹ : Algebra R K
inst✝⁸ : IsFractionRing R K
inst✝⁷ : Algebra S L
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra R L
inst✝⁴ : IsScalarTower R S L
inst✝³ : IsScalarTower R K L
inst✝² : IsIntegralClosure S R L
inst✝¹ : FiniteDimensional K L
inst✝ : IsSeparable K L
p : Ideal R
hp : p.IsPrime
hpbot : p ≠ ⊥
x : S
hx' : Algebra.adjoin K {(algebraMap S L) x} = ⊤
h : (map (Ideal.Quotient.mk p) (minpoly R x)).Separable
this✝⁹ : IsDomain S
hRS : Function.Injective ⇑(algebraMap R S)
this✝⁸ : NoZeroSMulDivisors R S
this✝⁷ : IsNoetherian R S
this✝⁶ : IsDedekindDomain S
this✝⁵ : IsFractionRing S L
this✝⁴ : (aeval x) (derivative (minpoly R x)) ∈ differentIdeal R S
H✝ :
  (algebraMap (FractionRing R) (FractionRing S)).comp ↑(FractionRing.algEquiv R K).symm.toRingEquiv =
    (↑(FractionRing.algEquiv S L).symm.toRingEquiv).comp (algebraMap K L)
this✝³ : IsSeparable (FractionRing R) (FractionRing S)
this✝² : p.IsMaximal
P : Ideal S
hP : P ∈ primesOver S p
this✝¹ : IsScalarTower S (S ⧸ P) (S ⧸ P) := IsScalarTower.right
this✝ : P.IsMaximal
H : ¬Ideal.ramificationIdx (algebraMap R S) p P - 1 = 0
hxP : (algebraMap S (S ⧸ P)) ((aeval x) (derivative (minpoly R x))) = 0
this : (map (Ideal.quotientMap P (algebraMap R S) ⋯) (map (Ideal.Quotient.mk p) (minpoly R x))).Separable
⊢ False
Tactic:
rw [map_map, Ideal.quotientMap_comp_mk] at this
Proof state after:
case a
R : Type u_1
K : Type u_2
L : Type u_3
S : Type u_4
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
inst✝¹² : Field K
inst✝¹¹ : Field L
inst✝¹⁰ : IsDedekindDomain R
inst✝⁹ : Algebra R K
inst✝⁸ : IsFractionRing R K
inst✝⁷ : Algebra S L
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra R L
inst✝⁴ : IsScalarTower R S L
inst✝³ : IsScalarTower R K L
inst✝² : IsIntegralClosure S R L
inst✝¹ : FiniteDimensional K L
inst✝ : IsSeparable K L
p : Ideal R
hp : p.IsPrime
hpbot : p ≠ ⊥
x : S
hx' : Algebra.adjoin K {(algebraMap S L) x} = ⊤
h : (map (Ideal.Quotient.mk p) (minpoly R x)).Separable
this✝⁹ : IsDomain S
hRS : Function.Injective ⇑(algebraMap R S)
this✝⁸ : NoZeroSMulDivisors R S
this✝⁷ : IsNoetherian R S
this✝⁶ : IsDedekindDomain S
this✝⁵ : IsFractionRing S L
this✝⁴ : (aeval x) (derivative (minpoly R x)) ∈ differentIdeal R S
H✝ :
  (algebraMap (FractionRing R) (FractionRing S)).comp ↑(FractionRing.algEquiv R K).symm.toRingEquiv =
    (↑(FractionRing.algEquiv S L).symm.toRingEquiv).comp (algebraMap K L)
this✝³ : IsSeparable (FractionRing R) (FractionRing S)
this✝² : p.IsMaximal
P : Ideal S
hP : P ∈ primesOver S p
this✝¹ : IsScalarTower S (S ⧸ P) (S ⧸ P) := IsScalarTower.right
this✝ : P.IsMaximal
H : ¬Ideal.ramificationIdx (algebraMap R S) p P - 1 = 0
hxP : (algebraMap S (S ⧸ P)) ((aeval x) (derivative (minpoly R x))) = 0
this : (map ((Ideal.Quotient.mk P).comp (algebraMap R S)) (minpoly R x)).Separable
⊢ False
Theorem: isUnramifiedAt_of_Separable_minpoly'
Proof state before:
case a
R : Type u_1
K : Type u_2
L : Type u_3
S : Type u_4
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
inst✝¹² : Field K
inst✝¹¹ : Field L
inst✝¹⁰ : IsDedekindDomain R
inst✝⁹ : Algebra R K
inst✝⁸ : IsFractionRing R K
inst✝⁷ : Algebra S L
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra R L
inst✝⁴ : IsScalarTower R S L
inst✝³ : IsScalarTower R K L
inst✝² : IsIntegralClosure S R L
inst✝¹ : FiniteDimensional K L
inst✝ : IsSeparable K L
p : Ideal R
hp : p.IsPrime
hpbot : p ≠ ⊥
x : S
hx' : Algebra.adjoin K {(algebraMap S L) x} = ⊤
h : (map (Ideal.Quotient.mk p) (minpoly R x)).Separable
this✝⁹ : IsDomain S
hRS : Function.Injective ⇑(algebraMap R S)
this✝⁸ : NoZeroSMulDivisors R S
this✝⁷ : IsNoetherian R S
this✝⁶ : IsDedekindDomain S
this✝⁵ : IsFractionRing S L
this✝⁴ : (aeval x) (derivative (minpoly R x)) ∈ differentIdeal R S
H✝ :
  (algebraMap (FractionRing R) (FractionRing S)).comp ↑(FractionRing.algEquiv R K).symm.toRingEquiv =
    (↑(FractionRing.algEquiv S L).symm.toRingEquiv).comp (algebraMap K L)
this✝³ : IsSeparable (FractionRing R) (FractionRing S)
this✝² : p.IsMaximal
P : Ideal S
hP : P ∈ primesOver S p
this✝¹ : IsScalarTower S (S ⧸ P) (S ⧸ P) := IsScalarTower.right
this✝ : P.IsMaximal
H : ¬Ideal.ramificationIdx (algebraMap R S) p P - 1 = 0
hxP : (algebraMap S (S ⧸ P)) ((aeval x) (derivative (minpoly R x))) = 0
this : (map ((Ideal.Quotient.mk P).comp (algebraMap R S)) (minpoly R x)).Separable
⊢ False
Tactic:
obtain ⟨a, b, e⟩ := this
Proof state after:
case a.intro.intro
R : Type u_1
K : Type u_2
L : Type u_3
S : Type u_4
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
inst✝¹² : Field K
inst✝¹¹ : Field L
inst✝¹⁰ : IsDedekindDomain R
inst✝⁹ : Algebra R K
inst✝⁸ : IsFractionRing R K
inst✝⁷ : Algebra S L
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra R L
inst✝⁴ : IsScalarTower R S L
inst✝³ : IsScalarTower R K L
inst✝² : IsIntegralClosure S R L
inst✝¹ : FiniteDimensional K L
inst✝ : IsSeparable K L
p : Ideal R
hp : p.IsPrime
hpbot : p ≠ ⊥
x : S
hx' : Algebra.adjoin K {(algebraMap S L) x} = ⊤
h : (map (Ideal.Quotient.mk p) (minpoly R x)).Separable
this✝⁸ : IsDomain S
hRS : Function.Injective ⇑(algebraMap R S)
this✝⁷ : NoZeroSMulDivisors R S
this✝⁶ : IsNoetherian R S
this✝⁵ : IsDedekindDomain S
this✝⁴ : IsFractionRing S L
this✝³ : (aeval x) (derivative (minpoly R x)) ∈ differentIdeal R S
H✝ :
  (algebraMap (FractionRing R) (FractionRing S)).comp ↑(FractionRing.algEquiv R K).symm.toRingEquiv =
    (↑(FractionRing.algEquiv S L).symm.toRingEquiv).comp (algebraMap K L)
this✝² : IsSeparable (FractionRing R) (FractionRing S)
this✝¹ : p.IsMaximal
P : Ideal S
hP : P ∈ primesOver S p
this✝ : IsScalarTower S (S ⧸ P) (S ⧸ P) := IsScalarTower.right
this : P.IsMaximal
H : ¬Ideal.ramificationIdx (algebraMap R S) p P - 1 = 0
hxP : (algebraMap S (S ⧸ P)) ((aeval x) (derivative (minpoly R x))) = 0
a b : (S ⧸ P)[X]
e :
  a * map ((Ideal.Quotient.mk P).comp (algebraMap R S)) (minpoly R x) +
      b * derivative (map ((Ideal.Quotient.mk P).comp (algebraMap R S)) (minpoly R x)) =
    1
⊢ False
Theorem: isUnramifiedAt_of_Separable_minpoly'
Proof state before:
case a.intro.intro
R : Type u_1
K : Type u_2
L : Type u_3
S : Type u_4
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
inst✝¹² : Field K
inst✝¹¹ : Field L
inst✝¹⁰ : IsDedekindDomain R
inst✝⁹ : Algebra R K
inst✝⁸ : IsFractionRing R K
inst✝⁷ : Algebra S L
inst✝⁶ : Algebra K L
inst✝⁵ : Algebra R L
inst✝⁴ : IsScalarTower R S L
inst✝³ : IsScalarTower R K L
inst✝² : IsIntegralClosure S R L
inst✝¹ : FiniteDimensional K L
inst✝ : IsSeparable K L
p : Ideal R
hp : p.IsPrime
hpbot : p ≠ ⊥
x : S
hx' : Algebra.adjoin K {(algebraMap S L) x} = ⊤
h : (map (Ideal.Quotient.mk p) (minpoly R x)).Separable
this✝⁸ : IsDomain S
hRS : Function.Injective ⇑(algebraMap R S)
this✝⁷ : NoZeroSMulDivisors R S
this✝⁶ : IsNoetherian R S
this✝⁵ : IsDedekindDomain S
this✝⁴ : IsFractionRing S L
this✝³ : (aeval x) (derivative (minpoly R x)) ∈ differentIdeal R S
H✝ :
  (algebraMap (FractionRing R) (FractionRing S)).comp ↑(FractionRing.algEquiv R K).symm.toRingEquiv =
    (↑(FractionRing.algEquiv S L).symm.toRingEquiv).comp (algebraMap K L)
this✝² : IsSeparable (FractionRing R) (FractionRing S)
this✝¹ : p.IsMaximal
P : Ideal S
hP : P ∈ primesOver S p
this✝ : IsScalarTower S (S ⧸ P) (S ⧸ P) := IsScalarTower.right
this : P.IsMaximal
H : ¬Ideal.ramificationIdx (algebraMap R S) p P - 1 = 0
hxP : (algebraMap S (S ⧸ P)) ((aeval x) (derivative (minpoly R x))) = 0
a b : (S ⧸ P)[X]
e :
  (aeval ((Ideal.Quotient.mk P) x))
      (a * map ((Ideal.Quotient.mk P).comp (algebraMap R S)) (minpoly R x) +
        b * derivative (map ((Ideal.Quotient.mk P).comp (algebraMap R S)) (minpoly R x))) =
    (aeval ((Ideal.Quotient.mk P) x)) 1
⊢ False
Tactic:
simp_rw [← Ideal.Quotient.algebraMap_eq, ← map_map, derivative_map, map_add, map_mul,
  aeval_map_algebraMap, aeval_algebraMap_apply, minpoly.aeval, hxP, map_zero, mul_zero,
  zero_add, map_one, zero_ne_one] at e
Proof state after:
no goals