PhysLean Documentation

PhysLean.SpaceAndTime.Time.TimeTransMan

The time manifold with a transitive action of #

In this module we define the type TimeTransMan. This type physically corresponds to the manifold of time (diffeomorphic to ) with the following additional structure:

  1. a transitive action of ,
  2. a choice of orientation.

The manifold TimeTransMan is not equipped with a translationally-invariant metric. Such metrics are in one-to-one correspondence (to be shown) with positive reals, and as such we define the type TimeUnit (equivalent to the positive reals) to represent the choice of metric on TimeTransMan. This is defined in a different module.

From the point of view of physics, this choice of metric corresponds to a choice of units, hence the name, and we will use the phrase 'units of time' interchangeably 'choice of metric'.

Given a x : TimeUnit, and the structure above, we can define the following operations on TimeTransMan:

Recall that the type Time corresponds to the manifold of time with a given (but arbitrary) choice of units and origin (and therefore has a structure of a module over ). Here we define the homeomorphism:

structure TimeTransMan :

The type TimeTransMan represents the time manifold with an orientation and a transitive action of the reals.

Instances For
    theorem TimeTransMan.ext_of {t1 t2 : TimeTransMan} (h : t1.val = t2.val) :
    t1 = t2
    theorem TimeTransMan.ext_of_iff {t1 t2 : TimeTransMan} :
    t1 = t2 t1.val = t2.val

    The topology on TimeTransMan. #

    The topology on TimeTransMan is induced from the topology on , via the choice of map TimeTransMan.val.

    The choice of map Time.val from TimeTransMan to as a homeomorphism.

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

      The manifold structure on TimeTransMan #

      The structure of a charted space on TimeTransMan

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

      The transitive group action on TimeTransMan #

      Equations
      @[simp]
      theorem TimeTransMan.vadd_val (p : ) (t : TimeTransMan) :
      (p +ᵥ t).val = p + t.val

      A choice of orientation on TimeTransMan #

      theorem TimeTransMan.le_def (t1 t2 : TimeTransMan) :
      t1 t2 t1.val t2.val

      Functions based on a choice of unit #

      noncomputable def TimeTransMan.dist (x : TimeUnit) (t1 t2 : TimeTransMan) :

      The distance between two points in TimeTransMan in the units of x : TimeUnit.

      Equations
      Instances For

        Signed difference #

        noncomputable def TimeTransMan.diff (x : TimeUnit) (t2 t1 : TimeTransMan) :

        The signed difference between two points in on the manifold TimeTransMan in the units of x : TimeUnit.

        Equations
        Instances For
          theorem TimeTransMan.diff_eq_val (x : TimeUnit) (t1 t2 : TimeTransMan) :
          diff x t1 t2 = 1 / x.val * (t1.val - t2.val)
          @[simp]
          theorem TimeTransMan.diff_self (x : TimeUnit) (t : TimeTransMan) :
          diff x t t = 0

          Adding time #

          noncomputable def TimeTransMan.addTime (x : TimeUnit) (r : ) (t : TimeTransMan) :

          Given a time unit x : TimeUnit, addTime x r t, for a real and t : TimeTransMan, is the point in TimeTransMan seprated from t by a difference of r in the units x. For example, if x corresponds to seconds addTime x 1 t is the time 1 second more then t.

          Equations
          Instances For
            theorem TimeTransMan.addTime_eq_val (x : TimeUnit) (r : ) (t : TimeTransMan) :
            addTime x r t = { val := x.val * r + t.val }
            theorem TimeTransMan.addTime_val (x : TimeUnit) (r : ) (t : TimeTransMan) :
            (addTime x r t).val = x.val * r + t.val

            Negation of time around a zero #

            noncomputable def TimeTransMan.negMetric (zero : TimeTransMan) (x : TimeUnit) (t : TimeTransMan) :

            Given a zero and an x : TimeUnit, negMetric zero x t is the time the same distance away from zero as t in units x but in the opposite direction. This does actually depend on x, as a result see neg and neg_eq_negMetric.

            Equations
            Instances For
              noncomputable def TimeTransMan.neg (zero t : TimeTransMan) :

              Given a zero, neg zero t is the time the same distance away from zero as t in any units but in the opposite direction.

              Equations
              Instances For

                The map from TimeTransMan to Time #

                With a choice of zero zero : TimeTransMan and a choice of units x : TimeUnit, toTime is the homeomorphism between the type TimeTransMan and Time.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[simp]
                  theorem TimeTransMan.toTime_zero (zero : TimeTransMan) (x : TimeUnit) :
                  (zero.toTime x) zero = 0
                  @[simp]
                  theorem TimeTransMan.toTime_symm_zero_add (zero : TimeTransMan) (x : TimeUnit) :
                  (zero.toTime x).symm 0 = zero
                  theorem TimeTransMan.toTime_val (zero : TimeTransMan) (x : TimeUnit) (t : TimeTransMan) :
                  ((zero.toTime x) t).val = diff x t zero
                  theorem TimeTransMan.toTime_symm_val (zero : TimeTransMan) (x : TimeUnit) (r : Time) :
                  (zero.toTime x).symm r = addTime x r.val zero
                  @[simp]
                  theorem TimeTransMan.toTime_addTime (zero : TimeTransMan) (x : TimeUnit) (r : ) (τ : TimeTransMan) :
                  (zero.toTime x) (addTime x r τ) = { val := r } + (zero.toTime x) τ
                  theorem TimeTransMan.toTime_symm_add (zero : TimeTransMan) (x : TimeUnit) (t1 t2 : Time) :
                  (zero.toTime x).symm (t1 + t2) = addTime x (diff x ((zero.toTime x).symm t1) zero) ((zero.toTime x).symm t2)
                  theorem TimeTransMan.toTime_symm_add' (zero : TimeTransMan) (x : TimeUnit) (t1 t2 : Time) :
                  (zero.toTime x).symm (t1 + t2) = addTime x (diff x ((zero.toTime x).symm t2) zero) ((zero.toTime x).symm t1)
                  theorem TimeTransMan.diff_eq_toTime_sub (zero : TimeTransMan) (x : TimeUnit) (t1 t2 : TimeTransMan) :
                  diff x t2 t1 = ((zero.toTime x) t2).val - ((zero.toTime x) t1).val
                  theorem TimeTransMan.toTime_neg (zero : TimeTransMan) (x : TimeUnit) (t : TimeTransMan) :
                  (zero.toTime x) (zero.neg t) = -(zero.toTime x) t
                  theorem TimeTransMan.toTime_symm_neg (zero : TimeTransMan) (x : TimeUnit) (t : Time) :
                  (zero.toTime x).symm (-t) = zero.neg ((zero.toTime x).symm t)
                  theorem TimeTransMan.toTime_symm_sub (zero : TimeTransMan) (x : TimeUnit) (t1 t2 : Time) :
                  (zero.toTime x).symm (t1 - t2) = addTime x (diff x zero ((zero.toTime x).symm t2)) ((zero.toTime x).symm t1)