FLT/Mathlib/Topology/Algebra/RestrictedProduct/Module.lean

GitHub source file

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

18 declarations, 0 contain sorry, 0 declared as axioms

Restricted product of modules as a module over restricted product of rings

If R : ι → Type* is a family of rings, B : (i : ι) → Subring (R i) is a family of subrings, M : ι → Type* is a family of types, with M i having an R i-module structure and C : (i : ι) → Submodule (B i) (M i), then Πʳ i, [M i, C i]_[𝓕] has a Πʳ i, [R i, B i]_[𝓕]-module structure.

Main definitions

Main theorems

Imports (10)
Imported by 3 files
  1. instance RestrictedProduct.(instance at line 67) line 67 source
  2. lemma RestrictedProduct.smul_apply' line 73 source

    standard axioms: Quot.sound, propext what this means

    Statement uses: Ring, SetLike, SubringClass, Filter, AddCommGroup, Module, SMulMemClass, Subtype, Membership.mem, RestrictedProduct, Eq, HSMul.hSMul

    Proof uses: rfl

    54 instances, coercions and auxiliary constants left out.

    Tactic trace: 12 steps

    Open to load the checked before-and-after goal states.

  3. instance RestrictedProduct.(instance at line 77) line 77 source
  4. lemma RestrictedProduct.single_smul line 86 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Ring, SetLike, SubringClass, AddCommGroup, Module, AddSubgroupClass, SMulMemClass, Subtype, Membership.mem, DecidableEq, RestrictedProduct, Filter.cofinite, Eq, HSMul.hSMul, RestrictedProduct.single

    Proof uses: RestrictedProduct.ext, Not, Or, em, of_eq_true, Eq.trans, True, congr, congrArg, congrFun', Pi.single_eq_same, eq_self, OfNat.ofNat, Zero, ZeroMemClass, RestrictedProduct.single_eq_of_ne', zero_smul

    86 instances, coercions and auxiliary constants left out.

    Tactic trace: 6 steps

    Open to load the checked before-and-after goal states.

  5. lemma RestrictedProduct.smul_single line 94 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Ring, SetLike, SubringClass, AddCommGroup, Module, AddSubgroupClass, SMulMemClass, Subtype, Membership.mem, DecidableEq, RestrictedProduct, Filter.cofinite, Eq, HSMul.hSMul, RestrictedProduct.single

    Proof uses: RestrictedProduct.ext, Not, Or, em, of_eq_true, Eq.trans, True, congr, congrArg, Pi.single_eq_same, eq_self, OfNat.ofNat, Zero, ZeroMemClass, RestrictedProduct.single_eq_of_ne', smul_zero

    71 instances, coercions and auxiliary constants left out.

    Tactic trace: 6 steps

    Open to load the checked before-and-after goal states.

  6. lemma RestrictedProduct.single_eq_smul line 101 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Ring, SetLike, SubringClass, AddCommGroup, Module, AddSubgroupClass, SMulMemClass, Subtype, Membership.mem, DecidableEq, RestrictedProduct, Filter.cofinite, Eq, HSMul.hSMul, RestrictedProduct.single, OfNat.ofNat

    Proof uses: of_eq_true, Eq.trans, True, congrFun', congrArg, RestrictedProduct.single_smul, RestrictedProduct.single.congr_simp, one_smul, eq_self

    86 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

    Open to load the checked before-and-after goal states.

  7. def RestrictedProduct.linearMapComponent Components of a linear map line 116 source

    Source documentation

    Components of a linear map.

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Ring, SetLike, SubringClass, AddCommGroup, Module, AddSubgroupClass, SMulMemClass, Subtype, Membership.mem, DecidableEq, LinearMap, RestrictedProduct, Filter.cofinite, RingHom.id

    Proof uses: LinearMap.mk, AddHom.mk, RestrictedProduct.single

    67 instances, coercions and auxiliary constants left out.

    Tactic trace: 5 steps

    Open to load the checked before-and-after goal states.

    noncomputable def linearMapComponent
        (f : Πʳ i, [M i, C i] →ₗ[Πʳ i, [R i, B i]] Πʳ i, [M₂ i, C₂ i]) (i : ι) : M i →ₗ[R i] M₂ i where
    …
  8. lemma RestrictedProduct.linearMap_component_apply line 127 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Ring, SetLike, SubringClass, AddCommGroup, Module, AddSubgroupClass, SMulMemClass, Subtype, Membership.mem, DecidableEq, LinearMap, RestrictedProduct, Filter.cofinite, RingHom.id, Eq, RestrictedProduct.linearMapComponent, RestrictedProduct.single

    Proof uses: rfl

    65 instances, coercions and auxiliary constants left out.

  9. lemma RestrictedProduct.linearMap_apply_eq_component line 131 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Ring, SetLike, SubringClass, AddCommGroup, Module, AddSubgroupClass, SMulMemClass, Subtype, Membership.mem, DecidableEq, LinearMap, RestrictedProduct, Filter.cofinite, RingHom.id, Eq, RestrictedProduct.linearMapComponent

    Proof uses: Eq.mpr, RestrictedProduct.single, id, congrArg, RestrictedProduct.linearMap_component_apply, HSMul.hSMul, OfNat.ofNat, Eq.symm, RestrictedProduct.single_eq_smul, map_smul, RestrictedProduct.single_smul, RestrictedProduct.single_eq_same, one_smul, Eq.refl

    86 instances, coercions and auxiliary constants left out.

    Tactic trace: 5 steps

    Open to load the checked before-and-after goal states.

  10. instance RestrictedProduct.(instance at line 144) line 144 source
  11. instance RestrictedProduct.(instance at line 151) line 151 source
  12. theorem RestrictedProduct.isOpenMap_linearMap_of_surjective line 164 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Ring, SetLike, SubringClass, AddCommGroup, Module, AddSubgroupClass, SMulMemClass, Subtype, Membership.mem, TopologicalSpace, DecidableEq, IsOpen, LinearMap, RestrictedProduct, Filter.cofinite, RingHom.id, IsOpenMap, RestrictedProduct.linearMapComponent, Filter.Eventually, Set.SurjOn

    Proof uses: RestrictedProduct.isOpenMap_of_open_components, RestrictedProduct.linearMap_apply_eq_component

    59 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

    Open to load the checked before-and-after goal states.

  13. def RestrictedProduct.piSubringSubmodule If B i is subring of R i then (B i)^n is a B i-submodule of (R i)^n line 182 source

    Source documentation

    If B i is subring of R i then (B i)^n is a B i-submodule of (R i)^n.

    standard axioms: Quot.sound, propext what this means

    Statement uses: Ring, SetLike, SubringClass, Submodule, Subtype, Membership.mem

    Proof uses: Submodule.pi, Set.univ, Subring.toSubmodule, Subring.ofClass

    18 instances, coercions and auxiliary constants left out.

    def piSubringSubmodule (i : ι) : Submodule (B i) (n → R i) :=
    …
  14. def RestrictedProduct._root_.LinearEquiv.restrictedProductPi Canonical linear equivalence between Π' R^n and (Π' R)^n line 187 source

    Source documentation

    Canonical linear equivalence between Π' R^n and (Π' R)^n

    def _root_.LinearEquiv.restrictedProductPi [Fintype n] :
        Πʳ i, [n → R i, piSubringSubmodule B n i]_[ℱ] ≃ₗ[Πʳ i, [R i, B i]_[ℱ]]
          n → Πʳ i, [R i, B i]_[ℱ] where
    …

    Mentions: RestrictedProduct.piSubringSubmodule

  15. lemma RestrictedProduct.isOpen_piSubringSubmodule line 201 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Ring, SetLike, SubringClass, TopologicalSpace, Finite, IsOpen, Submodule, Subtype, Membership.mem, RestrictedProduct.piSubringSubmodule

    Proof uses: Eq.mpr, Submodule.pi, Set.univ, Subring.toSubmodule, Subring.ofClass, id, Eq, congrArg, RestrictedProduct.piSubringSubmodule.eq_1, Set.pi, Set, Submodule.coe_pi, isOpen_set_pi, Set.finite_univ

    29 instances, coercions and auxiliary constants left out.

    Tactic trace: 4 steps

    Open to load the checked before-and-after goal states.

  16. def RestrictedProduct._root_.ContinuousLinearEquiv.restrictedProductPi Canonical continuous linear equivalence between Π' R^n and (Π' R)^n line 212 source

    Source documentation

    Canonical continuous linear equivalence between Π' R^n and (Π' R)^n

    def _root_.ContinuousLinearEquiv.restrictedProductPi [Fintype n]
        (hOpen : ∀ i, IsOpen (B i : Set (R i))) :
        Πʳ i, [n → R i, piSubringSubmodule B n i] ≃L[Πʳ i, [R i, B i]] n → Πʳ i, [R i, B i] where
    …

    Mentions: RestrictedProduct.piSubringSubmodule

  17. lemma RestrictedProduct.moduleToplogy_of_prod line 227 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Ring, SetLike, SubringClass, TopologicalSpace, IsTopologicalRing, Finite, IsOpen, IsModuleTopology, RestrictedProduct, Filter.cofinite, Submodule, Subtype, Membership.mem, RestrictedProduct.piSubringSubmodule

    Proof uses: Fintype, Fintype.ofFinite, Fact, Fact.mk, IsModuleTopology.iso, ContinuousLinearEquiv.symm, RingHom.id, ContinuousLinearEquiv.restrictedProductPi

    62 instances, coercions and auxiliary constants left out.

  18. theorem RestrictedProduct.isModuleTopology line 240 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Ring, SetLike, SubringClass, AddCommGroup, Module, AddSubgroupClass, SMulMemClass, Subtype, Membership.mem, TopologicalSpace, IsTopologicalRing, IsModuleTopology, Module.Finite, RestrictedProduct, Filter.cofinite, IsOpen

    Proof uses: Fact, Fact.mk, Nat, Exists, LinearMap, RingHom.id, Fin, Function.Surjective, Module.Finite.exists_fin', ContinuousLinearEquiv, Submodule, RestrictedProduct.piSubringSubmodule, ContinuousLinearEquiv.restrictedProductPi, LinearMap.comp, ContinuousAdd, IsModuleTopology.toContinuousAdd, ContinuousSMul, RestrictedProduct.moduleToplogy_of_prod, Function.Surjective.comp, ContinuousLinearEquiv.surjective and 19 more

    126 instances, coercions and auxiliary constants left out.

    Tactic trace: 19 steps

    Open to load the checked before-and-after goal states.