Documentation

Mathlib.Analysis.Calculus.VectorField

Vector fields in vector spaces #

We study functions of the form V : E โ†’ E on a vector space, thinking of these as vector fields. We define several notions in this context, with the aim to generalize them to vector fields on manifolds.

Notably, we define the pullback of a vector field under a map, as VectorField.pullback ๐•œ f V x := (fderiv ๐•œ f x).inverse (V (f x)) (together with the same notion within a set).

In addition to comprehensive API on this notion, the main result is the following:

The Lie bracket of vector fields in a vector space #

We define the Lie bracket of two vector fields, and call it lieBracket ๐•œ V W x. We also define a version localized to sets, lieBracketWithin ๐•œ V W s x. We copy the relevant API of fderivWithin and fderiv for these notions to get a comprehensive API.

def VectorField.lieBracket (๐•œ : Type u_1) [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] (V W : E โ†’ E) (x : E) :
E

The Lie bracket [V, W] (x) of two vector fields at a point, defined as DW(x) (V x) - DV(x) (W x).

Equations
Instances For
    def VectorField.lieBracketWithin (๐•œ : Type u_1) [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] (V W : E โ†’ E) (s : Set E) (x : E) :
    E

    The Lie bracket [V, W] (x) of two vector fields within a set at a point, defined as DW(x) (V x) - DV(x) (W x) where the derivatives are taken inside s.

    Equations
    Instances For
      theorem VectorField.lieBracket_eq {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W : E โ†’ E} :
      VectorField.lieBracket ๐•œ V W = fun (x : E) => (fderiv ๐•œ W x) (V x) - (fderiv ๐•œ V x) (W x)
      theorem VectorField.lieBracketWithin_eq {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W : E โ†’ E} {s : Set E} :
      VectorField.lieBracketWithin ๐•œ V W s = fun (x : E) => (fderivWithin ๐•œ W s x) (V x) - (fderivWithin ๐•œ V s x) (W x)
      @[simp]
      theorem VectorField.lieBracketWithin_univ {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W : E โ†’ E} :
      VectorField.lieBracketWithin ๐•œ V W Set.univ = VectorField.lieBracket ๐•œ V W
      theorem VectorField.lieBracketWithin_eq_zero_of_eq_zero {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W : E โ†’ E} {s : Set E} {x : E} (hV : V x = 0) (hW : W x = 0) :
      VectorField.lieBracketWithin ๐•œ V W s x = 0
      theorem VectorField.lieBracket_eq_zero_of_eq_zero {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W : E โ†’ E} {x : E} (hV : V x = 0) (hW : W x = 0) :
      VectorField.lieBracket ๐•œ V W x = 0
      theorem VectorField.lieBracketWithin_smul_left {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W : E โ†’ E} {s : Set E} {x : E} {c : ๐•œ} (hV : DifferentiableWithinAt ๐•œ V s x) (hs : UniqueDiffWithinAt ๐•œ s x) :
      theorem VectorField.lieBracket_smul_left {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W : E โ†’ E} {x : E} {c : ๐•œ} (hV : DifferentiableAt ๐•œ V x) :
      VectorField.lieBracket ๐•œ (c โ€ข V) W x = c โ€ข VectorField.lieBracket ๐•œ V W x
      theorem VectorField.lieBracketWithin_smul_right {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W : E โ†’ E} {s : Set E} {x : E} {c : ๐•œ} (hW : DifferentiableWithinAt ๐•œ W s x) (hs : UniqueDiffWithinAt ๐•œ s x) :
      theorem VectorField.lieBracket_smul_right {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W : E โ†’ E} {x : E} {c : ๐•œ} (hW : DifferentiableAt ๐•œ W x) :
      VectorField.lieBracket ๐•œ V (c โ€ข W) x = c โ€ข VectorField.lieBracket ๐•œ V W x
      theorem VectorField.lieBracketWithin_add_left {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W Vโ‚ : E โ†’ E} {s : Set E} {x : E} (hV : DifferentiableWithinAt ๐•œ V s x) (hVโ‚ : DifferentiableWithinAt ๐•œ Vโ‚ s x) (hs : UniqueDiffWithinAt ๐•œ s x) :
      VectorField.lieBracketWithin ๐•œ (V + Vโ‚) W s x = VectorField.lieBracketWithin ๐•œ V W s x + VectorField.lieBracketWithin ๐•œ Vโ‚ W s x
      theorem VectorField.lieBracket_add_left {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W Vโ‚ : E โ†’ E} {x : E} (hV : DifferentiableAt ๐•œ V x) (hVโ‚ : DifferentiableAt ๐•œ Vโ‚ x) :
      VectorField.lieBracket ๐•œ (V + Vโ‚) W x = VectorField.lieBracket ๐•œ V W x + VectorField.lieBracket ๐•œ Vโ‚ W x
      theorem VectorField.lieBracketWithin_add_right {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W Wโ‚ : E โ†’ E} {s : Set E} {x : E} (hW : DifferentiableWithinAt ๐•œ W s x) (hWโ‚ : DifferentiableWithinAt ๐•œ Wโ‚ s x) (hs : UniqueDiffWithinAt ๐•œ s x) :
      VectorField.lieBracketWithin ๐•œ V (W + Wโ‚) s x = VectorField.lieBracketWithin ๐•œ V W s x + VectorField.lieBracketWithin ๐•œ V Wโ‚ s x
      theorem VectorField.lieBracket_add_right {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W Wโ‚ : E โ†’ E} {x : E} (hW : DifferentiableAt ๐•œ W x) (hWโ‚ : DifferentiableAt ๐•œ Wโ‚ x) :
      VectorField.lieBracket ๐•œ V (W + Wโ‚) x = VectorField.lieBracket ๐•œ V W x + VectorField.lieBracket ๐•œ V Wโ‚ x
      theorem VectorField.lieBracketWithin_swap {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W : E โ†’ E} {s : Set E} :
      theorem VectorField.lieBracket_swap {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W : E โ†’ E} {x : E} :
      VectorField.lieBracket ๐•œ V W x = -VectorField.lieBracket ๐•œ W V x
      @[simp]
      theorem VectorField.lieBracketWithin_self {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V : E โ†’ E} {s : Set E} :
      @[simp]
      theorem VectorField.lieBracket_self {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V : E โ†’ E} :
      VectorField.lieBracket ๐•œ V V = 0
      theorem ContDiffWithinAt.lieBracketWithin_vectorField {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W : E โ†’ E} {s : Set E} {x : E} {m n : โ„•โˆž} (hV : ContDiffWithinAt ๐•œ n V s x) (hW : ContDiffWithinAt ๐•œ n W s x) (hs : UniqueDiffOn ๐•œ s) (hmn : m + 1 โ‰ค n) (hx : x โˆˆ s) :
      ContDiffWithinAt ๐•œ m (VectorField.lieBracketWithin ๐•œ V W s) s x
      theorem ContDiffAt.lieBracket_vectorField {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W : E โ†’ E} {x : E} {m n : โ„•โˆž} (hV : ContDiffAt ๐•œ n V x) (hW : ContDiffAt ๐•œ n W x) (hmn : m + 1 โ‰ค n) :
      ContDiffAt ๐•œ m (VectorField.lieBracket ๐•œ V W) x
      theorem ContDiffOn.lieBracketWithin_vectorField {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W : E โ†’ E} {s : Set E} {m n : โ„•โˆž} (hV : ContDiffOn ๐•œ n V s) (hW : ContDiffOn ๐•œ n W s) (hs : UniqueDiffOn ๐•œ s) (hmn : m + 1 โ‰ค n) :
      ContDiffOn ๐•œ m (VectorField.lieBracketWithin ๐•œ V W s) s
      theorem ContDiff.lieBracket_vectorField {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W : E โ†’ E} {m n : โ„•โˆž} (hV : ContDiff ๐•œ n V) (hW : ContDiff ๐•œ n W) (hmn : m + 1 โ‰ค n) :
      ContDiff ๐•œ m (VectorField.lieBracket ๐•œ V W)
      theorem VectorField.lieBracketWithin_of_mem_nhdsWithin {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W : E โ†’ E} {s t : Set E} {x : E} (st : t โˆˆ nhdsWithin x s) (hs : UniqueDiffWithinAt ๐•œ s x) (hV : DifferentiableWithinAt ๐•œ V t x) (hW : DifferentiableWithinAt ๐•œ W t x) :
      VectorField.lieBracketWithin ๐•œ V W s x = VectorField.lieBracketWithin ๐•œ V W t x
      theorem VectorField.lieBracketWithin_subset {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W : E โ†’ E} {s t : Set E} {x : E} (st : s โŠ† t) (ht : UniqueDiffWithinAt ๐•œ s x) (hV : DifferentiableWithinAt ๐•œ V t x) (hW : DifferentiableWithinAt ๐•œ W t x) :
      VectorField.lieBracketWithin ๐•œ V W s x = VectorField.lieBracketWithin ๐•œ V W t x
      theorem VectorField.lieBracketWithin_inter {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W : E โ†’ E} {s t : Set E} {x : E} (ht : t โˆˆ nhds x) :
      theorem VectorField.lieBracketWithin_of_mem_nhds {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W : E โ†’ E} {s : Set E} {x : E} (h : s โˆˆ nhds x) :
      VectorField.lieBracketWithin ๐•œ V W s x = VectorField.lieBracket ๐•œ V W x
      theorem VectorField.lieBracketWithin_of_isOpen {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W : E โ†’ E} {s : Set E} {x : E} (hs : IsOpen s) (hx : x โˆˆ s) :
      VectorField.lieBracketWithin ๐•œ V W s x = VectorField.lieBracket ๐•œ V W x
      theorem VectorField.lieBracketWithin_eq_lieBracket {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W : E โ†’ E} {s : Set E} {x : E} (hs : UniqueDiffWithinAt ๐•œ s x) (hV : DifferentiableAt ๐•œ V x) (hW : DifferentiableAt ๐•œ W x) :
      VectorField.lieBracketWithin ๐•œ V W s x = VectorField.lieBracket ๐•œ V W x
      theorem VectorField.lieBracketWithin_congr_set' {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W : E โ†’ E} {s t : Set E} {x : E} (y : E) (h : s =แถ [nhdsWithin x {y}แถœ] t) :
      VectorField.lieBracketWithin ๐•œ V W s x = VectorField.lieBracketWithin ๐•œ V W t x

      Variant of lieBracketWithin_congr_set where one requires the sets to coincide only in the complement of a point.

      theorem VectorField.lieBracketWithin_congr_set {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W : E โ†’ E} {s t : Set E} {x : E} (h : s =แถ [nhds x] t) :
      VectorField.lieBracketWithin ๐•œ V W s x = VectorField.lieBracketWithin ๐•œ V W t x
      theorem VectorField.lieBracketWithin_eventually_congr_set' {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W : E โ†’ E} {s t : Set E} {x : E} (y : E) (h : s =แถ [nhdsWithin x {y}แถœ] t) :

      Variant of lieBracketWithin_eventually_congr_set where one requires the sets to coincide only in the complement of a point.

      theorem VectorField.lieBracketWithin_eventually_congr_set {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W : E โ†’ E} {s t : Set E} {x : E} (h : s =แถ [nhds x] t) :
      theorem DifferentiableWithinAt.lieBracketWithin_congr_mono {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W Vโ‚ Wโ‚ : E โ†’ E} {s t : Set E} {x : E} (hV : DifferentiableWithinAt ๐•œ V s x) (hVs : Set.EqOn Vโ‚ V t) (hVx : Vโ‚ x = V x) (hW : DifferentiableWithinAt ๐•œ W s x) (hWs : Set.EqOn Wโ‚ W t) (hWx : Wโ‚ x = W x) (hxt : UniqueDiffWithinAt ๐•œ t x) (hโ‚ : t โŠ† s) :
      VectorField.lieBracketWithin ๐•œ Vโ‚ Wโ‚ t x = VectorField.lieBracketWithin ๐•œ V W s x
      theorem Filter.EventuallyEq.lieBracketWithin_vectorField_eq {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W Vโ‚ Wโ‚ : E โ†’ E} {s : Set E} {x : E} (hV : Vโ‚ =แถ [nhdsWithin x s] V) (hxV : Vโ‚ x = V x) (hW : Wโ‚ =แถ [nhdsWithin x s] W) (hxW : Wโ‚ x = W x) :
      VectorField.lieBracketWithin ๐•œ Vโ‚ Wโ‚ s x = VectorField.lieBracketWithin ๐•œ V W s x
      theorem Filter.EventuallyEq.lieBracketWithin_vectorField_eq_of_mem {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W Vโ‚ Wโ‚ : E โ†’ E} {s : Set E} {x : E} (hV : Vโ‚ =แถ [nhdsWithin x s] V) (hW : Wโ‚ =แถ [nhdsWithin x s] W) (hx : x โˆˆ s) :
      VectorField.lieBracketWithin ๐•œ Vโ‚ Wโ‚ s x = VectorField.lieBracketWithin ๐•œ V W s x
      theorem Filter.EventuallyEq.lieBracketWithin_vectorField' {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W Vโ‚ Wโ‚ : E โ†’ E} {s t : Set E} {x : E} (hV : Vโ‚ =แถ [nhdsWithin x s] V) (hW : Wโ‚ =แถ [nhdsWithin x s] W) (ht : t โŠ† s) :
      VectorField.lieBracketWithin ๐•œ Vโ‚ Wโ‚ t =แถ [nhdsWithin x s] VectorField.lieBracketWithin ๐•œ V W t

      If vector fields coincide on a neighborhood of a point within a set, then the Lie brackets also coincide on a neighborhood of this point within this set. Version where one considers the Lie bracket within a subset.

      theorem Filter.EventuallyEq.lieBracketWithin_vectorField {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W Vโ‚ Wโ‚ : E โ†’ E} {s : Set E} {x : E} (hV : Vโ‚ =แถ [nhdsWithin x s] V) (hW : Wโ‚ =แถ [nhdsWithin x s] W) :
      VectorField.lieBracketWithin ๐•œ Vโ‚ Wโ‚ s =แถ [nhdsWithin x s] VectorField.lieBracketWithin ๐•œ V W s
      theorem Filter.EventuallyEq.lieBracketWithin_vectorField_eq_of_insert {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W Vโ‚ Wโ‚ : E โ†’ E} {s : Set E} {x : E} (hV : Vโ‚ =แถ [nhdsWithin x (insert x s)] V) (hW : Wโ‚ =แถ [nhdsWithin x (insert x s)] W) :
      VectorField.lieBracketWithin ๐•œ Vโ‚ Wโ‚ s x = VectorField.lieBracketWithin ๐•œ V W s x
      theorem Filter.EventuallyEq.lieBracketWithin_vectorField_eq_nhds {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W Vโ‚ Wโ‚ : E โ†’ E} {s : Set E} {x : E} (hV : Vโ‚ =แถ [nhds x] V) (hW : Wโ‚ =แถ [nhds x] W) :
      VectorField.lieBracketWithin ๐•œ Vโ‚ Wโ‚ s x = VectorField.lieBracketWithin ๐•œ V W s x
      theorem VectorField.lieBracketWithin_congr {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W Vโ‚ Wโ‚ : E โ†’ E} {s : Set E} {x : E} (hV : Set.EqOn Vโ‚ V s) (hVx : Vโ‚ x = V x) (hW : Set.EqOn Wโ‚ W s) (hWx : Wโ‚ x = W x) :
      VectorField.lieBracketWithin ๐•œ Vโ‚ Wโ‚ s x = VectorField.lieBracketWithin ๐•œ V W s x
      theorem VectorField.lieBracketWithin_congr' {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W Vโ‚ Wโ‚ : E โ†’ E} {s : Set E} {x : E} (hV : Set.EqOn Vโ‚ V s) (hW : Set.EqOn Wโ‚ W s) (hx : x โˆˆ s) :
      VectorField.lieBracketWithin ๐•œ Vโ‚ Wโ‚ s x = VectorField.lieBracketWithin ๐•œ V W s x

      Version of lieBracketWithin_congr in which one assumes that the point belongs to the given set.

      theorem Filter.EventuallyEq.lieBracket_vectorField_eq {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W Vโ‚ Wโ‚ : E โ†’ E} {x : E} (hV : Vโ‚ =แถ [nhds x] V) (hW : Wโ‚ =แถ [nhds x] W) :
      VectorField.lieBracket ๐•œ Vโ‚ Wโ‚ x = VectorField.lieBracket ๐•œ V W x
      theorem Filter.EventuallyEq.lieBracket_vectorField {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {V W Vโ‚ Wโ‚ : E โ†’ E} {x : E} (hV : Vโ‚ =แถ [nhds x] V) (hW : Wโ‚ =แถ [nhds x] W) :
      VectorField.lieBracket ๐•œ Vโ‚ Wโ‚ =แถ [nhds x] VectorField.lieBracket ๐•œ V W
      theorem VectorField.leibniz_identity_lieBracketWithin_of_isSymmSndFDerivWithinAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {U V W : E โ†’ E} {s : Set E} {x : E} (hs : UniqueDiffOn ๐•œ s) (hx : x โˆˆ s) (hU : ContDiffWithinAt ๐•œ 2 U s x) (hV : ContDiffWithinAt ๐•œ 2 V s x) (hW : ContDiffWithinAt ๐•œ 2 W s x) (h'U : IsSymmSndFDerivWithinAt ๐•œ U s x) (h'V : IsSymmSndFDerivWithinAt ๐•œ V s x) (h'W : IsSymmSndFDerivWithinAt ๐•œ W s x) :

      The Lie bracket of vector fields in vector spaces satisfies the Leibniz identity [U, [V, W]] = [[U, V], W] + [V, [U, W]].

      theorem VectorField.leibniz_identity_lieBracketWithin {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] [IsRCLikeNormedField ๐•œ] {U V W : E โ†’ E} {s : Set E} {x : E} (hs : UniqueDiffOn ๐•œ s) (h'x : x โˆˆ closure (interior s)) (hx : x โˆˆ s) (hU : ContDiffWithinAt ๐•œ 2 U s x) (hV : ContDiffWithinAt ๐•œ 2 V s x) (hW : ContDiffWithinAt ๐•œ 2 W s x) :

      The Lie bracket of vector fields in vector spaces satisfies the Leibniz identity [U, [V, W]] = [[U, V], W] + [V, [U, W]].

      theorem VectorField.leibniz_identity_lieBracket {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] [IsRCLikeNormedField ๐•œ] {U V W : E โ†’ E} {x : E} (hU : ContDiffAt ๐•œ 2 U x) (hV : ContDiffAt ๐•œ 2 V x) (hW : ContDiffAt ๐•œ 2 W x) :
      VectorField.lieBracket ๐•œ U (VectorField.lieBracket ๐•œ V W) x = VectorField.lieBracket ๐•œ (VectorField.lieBracket ๐•œ U V) W x + VectorField.lieBracket ๐•œ V (VectorField.lieBracket ๐•œ U W) x

      The Lie bracket of vector fields in vector spaces satisfies the Leibniz identity [U, [V, W]] = [[U, V], W] + [V, [U, W]].