PhysLean Documentation

PhysLean.SpaceAndTime.Space.Module

The structure of a module on Space #

The scope of this module is to define on Space d the structure of a Module (aka vector space), a Norm and an InnerProductSpace, and give properties of these structures.

These instances require certain non-canonical choices to be made, for example the choice of a zero and for a basis, a choice of orientation.

A.1. Instance of an additive commutative monoid #

instance Space.instAdd {d : β„•} :
Equations
@[simp]
theorem Space.add_val {d : β„•} (x y : Space d) :
(x + y).val = x.val + y.val
@[simp]
theorem Space.add_apply {d : β„•} (x y : Space d) (i : Fin d) :
(x + y).val i = x.val i + y.val i
instance Space.instZero {d : β„•} :
Equations
@[simp]
theorem Space.zero_val {d : β„•} :
val 0 = fun (x : Fin d) => 0
@[simp]
theorem Space.zero_apply {d : β„•} (i : Fin d) :
val 0 i = 0
Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem Space.nsmul_val {d : β„•} (n : β„•) (a : Space d) :
(n β€’ a).val = fun (i : Fin d) => n β€’ a.val i
@[simp]
theorem Space.nsmul_apply {d : β„•} (n : β„•) (a : Space d) (i : Fin d) :
(n β€’ a).val i = n β€’ a.val i
theorem Space.eq_vadd_zero {d : β„•} (s : Space d) :
βˆƒ (v : EuclideanSpace ℝ (Fin d)), s = v +α΅₯ 0
@[simp]
theorem Space.add_vadd_zero {d : β„•} (v1 v2 : EuclideanSpace ℝ (Fin d)) :
(v1 +α΅₯ 0) + (v2 +α΅₯ 0) = (v1 + v2) +α΅₯ 0

A.2. Instance of a module over ℝ #

Equations
@[simp]
theorem Space.smul_val {d : β„•} (c : ℝ) (p : Space d) :
(c β€’ p).val = fun (i : Fin d) => c * p.val i
@[simp]
theorem Space.smul_apply {d : β„•} (c : ℝ) (p : Space d) (i : Fin d) :
(c β€’ p).val i = c * p.val i
@[simp]
Equations

A.3. Instance of an inner product space #

noncomputable instance Space.instNorm {d : β„•} :
Equations
theorem Space.norm_eq {d : β„•} (p : Space d) :
β€–pβ€– = √(βˆ‘ i : Fin d, p.val i ^ 2)
@[simp]
theorem Space.abs_eval_le_norm {d : β„•} (p : Space d) (i : Fin d) :
theorem Space.norm_sq_eq {d : β„•} (p : Space d) :
β€–pβ€– ^ 2 = βˆ‘ i : Fin d, p.val i ^ 2
instance Space.instNeg {d : β„•} :
Equations
@[simp]
theorem Space.neg_val {d : β„•} (p : Space d) :
(-p).val = fun (i : Fin d) => -p.val i
@[simp]
theorem Space.neg_apply {d : β„•} (p : Space d) (i : Fin d) :
(-p).val i = -p.val i
noncomputable instance Space.instAddCommGroup {d : β„•} :
Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem Space.sub_apply {d : β„•} (p q : Space d) (i : Fin d) :
(p - q).val i = p.val i - q.val i
@[simp]
theorem Space.sub_val {d : β„•} (p q : Space d) :
(p - q).val = fun (i : Fin d) => p.val i - q.val i
@[simp]
theorem Space.vadd_zero_sub_vadd_zero {d : β„•} (v1 v2 : EuclideanSpace ℝ (Fin d)) :
(v1 +α΅₯ 0) - (v2 +α΅₯ 0) = (v1 - v2) +α΅₯ 0
Equations
@[simp]
theorem Space.dist_eq_norm {d : β„•} (p q : Space d) :
Equations
Equations
@[simp]
theorem Space.inner_vadd_zero {d : β„•} (v1 v2 : EuclideanSpace ℝ (Fin d)) :
inner ℝ (v1 +α΅₯ 0) (v2 +α΅₯ 0) = inner ℝ v1 v2
theorem Space.inner_apply {d : β„•} (p q : Space d) :
inner ℝ p q = βˆ‘ i : Fin d, p.val i * q.val i
Equations
  • One or more equations did not get rendered due to their size.

A.4. Instance of a measurable space #

The norm on Space #

Inner product #

theorem Space.inner_eq_sum {d : β„•} (p q : Space d) :
inner ℝ p q = βˆ‘ i : Fin d, p.val i * q.val i
@[simp]
theorem Space.sum_apply {d : β„•} {ΞΉ : Type} [Fintype ΞΉ] (f : ΞΉ β†’ Space d) (i : Fin d) :
(βˆ‘ x : ΞΉ, f x).val i = βˆ‘ x : ΞΉ, (f x).val i

