FLT/DedekindDomain/IntegralClosure.lean
Explanation legend Lean4 Domain Explanation Language (L4DEL)
L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.
- L4DEL
- Lean4 Domain Explanation Language
Credit: The upstream authors and contributors retain credit for the project and mathematics. lean4-explainer only renders their pinned source and adds the separately disclosed explanation layer.
Project sources: Pinned project documentation, Pinned FLT blueprint introduction
24 declarations, 0 contain sorry, 0 declared as axioms
The general "AKLB" set-up. K is the field of fractions of the Dedekind domain A,
L/K is a finite separable extension, and B is the integral closure of A in L.
Imports (7)
- FLT.Mathlib.RingTheory.DedekindDomain.AdicValuation
- FLT.Mathlib.RingTheory.Localization.BaseChange
- Mathlib.RingTheory.DedekindDomain.AdicValuation
- Mathlib.RingTheory.RamificationInertia.Inertia
- Mathlib.RingTheory.RamificationInertia.Ramification
- Mathlib.Algebra.Group.Int.TypeTags
- Mathlib.RingTheory.RamificationInertia.Basic
Imported by 4 files
- def
IsDedekindDomain.HeightOneSpectrum.ExtensionDocumented declaration: Extension line 41 sourceSource documentation
If
Bis anA-algebra andv : HeightOneSpectrum Ais a nonzero prime, thenv.Extension Bis the subtype ofHeightOneSpeectrum Bconsisting of valuations ofBwhich restrict tov.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,IsDedekindDomain,Algebra.IsIntegral,IsDedekindDomain.HeightOneSpectrumProof uses:
Subtype,Eq,IsDedekindDomain.HeightOneSpectrum.under7 instances, coercions and auxiliary constants left out.
def Extension (v : HeightOneSpectrum A) := {w : HeightOneSpectrum B // w.under A = v} - lemma
IsDedekindDomain.HeightOneSpectrum.mk_count_factors_mapline 43 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,IsDedekindDomain,Algebra.IsIntegral,Function.Injective,RingHom,Algebra.algebraMap,IsDedekindDomain.HeightOneSpectrum,Ideal,Eq,Nat,Associates.count,Associates.mk,IsDedekindDomain.HeightOneSpectrum.asIdeal,Associates.factors,Ideal.map,HMul.hMul,Ideal.ramificationIdx,IsDedekindDomain.HeightOneSpectrum.underProof uses:
UniqueFactorizationMonoid.induction_on_prime,Eq.mpr,OfNat.ofNat,Associates,id,congrArg,Associates.mk_zero,Bot.bot,Ideal.zero_eq_bot,Ideal.map_bot,Eq.symm,of_eq_true,Eq.trans,True,congr,dite,Associates.FactorSet,Irreducible,Associates.bcount,Subtype.mkand 71 more106 instances, coercions and auxiliary constants left out.
Tactic trace: 30 steps
Open to load the checked before-and-after goal states.
- lemma
IsDedekindDomain.HeightOneSpectrum.ramificationIdx_ne_zeroline 91 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,IsDedekindDomain,Algebra.IsIntegral,Function.Injective,RingHom,Algebra.algebraMap,IsDedekindDomain.HeightOneSpectrum,Ne,Nat,Ideal.ramificationIdx,IsDedekindDomain.HeightOneSpectrum.asIdeal,OfNat.ofNatProof uses:
Ideal,Ideal.map,IsDedekindDomain.HeightOneSpectrum.under,Bot.bot,Iff.mpr,Not,Eq,Iff.not,Ideal.map_eq_bot_iff_of_injective,IsDedekindDomain.HeightOneSpectrum.ne_bot,Eq.mpr,Ideal.ramificationIdx',id,congrArg,Eq.symm,Ideal.ramificationIdx'_eq_ramificationIdx',Ideal.IsDedekindDomain.ramificationIdx'_ne_zero,Ideal.map_comap_le21 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
IsDedekindDomain.HeightOneSpectrum.intValuation_comapIf w | v then for a ∈ A we have w(a)=v(a)^e where e is the ramification index line 100 sourceSource documentation
If w | v then for a ∈ A we have w(a)=v(a)^e where e is the ramification index.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,IsDedekindDomain,Algebra.IsIntegral,Function.Injective,RingHom,Algebra.algebraMap,IsDedekindDomain.HeightOneSpectrum,Eq,WithZero,Multiplicative,Int,HPow.hPow,Nat,Valuation,IsDedekindDomain.HeightOneSpectrum.intValuation,IsDedekindDomain.HeightOneSpectrum.under,Ideal.ramificationIdx,IsDedekindDomain.HeightOneSpectrum.asIdealProof uses:
Ne,OfNat.ofNat, IsDedekindDomain.HeightOneSpectrum.ramificationIdx_ne_zero,dite,Classical.propDecidable,Eq.mpr,Not,id,Eq.trans,And,congr,congrArg,congrFun',map_zero,True,eq_self,true_and,IsDedekindDomain.HeightOneSpectrum.intValuationDef,ite,WithZero.expand 34 more138 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
lemma intValuation_comap (hAB : Function.Injective (algebraMap A B)) (w : HeightOneSpectrum B) (x : A) : (under A w).intValuation x ^ w.asIdeal.ramificationIdx A = w.intValuation (algebraMap A B x) := by … - lemma
IsDedekindDomain.HeightOneSpectrum.valuation_comapIf w | v then for x ∈ K we have w(x)=v(x)^e where e is the ramification index line 117 sourceSource documentation
If w | v then for x ∈ K we have w(x)=v(x)^e where e is the ramification index.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,Field,IsFractionRing,IsDedekindDomain,IsScalarTower,Algebra.IsIntegral,IsDedekindDomain.HeightOneSpectrum,Eq,WithZero,Multiplicative,Int,HPow.hPow,Nat,Valuation,IsDedekindDomain.HeightOneSpectrum.valuation,IsDedekindDomain.HeightOneSpectrum.under,Ideal.ramificationIdx,IsDedekindDomain.HeightOneSpectrum.asIdeal,RingHomand 1 moreProof uses:
Exists,And,Membership.mem,Submonoid,nonZeroDivisors,HDiv.hDiv,IsFractionRing.div_surjective,of_eq_true,Eq.trans,IsDedekindDomain.HeightOneSpectrum.intValuation,True,congr,congrArg,congrFun',map_div₀,Valuation.extendToLocalization,Set.mem_compl,Ideal,Valuation.supp,IsDedekindDomain.HeightOneSpectrum.intValuation_ne_zero'and 9 more112 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
lemma valuation_comap (w : HeightOneSpectrum B) (x : K) : (under A w).valuation K x ^ w.asIdeal.ramificationIdx A = w.valuation L (algebraMap K L x) := by … - lemma
IsDedekindDomain.HeightOneSpectrum.isTorsionFreeline 127 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,Field,IsFractionRing,IsScalarTower,IsDomain,Module.IsTorsionFreeProof uses:
FaithfulSMul,FaithfulSMul.of_field_isFractionRing,Nontrivial,Iff.mpr,IsFractionRing.nontrivial_iff_nontrivial,inferInstance18 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- theorem
IsDedekindDomain.HeightOneSpectrum.Extension.finiteThere are only finitely many nonzero primes of B above a nonzero prime of A line 135 sourceSource documentation
There are only finitely many nonzero primes of B above a nonzero prime of A.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,Field,IsFractionRing,IsDedekindDomain,IsScalarTower,Algebra.IsIntegral,IsDedekindDomain.HeightOneSpectrum,Finite, IsDedekindDomain.HeightOneSpectrum.ExtensionProof uses:
Module.IsTorsionFree, IsDedekindDomain.HeightOneSpectrum.isTorsionFree,Eq.mpr,Subtype,Eq,IsDedekindDomain.HeightOneSpectrum.under,id,congrArg,IsDedekindDomain.HeightOneSpectrum.Extension.eq_1,Set.ofPred,Eq.symm,Set.coe_ofPred,Set.Finite,propext,Set.finite_coe_iff,Ideal,Ideal.primesOver,IsDedekindDomain.HeightOneSpectrum.asIdeal,IsDedekindDomain.primesOver_finite,Set.Finite.of_finite_imageand 24 more28 instances, coercions and auxiliary constants left out.
Tactic trace: 15 steps
Open to load the checked before-and-after goal states.
theorem Extension.finite (v : HeightOneSpectrum A) : Finite (v.Extension B) := by …
- def
IsDedekindDomain.HeightOneSpectrum.Extension.fintypeThere are only finitely many nonzero primes of B above a nonzero prime of A line 153 sourceSource documentation
There are only finitely many nonzero primes of B above a nonzero prime of A.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,Field,IsFractionRing,IsDedekindDomain,IsScalarTower,Algebra.IsIntegral,IsDedekindDomain.HeightOneSpectrum,Fintype, IsDedekindDomain.HeightOneSpectrum.ExtensionProof uses:
Finite, IsDedekindDomain.HeightOneSpectrum.Extension.finite,Fintype.ofFinite12 instances, coercions and auxiliary constants left out.
noncomputable def Extension.fintype : Fintype (Extension B v) := …
- theorem
IsDedekindDomain.HeightOneSpectrum.preimage_comap_finiteline 159 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,Field,IsFractionRing,IsDedekindDomain,IsScalarTower,Algebra.IsIntegral,Set,IsDedekindDomain.HeightOneSpectrum,Set.Finite,Set.preimage,IsDedekindDomain.HeightOneSpectrum.underProof uses:
Eq.mpr,Set.iUnion,Membership.mem,Singleton.singleton,id,Eq,congrArg,Eq.symm,Set.biUnion_preimage_singleton,Set.Finite.biUnion', IsDedekindDomain.HeightOneSpectrum.Extension.finite16 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- def
IsDedekindDomain.HeightOneSpectrum.preimageComapFinsetGiven an inclusion of Dedekind domains A → B, making B finite over A, this is the preimage of a Finset of finite places of A, as a Finset of finite places of B line 167 sourceSource documentation
Given an inclusion of Dedekind domains A → B, making B finite over A, this is the preimage of a Finset of finite places of A, as a Finset of finite places of B.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,Field,IsFractionRing,IsDedekindDomain,IsScalarTower,Algebra.IsIntegral,Finset,IsDedekindDomain.HeightOneSpectrumProof uses:
Set.Finite.toFinset,Set.preimage,IsDedekindDomain.HeightOneSpectrum.under16 instances, coercions and auxiliary constants left out.
noncomputable def preimageComapFinset (S : Finset (HeightOneSpectrum A)) : Finset (HeightOneSpectrum B) := … - def
IsDedekindDomain.HeightOneSpectrum.Extension.equivPrimesOverThe primes ofBextendingvare precisely the primes ofBlying overv.asIdealline 173 sourceSource documentation
The primes of
Bextendingvare precisely the primes ofBlying overv.asIdeal.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,Field,IsFractionRing,IsDedekindDomain,IsScalarTower,Algebra.IsIntegral,IsDedekindDomain.HeightOneSpectrum,Equiv, IsDedekindDomain.HeightOneSpectrum.Extension,Ideal,Ideal.primesOver,IsDedekindDomain.HeightOneSpectrum.asIdealProof uses:
Module.IsTorsionFree,Equiv.mk,Subtype.mk,Membership.mem,Set,Eq,IsDedekindDomain.HeightOneSpectrum.under,IsDedekindDomain.HeightOneSpectrum.mk26 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
noncomputable def Extension.equivPrimesOver : Extension B v ≃ v.asIdeal.primesOver B := …
- lemma
IsDedekindDomain.HeightOneSpectrum.Extension.equivPrimesOver_applyline 183 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,Field,IsFractionRing,IsDedekindDomain,IsScalarTower,Algebra.IsIntegral,IsDedekindDomain.HeightOneSpectrum, IsDedekindDomain.HeightOneSpectrum.Extension,Eq,Ideal,Membership.mem,Set,Ideal.primesOver,IsDedekindDomain.HeightOneSpectrum.asIdeal,Equiv, IsDedekindDomain.HeightOneSpectrum.Extension.equivPrimesOver,IsDedekindDomain.HeightOneSpectrum.underProof uses:
rfl25 instances, coercions and auxiliary constants left out.
- lemma
IsDedekindDomain.HeightOneSpectrum._root_.Ideal.sum_ramification_inertia_extensionsIdeal.sum_ramification_inertia_eq_finrank, rewritten as a sum over extensions line 189 sourceSource documentation
Ideal.sum_ramification_inertia_eq_finrank, rewritten as a sum over extensions.lemma _root_.Ideal.sum_ramification_inertia_extensions [Module.Finite A B] : letI := Extension.fintype A K L B v …Mentions: IsDedekindDomain.HeightOneSpectrum.Extension.fintype
- def
IsDedekindDomain.LinearEquivTensorProductThe canonicalK-linear isomorphismL ≅ K ⊗ Bline 215 sourceSource documentation
The canonical
K-linear isomorphismL ≅ K ⊗ B.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,Field,IsFractionRing,IsDedekindDomain,IsScalarTower,IsIntegralClosure,Algebra.IsAlgebraic,LinearEquiv,RingHom.id,TensorProductProof uses:
Localization,nonZeroDivisors,LocalizedModule,LocalizedModule.equivTensorProduct,IsLocalization,Algebra.algebraMapSubmonoid,IsLocalizedModule,AlgHom.toLinearMap,IsScalarTower.toAlgHom,IsLocalizedModule.iso,AlgHom,TensorProduct.congr,Localization.algEquiv,LinearEquiv.refl,LinearEquiv.extendScalarsOfIsLocalization,LinearEquiv.trans,LinearEquiv.symm,LinearEquiv.restrictScalars58 instances, coercions and auxiliary constants left out.
noncomputable def LinearEquivTensorProduct : L ≃ₗ[K] K ⊗[A] B := … - lemma
IsDedekindDomain.LinearEquivTensorProduct_symm_one_tmulline 228 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,Field,IsFractionRing,IsDedekindDomain,IsScalarTower,IsIntegralClosure,Algebra.IsAlgebraic,Eq,LinearEquiv,RingHom.id,TensorProduct,LinearEquiv.symm, IsDedekindDomain.LinearEquivTensorProduct,TensorProduct.tmul,OfNat.ofNat,RingHom,Algebra.algebraMapProof uses:
of_eq_true,Eq.trans,True,congrFun',congrArg,LinearEquiv.extendScalarsOfIsLocalization,nonZeroDivisors,LinearEquiv.trans,Localization,LocalizedModule,IsLocalizedModule.iso,AlgHom,IsScalarTower.toAlgHom,LinearEquiv.restrictScalars,LocalizedModule.equivTensorProduct,TensorProduct.congr,Localization.algEquiv,LinearEquiv.refl,LinearMap,LinearEquiv.extendScalarsOfIsLocalization_symm_applyand 14 more100 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
IsDedekindDomain.LinearEquivTensorProduct_symm_tmulline 232 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,Field,IsFractionRing,IsDedekindDomain,IsScalarTower,IsIntegralClosure,Algebra.IsAlgebraic,Eq,LinearEquiv,RingHom.id,TensorProduct,LinearEquiv.symm, IsDedekindDomain.LinearEquivTensorProduct,TensorProduct.tmul,HSMul.hSMul,RingHom,Algebra.algebraMapProof uses:
OfNat.ofNat,of_eq_true,Eq.trans,True,congrArg,congrFun',mul_one,eq_self,Eq.mpr,id,LinearEquiv.map_smul, IsDedekindDomain.LinearEquivTensorProduct_symm_one_tmul,Eq.refl59 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- def
IsDedekindDomain.linearEquivTensorProductModuleThe canonicalA-linear isomorphismL ⊗ M ≅ B ⊗ Mfor anyK-moduleMline 242 sourceSource documentation
The canonical
A-linear isomorphismL ⊗ M ≅ B ⊗ Mfor anyK-moduleM.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,Field,IsFractionRing,IsDedekindDomain,IsScalarTower,IsIntegralClosure,Algebra.IsAlgebraic,AddCommGroup,Module,LinearEquiv,RingHom.id,TensorProductProof uses:
LinearEquiv.restrictScalars,IsLocalization.moduleTensorEquiv,nonZeroDivisors,LinearEquiv.trans, IsDedekindDomain.LinearEquivTensorProduct,TensorProduct.comm,TensorProduct.congr,LinearEquiv.refl,TensorProduct.assoc,IsLocalization.moduleLid64 instances, coercions and auxiliary constants left out.
noncomputable def linearEquivTensorProductModule : L ⊗[K] M ≃ₗ[A] B ⊗[A] M := …
- def
IsDedekindDomain.linearEquivTensorProductModuleLeftThe canonicalB-linear isomorphismL ⊗ M ≅ B ⊗ Mfor anyK-moduleMline 256 sourceSource documentation
The canonical
B-linear isomorphismL ⊗ M ≅ B ⊗ Mfor anyK-moduleM.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,Field,IsFractionRing,IsDedekindDomain,IsScalarTower,IsIntegralClosure,Algebra.IsAlgebraic,AddCommGroup,Module,LinearEquiv,RingHom.id,TensorProductProof uses: IsLocalization.leftModuleTensorEquiv,
nonZeroDivisors,LinearEquiv.symm,LinearEquiv.trans,LinearEquiv.restrictScalars, IsDedekindDomain.LinearEquivTensorProduct,TensorProduct.comm,LinearEquiv.mk,LinearMap.mk,LinearMap.toAddHom,LinearEquiv.invFun,TensorProduct.AlgebraTensorModule.congr,LinearEquiv.refl,TensorProduct.AlgebraTensorModule.assoc,IsLocalization.moduleLid75 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
noncomputable def linearEquivTensorProductModuleLeft : L ⊗[K] M ≃ₗ[B] B ⊗[A] M := …
- lemma
IsDedekindDomain.linearEquivTensorProductModuleLeft_restrictScalarsline 277 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,Field,IsFractionRing,IsDedekindDomain,IsScalarTower,IsIntegralClosure,Algebra.IsAlgebraic,AddCommGroup,Module,Eq,LinearEquiv,RingHom.id,TensorProduct,LinearEquiv.restrictScalars, IsDedekindDomain.linearEquivTensorProductModuleLeft, IsDedekindDomain.linearEquivTensorProductModuleProof uses:
Eq.refl72 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
IsDedekindDomain.linearEquivTensorProductModule_symm_tmulline 282 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,Field,IsFractionRing,IsDedekindDomain,IsScalarTower,IsIntegralClosure,Algebra.IsAlgebraic,AddCommGroup,Module,Eq,TensorProduct,LinearEquiv,RingHom.id,LinearEquiv.symm, IsDedekindDomain.linearEquivTensorProductModule,TensorProduct.tmul,RingHom,Algebra.algebraMapProof uses:
of_eq_true,Eq.trans,True,congrFun',congrArg,LinearEquiv.trans,TensorProduct.assoc,TensorProduct.congr,TensorProduct.comm,LinearEquiv.restrictScalars, IsDedekindDomain.LinearEquivTensorProduct,LinearEquiv.refl,IsLocalization.moduleTensorEquiv,nonZeroDivisors,IsLocalization.moduleLid,OfNat.ofNat,LinearEquiv.restrictScalars_symm_apply, IsDedekindDomain.LinearEquivTensorProduct_symm_one_tmul,eq_self79 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
IsDedekindDomain.linearEquivTensorProductModule_tmulline 287 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,Field,IsFractionRing,IsDedekindDomain,IsScalarTower,IsIntegralClosure,Algebra.IsAlgebraic,AddCommGroup,Module,Eq,TensorProduct,LinearEquiv,RingHom.id, IsDedekindDomain.linearEquivTensorProductModule,TensorProduct.tmul,RingHom,Algebra.algebraMapProof uses:
Eq.mpr,LinearEquiv.symm,id,congrArg,Eq.symm,propext,LinearEquiv.eq_symm_apply, IsDedekindDomain.linearEquivTensorProductModule_symm_tmul,Eq.refl65 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
IsDedekindDomain.linearEquivTensorProductModuleLeft_symm_tmulline 291 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,Field,IsFractionRing,IsDedekindDomain,IsScalarTower,IsIntegralClosure,Algebra.IsAlgebraic,AddCommGroup,Module,Eq,TensorProduct,LinearEquiv,RingHom.id,LinearEquiv.symm, IsDedekindDomain.linearEquivTensorProductModuleLeft,TensorProduct.tmul,RingHom,Algebra.algebraMapProof uses:
of_eq_true,Eq.trans,True,congrFun',congrArg,LinearEquiv.trans,TensorProduct.AlgebraTensorModule.assoc,TensorProduct.AlgebraTensorModule.congr,LinearEquiv.mk,LinearMap.mk,LinearMap.toAddHom,TensorProduct.comm,LinearEquiv.restrictScalars, IsDedekindDomain.LinearEquivTensorProduct,AddHom,AddHom.toFun,HSMul.hSMul,id,Eq.refl,LinearMapand 13 more100 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
IsDedekindDomain.linearEquivTensorProductModuleLeft_tmulline 295 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,Field,IsFractionRing,IsDedekindDomain,IsScalarTower,IsIntegralClosure,Algebra.IsAlgebraic,AddCommGroup,Module,Eq,TensorProduct,LinearEquiv,RingHom.id, IsDedekindDomain.linearEquivTensorProductModuleLeft,TensorProduct.tmul,RingHom,Algebra.algebraMapProof uses:
Eq.mpr,LinearEquiv.symm,id,congrArg,Eq.symm,propext,LinearEquiv.eq_symm_apply, IsDedekindDomain.linearEquivTensorProductModuleLeft_symm_tmul,Eq.refl67 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
_root_.IsIntegralClosure.isLocalizedModuleline 307 source