Physlib.SpaceAndTime.Time.Basic
59 declarations
The `val` function for `Time` is injective
#val_injectiveThe function , which assigns a numerical value to an element of type `Time`, is injective. That is, for any two time points , if , then .
Natural numbers as elements of `Time`
#instNatCastThe type `Time` admits a canonical coercion from the natural numbers. For any natural number , it can be interpreted as an element of `Time` representing units of time relative to the chosen origin and orientation.
Natural number literals as `Time`
#instOfNatThe type `Time` allows for the interpretation of natural number literals as elements of `Time`. This interpretation is based on a fixed choice of a zero point (origin) and a fixed unit of duration (defining the value ).
for in
#natCast_valFor any natural number , the numerical value of when interpreted as an element of the type is equal to .
The natural number cast to is
#natCast_zeroThe natural number , when interpreted as an element of the type via the canonical coercion, is equal to the zero element of .
The natural number cast to is
#natCast_oneThe natural number , when interpreted as an element of the type via the canonical coercion, is equal to the element of .
for any natural number cast to
#ofNat_valFor any natural number , let be interpreted as an element of the type (using the natural number literal coercion). The numerical value associated with this element, denoted by the function , is equal to .
in
#one_ne_zeroIn the type , which represents time with a fixed choice of units and origin, the element is not equal to the element .
The numerical value associated with the zero element (the origin) of the type `Time` is equal to . That is, .
for
#one_valThe numerical value of the constant in the type is equal to . Specifically, , where is the function that returns the numerical representation of a element.
Coercion from to Time
#instCoeRealThis definition provides a coercion from the real numbers to the type `Time`. It allows any real number to be treated as an instance of `Time`, where the numerical value representing the time is set to .
Coercion from Time to
#instCoeReal_1This definition provides a coercion from the type `Time` to the real numbers . It allows any instance of `Time` to be treated as a real number by extracting its underlying numerical value.
The value of cast as `Time` is
#realCast_valFor any real number , the underlying numerical value of when cast into the type `Time` is equal to .
Casting to `Time` via is equivalent to direct casting
#realCast_of_natCastFor any natural number , the value obtained by first casting to a real number and then to the type `Time` is equal to the value obtained by casting directly to `Time`.
`Time` is inhabited with default
#instInhabitedThe type is inhabited, meaning it has a designated default element. This default element is defined to be .
The default value of `Time` is
#default_eq_zeroThe default value of the type `Time` is equal to .
relation on `Time`
#instLEThe type `Time` is equipped with a less-than-or-equal-to relation that defines the orientation of time. For any two time points , the relation holds if and only if their underlying numerical values satisfy the inequality .
For any two time points , the relation holds if and only if their underlying numerical values satisfy the inequality .
Partial order on
#instPartialOrderThe type is equipped with a partial order structure. For any elements , the relation (defined by the inequality of their underlying numerical values) satisfies the following properties: 1. **Reflexivity**: . 2. **Transitivity**: If and , then . 3. **Antisymmetry**: If and , then .
For any two time instances , the relation holds if and only if their underlying numerical values satisfy the inequality .
Addition of `Time` values
#instAddThe addition operation on the type `Time` is defined by summing the underlying numerical values of two time instances. For any , their sum is the element of `Time` whose value is the sum of the values of and , such that .
For any two time instances of type `Time`, the underlying numerical value of their sum is equal to the sum of their individual numerical values: .
Negation of `Time`
#instNegThe negation operation on the type `Time` is defined by negating the underlying numerical value of a time . Specifically, for any , its negation is the element of `Time` whose value is the negative of the value of (i.e., ).
For any time instance of type `Time`, the underlying numerical value of its negation is equal to the negative of the numerical value of . That is, .
Subtraction of `Time`
#instSubFor any two elements of the type , the subtraction is defined as the element of whose underlying numerical value is the difference between the value of and the value of (i.e., ).
For any two time instances , the underlying numerical value of their difference is equal to the difference between the numerical value of and the numerical value of . That is, .
Scalar multiplication of by
#instSMulRealFor any real number and any element of the type , the scalar multiplication is defined by multiplying the underlying real-valued magnitude of (denoted ) by .
In the context of the type, which represents time with a fixed choice of units and origin, for any real number and any , the underlying numerical value of the scalar product is equal to the product of and the underlying value of . That is, .
forms an additive group
#instAddGroupThe type , representing time with a fixed choice of units and origin, is endowed with the structure of an additive group. Under this structure, addition is associative, i.e., for all . The element (origin) serves as the additive identity such that and , and every time has an additive inverse satisfying . These properties are derived from the arithmetic of the underlying numerical values representing the time instances.
forms an additive commutative group
#instAddCommGroupThe type , which represents time with a fixed choice of units and origin, is endowed with the structure of an additive commutative group (Abelian group). This structure implies that, in addition to the properties of an additive group (associativity, identity, and inverses), addition is commutative: for all . These properties are inherited from the arithmetic of the underlying numerical values representing the time instances.
is a vector space over
#instModuleRealThe type is endowed with the structure of a module over the real numbers . This confirms that functions as a one-dimensional real vector space, where scalar multiplication for and satisfies the standard axioms: , , and distributivity over both scalar and time addition.
Norm of is
#instNormThe norm on the space is defined such that for any element , its norm is equal to the absolute value (norm) of its underlying real-valued representation .
for
#norm_eq_valFor any element in the space , the norm is equal to the norm (absolute value) of its underlying real-valued representation .
Distance in as
#instDistThe type is equipped with a metric space structure where the distance function between two time points is defined as the norm of their difference, .
for
#dist_eq_valFor any two time points in the space , the distance between them is equal to the norm of the difference of their underlying real-valued representations, .
For any two time points , the distance between them is equal to the standard Euclidean distance between their underlying real-valued representations.
as a seminormed additive commutative group
#instSeminormedAddCommGroupThe type is equipped with the structure of a seminormed additive commutative group. This means that satisfies the axioms of an abelian group under addition and is endowed with a seminorm such that the distance between any two time points is given by . These properties, including the triangle inequality and the symmetry of the distance function, are inherited from the underlying real-valued representation of the time instances.
as a normed additive commutative group
#instNormedAddCommGroupThe type is equipped with the structure of a normed additive commutative group. This means that satisfies the axioms of an abelian group under addition and is endowed with a norm such that the distance between any two time points , defined as , satisfies the identity of indiscernibles (). These properties are inherited from the underlying real-valued representation of the time instances.
is a normed space over
#instNormedSpaceRealThe type is endowed with the structure of a normed space over the field of real numbers . This means that is a real vector space equipped with a norm such that for any scalar and any , the property is satisfied. This structure ensures that the algebraic operations on (addition and scalar multiplication) are compatible with the topology induced by its norm.
Inner product on `Time`
#instInnerRealThe type `Time` is equipped with an inner product structure over the real numbers . For any two time values , the inner product is defined as the product of their underlying real values:
Definition of the inner product on :
#inner_defFor any two time values , their inner product over the real numbers is equal to the product of their underlying numerical values. That is, where represents the real number associated with the time in a given system of units and origin.
is an inner product space over
#instInnerProductSpaceRealThe type is endowed with the structure of an inner product space over the field of real numbers . This structure defines an inner product that is compatible with the norm on , such that for any , the relation holds. It further satisfies the standard axioms of a real inner product space, including linearity in the first argument and symmetry ().
Decidability of for
#instDecidableEqFor any two time values , the equality is decidable.
as a measurable space
#instMeasurableSpaceThe type is equipped with a measurable space structure. This structure is defined by the Borel -algebra , which is the -algebra generated by the open sets of the topology on .
is a Borel Space
#instBorelSpaceThe type is a Borel space, meaning that its measurable space structure is identical to the Borel -algebra generated by the open sets of the topology on .
Orthonormal basis for
#basisThe definition provides an orthonormal basis for the space as a one-dimensional real inner product space. This basis is indexed by a single element (from the set , represented by `Fin 1`) and is defined by the unit element .
For the unique index in the set (represented by `Fin 1`), the orthonormal basis element of the space is equal to .
The dimension (rank) of the space as a vector space over the real numbers is 1.
The finite dimension of the space as a vector space over the real numbers is equal to .
is finite-dimensional over
#instFiniteDimensionalRealThe space , representing time with a fixed choice of units and origin, is a finite-dimensional vector space over the real numbers .
equals the basis-normalized Haar measure
#volume_eq_basis_addHaarThe canonical volume measure on the space is equal to the additive Haar measure normalized with respect to the standard orthonormal basis of .
Continuous linear map from to
#toRealCLMThe definition `Time.toRealCLM` is the continuous linear map from the space to the real numbers . It associates each element with its corresponding real-valued representation . This map preserves the vector space structure (addition and scalar multiplication) and is continuous with respect to the standard topologies on and .
Continuous linear equivalence between and
#toRealCLEThe mapping is a continuous linear equivalence between the space and the real numbers . This equivalence identifies a time instance with its underlying numerical value in via the valuation function . As a continuous linear equivalence, the map preserves the additive and scalar multiplication structure of the 1-dimensional real vector space and serves as a homeomorphism between and .
Linear isometry equivalence between and
#toRealLIEThe definition establishes a linear isometry equivalence between the space and the real numbers . This mapping identifies a time instance with its numerical value in via the valuation function . As a linear isometry, this equivalence preserves the vector space structure (addition and scalar multiplication) and the norm, such that the norm of a time is equal to the absolute value of its real-valued representation.
The valuation function on is measurable
#val_measurableThe valuation function , which assigns to each instance of time its corresponding numerical value in the real numbers, is a measurable function.
The valuation function is a measurable embedding
#val_measurableEmbeddingThe valuation function , which assigns to each instance of time its corresponding numerical value in the real numbers, is a measurable embedding. This means that is an injective function such that a set is measurable if and only if its image is measurable in .
The valuation function on is measure-preserving
#val_measurePreservingThe valuation function , which identifies an element of the space with its corresponding real number, is measure-preserving with respect to the canonical volume measures on and . Specifically, for any measurable set , the volume of its preimage in is equal to the Lebesgue measure (volume) of in .
The valuation function on is differentiable
#val_differentiableThe valuation function , which maps an element of the space to its corresponding real-valued representation, is differentiable at all points with respect to the real numbers .
The Fréchet derivative of the valuation function at applied to is
#fderiv_valFor any point in the space , the Fréchet derivative of the valuation function at , when applied to the unit vector , is equal to .
