Documentation

Mathlib.LinearAlgebra.Finsupp.Supported

Finsupps supported on a given submodule #

Tags #

function with finite support, module, linear algebra

def Finsupp.supported {α : Type u_1} (M : Type u_2) (R : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] (s : Set α) :
Submodule R (α →₀ M)

Finsupp.supported M R s is the R-submodule of all p : α →₀ M such that p.support ⊆ s.

Equations
    Instances For
      theorem Finsupp.mem_supported {α : Type u_1} {M : Type u_2} (R : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] {s : Set α} (p : α →₀ M) :
      p supported M R s p.support s
      theorem Finsupp.mem_supported' {α : Type u_1} {M : Type u_2} (R : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] {s : Set α} (p : α →₀ M) :
      p supported M R s xs, p x = 0
      theorem Finsupp.mem_supported_support {α : Type u_1} {M : Type u_2} (R : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] (p : α →₀ M) :
      p supported M R p.support
      theorem Finsupp.single_mem_supported {α : Type u_1} {M : Type u_2} (R : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] {s : Set α} {a : α} (b : M) (h : a s) :
      single a b supported M R s
      theorem Finsupp.supported_eq_span_single {α : Type u_1} (R : Type u_5) [Semiring R] (s : Set α) :
      supported R R s = Submodule.span R ((fun (i : α) => single i 1) '' s)
      theorem Finsupp.span_le_supported_biUnion_support {α : Type u_1} {M : Type u_2} (R : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] (s : Set (α →₀ M)) :
      Submodule.span R s supported M R (⋃ xs, x.support)
      def Finsupp.restrictDom {α : Type u_1} (M : Type u_2) (R : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] (s : Set α) [DecidablePred fun (x : α) => x s] :
      (α →₀ M) →ₗ[R] (supported M R s)

      Interpret Finsupp.filter s as a linear map from α →₀ M to supported M R s.

      Equations
        Instances For
          @[simp]
          theorem Finsupp.restrictDom_apply {α : Type u_1} {M : Type u_2} {R : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] (s : Set α) (l : α →₀ M) [DecidablePred fun (x : α) => x s] :
          ((restrictDom M R s) l) = filter (fun (x : α) => x s) l
          theorem Finsupp.restrictDom_comp_subtype {α : Type u_1} {M : Type u_2} {R : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] (s : Set α) [DecidablePred fun (x : α) => x s] :
          theorem Finsupp.range_restrictDom {α : Type u_1} {M : Type u_2} {R : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] (s : Set α) [DecidablePred fun (x : α) => x s] :
          theorem Finsupp.supported_mono {α : Type u_1} {M : Type u_2} {R : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] {s t : Set α} (st : s t) :
          supported M R s supported M R t
          @[simp]
          theorem Finsupp.supported_empty {α : Type u_1} {M : Type u_2} {R : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] :
          @[simp]
          theorem Finsupp.supported_univ {α : Type u_1} {M : Type u_2} {R : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] :
          theorem Finsupp.supported_iUnion {α : Type u_1} {M : Type u_2} {R : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] {δ : Type u_7} (s : δSet α) :
          supported M R (⋃ (i : δ), s i) = ⨆ (i : δ), supported M R (s i)
          theorem Finsupp.supported_union {α : Type u_1} {M : Type u_2} {R : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] (s t : Set α) :
          supported M R (s t) = supported M R ssupported M R t
          theorem Finsupp.supported_iInter {α : Type u_1} {M : Type u_2} {R : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] {ι : Type u_7} (s : ιSet α) :
          supported M R (⋂ (i : ι), s i) = ⨅ (i : ι), supported M R (s i)
          theorem Finsupp.supported_inter {α : Type u_1} {M : Type u_2} {R : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] (s t : Set α) :
          supported M R (s t) = supported M R ssupported M R t
          theorem Finsupp.disjoint_supported_supported {α : Type u_1} {M : Type u_2} {R : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] {s t : Set α} (h : Disjoint s t) :
          Disjoint (supported M R s) (supported M R t)
          theorem Finsupp.disjoint_supported_supported_iff {α : Type u_1} {M : Type u_2} {R : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] [Nontrivial M] {s t : Set α} :
          def Finsupp.supportedEquivFinsupp {α : Type u_1} {M : Type u_2} {R : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] (s : Set α) :
          (supported M R s) ≃ₗ[R] s →₀ M

          Interpret Finsupp.restrictSupportEquiv as a linear equivalence between supported M R s and s →₀ M.

          Equations
            Instances For
              @[simp]
              theorem Finsupp.supportedEquivFinsupp_apply_toFun {α : Type u_1} {M : Type u_2} {R : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] (s : Set α) (a✝ : (supported M R s)) (a✝¹ : { x : α // x s }) :
              ((supportedEquivFinsupp s) a✝) a✝¹ = a✝ a✝¹
              @[simp]
              theorem Finsupp.supportedEquivFinsupp_symm_apply_coe_support_val {α : Type u_1} {M : Type u_2} {R : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] (s : Set α) (a✝ : s →₀ M) :
              @[simp]
              theorem Finsupp.supportedEquivFinsupp_apply_support_val {α : Type u_1} {M : Type u_2} {R : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] (s : Set α) (a✝ : (supported M R s)) :
              ((supportedEquivFinsupp s) a✝).support.val = Multiset.map (fun (x : { x : α // x {x(↑a✝).support | x s} }) => x, ) (Multiset.filter (fun (x : α) => x s) (↑a✝).support.val).attach
              @[simp]
              theorem Finsupp.supportedEquivFinsupp_symm_apply_coe_toFun {α : Type u_1} {M : Type u_2} {R : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] (s : Set α) (a✝ : s →₀ M) (a : α) :
              ((supportedEquivFinsupp s).symm a✝) a = if h : a s then a✝ a, h else 0
              @[simp]
              theorem Finsupp.supportedEquivFinsupp_symm_apply_coe {α : Type u_1} {M : Type u_2} {R : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] (s : Set α) [DecidablePred fun (x : α) => x s] (f : s →₀ M) :
              theorem Finsupp.supported_comap_lmapDomain {α : Type u_1} (M : Type u_2) (R : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] {α' : Type u_7} (f : αα') (s : Set α') :
              theorem Finsupp.lmapDomain_supported {α : Type u_1} (M : Type u_2) (R : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] {α' : Type u_7} (f : αα') (s : Set α) :
              Submodule.map (lmapDomain M R f) (supported M R s) = supported M R (f '' s)
              theorem Finsupp.lmapDomain_disjoint_ker {α : Type u_1} (M : Type u_2) (R : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] {α' : Type u_7} (f : αα') {s : Set α} (H : as, bs, f a = f ba = b) :
              noncomputable def Finsupp.congr {α : Type u_1} {M : Type u_2} {R : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] {α' : Type u_7} (s : Set α) (t : Set α') (e : s t) :
              (supported M R s) ≃ₗ[R] (supported M R t)

              An equivalence of sets induces a linear equivalence of Finsupps supported on those sets.

              Equations
                Instances For