Basis #

noncomputable def Space.basis {d : β„•} :

The standard basis of Space based on Fin d.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    theorem Space.apply_eq_basis_repr_apply {d : β„•} (p : Space d) (i : Fin d) :
    p.val i = (basis.repr p).ofLp i
    @[simp]
    theorem Space.basis_repr_apply {d : β„•} (p : Space d) (i : Fin d) :
    (basis.repr p).ofLp i = p.val i
    @[simp]
    theorem Space.basis_repr_symm_apply {d : β„•} (v : EuclideanSpace ℝ (Fin d)) (i : Fin d) :
    (basis.repr.symm v).val i = v.ofLp i
    theorem Space.basis_apply {d : β„•} (i j : Fin d) :
    (basis i).val j = if i = j then 1 else 0
    @[simp]
    theorem Space.basis_self {d : β„•} (i : Fin d) :
    (basis i).val i = 1
    @[simp]
    theorem Space.inner_basis {d : β„•} (p : Space d) (i : Fin d) :
    inner ℝ p (basis i) = p.val i
    @[simp]
    theorem Space.basis_inner {d : β„•} (i : Fin d) (p : Space d) :
    inner ℝ (basis i) p = p.val i
    @[simp]
    theorem Space.rank_eq_dim {d : β„•} :

    Coordinates #

    noncomputable def Space.coord {d : β„•} (ΞΌ : Fin d) (p : Space d) :

    The standard coordinate functions of Space based on Fin d.

    The notation 𝔁 ΞΌ p can be used for this.

    Equations
    Instances For
      theorem Space.coord_apply {d : β„•} (ΞΌ : Fin d) (p : Space d) :
      coord ΞΌ p = p.val ΞΌ
      noncomputable def Space.coordCLM {d : β„•} (ΞΌ : Fin d) :

      The standard coordinate functions of Space based on Fin d, as a continuous linear map.

      Equations
      Instances For
        theorem Space.coord_contDiff {d : β„•} {i : Fin d} :
        ContDiff ℝ β†‘βŠ€ fun (x : Space d) => coord i x
        theorem Space.coordCLM_apply {d : β„•} (ΞΌ : Fin d) (p : Space d) :
        (coordCLM ΞΌ) p = coord ΞΌ p

        The standard coordinate functions of Space based on Fin d.

        The notation 𝔁 ΞΌ p can be used for this.

        Equations
        Instances For
          theorem Space.eval_continuous {d : β„•} (i : Fin d) :
          Continuous fun (p : Space d) => p.val i
          theorem Space.eval_differentiable {d : β„•} (i : Fin d) :
          Differentiable ℝ fun (p : Space d) => p.val i
          theorem Space.eval_contDiff {d : β„•} {n : WithTop β„•βˆž} (i : Fin d) :
          ContDiff ℝ n fun (p : Space d) => p.val i

          The continuous linear equivalence between Space d and the corresponding Pi type.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            theorem Space.mk_continuous {d : β„•} :
            Continuous fun (f : Fin d β†’ ℝ) => { val := f }
            theorem Space.mk_differentiable {d : β„•} :
            Differentiable ℝ fun (f : Fin d β†’ ℝ) => { val := f }
            theorem Space.mk_contDiff {d n : β„•} :
            ContDiff ℝ ↑n fun (f : Fin d β†’ ℝ) => { val := f }
            @[simp]
            theorem Space.fderiv_mk {d : β„•} (f : Fin d β†’ ℝ) :
            @[simp]
            theorem Space.fderiv_val {d : β„•} (p : Space d) :
            fderiv ℝ val p = ↑(equivPi d)

            Directions #

            structure Space.Direction (d : β„• := 3) :

            Notion of direction where unit returns a unit vector in the direction specified.

            Instances For
              noncomputable def Space.toDirection {d : β„•} (x : Space d) (h : x β‰  0) :

              Direction of a Space value with respect to the origin.

              Equations
              Instances For
                @[simp]
                theorem Space.direction_unit_sq_sum {d : β„•} (s : Direction d) :
                βˆ‘ i : Fin d, s.unit.val i ^ 2 = 1

                One equiv #

                The linear isometric equivalence between Space 1 and ℝ.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  theorem Space.oneEquiv_coe :
                  ⇑oneEquiv = fun (x : Space 1) => x.val 0
                  theorem Space.oneEquiv_symm_coe :
                  ⇑oneEquiv.symm = fun (x : ℝ) => { val := fun (x_1 : Fin 1) => x }

                  The continuous linear equivalence between Space 1 and ℝ.

                  Equations
                  Instances For