Documentation

Mathlib.Topology.LocallyFinsupp

Type of functions with locally finite support #

This file defines functions with locally finite support, provides supporting API. For suitable targets, it establishes functions with locally finite support as an instance of a lattice ordered commutative group.

Throughout the present file, X denotes a topologically space and U a subset of X.

Definition, coercion to functions and basic extensionality lemmas #

A function with locally finite support within U is a function X → Y whose support is locally finite within U and entirely contained in U. For T1-spaces, the theorem supportDiscreteWithin_iff_locallyFiniteWithin shows that the first condition is equivalent to the condition that the support f is discrete within U.

structure Function.locallyFinsuppWithin {X : Type u_1} [TopologicalSpace X] (U : Set X) (Y : Type u_2) [Zero Y] :
Type (max u_1 u_2)

A function with locally finite support within U is a triple as specified below.

Instances For
    @[reducible, inline]
    abbrev Function.locallyFinsupp (X : Type u_1) [TopologicalSpace X] (Y : Type u_2) [Zero Y] :
    Type (max u_1 u_2)

    A function with locally finite support is a function with locally finite support within ⊤ : Set X.

    Equations
    Instances For
      theorem supportDiscreteWithin_iff_locallyFiniteWithin {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [T1Space X] [Zero Y] {f : XY} (h : Function.support f U) :
      f =ᶠ[Filter.codiscreteWithin U] 0 zU, tnhds z, (t Function.support f).Finite

      For T1 spaces, the condition supportLocallyFiniteWithinDomain' is equivalent to saying that the support is codiscrete within U.

      def LocallyFiniteSupport {X : Type u_1} [TopologicalSpace X] {Y : Type u_2} [Zero Y] (f : XY) :

      A function f : X → Y has locally finite support if for every z : X, there is a neighbourhood t around z such that t ∩ f.support is finite.

      Equations
      Instances For
        theorem LocallyFiniteSupport.locallyFinite_support {X : Type u_1} [TopologicalSpace X] {Y : Type u_2} [Zero Y] (f : XY) (h : LocallyFiniteSupport f) :
        LocallyFinite fun (s : (Function.support f)) => {s}
        @[instance_reducible]

        Functions with locally finite support within U are FunLike: the coercion to functions is injective.

        Equations
        @[reducible, inline]
        abbrev Function.locallyFinsuppWithin.support {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [Zero Y] (D : locallyFinsuppWithin U Y) :
        Set X

        This allows writing D.support instead of Function.support D

        Equations
        Instances For
          theorem Function.locallyFinsuppWithin.supportLocallyFiniteWithinDomain {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [Zero Y] (D : locallyFinsuppWithin U Y) (z : X) :
          z Utnhds z, (t D.support).Finite
          theorem Function.locallyFinsuppWithin.ext {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [Zero Y] {D₁ D₂ : locallyFinsuppWithin U Y} (h : ∀ (a : X), D₁ a = D₂ a) :
          D₁ = D₂
          theorem Function.locallyFinsuppWithin.ext_iff {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [Zero Y] {D₁ D₂ : locallyFinsuppWithin U Y} :
          D₁ = D₂ ∀ (a : X), D₁ a = D₂ a
          theorem Function.locallyFinsuppWithin.coe_injective {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [Zero Y] :
          Injective fun (x : locallyFinsuppWithin U Y) => x

          Elementary properties of the support #

          @[simp]
          theorem Function.locallyFinsuppWithin.apply_eq_zero_of_notMem {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [Zero Y] {z : X} (D : locallyFinsuppWithin U Y) (hz : zU) :
          D z = 0

          Simplifier lemma: Functions with locally finite support within U evaluate to zero outside of U.

          On a T1 space, the support of a function with locally finite support within U is discrete within U.

          On a T1 space, the support of a function with locally finite support within U is discrete.

          If X is T1 and if U is closed, then the support of support of a function with locally finite support within U is also closed.

          If X is T2 and if U is compact, then the support of a function with locally finite support within U is finite.

          Lattice ordered group structure #

          If X is a suitable instance, this section equips functions with locally finite support within U with the standard structure of a lattice ordered group, where addition, comparison, min and max are defined pointwise.

          Functions with locally finite support within U form an additive subgroup of functions X → Y.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For

            Assign a function with locally finite support within U to a function in the subgroup.

            Equations
            Instances For
              @[simp]
              theorem Function.locallyFinsuppWithin.mk_of_mem_toFun {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [AddCommGroup Y] (f : XY) (hf : f locallyFinsuppWithin.addSubgroup U) (a✝ : X) :
              (mk_of_mem f hf) a✝ = f a✝
              @[instance_reducible]
              Equations
              @[instance_reducible]
              Equations
              @[simp]
              theorem Function.locallyFinsuppWithin.coe_zero {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [AddCommGroup Y] :
              0 = 0
              @[simp]
              theorem Function.locallyFinsuppWithin.coe_add {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [AddCommGroup Y] (D₁ D₂ : locallyFinsuppWithin U Y) :
              ⇑(D₁ + D₂) = D₁ + D₂
              @[simp]
              theorem Function.locallyFinsuppWithin.coe_neg {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [AddCommGroup Y] (D : locallyFinsuppWithin U Y) :
              ⇑(-D) = -D
              @[simp]
              theorem Function.locallyFinsuppWithin.coe_sub {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [AddCommGroup Y] (D₁ D₂ : locallyFinsuppWithin U Y) :
              ⇑(D₁ - D₂) = D₁ - D₂
              @[simp]
              theorem Function.locallyFinsuppWithin.coe_nsmul {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [AddCommGroup Y] (D : locallyFinsuppWithin U Y) (n : ) :
              ⇑(n D) = n D
              @[simp]
              theorem Function.locallyFinsuppWithin.coe_zsmul {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [AddCommGroup Y] (D : locallyFinsuppWithin U Y) (n : ) :
              ⇑(n D) = n D
              @[instance_reducible]
              instance Function.locallyFinsuppWithin.instLE {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [LE Y] [Zero Y] :
              Equations
              theorem Function.locallyFinsuppWithin.le_def {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [LE Y] [Zero Y] {D₁ D₂ : locallyFinsuppWithin U Y} :
              D₁ D₂ D₁ D₂
              @[instance_reducible]
              Equations
              theorem Function.locallyFinsuppWithin.lt_def {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [Preorder Y] [Zero Y] {D₁ D₂ : locallyFinsuppWithin U Y} :
              D₁ < D₂ D₁ < D₂
              @[instance_reducible]
              Equations
              • One or more equations did not get rendered due to their size.
              @[simp]
              theorem Function.locallyFinsuppWithin.max_apply {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [SemilatticeSup Y] [Zero Y] {D₁ D₂ : locallyFinsuppWithin U Y} {x : X} :
              (D₁D₂) x = D₁ xD₂ x
              @[instance_reducible]
              Equations
              • One or more equations did not get rendered due to their size.
              @[simp]
              theorem Function.locallyFinsuppWithin.min_apply {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [SemilatticeInf Y] [Zero Y] {D₁ D₂ : locallyFinsuppWithin U Y} {x : X} :
              (D₁D₂) x = D₁ xD₂ x
              @[instance_reducible]
              Equations
              • One or more equations did not get rendered due to their size.
              @[simp]
              theorem Function.locallyFinsuppWithin.posPart_apply {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [Lattice Y] [AddCommGroup Y] (a : locallyFinsuppWithin U Y) (x : X) :
              a x = (a x)
              @[simp]
              theorem Function.locallyFinsuppWithin.negPart_apply {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [Lattice Y] [AddCommGroup Y] (a : locallyFinsuppWithin U Y) (x : X) :
              a x = (a x)

              Functions with locally finite support within U form an ordered commutative group.

              theorem Function.locallyFinsuppWithin.posPart_add {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [AddCommGroup Y] [LinearOrder Y] [IsOrderedAddMonoid Y] (f₁ f₂ : locallyFinsuppWithin U Y) :
              (f₁ + f₂) f₁ + f₂

              The positive part of a sum is less than or equal to the sum of the positive parts.

              theorem Function.locallyFinsuppWithin.negPart_add {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [AddCommGroup Y] [LinearOrder Y] [IsOrderedAddMonoid Y] (f₁ f₂ : locallyFinsuppWithin U Y) :
              (f₁ + f₂) f₁ + f₂

              The negative part of a sum is less than or equal to the sum of the negative parts.

              @[simp]

              Taking the positive part of a function with locally finite support commutes with scalar multiplication by a natural number.

              @[simp]

              Taking the negative part of a function with locally finite support commutes with scalar multiplication by a natural number.

              Restriction #

              noncomputable def Function.locallyFinsuppWithin.restrict {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [Zero Y] {V : Set X} (D : locallyFinsuppWithin U Y) (h : V U) :

              If V is a subset of U, then functions with locally finite support within U restrict to functions with locally finite support within V, by setting their values to zero outside of V.

              Equations
              • D.restrict h = { toFun := fun (z : X) => if hz : z V then D z else 0, supportWithinDomain' := , supportLocallyFiniteWithinDomain' := }
              Instances For
                theorem Function.locallyFinsuppWithin.restrict_apply {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [Zero Y] {V : Set X} (D : locallyFinsuppWithin U Y) (h : V U) (z : X) :
                (D.restrict h) z = if z V then D z else 0
                theorem Function.locallyFinsuppWithin.restrict_eqOn {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [Zero Y] {V : Set X} (D : locallyFinsuppWithin U Y) (h : V U) :
                Set.EqOn (⇑(D.restrict h)) (⇑D) V
                theorem Function.locallyFinsuppWithin.restrict_eqOn_compl {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [Zero Y] {V : Set X} (D : locallyFinsuppWithin U Y) (h : V U) :
                Set.EqOn (⇑(D.restrict h)) 0 V
                noncomputable def Function.locallyFinsuppWithin.restrictMonoidHom {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [AddCommGroup Y] {V : Set X} (h : V U) :

                Restriction as a group morphism

                Equations
                Instances For
                  @[simp]
                  noncomputable def Function.locallyFinsuppWithin.restrictLatticeHom {X : Type u_1} [TopologicalSpace X] {U : Set X} {Y : Type u_2} [AddCommGroup Y] [Lattice Y] {V : Set X} (h : V U) :

                  Restriction as a lattice morphism

                  Equations
                  Instances For
                    @[simp]

                    Restriction commutes with taking positive parts.

                    Restriction commutes with taking negative parts.