Documentation

Mathlib.Analysis.Distribution.DerivNotation

Type classes for derivatives and the Laplacian #

In this file we define notation type classes for line derivatives, also known as partial derivatives, and for the Laplacian.

Moreover, we provide type-classes that encode the linear structure. We also define the iterated line derivative and prove elementary properties. We define a Laplacian based on the sum of second derivatives formula and prove that the Laplacian thus defined is independent of the choice of basis.

Line derivative #

class LineDeriv (V : Type u) (E : Type v) (F : outParam (Type w)) :
Type (max (max u v) w)

The notation typeclass for the line derivative.

  • lineDerivOp : VEF

    ∂_{v} f is the line derivative of f in direction v. The meaning of this notation is type-dependent.

Instances

    ∂_{v} f is the line derivative of f in direction v. The meaning of this notation is type-dependent.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      def LineDeriv.iteratedLineDerivOp {V : Type u_9} {E : Type u_10} [LineDeriv V E E] {n : } :
      (Fin nV)EE

      ∂^{m} f is the iterated line derivative of f, where m is a finite number of (different) directions.

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

        ∂^{m} f is the iterated line derivative of f, where m is a finite number of (different) directions.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]
          theorem LineDeriv.iteratedLineDerivOp_fin_zero {V : Type u_9} {E : Type u_10} [LineDeriv V E E] (m : Fin 0V) (f : E) :
          @[simp]
          theorem LineDeriv.iteratedLineDerivOp_one {V : Type u_9} {E : Type u_10} [LineDeriv V E E] (m : Fin 1V) (f : E) :
          theorem LineDeriv.iteratedLineDerivOp_succ_left {V : Type u_9} {E : Type u_10} [LineDeriv V E E] {n : } (m : Fin (n + 1)V) (f : E) :
          theorem LineDeriv.iteratedLineDerivOp_succ_right {V : Type u_9} {E : Type u_10} [LineDeriv V E E] {n : } (m : Fin (n + 1)V) (f : E) :
          @[simp]
          theorem LineDeriv.iteratedLineDerivOp_const_eq_iter_lineDerivOp {V : Type u_9} {E : Type u_10} [LineDeriv V E E] (n : ) (y : V) (f : E) :
          iteratedLineDerivOp (fun (x : Fin n) => y) f = (lineDerivOp y)^[n] f
          class LineDerivAdd (V : Type u) (E : Type v) (F : outParam (Type w)) [AddCommGroup V] [AddCommGroup E] [AddCommGroup F] [LineDeriv V E F] :

          The line derivative is additive, ∂_{v} (x + y) = ∂_{v} x + ∂_{v} y for all x y : E and ∂_{v + w} x = ∂_{v} x + ∂_{w} y for all v w : V.

          Note that lineDeriv on functions is not additive.

          Instances
            class LineDerivSMul (R : Type u_9) (V : Type u) (E : Type v) (F : outParam (Type w)) [SMul R E] [SMul R F] [LineDeriv V E F] :

            The line derivative commutes with scalar multiplication, ∂_{v} (r • x) = r • ∂_{v} x for all r : R and x : E.

            Instances
              class LineDerivLeftSMul (R : Type u_9) (V : Type u) (E : Type v) (F : outParam (Type w)) [SMul R V] [SMul R F] [LineDeriv V E F] :

              The line derivative commutes with scalar multiplication, ∂_{r • v} x = r • ∂_{v} x for all r : R and v : V.

              Instances

                The line derivative is continuous.

                Instances
                  @[simp]
                  theorem LineDeriv.lineDerivOp_zero {V : Type u_3} {E : Type u_4} {F : Type u_5} [AddCommGroup V] [AddCommGroup E] [AddCommGroup F] [LineDeriv V E F] [LineDerivAdd V E F] (v : V) :
                  @[simp]
                  theorem LineDeriv.lineDerivOp_neg {V : Type u_3} {E : Type u_4} {F : Type u_5} [AddCommGroup V] [AddCommGroup E] [AddCommGroup F] [LineDeriv V E F] [LineDerivAdd V E F] (v : V) (x : E) :
                  @[simp]
                  theorem LineDeriv.lineDerivOp_sum {ι : Type u_1} {V : Type u_3} {E : Type u_4} {F : Type u_5} [AddCommGroup V] [AddCommGroup E] [AddCommGroup F] [LineDeriv V E F] [LineDerivAdd V E F] (v : V) (f : ιE) (s : Finset ι) :
                  lineDerivOp v (∑ is, f i) = is, lineDerivOp v (f i)
                  @[simp]
                  theorem LineDeriv.lineDerivOp_left_zero {V : Type u_3} {E : Type u_4} {F : Type u_5} [AddCommGroup V] [AddCommGroup E] [AddCommGroup F] [LineDeriv V E F] [LineDerivAdd V E F] (x : E) :
                  @[simp]
                  theorem LineDeriv.lineDerivOp_left_neg {V : Type u_3} {E : Type u_4} {F : Type u_5} [AddCommGroup V] [AddCommGroup E] [AddCommGroup F] [LineDeriv V E F] [LineDerivAdd V E F] (v : V) (x : E) :
                  @[simp]
                  theorem LineDeriv.lineDerivOp_left_sum {ι : Type u_1} {V : Type u_3} {E : Type u_4} {F : Type u_5} [AddCommGroup V] [AddCommGroup E] [AddCommGroup F] [LineDeriv V E F] [LineDerivAdd V E F] (f : ιV) (x : E) (s : Finset ι) :
                  lineDerivOp (∑ is, f i) x = is, lineDerivOp (f i) x
                  def LineDeriv.lineDerivOpCLM (R : Type u_2) {V : Type u_3} (E : Type u_4) {F : Type u_5} [Ring R] [AddCommGroup E] [Module R E] [AddCommGroup F] [Module R F] [TopologicalSpace E] [TopologicalSpace F] [AddCommGroup V] [LineDeriv V E F] [LineDerivAdd V E F] [LineDerivSMul R V E F] [ContinuousLineDeriv V E F] (m : V) :
                  E →L[R] F

                  The line derivative as a continuous linear map.

                  Equations
                  Instances For
                    @[simp]
                    theorem LineDeriv.lineDerivOpCLM_apply {R : Type u_2} {V : Type u_3} {E : Type u_4} {F : Type u_5} [Ring R] [AddCommGroup E] [Module R E] [AddCommGroup F] [Module R F] [TopologicalSpace E] [TopologicalSpace F] [AddCommGroup V] [LineDeriv V E F] [LineDerivAdd V E F] [LineDerivSMul R V E F] [ContinuousLineDeriv V E F] (m : V) (x : E) :
                    theorem LineDeriv.iteratedLineDerivOp_add {V : Type u_3} {E : Type u_4} [LineDeriv V E E] {n : } (m : Fin nV) [AddCommGroup V] [AddCommGroup E] [LineDerivAdd V E E] (x y : E) :
                    @[simp]
                    theorem LineDeriv.iteratedLineDerivOp_zero {V : Type u_3} {E : Type u_4} [LineDeriv V E E] {n : } (m : Fin nV) [AddCommGroup V] [AddCommGroup E] [LineDerivAdd V E E] :
                    @[simp]
                    theorem LineDeriv.iteratedLineDerivOp_neg {V : Type u_3} {E : Type u_4} [LineDeriv V E E] {n : } (m : Fin nV) [AddCommGroup V] [AddCommGroup E] [LineDerivAdd V E E] (x : E) :
                    @[simp]
                    theorem LineDeriv.iteratedLineDerivOp_sum {ι : Type u_1} {V : Type u_3} {E : Type u_4} [LineDeriv V E E] {n : } (m : Fin nV) [AddCommGroup V] [AddCommGroup E] [LineDerivAdd V E E] (f : ιE) (s : Finset ι) :
                    iteratedLineDerivOp m (∑ is, f i) = is, iteratedLineDerivOp m (f i)
                    theorem LineDeriv.iteratedLineDerivOp_smul {R : Type u_2} {V : Type u_3} {E : Type u_4} [LineDeriv V E E] {n : } (m : Fin nV) [SMul R E] [LineDerivSMul R V E E] (r : R) (x : E) :
                    def LineDeriv.iteratedLineDerivOpCLM (R : Type u_2) {V : Type u_3} (E : Type u_4) [LineDeriv V E E] [TopologicalSpace E] [Ring R] [AddCommGroup V] [AddCommGroup E] [Module R E] [LineDerivAdd V E E] [LineDerivSMul R V E E] [ContinuousLineDeriv V E E] {n : } (m : Fin nV) :
                    E →L[R] E

                    The iterated line derivative as a continuous linear map.

                    Equations
                    Instances For
                      @[simp]
                      theorem LineDeriv.iteratedLineDerivOpCLM_apply {R : Type u_2} {V : Type u_3} {E : Type u_4} [LineDeriv V E E] [TopologicalSpace E] [Ring R] [AddCommGroup V] [AddCommGroup E] [Module R E] [LineDerivAdd V E E] [LineDerivSMul R V E E] [ContinuousLineDeriv V E E] {n : } (m : Fin nV) (x : E) :

                      Laplacian #

                      class Laplacian (E : Type v) (F : outParam (Type w)) :
                      Type (max v w)

                      The notation typeclass for the Laplace operator.

                      • laplacian : EF

                        Δ f is the Laplacian of f. The meaning of this notation is type-dependent.

                      Instances

                        Δ f is the Laplacian of f. The meaning of this notation is type-dependent.

                        Equations
                        Instances For

                          Laplacian of LineDeriv #

                          def LineDeriv.bilinearLineDerivTwo (R : Type u_2) {E : Type u_4} {V₁ : Type u_6} {V₂ : Type u_7} {V₃ : Type u_8} [LineDeriv E V₁ V₂] [LineDeriv E V₂ V₃] [AddCommGroup V₁] [AddCommGroup V₂] [AddCommGroup V₃] [CommRing R] [AddCommGroup E] [Module R E] [Module R V₂] [Module R V₃] [LineDerivAdd E V₂ V₃] [LineDerivAdd E V₁ V₂] [LineDerivSMul R E V₂ V₃] [LineDerivLeftSMul R E V₁ V₂] [LineDerivLeftSMul R E V₂ V₃] (f : V₁) :
                          E →ₗ[R] E →ₗ[R] V₃

                          The second derivative in terms lineDerivOp as a bilinear map.

                          Mainly used to give an abstract definition of the Laplacian.

                          Equations
                          Instances For
                            def LineDeriv.tensorLineDerivTwo (R : Type u_2) {E : Type u_4} {V₁ : Type u_6} {V₂ : Type u_7} {V₃ : Type u_8} [LineDeriv E V₁ V₂] [LineDeriv E V₂ V₃] [AddCommGroup V₁] [AddCommGroup V₂] [AddCommGroup V₃] [CommRing R] [AddCommGroup E] [Module R E] [Module R V₂] [Module R V₃] [LineDerivAdd E V₂ V₃] [LineDerivAdd E V₁ V₂] [LineDerivSMul R E V₂ V₃] [LineDerivLeftSMul R E V₁ V₂] [LineDerivLeftSMul R E V₂ V₃] (f : V₁) :

                            The second derivative in terms lineDerivOp as a linear map from the tensor product.

                            Mainly used to give an abstract definition of the Laplacian.

                            Equations
                            Instances For
                              theorem LineDeriv.tensorLineDerivTwo_eq_lineDerivOp_lineDerivOp {R : Type u_2} {E : Type u_4} {V₁ : Type u_6} {V₂ : Type u_7} {V₃ : Type u_8} [LineDeriv E V₁ V₂] [LineDeriv E V₂ V₃] [AddCommGroup V₁] [AddCommGroup V₂] [AddCommGroup V₃] [CommRing R] [AddCommGroup E] [Module R E] [Module R V₂] [Module R V₃] [LineDerivAdd E V₂ V₃] [LineDerivAdd E V₁ V₂] [LineDerivSMul R E V₂ V₃] [LineDerivLeftSMul R E V₁ V₂] [LineDerivLeftSMul R E V₂ V₃] (f : V₁) (v w : E) :
                              theorem LineDeriv.tensorLineDerivTwo_canonicalCovariantTensor_eq_sum {ι : Type u_1} {E : Type u_4} {V₁ : Type u_6} {V₂ : Type u_7} {V₃ : Type u_8} [LineDeriv E V₁ V₂] [LineDeriv E V₂ V₃] [AddCommGroup V₁] [AddCommGroup V₂] [AddCommGroup V₃] [NormedAddCommGroup E] [InnerProductSpace E] [FiniteDimensional E] [Module V₂] [Module V₃] [LineDerivAdd E V₁ V₂] [LineDerivAdd E V₂ V₃] [LineDerivSMul E V₂ V₃] [LineDerivLeftSMul E V₁ V₂] [LineDerivLeftSMul E V₂ V₃] [Fintype ι] (v : OrthonormalBasis ι E) (f : V₁) :
                              noncomputable def LineDeriv.laplacianCLM (R : Type u_2) (E : Type u_4) (V₁ : Type u_6) {V₂ : Type u_7} {V₃ : Type u_8} [LineDeriv E V₁ V₂] [LineDeriv E V₂ V₃] [AddCommGroup V₁] [AddCommGroup V₂] [AddCommGroup V₃] [NormedAddCommGroup E] [InnerProductSpace E] [FiniteDimensional E] [CommRing R] [Module R V₁] [Module R V₂] [Module R V₃] [TopologicalSpace V₁] [TopologicalSpace V₂] [TopologicalSpace V₃] [IsTopologicalAddGroup V₃] [LineDerivAdd E V₁ V₂] [LineDerivSMul R E V₁ V₂] [ContinuousLineDeriv E V₁ V₂] [LineDerivAdd E V₂ V₃] [LineDerivSMul R E V₂ V₃] [ContinuousLineDeriv E V₂ V₃] :
                              V₁ →L[R] V₃

                              The Laplacian defined by iterated lineDerivOp as a continuous linear map.

                              Equations
                              Instances For
                                theorem LineDeriv.laplacianCLM_eq_sum {ι : Type u_1} {E : Type u_4} {V₁ : Type u_6} {V₂ : Type u_7} {V₃ : Type u_8} [LineDeriv E V₁ V₂] [LineDeriv E V₂ V₃] [AddCommGroup V₁] [AddCommGroup V₂] [AddCommGroup V₃] [NormedAddCommGroup E] [InnerProductSpace E] [FiniteDimensional E] [Module V₁] [Module V₂] [Module V₃] [TopologicalSpace V₁] [TopologicalSpace V₂] [TopologicalSpace V₃] [IsTopologicalAddGroup V₃] [LineDerivAdd E V₁ V₂] [LineDerivSMul E V₁ V₂] [ContinuousLineDeriv E V₁ V₂] [LineDerivAdd E V₂ V₃] [LineDerivSMul E V₂ V₃] [ContinuousLineDeriv E V₂ V₃] [LineDerivLeftSMul E V₁ V₂] [LineDerivLeftSMul E V₂ V₃] [Fintype ι] (v : OrthonormalBasis ι E) (f : V₁) :
                                (laplacianCLM E V₁) f = i : ι, lineDerivOp (v i) (lineDerivOp (v i) f)