Dedekind 0.0.0
A structuralist C++23 Module Library
Loading...
Searching...
No Matches
dedekind::geometry::IsTangentBundle Concept Referenceexport

A flat-case (element-wise) tangent-bundle carrier over a base scalar: a pair (point, tangent vector) with ring-shaped arithmetic. More...

Concept definition

template<typename T>
std::semiregular<T> && dedekind::algebra::HasRingOperators<T> &&
requires(T t) {
typename T::value_type;
{ t.value() } -> std::same_as<typename T::value_type>;
{ t.derivative() } -> std::same_as<typename T::value_type>;
}
Pure syntactic shape: T closes strictly under +, -, * (binary and unary -). Textbook closure — result...
Definition ring.cppm:65
A flat-case (element-wise) tangent-bundle carrier over a base scalar: a pair (point,...
Definition tangent.cppm:112

Detailed Description

A flat-case (element-wise) tangent-bundle carrier over a base scalar: a pair (point, tangent vector) with ring-shaped arithmetic.

Following the Hartshorne reading (Algebraic Geometry, Ex. II.2.8): the affine line over a commutative ring R has tangent bundle \(T(\mathrm{Spec}\,R) = \mathrm{Spec}(R[\varepsilon]/(\varepsilon^2))\), and an element of T(Spec R) is a pair (point, tangent vector) decomposed as (value, derivative). Any carrier T that exposes

       - a base scalar @c T::value_type,
       - accessors @c .value() and @c .derivative() returning the
         primal and tangent components, and
       - ring-operator closure (the tangent-bundle is itself a
         ring under the dual-number arithmetic),

     satisfies @c IsTangentBundle.  @c Dual<F> in
     @c dedekind.analysis:dual is the canonical witness:
     forward-mode automatic differentiation is exactly arithmetic
     in the tangent-bundle ring T(Spec F).

tangent__Scope_And_Extension_2

This concept captures the flat case — the carrier alone, no underlying manifold structure — because over the affine line the tangent bundle is canonically isomorphic to the total space F^2. Two extensions sit one layer up and are explicitly out of scope here:

  1. Bundle structure on a non-flat manifold: an IsTangentBundleStructure<TM, M> concept would pair a total space TM with its base manifold M, plus the projection π: TM → M, transition maps, and smoothness conditions. This requires the manifold abstraction (charts, atlases, fibre bundles, smooth structure) which is tracked under issue~#185 and would naturally live partly in dedekind.topology (manifold-as-topological-space) and partly in dedekind.geometry / dedekind.analysis (smooth structure + tangent-bundle structure).
  2. Higher-order jets and finite-difference duals: jet spaces \(J^k(M, R)\) for higher-order AD; finite-difference duals \(R[\Delta]/(\Delta^{k+1})\) for the discrete-side reading (combinatorial derivative, generating-function calculus). When either lands, this partition gains a refined hierarchy.

TangentVector / CotangentVector aliases for the trivial flat case already exist in :linear_map (semantic aliases for Vector<F, N> with the FIXME pointing at #185 for non-flat lifting). This concept is the algebraic counterpart at the tangent-bundle ring level.

See also
Hartshorne, Algebraic Geometry (Springer GTM 52, 1977), Exercise II.2.8 — the algebraic-geometric tangent bundle as Spec(R[ε]/(ε²)).
Eisenbud, Commutative Algebra with a View Toward Algebraic Geometry (Springer GTM 150, 1995), §16.5 — universal first-order infinitesimal deformations.
Issue #185 (manifold abstraction: charts, atlas, fibre bundles) — the upstream abstraction needed to lift this flat-case concept to non-trivial manifolds.