Documentation

Books.ConvexAnalysis_Rockafellar_1970.Chap01.section01_part1

def IsAffineSet (n : ) (M : Set (Fin n)) :

Text 1.1: A subset M of Real^n is affine if for all x, y ∈ M and all r : Real, (1 - r) • x + r • y is in M.

Equations
    Instances For
      theorem lineMap_mem_of_isAffineSet {n : } {M : Set (Fin n)} (hM : IsAffineSet n M) {x y : Fin n} (hx : x M) (hy : y M) (r : ) :

      Affine combinations of two points in an affine set are in the set, written as a line map.

      theorem affine_combo_three_as_double_lineMap {n : } (c : ) (x y z : Fin n) :
      c (x - y) + z = (AffineMap.lineMap ((AffineMap.lineMap z x) (2 * c)) ((AffineMap.lineMap z y) (-2 * c))) (1 / 2)

      A three-point affine combination as a line map of two line maps.

      theorem smul_sub_add_mem_of_isAffineSet {n : } {M : Set (Fin n)} (hM : IsAffineSet n M) {x y z : Fin n} (hx : x M) (hy : y M) (hz : z M) (c : ) :
      c (x - y) + z M

      An affine set is closed under expressions of the form c • (x - y) + z.

      theorem isAffineSet_iff_affineSubspace (n : ) (M : Set (Fin n)) :
      IsAffineSet n M ∃ (s : AffineSubspace (Fin n)), s = M

      Helper lemma: an affine set is the carrier of some affine subspace.

      theorem isAffineSet_of_submodule (n : ) (S : Submodule (Fin n)) :

      Submodules are affine sets.

      theorem affineSet_smul_closed_of_origin {n : } {M : Set (Fin n)} (hM : IsAffineSet n M) (h0 : 0 M) (x : Fin n) :
      x M∀ (r : ), r x M

      An affine set containing the origin is closed under scalar multiplication.

      theorem affineSet_add_closed_of_origin {n : } {M : Set (Fin n)} (hM : IsAffineSet n M) (h0 : 0 M) (x : Fin n) :
      x MyM, x + y M

      An affine set containing the origin is closed under addition.

      theorem submodule_of_affineSet_origin (n : ) (M : Set (Fin n)) (hM : IsAffineSet n M) (h0 : 0 M) :
      ∃ (S : Submodule (Fin n)), S = M

      An affine set containing the origin is the carrier of a submodule.

      theorem subspace_iff_affineSet_and_origin (n : ) (M : Set (Fin n)) :
      (∃ (S : Submodule (Fin n)), S = M) IsAffineSet n M 0 M

      Theorem 1.1: The subspaces of Real^n are exactly the affine sets which contain the origin.

      def SetTranslate (n : ) (M : Set (Fin n)) (a : Fin n) :
      Set (Fin n)

      Text 1.2: For M ⊆ Real^n and a ∈ Real^n, the translate of M by a is the set M + a = {x + a | x ∈ M}.

      Equations
        Instances For
          theorem translate_affine_combo {n : } (x y a : Fin n) (r : ) :
          (1 - r) (x + a) + r (y + a) = (1 - r) x + r y + a

          Translation commutes with affine combinations.

          theorem isAffineSet_translate (n : ) (M : Set (Fin n)) (a : Fin n) :

          Text 1.2.1: If M ⊆ Real^n is affine and a ∈ Real^n, then the translate a + M is an affine set.

          def IsParallelAffineSet (n : ) (M L : Set (Fin n)) :

          Text 1.3: An affine set M is parallel to an affine set L if M = L + a for some a.

          Equations
            Instances For
              theorem setTranslate_eq_sub_single (n : ) (M : Set (Fin n)) (y : Fin n) :
              SetTranslate n M (-y) = {x : Fin n | aM, x = a - y}

              Translating by -y gives the set of differences with y.

              theorem setTranslate_submodule_eq_self (n : ) (L : Submodule (Fin n)) (v : Fin n) (hv : v L) :
              SetTranslate n (↑L) v = L

              Translating a submodule by one of its elements gives the same set.

              theorem parallel_submodule_unique (n : ) (M : Set (Fin n)) (L1 L2 : Submodule (Fin n)) (h1 : IsParallelAffineSet n M L1) (h2 : IsParallelAffineSet n M L2) :
              L1 = L2

              Parallel submodules to the same affine set are equal.

              theorem parallel_submodule_unique_of_affine (n : ) (M : Set (Fin n)) :
              IsAffineSet n MM.Nonempty∃! L : Submodule (Fin n), IsParallelAffineSet n M L L = {x : Fin n | aM, bM, x = a - b}

              Theorem 1.2: Each non-empty affine set M is parallel to a unique subspace L; this L is given by L = M - M = {x - y | x ∈ M, y ∈ M}.

              noncomputable def affineSetDim (n : ) (M : Set (Fin n)) (hM : IsAffineSet n M) :

              Text 1.4: The dimension of a non-empty affine set is defined as the dimension of the subspace parallel to it. (The dimension of is -1 by convention.)

              Equations
                Instances For
                  def IsPoint (n : ) (M : Set (Fin n)) :

                  Text 1.5: An affine set of dimension 0 is called a point.

                  Equations
                    Instances For
                      def IsLine (n : ) (M : Set (Fin n)) :

                      Text 1.5: An affine set of dimension 1 is called a line.

                      Equations
                        Instances For
                          def IsPlane (n : ) (M : Set (Fin n)) :

                          Text 1.5: An affine set of dimension 2 is called a plane.

                          Equations
                            Instances For
                              def IsHyperplane (n : ) (M : Set (Fin n)) :

                              Text 1.5: An (n - 1)-dimensional affine set in Real^n is called a hyperplane.

                              Equations
                                Instances For
                                  def orthogonalComplement (n : ) (L : Submodule (Fin n)) :

                                  Text 1.6: Given a subspace L of Real^n, the orthogonal complement L^⊥ is the set of vectors x such that x ⟂ y for every y ∈ L.

                                  Equations
                                    Instances For
                                      def dotProductLinear (n : ) (b : Fin n) :

                                      The linear functional x ↦ x ⬝ᵥ b.

                                      Equations
                                        Instances For
                                          theorem dotProductLinear_ker_eq (n : ) (b : Fin n) :
                                          (LinearMap.ker (dotProductLinear n b)) = {x : Fin n | x ⬝ᵥ b = 0}

                                          The kernel of dotProductLinear is the zero dot-product set.

                                          theorem dotProductLinear_ne_zero (n : ) {b : Fin n} (hb : b 0) :

                                          A nonzero vector gives a nonzero dot-product functional.

                                          theorem dual_eq_dotProductLinear (n : ) (f : Module.Dual (Fin n)) (hf : f 0) :
                                          ∃ (b : Fin n), b 0 f = dotProductLinear n b

                                          Any nonzero linear functional on Fin n → ℝ is a dot-product functional.

                                          theorem dotProduct_levelset_isAffine (n : ) (β : ) (b : Fin n) :
                                          IsAffineSet n {x : Fin n | x ⬝ᵥ b = β}

                                          A dot-product level set is affine.

                                          theorem exists_point_and_translate_kernel (n : ) (β : ) (b : Fin n) (hb : b 0) :
                                          ∃ (x0 : Fin n), x0 ⬝ᵥ b = β {x : Fin n | x ⬝ᵥ b = β} = SetTranslate n {x : Fin n | x ⬝ᵥ b = 0} x0

                                          A nonzero normal gives a point on the level set and a translation by the kernel.

                                          theorem finrank_kernel_dotProduct (n : ) (b : Fin n) (hb : b 0) :

                                          The kernel of a nonzero dot-product functional has dimension n - 1.

                                          theorem codim_one_submodule_eq_dotProduct (n : ) (L : Submodule (Fin n)) (hL : Module.finrank L = n - 1) (hn : 0 < n) :
                                          ∃ (b : Fin n), b 0 L = {x : Fin n | x ⬝ᵥ b = 0}

                                          Codimension-one submodules are dot-product kernels.

                                          theorem hyperplane_kernels_eq (n : ) (b b' : Fin n) (β β' : ) (x0 : Fin n) (hx0 : x0 ⬝ᵥ b = β) (hH : {x : Fin n | x ⬝ᵥ b = β} = {x : Fin n | x ⬝ᵥ b' = β'}) :
                                          {x : Fin n | x ⬝ᵥ b = 0} = {x : Fin n | x ⬝ᵥ b' = 0}

                                          Equality of dot-product level sets gives equality of the zero-level kernels.

                                          theorem linear_functional_eq_smul_of_ker_eq (n : ) (f g : Module.Dual (Fin n)) (hf : f 0) (hg : g 0) (hker : LinearMap.ker f = LinearMap.ker g) :
                                          ∃ (c : ), c 0 g = c f

                                          Nonzero linear functionals with the same kernel are scalar multiples.

                                          theorem hyperplane_normal_unique (n : ) (b b' : Fin n) (β β' : ) (hb : b 0) (hb' : b' 0) (hH : {x : Fin n | x ⬝ᵥ b = β} = {x : Fin n | x ⬝ᵥ b' = β'}) :
                                          ∃ (c : ), c 0 b' = c b β' = c * β

                                          If two nonzero normals define the same hyperplane, they are scalar multiples.

                                          theorem hyperplane_iff_eq_dotProduct (n : ) (hn : 0 < n) :
                                          (∀ (β : ) (b : Fin n), b 0IsHyperplane n {x : Fin n | x ⬝ᵥ b = β}) ∀ (H : Set (Fin n)), IsHyperplane n H∃ (b : Fin n) (β : ), b 0 H = {x : Fin n | x ⬝ᵥ b = β} ∀ (b' : Fin n) (β' : ), b' 0H = {x : Fin n | x ⬝ᵥ b' = β'}∃ (c : ), c 0 b' = c b β' = c * β

                                          Theorem 1.3: Given β : Real and non-zero b : Real^n, the set {x | ⟪x, b⟫ = β} is a hyperplane in Real^n. Moreover, every hyperplane admits such a representation, with b and β unique up to a common non-zero multiple.

                                          def IsNormalToHyperplane (n : ) (H : Set (Fin n)) (b : Fin n) :

                                          Text 1.7: In Theorem 1.3, the vector b is called a normal to the hyperplane H.

                                          Equations
                                            Instances For
                                              def affineHull (n : ) (S : Set (Fin n)) :
                                              Set (Fin n)

                                              Text 1.8: For any S ⊆ R^n there is a unique smallest affine set containing S, namely the intersection of all affine sets containing S. This set is called the affine hull of S and is denoted aff S.

                                              Equations
                                                Instances For
                                                  theorem affineHull_subset_of_affineSet {n : } {S M : Set (Fin n)} (hM : IsAffineSet n M) (hS : S M) :

                                                  The affine hull is contained in any affine set that contains S.

                                                  theorem isAffineSet_affineHull (n : ) (S : Set (Fin n)) :

                                                  The affine hull of a set is itself affine.

                                                  theorem affineHull_mem_affineSets (n : ) (S : Set (Fin n)) :
                                                  affineHull n S {M : Set (Fin n) | IsAffineSet n M S M}

                                                  The affine hull is an affine set containing S.

                                                  theorem affineHull_eq_sInter_affineSets (n : ) (S : Set (Fin n)) :
                                                  affineHull n S = ⋂₀ {M : Set (Fin n) | IsAffineSet n M S M}

                                                  Text 1.8: The affine hull is the intersection of all affine sets containing S.

                                                  theorem affineCombination_eq_linear_combination_univ {n m : } (xs : Fin mFin n) (w : Fin m) (hw : i : Fin m, w i = 1) :
                                                  (Finset.affineCombination Finset.univ xs) w = i : Fin m, w i xs i

                                                  On Fin m, an affine combination with total weight 1 is just the sum of smuls.

                                                  theorem affineSpan_mono_range {n m : } {S : Set (Fin n)} (xs : Fin mFin n) (hxs : ∀ (i : Fin m), xs i S) :

                                                  If all points of a family lie in S, then the affine span of its range is contained in the affine span of S.

                                                  theorem exists_fin_family_of_finset_affineCombination {n : } {S : Set (Fin n)} {v : Fin n} (fs : Finset { x : Fin n // x S }) (w : { x : Fin n // x S }) (hw : ifs, w i = 1) (hv : v = (Finset.affineCombination fs fun (x : { x : Fin n // x S }) => x) w) :
                                                  ∃ (m : ) (xs : Fin mFin n) (coeffs : Fin m), (∀ (i : Fin m), xs i S) i : Fin m, coeffs i = 1 i : Fin m, coeffs i xs i = v

                                                  Reindex a finset affine combination into a Fin m-indexed one.

                                                  theorem mem_affineHull_iff_finset_affineCombination (n : ) (S : Set (Fin n)) (v : Fin n) :
                                                  v affineHull n S ∃ (m : ) (xs : Fin mFin n) (coeffs : Fin m), (∀ (i : Fin m), xs i S) i : Fin m, coeffs i = 1 i : Fin m, coeffs i xs i = v

                                                  Text 1.8.1: aff S consists of all vectors of the form λ₁ x₁ + ⋯ + λₘ xₘ with xᵢ ∈ S and λ₁ + ⋯ + λₘ = 1.

                                                  theorem isAffineSet_mulVec_eq (m n : ) (b : Fin m) (B : Matrix (Fin m) (Fin n) ) :
                                                  IsAffineSet n {x : Fin n | B.mulVec x = b}

                                                  A fiber of a matrix mulVec map is an affine set.

                                                  theorem translate_eq_linear_fiber {n m : } (L : Submodule (Fin n)) (a : Fin n) (f : (Fin n) →ₗ[] Fin m) (hker : LinearMap.ker f = L) :
                                                  SetTranslate n (↑L) a = {x : Fin n | f x = f a}

                                                  A translate of a submodule is a fiber of a linear map with that kernel.

                                                  theorem exists_linearMap_with_ker (n : ) (L : Submodule (Fin n)) :
                                                  ∃ (m : ) (f : (Fin n) →ₗ[] Fin m), LinearMap.ker f = L

                                                  Any submodule is the kernel of a linear map to Fin m → Real.

                                                  theorem linearMap_toMatrix_mulVec {m n : } (f : (Fin n) →ₗ[] Fin m) (x : Fin n) :

                                                  The matrix of a linear map acts by mulVec in the standard basis.