Documentation

Mathlib.Analysis.LocallyConvex.Polar

Polar set #

In this file we define the polar set. There are different notions of the polar, we will define the absolute polar. The advantage over the real polar is that we can define the absolute polar for any bilinear form B : E โ†’โ‚—[๐•œ] F โ†’โ‚—[๐•œ] ๐•œ, where ๐•œ is a normed commutative ring and E and F are modules over ๐•œ.

Main definitions #

Main statements #

References #

Tags #

polar

def LinearMap.polar {๐•œ : Type u_1} {E : Type u_2} {F : Type u_3} [NormedCommRing ๐•œ] [AddCommMonoid E] [AddCommMonoid F] [Module ๐•œ E] [Module ๐•œ F] (B : E โ†’โ‚—[๐•œ] F โ†’โ‚—[๐•œ] ๐•œ) (s : Set E) :
Set F

The (absolute) polar of s : Set E is given by the set of all y : F such that โ€–B x yโ€– โ‰ค 1 for all x โˆˆ s.

Equations
Instances For
    theorem LinearMap.polar_mem_iff {๐•œ : Type u_1} {E : Type u_2} {F : Type u_3} [NormedCommRing ๐•œ] [AddCommMonoid E] [AddCommMonoid F] [Module ๐•œ E] [Module ๐•œ F] (B : E โ†’โ‚—[๐•œ] F โ†’โ‚—[๐•œ] ๐•œ) (s : Set E) (y : F) :
    y โˆˆ B.polar s โ†” โˆ€ x โˆˆ s, โ€–(B x) yโ€– โ‰ค 1
    theorem LinearMap.polar_mem {๐•œ : Type u_1} {E : Type u_2} {F : Type u_3} [NormedCommRing ๐•œ] [AddCommMonoid E] [AddCommMonoid F] [Module ๐•œ E] [Module ๐•œ F] (B : E โ†’โ‚—[๐•œ] F โ†’โ‚—[๐•œ] ๐•œ) (s : Set E) (y : F) (hy : y โˆˆ B.polar s) (x : E) :
    x โˆˆ s โ†’ โ€–(B x) yโ€– โ‰ค 1
    theorem LinearMap.polar_eq_biInter_preimage {๐•œ : Type u_1} {E : Type u_2} {F : Type u_3} [NormedCommRing ๐•œ] [AddCommMonoid E] [AddCommMonoid F] [Module ๐•œ E] [Module ๐•œ F] (B : E โ†’โ‚—[๐•œ] F โ†’โ‚—[๐•œ] ๐•œ) (s : Set E) :
    B.polar s = โ‹‚ x โˆˆ s, โ‡‘(B x) โปยน' Metric.closedBall 0 1
    theorem LinearMap.polar_isClosed {๐•œ : Type u_1} {E : Type u_2} {F : Type u_3} [NormedCommRing ๐•œ] [AddCommMonoid E] [AddCommMonoid F] [Module ๐•œ E] [Module ๐•œ F] (B : E โ†’โ‚—[๐•œ] F โ†’โ‚—[๐•œ] ๐•œ) (s : Set E) :
    @[simp]
    theorem LinearMap.zero_mem_polar {๐•œ : Type u_1} {E : Type u_2} {F : Type u_3} [NormedCommRing ๐•œ] [AddCommMonoid E] [AddCommMonoid F] [Module ๐•œ E] [Module ๐•œ F] (B : E โ†’โ‚—[๐•œ] F โ†’โ‚—[๐•œ] ๐•œ) (s : Set E) :
    theorem LinearMap.polar_nonempty {๐•œ : Type u_1} {E : Type u_2} {F : Type u_3} [NormedCommRing ๐•œ] [AddCommMonoid E] [AddCommMonoid F] [Module ๐•œ E] [Module ๐•œ F] (B : E โ†’โ‚—[๐•œ] F โ†’โ‚—[๐•œ] ๐•œ) (s : Set E) :
    theorem LinearMap.polar_eq_iInter {๐•œ : Type u_1} {E : Type u_2} {F : Type u_3} [NormedCommRing ๐•œ] [AddCommMonoid E] [AddCommMonoid F] [Module ๐•œ E] [Module ๐•œ F] (B : E โ†’โ‚—[๐•œ] F โ†’โ‚—[๐•œ] ๐•œ) {s : Set E} :
    B.polar s = โ‹‚ x โˆˆ s, {y : F | โ€–(B x) yโ€– โ‰ค 1}
    theorem LinearMap.polar_gc {๐•œ : Type u_1} {E : Type u_2} {F : Type u_3} [NormedCommRing ๐•œ] [AddCommMonoid E] [AddCommMonoid F] [Module ๐•œ E] [Module ๐•œ F] (B : E โ†’โ‚—[๐•œ] F โ†’โ‚—[๐•œ] ๐•œ) :

    The map B.polar : Set E โ†’ Set F forms an order-reversing Galois connection with B.flip.polar : Set F โ†’ Set E. We use OrderDual.toDual and OrderDual.ofDual to express that polar is order-reversing.

    @[simp]
    theorem LinearMap.polar_iUnion {๐•œ : Type u_1} {E : Type u_2} {F : Type u_3} [NormedCommRing ๐•œ] [AddCommMonoid E] [AddCommMonoid F] [Module ๐•œ E] [Module ๐•œ F] (B : E โ†’โ‚—[๐•œ] F โ†’โ‚—[๐•œ] ๐•œ) {ฮน : Sort u_4} {s : ฮน โ†’ Set E} :
    B.polar (โ‹ƒ (i : ฮน), s i) = โ‹‚ (i : ฮน), B.polar (s i)
    @[simp]
    theorem LinearMap.polar_union {๐•œ : Type u_1} {E : Type u_2} {F : Type u_3} [NormedCommRing ๐•œ] [AddCommMonoid E] [AddCommMonoid F] [Module ๐•œ E] [Module ๐•œ F] (B : E โ†’โ‚—[๐•œ] F โ†’โ‚—[๐•œ] ๐•œ) {s t : Set E} :
    theorem LinearMap.polar_antitone {๐•œ : Type u_1} {E : Type u_2} {F : Type u_3} [NormedCommRing ๐•œ] [AddCommMonoid E] [AddCommMonoid F] [Module ๐•œ E] [Module ๐•œ F] (B : E โ†’โ‚—[๐•œ] F โ†’โ‚—[๐•œ] ๐•œ) :
    @[simp]
    theorem LinearMap.polar_empty {๐•œ : Type u_1} {E : Type u_2} {F : Type u_3} [NormedCommRing ๐•œ] [AddCommMonoid E] [AddCommMonoid F] [Module ๐•œ E] [Module ๐•œ F] (B : E โ†’โ‚—[๐•œ] F โ†’โ‚—[๐•œ] ๐•œ) :
    @[simp]
    theorem LinearMap.polar_singleton {๐•œ : Type u_1} {E : Type u_2} {F : Type u_3} [NormedCommRing ๐•œ] [AddCommMonoid E] [AddCommMonoid F] [Module ๐•œ E] [Module ๐•œ F] (B : E โ†’โ‚—[๐•œ] F โ†’โ‚—[๐•œ] ๐•œ) {a : E} :
    theorem LinearMap.mem_polar_singleton {๐•œ : Type u_1} {E : Type u_2} {F : Type u_3} [NormedCommRing ๐•œ] [AddCommMonoid E] [AddCommMonoid F] [Module ๐•œ E] [Module ๐•œ F] (B : E โ†’โ‚—[๐•œ] F โ†’โ‚—[๐•œ] ๐•œ) {x : E} (y : F) :
    theorem LinearMap.polar_zero {๐•œ : Type u_1} {E : Type u_2} {F : Type u_3} [NormedCommRing ๐•œ] [AddCommMonoid E] [AddCommMonoid F] [Module ๐•œ E] [Module ๐•œ F] (B : E โ†’โ‚—[๐•œ] F โ†’โ‚—[๐•œ] ๐•œ) :
    theorem LinearMap.subset_bipolar {๐•œ : Type u_1} {E : Type u_2} {F : Type u_3} [NormedCommRing ๐•œ] [AddCommMonoid E] [AddCommMonoid F] [Module ๐•œ E] [Module ๐•œ F] (B : E โ†’โ‚—[๐•œ] F โ†’โ‚—[๐•œ] ๐•œ) (s : Set E) :
    @[simp]
    theorem LinearMap.tripolar_eq_polar {๐•œ : Type u_1} {E : Type u_2} {F : Type u_3} [NormedCommRing ๐•œ] [AddCommMonoid E] [AddCommMonoid F] [Module ๐•œ E] [Module ๐•œ F] (B : E โ†’โ‚—[๐•œ] F โ†’โ‚—[๐•œ] ๐•œ) (s : Set E) :
    B.polar (B.flip.polar (B.polar s)) = B.polar s
    theorem LinearMap.polar_weak_closed {๐•œ : Type u_1} {E : Type u_2} {F : Type u_3} [NormedCommRing ๐•œ] [AddCommMonoid E] [AddCommMonoid F] [Module ๐•œ E] [Module ๐•œ F] (B : E โ†’โ‚—[๐•œ] F โ†’โ‚—[๐•œ] ๐•œ) (s : Set E) :

    The polar set is closed in the weak topology induced by B.flip.

    theorem LinearMap.sInter_polar_finite_subset_eq_polar {๐•œ : Type u_1} {E : Type u_2} {F : Type u_3} [NormedCommRing ๐•œ] [AddCommMonoid E] [AddCommMonoid F] [Module ๐•œ E] [Module ๐•œ F] (B : E โ†’โ‚—[๐•œ] F โ†’โ‚—[๐•œ] ๐•œ) (s : Set E) :
    theorem LinearMap.polar_univ {๐•œ : Type u_1} {E : Type u_2} {F : Type u_3} [NontriviallyNormedField ๐•œ] [AddCommMonoid E] [AddCommMonoid F] [Module ๐•œ E] [Module ๐•œ F] (B : E โ†’โ‚—[๐•œ] F โ†’โ‚—[๐•œ] ๐•œ) (h : B.SeparatingRight) :
    theorem LinearMap.polar_subMulAction {๐•œ : Type u_1} {E : Type u_2} {F : Type u_3} [NontriviallyNormedField ๐•œ] [AddCommMonoid E] [AddCommMonoid F] [Module ๐•œ E] [Module ๐•œ F] (B : E โ†’โ‚—[๐•œ] F โ†’โ‚—[๐•œ] ๐•œ) {S : Type u_4} [SetLike S E] [SMulMemClass S ๐•œ E] (m : S) :
    B.polar โ†‘m = {y : F | โˆ€ x โˆˆ m, (B x) y = 0}
    def LinearMap.polarSubmodule {๐•œ : Type u_1} {E : Type u_2} {F : Type u_3} [NontriviallyNormedField ๐•œ] [AddCommMonoid E] [AddCommMonoid F] [Module ๐•œ E] [Module ๐•œ F] (B : E โ†’โ‚—[๐•œ] F โ†’โ‚—[๐•œ] ๐•œ) {S : Type u_4} [SetLike S E] [SMulMemClass S ๐•œ E] (m : S) :
    Submodule ๐•œ F

    The polar of a set closed under scalar multiplication as a submodule

    Equations
    Instances For
      @[deprecated StrongDual.dualPairing_separatingLeft (since := "2025-08-3")]

      Alias of StrongDual.dualPairing_separatingLeft.

      def StrongDual.polar (R : Type u_4) [NormedCommRing R] {M : Type u_5} [AddCommMonoid M] [TopologicalSpace M] [Module R M] :
      Set M โ†’ Set (StrongDual R M)

      Given a subset s in a monoid M (over a commutative ring R), the polar polar R s is the subset of StrongDual R M consisting of those functionals which evaluate to something of norm at most one at all points z โˆˆ s.

      Equations
      Instances For
        @[deprecated StrongDual.polar (since := "2025-08-3")]
        def NormedSpace.polar (R : Type u_4) [NormedCommRing R] {M : Type u_5} [AddCommMonoid M] [TopologicalSpace M] [Module R M] :
        Set M โ†’ Set (StrongDual R M)

        Alias of StrongDual.polar.


        Given a subset s in a monoid M (over a commutative ring R), the polar polar R s is the subset of StrongDual R M consisting of those functionals which evaluate to something of norm at most one at all points z โˆˆ s.

        Equations
        Instances For
          def StrongDual.polarSubmodule (๐•œ : Type u_4) [NontriviallyNormedField ๐•œ] {M : Type u_5} [AddCommMonoid M] [TopologicalSpace M] [Module ๐•œ M] {S : Type u_6} [SetLike S M] [SMulMemClass S ๐•œ M] (m : S) :
          Submodule ๐•œ (StrongDual ๐•œ M)

          Given a subset s in a monoid M (over a field ๐•œ) closed under scalar multiplication, the polar polarSubmodule ๐•œ s is the submodule of StrongDual ๐•œ M consisting of those functionals which evaluate to zero at all points z โˆˆ s.

          Equations
          Instances For
            @[deprecated StrongDual.polarSubmodule (since := "2025-08-3")]
            def NormedSpace.polarSubmodule (๐•œ : Type u_4) [NontriviallyNormedField ๐•œ] {M : Type u_5} [AddCommMonoid M] [TopologicalSpace M] [Module ๐•œ M] {S : Type u_6} [SetLike S M] [SMulMemClass S ๐•œ M] (m : S) :
            Submodule ๐•œ (StrongDual ๐•œ M)

            Alias of StrongDual.polarSubmodule.


            Given a subset s in a monoid M (over a field ๐•œ) closed under scalar multiplication, the polar polarSubmodule ๐•œ s is the submodule of StrongDual ๐•œ M consisting of those functionals which evaluate to zero at all points z โˆˆ s.

            Equations
            Instances For
              theorem StrongDual.polarSubmodule_eq_polar (๐•œ : Type u_4) [NontriviallyNormedField ๐•œ] {E : Type u_5} [AddCommMonoid E] [TopologicalSpace E] [Module ๐•œ E] (m : SubMulAction ๐•œ E) :
              โ†‘(polarSubmodule ๐•œ m) = polar ๐•œ โ†‘m
              @[deprecated StrongDual.polarSubmodule_eq_polar (since := "2025-08-3")]
              theorem NormedSpace.polarSubmodule_eq_polar (๐•œ : Type u_4) [NontriviallyNormedField ๐•œ] {E : Type u_5} [AddCommMonoid E] [TopologicalSpace E] [Module ๐•œ E] (m : SubMulAction ๐•œ E) :
              โ†‘(StrongDual.polarSubmodule ๐•œ m) = StrongDual.polar ๐•œ โ†‘m

              Alias of StrongDual.polarSubmodule_eq_polar.

              theorem StrongDual.mem_polar_iff (๐•œ : Type u_4) [NontriviallyNormedField ๐•œ] {E : Type u_5} [AddCommMonoid E] [TopologicalSpace E] [Module ๐•œ E] {x' : StrongDual ๐•œ E} (s : Set E) :
              x' โˆˆ polar ๐•œ s โ†” โˆ€ z โˆˆ s, โ€–x' zโ€– โ‰ค 1
              @[deprecated StrongDual.mem_polar_iff (since := "2025-08-3")]
              theorem NormedSpace.mem_polar_iff (๐•œ : Type u_4) [NontriviallyNormedField ๐•œ] {E : Type u_5} [AddCommMonoid E] [TopologicalSpace E] [Module ๐•œ E] {x' : StrongDual ๐•œ E} (s : Set E) :
              x' โˆˆ StrongDual.polar ๐•œ s โ†” โˆ€ z โˆˆ s, โ€–x' zโ€– โ‰ค 1

              Alias of StrongDual.mem_polar_iff.

              theorem StrongDual.polarSubmodule_eq_setOf (๐•œ : Type u_4) [NontriviallyNormedField ๐•œ] {E : Type u_5} [AddCommMonoid E] [TopologicalSpace E] [Module ๐•œ E] {S : Type u_6} [SetLike S E] [SMulMemClass S ๐•œ E] (m : S) :
              โ†‘(polarSubmodule ๐•œ m) = {y : StrongDual ๐•œ E | โˆ€ x โˆˆ m, y x = 0}
              @[deprecated StrongDual.polarSubmodule_eq_setOf (since := "2025-08-3")]
              theorem NormedSpace.polarSubmodule_eq_setOf (๐•œ : Type u_4) [NontriviallyNormedField ๐•œ] {E : Type u_5} [AddCommMonoid E] [TopologicalSpace E] [Module ๐•œ E] {S : Type u_6} [SetLike S E] [SMulMemClass S ๐•œ E] (m : S) :
              โ†‘(StrongDual.polarSubmodule ๐•œ m) = {y : StrongDual ๐•œ E | โˆ€ x โˆˆ m, y x = 0}

              Alias of StrongDual.polarSubmodule_eq_setOf.

              theorem StrongDual.mem_polarSubmodule (๐•œ : Type u_4) [NontriviallyNormedField ๐•œ] {E : Type u_5} [AddCommMonoid E] [TopologicalSpace E] [Module ๐•œ E] {S : Type u_6} [SetLike S E] [SMulMemClass S ๐•œ E] (m : S) (y : StrongDual ๐•œ E) :
              y โˆˆ polarSubmodule ๐•œ m โ†” โˆ€ x โˆˆ m, y x = 0
              @[deprecated StrongDual.mem_polarSubmodule (since := "2025-08-3")]
              theorem NormedSpace.mem_polarSubmodule (๐•œ : Type u_4) [NontriviallyNormedField ๐•œ] {E : Type u_5} [AddCommMonoid E] [TopologicalSpace E] [Module ๐•œ E] {S : Type u_6} [SetLike S E] [SMulMemClass S ๐•œ E] (m : S) (y : StrongDual ๐•œ E) :
              y โˆˆ StrongDual.polarSubmodule ๐•œ m โ†” โˆ€ x โˆˆ m, y x = 0

              Alias of StrongDual.mem_polarSubmodule.

              @[simp]
              theorem StrongDual.zero_mem_polar (๐•œ : Type u_4) [NontriviallyNormedField ๐•œ] {E : Type u_5} [AddCommMonoid E] [TopologicalSpace E] [Module ๐•œ E] (s : Set E) :
              0 โˆˆ polar ๐•œ s
              @[deprecated StrongDual.zero_mem_polar (since := "2025-08-3")]
              theorem NormedSpace.zero_mem_polar (๐•œ : Type u_4) [NontriviallyNormedField ๐•œ] {E : Type u_5} [AddCommMonoid E] [TopologicalSpace E] [Module ๐•œ E] (s : Set E) :

              Alias of StrongDual.zero_mem_polar.

              theorem StrongDual.polar_nonempty (๐•œ : Type u_4) [NontriviallyNormedField ๐•œ] {E : Type u_5} [AddCommMonoid E] [TopologicalSpace E] [Module ๐•œ E] (s : Set E) :
              (polar ๐•œ s).Nonempty
              @[deprecated StrongDual.polar_nonempty (since := "2025-08-3")]
              theorem NormedSpace.polar_nonempty (๐•œ : Type u_4) [NontriviallyNormedField ๐•œ] {E : Type u_5} [AddCommMonoid E] [TopologicalSpace E] [Module ๐•œ E] (s : Set E) :

              Alias of StrongDual.polar_nonempty.

              @[simp]
              theorem StrongDual.polar_empty (๐•œ : Type u_4) [NontriviallyNormedField ๐•œ] {E : Type u_5} [AddCommMonoid E] [TopologicalSpace E] [Module ๐•œ E] :
              @[deprecated StrongDual.polar_empty (since := "2025-08-3")]
              theorem NormedSpace.polar_empty (๐•œ : Type u_4) [NontriviallyNormedField ๐•œ] {E : Type u_5} [AddCommMonoid E] [TopologicalSpace E] [Module ๐•œ E] :

              Alias of StrongDual.polar_empty.

              @[simp]
              theorem StrongDual.polar_singleton (๐•œ : Type u_4) [NontriviallyNormedField ๐•œ] {E : Type u_5} [AddCommMonoid E] [TopologicalSpace E] [Module ๐•œ E] {a : E} :
              polar ๐•œ {a} = {x : StrongDual ๐•œ E | โ€–x aโ€– โ‰ค 1}
              @[deprecated StrongDual.polar_singleton (since := "2025-08-3")]
              theorem NormedSpace.polar_singleton (๐•œ : Type u_4) [NontriviallyNormedField ๐•œ] {E : Type u_5} [AddCommMonoid E] [TopologicalSpace E] [Module ๐•œ E] {a : E} :
              StrongDual.polar ๐•œ {a} = {x : StrongDual ๐•œ E | โ€–x aโ€– โ‰ค 1}

              Alias of StrongDual.polar_singleton.

              theorem StrongDual.mem_polar_singleton (๐•œ : Type u_4) [NontriviallyNormedField ๐•œ] {E : Type u_5} [AddCommMonoid E] [TopologicalSpace E] [Module ๐•œ E] {a : E} (y : StrongDual ๐•œ E) :
              @[deprecated StrongDual.mem_polar_singleton (since := "2025-08-3")]
              theorem NormedSpace.mem_polar_singleton (๐•œ : Type u_4) [NontriviallyNormedField ๐•œ] {E : Type u_5} [AddCommMonoid E] [TopologicalSpace E] [Module ๐•œ E] {a : E} (y : StrongDual ๐•œ E) :

              Alias of StrongDual.mem_polar_singleton.

              theorem StrongDual.polar_zero (๐•œ : Type u_4) [NontriviallyNormedField ๐•œ] {E : Type u_5} [AddCommMonoid E] [TopologicalSpace E] [Module ๐•œ E] :
              polar ๐•œ {0} = Set.univ
              @[deprecated StrongDual.polar_zero (since := "2025-08-3")]
              theorem NormedSpace.polar_zero (๐•œ : Type u_4) [NontriviallyNormedField ๐•œ] {E : Type u_5} [AddCommMonoid E] [TopologicalSpace E] [Module ๐•œ E] :

              Alias of StrongDual.polar_zero.

              @[simp]
              theorem StrongDual.polar_univ (๐•œ : Type u_4) [NontriviallyNormedField ๐•œ] {E : Type u_5} [AddCommGroup E] [TopologicalSpace E] [Module ๐•œ E] :
              polar ๐•œ Set.univ = {0}
              @[deprecated StrongDual.polar_univ (since := "2025-08-3")]
              theorem NormedSpace.polar_univ (๐•œ : Type u_4) [NontriviallyNormedField ๐•œ] {E : Type u_5} [AddCommGroup E] [TopologicalSpace E] [Module ๐•œ E] :

              Alias of StrongDual.polar_univ.