FLT/DedekindDomain/FiniteAdeleRing/TensorRestrictedProduct.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
16 declarations, 0 contain sorry, 0 declared as axioms
Tensor product distributing over a restricted product
For a flat R-module M and a restricted product of R-modules N i
relative to submodules L i, we construct the natural R-linear (and
M-linear) map M ⊗_R ∏'ᵢ [N i, L i] → ∏'ᵢ [M ⊗_R N i, M ⊗_R L i].
Imports (5)
Imported by 2 files
- def
RestrictedProduct.rangeLTensorM ⊗_R (L i)as anR-submodule ofM ⊗_R (N i)line 35 sourceSource documentation
M ⊗_R (L i)as anR-submodule ofM ⊗_R (N i).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Submodule,TensorProductProof uses:
LinearMap.range,Subtype,Membership.mem,RingHom.id,LinearMap.lTensor,Submodule.subtype16 instances, coercions and auxiliary constants left out.
def rangeLTensor (i : ι) : Submodule R (M ⊗[R] N i) := …
- def
RestrictedProduct.rangeLTensorLeftM ⊗_R (L i)as anM-submodule ofM ⊗_R (N i)line 39 sourceSource documentation
M ⊗_R (L i)as anM-submodule ofM ⊗_R (N i).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommSemiring,Algebra,Semiring,Submodule,TensorProductProof uses:
LinearMap.range,Subtype,Membership.mem,RingHom.id,LinearMap,TensorProduct.AlgebraTensorModule.lTensor,Submodule.subtype28 instances, coercions and auxiliary constants left out.
noncomputable def rangeLTensorLeft (R M : Type*) [CommSemiring R] [CommSemiring M] [Algebra R M] {ι : Type*} (N : ι → Type*) [∀ i, Semiring (N i)] [∀ i, Algebra R (N i)] (L : ∀ i, Submodule R (N i)) (i : ι) : Submodule M (M ⊗[R] N i) := … - def
RestrictedProduct.lTensorTheR-linear mapφ : M ⊗_R ∏'_i [N i, L i]_[𝓕] → ∏'_i [M ⊗_R (N i), M ⊗_R (L i)]_[𝓕]given byφ (m ⊗ n) i = m ⊗ (n i)line 47 sourceSource documentation
The
R-linear mapφ : M ⊗_R ∏'_i [N i, L i]_[𝓕] → ∏'_i [M ⊗_R (N i), M ⊗_R (L i)]_[𝓕]given byφ (m ⊗ n) i = m ⊗ (n i).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Filter,Submodule,LinearMap,RingHom.id,TensorProduct,RestrictedProduct, RestrictedProduct.rangeLTensorProof uses:
Filter.Eventually,Set.MapsTo,TensorProduct.mk,TensorProduct.lift,LinearMap.mk,AddHom.mk, RestrictedProduct.mapAlongLinearMap,id,Filter.tendsto_id38 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
def lTensor : M ⊗[R] Πʳ i, [N i, L i]_[ℱ] →ₗ[R] Πʳ i, [M ⊗[R] N i, rangeLTensor R M N L i]_[ℱ] := …Mentions: RestrictedProduct.rangeLTensor
- def
RestrictedProduct.lTensorLeftTheM-linear mapφ : M ⊗_R ∏'_i [N i, L i]_[𝓕] → ∏'_i [M ⊗_R (N i), M ⊗_R (L i)]_[𝓕]given byφ (m ⊗ n) i = m ⊗ (n i)line 62 sourceSource documentation
The
M-linear mapφ : M ⊗_R ∏'_i [N i, L i]_[𝓕] → ∏'_i [M ⊗_R (N i), M ⊗_R (L i)]_[𝓕]given byφ (m ⊗ n) i = m ⊗ (n i).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,Ring,Filter,Submodule,LinearMap,RingHom.id,TensorProduct,RestrictedProduct, RestrictedProduct.rangeLTensorLeftProof uses:
Filter.Eventually,Set.MapsTo,TensorProduct.mk,LinearMap.mk,AddHom.mk,TensorProduct.tmul,OfNat.ofNat,SMulMemClass,IsScalarTower,LinearMap.liftBaseChange, RestrictedProduct.mapAlongLinearMap,id,Filter.tendsto_id60 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
noncomputable def lTensorLeft (R M : Type*) [CommRing R] [CommRing M] [Algebra R M] {ι : Type*} (N : ι → Type*) [∀ i, Ring (N i)] [∀ i, Algebra R (N i)] (ℱ : Filter ι) (L : ∀ i, Submodule R (N i)) : M ⊗[R] Πʳ i, [N i, L i]_[ℱ] →ₗ[M] Πʳ i, [M ⊗[R] N i, rangeLTensorLeft R M N L i]_[ℱ] := …Mentions: RestrictedProduct.rangeLTensorLeft
- lemma
RestrictedProduct.lTensor_tmulline 79 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Filter,Submodule,RestrictedProduct,Eq,TensorProduct, RestrictedProduct.rangeLTensor,LinearMap,RingHom.id, RestrictedProduct.lTensor,TensorProduct.tmulProof uses:
rfl30 instances, coercions and auxiliary constants left out.
- lemma
RestrictedProduct.lTensorLeft_tmulline 85 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,Ring,Submodule,Filter,RestrictedProduct,Eq,TensorProduct, RestrictedProduct.rangeLTensorLeft,LinearMap,RingHom.id, RestrictedProduct.lTensorLeft,TensorProduct.tmulProof uses:
Eq.mpr,LinearMap.liftBaseChange, RestrictedProduct.mapAlongLinearMap,id,Filter.tendsto_id,LinearMap.mk,AddHom.mk,OfNat.ofNat,congrArg,RestrictedProduct.lTensorLeft.eq_1,HSMul.hSMul,LinearMap.liftBaseChange_tmul,RestrictedProduct.smul_apply, RestrictedProduct.mapAlongLinearMap_apply,of_eq_true,Eq.trans,True,congrFun',CommSemiring,Moduleand 4 more72 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
RestrictedProduct.coe_lTensorLeft_eq_lTensorline 93 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,Ring,Submodule,Filter,Eq,TensorProduct,RestrictedProduct, RestrictedProduct.rangeLTensorLeft,LinearMap,RingHom.id, RestrictedProduct.lTensorLeft, RestrictedProduct.rangeLTensor, RestrictedProduct.lTensorProof uses:
funext,RestrictedProduct.ext,TensorProduct.inductionOn,Eq.mpr,TensorProduct.tmul,id,congrFun',congrArg, RestrictedProduct.lTensorLeft_tmul,Eq.refl,HAdd.hAdd,congr,Eq.trans,congrFun,map_add52 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- def
RestrictedProduct.tmulEquivRangeLTensorR-Linear isomorphism betweenM ⊗_R (L i)andrangeLTensor R M N L iline 105 sourceSource documentation
R-Linear isomorphism betweenM ⊗_R (L i)andrangeLTensor R M N L i.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Submodule,Module.Flat,LinearEquiv,RingHom.id,TensorProduct,Subtype,Membership.mem, RestrictedProduct.rangeLTensorProof uses:
LinearEquiv.ofInjective,LinearMap.lTensor,Submodule.subtype23 instances, coercions and auxiliary constants left out.
noncomputable def tmulEquivRangeLTensor (i : ι) : M ⊗[R] (L i) ≃ₗ[R] rangeLTensor R M N L i := …
Mentions: RestrictedProduct.rangeLTensor
- def
RestrictedProduct.lTensorPrincipalEquivR-Linear isomorphism that's propositionally equal tolTensorline 113 sourceSource documentation
R-Linear isomorphism that's propositionally equal tolTensor.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Submodule,Set,Module.FinitePresentation,Module.Flat,LinearEquiv,RingHom.id,TensorProduct,RestrictedProduct,Filter.principal, RestrictedProduct.rangeLTensorProof uses:
ite,Membership.mem,Classical.propDecidable,Top.top,Subtype,LinearEquiv.mk,LinearMap.mk,AddHom.mk,Subtype.mk,Filter.Eventually,LinearEquiv.lTensor, tensorPiEquivPiTensor',LinearEquiv.trans,LinearEquiv.ofEq, RestrictedProduct.tmulEquivRangeLTensor,Not,LinearEquiv.ofTop,dite,LinearEquiv.symm60 instances, coercions and auxiliary constants left out.
Tactic trace: 30 steps
Open to load the checked before-and-after goal states.
noncomputable def lTensorPrincipalEquiv : M ⊗[R] Πʳ i, [N i, L i]_[𝓟 S] ≃ₗ[R] Πʳ i, [M ⊗[R] N i, rangeLTensor R M N L i]_[𝓟 S] := …Mentions: RestrictedProduct.rangeLTensor
- lemma
RestrictedProduct.lTensorPrincipalEquiv_tmulline 165 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Submodule,Set,Module.FinitePresentation,Module.Flat,RestrictedProduct,Filter.principal,Eq,TensorProduct, RestrictedProduct.rangeLTensor,LinearEquiv,RingHom.id, RestrictedProduct.lTensorPrincipalEquiv,TensorProduct.tmulProof uses:
of_eq_true,Eq.trans,True,congrFun',congrArg,congrFun,LinearMap.range,Subtype,Membership.mem,LinearMap.lTensor,Submodule.subtype,Subtype.mk,Filter.Eventually,dite,Classical.propDecidable,LinearMap,ite,Top.top,LinearEquiv.lTensor,LinearEquiv.ofEqand 10 more52 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
RestrictedProduct.lTensor_bijectiveline 172 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Filter,Submodule,Module.FinitePresentation,Module.Flat,Function.Bijective,TensorProduct,RestrictedProduct, RestrictedProduct.rangeLTensor,LinearMap,RingHom.id, RestrictedProduct.lTensorProof uses:
LinearEquiv,Module.DirectLimit,OrderDual,Set,Filter.sets,Membership.mem,Filter.principal,LE.le, RestrictedProduct.inclusionLinearMap,Filter.monotone_principal,LinearMap.lTensor,TensorProduct.directLimitRight, IsDirectLimit.Module.linearEquiv,Iff.mpr,Filter.le_principal_iff,Subtype.property,Module.DirectLimit.of,LinearEquiv.trans,LinearEquiv.lTensor,Module.DirectLimit.congrand 76 more121 instances, coercions and auxiliary constants left out.
Tactic trace: 25 steps
Open to load the checked before-and-after goal states.
- lemma
RestrictedProduct.lTensorLeft_bijectiveline 227 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,Ring,Submodule,Filter,Module.Flat,Module.FinitePresentation,Function.Bijective,TensorProduct,RestrictedProduct, RestrictedProduct.rangeLTensorLeft,LinearMap,RingHom.id, RestrictedProduct.lTensorLeftProof uses:
Eq.mpr, RestrictedProduct.rangeLTensor, RestrictedProduct.lTensor,id,Eq,congrArg, RestrictedProduct.coe_lTensorLeft_eq_lTensor, RestrictedProduct.lTensor_bijective40 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- def
RestrictedProduct.lTensorEquivTheR-linear isomorphism given bylTensorwhenMis a finite flatR-module line 235 sourceSource documentation
The
R-linear isomorphism given bylTensorwhenMis a finite flatR-module.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Filter,Submodule,Module.FinitePresentation,Module.Flat,LinearEquiv,RingHom.id,TensorProduct,RestrictedProduct, RestrictedProduct.rangeLTensorProof uses:
LinearEquiv.ofBijective, RestrictedProduct.lTensor, RestrictedProduct.lTensor_bijective28 instances, coercions and auxiliary constants left out.
noncomputable def lTensorEquiv : M ⊗[R] Πʳ i, [N i, L i]_[ℱ] ≃ₗ[R] Πʳ i, [M ⊗[R] N i, rangeLTensor R M N L i]_[ℱ] := …Mentions: RestrictedProduct.rangeLTensor
- def
RestrictedProduct.lTensorEquivLeftTheM-linear isomorphism given bylTensorwhenMis a finite flatR-module line 240 sourceSource documentation
The
M-linear isomorphism given bylTensorwhenMis a finite flatR-module.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,Ring,Submodule,Filter,Module.Flat,Module.FinitePresentation,LinearEquiv,RingHom.id,TensorProduct,RestrictedProduct, RestrictedProduct.rangeLTensorLeftProof uses:
LinearEquiv.ofBijective, RestrictedProduct.lTensorLeft, RestrictedProduct.lTensorLeft_bijective36 instances, coercions and auxiliary constants left out.
noncomputable def lTensorEquivLeft (R M : Type*) [CommRing R] [CommRing M] [Algebra R M] {ι : Type*} (N : ι → Type*) [∀ i, Ring (N i)] [∀ i, Algebra R (N i)] (L : ∀ i, Submodule R (N i)) (ℱ : Filter ι) [Module.Flat R M] [Module.FinitePresentation R M] : M ⊗[R] Πʳ i, [N i, L i]_[ℱ] ≃ₗ[M] Πʳ i, [M ⊗[R] N i, rangeLTensorLeft R M N L i]_[ℱ] := …Mentions: RestrictedProduct.rangeLTensorLeft
- lemma
RestrictedProduct.lTensorEquiv_tmulline 247 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Filter,Submodule,Module.FinitePresentation,Module.Flat,RestrictedProduct,Eq,TensorProduct, RestrictedProduct.rangeLTensor,LinearEquiv,RingHom.id, RestrictedProduct.lTensorEquiv,TensorProduct.tmulProof uses:
rfl34 instances, coercions and auxiliary constants left out.
- lemma
RestrictedProduct.lTensorEquivLeft_tmulline 252 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,Ring,Submodule,Filter,Module.Flat,Module.FinitePresentation,RestrictedProduct,Eq,TensorProduct, RestrictedProduct.rangeLTensorLeft,LinearEquiv,RingHom.id, RestrictedProduct.lTensorEquivLeft,TensorProduct.tmulProof uses:
of_eq_true,Eq.trans,True,congrFun',congrArg, RestrictedProduct.lTensorLeft_tmul,eq_self42 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.