General Tensors and the Tensor Product

Every quantitative structure in general relativity — the metric that measures proper time, the curvature that bends light, the stress–energy that curves space — is one kind of object wearing different numbers of indices. That object is the tensor, and it is built by a single construction repeated as often as you like. Hand me the tangent space TxMT_xM at a point, established in aq-gr-tangent-vectors-tangent-space, and its dual the cotangent space Tx∗MT_x^*M from aq-gr-cotangent-space-one-forms, and I can manufacture the entire zoo: a tensor of type (p,q)(p,q) is nothing more than a machine with pp slots that swallow covectors and qq slots that swallow vectors, spitting out a real number, linear in each slot on its own. Two facts make this humble definition the load-bearing wall of the whole subject. First, multilinearity means the machine is pinned down completely by what it does to the basis vectors and basis one-forms — and those answers are exactly the components Tμ1⋯μpν1⋯νqT^{\mu_1\cdots\mu_p}{}_{\nu_1\cdots\nu_q} you see stacked with indices in every equation. The abstract object and the index array are two views of one thing. Second, the operation that welds small machines into big ones — the tensor product ⊗\otimes — is associative and bilinear but pointedly not commutative, because slot one is not slot two. That single asymmetry is why index order carries physical meaning and why symmetrization exists at all. Get this construction right and the metric, the Riemann tensor, contraction, and general covariance are all downstream corollaries of one pointwise piece of linear algebra.

Key takeaways
  • A type-(p,q)(p,q) tensor at a point is a multilinear map that eats pp covectors and qq vectors and returns a real number — equivalently an element of TxM⊗p⊗Tx∗M⊗qT_xM^{\otimes p}\otimes T_x^*M^{\otimes q}.
  • Multilinearity forces the map to be fixed by its values on basis arguments; those np+qn^{p+q} values are the components Tμ1⋯ν1⋯=T(dxμ1,…,∂ν1,… )T^{\mu_1\cdots}{}_{\nu_1\cdots}=T(\mathrm{d}x^{\mu_1},\dots,\partial_{\nu_1},\dots).
  • The tensor product ⊗\otimes glues a (p,q)(p,q) tensor to an (r,s)(r,s) tensor by multiplying their outputs on separate slots, giving a (p+r, q+s)(p{+}r,\,q{+}s) tensor; it is bilinear and associative but not commutative.
  • The space of (p,q)(p,q) tensors is itself a vector space of dimension np+qn^{p+q}; in n=4n=4 spacetime a (1,3)(1,3) tensor like Riemann has 44=2564^4=256 components before symmetry cuts it to 2020.
  • Tensors carry physical law because a genuine tensor that vanishes in one chart vanishes in all — the precise content of general covariance.
  • Key idea: a type-(p,q)(p,q) tensor IS a multilinear map Tx∗M×⋯⏟p×TxM×⋯⏟q→R\underbrace{T_x^*M\times\cdots}_{p}\times\underbrace{T_xM\times\cdots}_{q}\to\mathbb{R}; multilinearity means it is fixed by its values on basis arguments, and those values are the components Tμ1⋯μpν1⋯νqT^{\mu_1\cdots\mu_p}{}_{\nu_1\cdots\nu_q}.

Where this lives today

The tensor-product construction is not a historical formality; it is the daily working language of gravitational physics. On the right-hand side of Einstein's equation Gμν=8πG Tμν/c4G_{\mu\nu}=8\pi G\,T_{\mu\nu}/c^4 sits the stress–energy tensor, a symmetric type-(0,2)(0,2) object whose ten independent components in four dimensions encode energy density, momentum flux, and pressure all at once — and it is because both sides are genuine tensors that the field equation holds in every coordinate system, the operational meaning of background independence. When LIGO and Virgo matched the waveform of GW150914 in 2015 against templates, those templates were solutions of tensor equations, and the numerical-relativity codes that generate them (the BSSN and moving-puncture formulations) are engineered to evolve tensors and tensor densities correctly while the coordinate grid sloshes through the merging horizons; a code that silently treated a non-tensor as a tensor would emit coordinate-dependent garbage dressed up as gravitational waves. The same ⊗\otimes that concatenates slots here is, remarkably, the exact operation that builds the state space of a composite quantum system: the Hilbert space of two particles is the tensor product of the individual spaces, and the non-factorizable elements of that product are precisely the entangled states. This shared algebra is why the "tensor network" methods now central to condensed-matter and quantum-information research, and the multilinear machinery of general relativity, are recognisably the same mathematics — a crystallographer's word for a stretched solid now spanning quantum entanglement and the curvature of the cosmos.

The physical picture

Picture a tensor as a machine with labelled slots. A type-(p,q)(p,q) machine has pp slots on top that only accept covectors and qq slots below that only accept vectors. Feed the right object into every slot and a single real number falls out, and the machine is linear in each slot separately — double the input in one slot and the output doubles, holding the others fixed. Nothing else is required of it. There is no metric, no connection, no notion of length hiding inside; the machine is pure multilinear bookkeeping, assembled fresh at each point of the manifold from the tangent and cotangent spaces already sitting there. The components are simply the machine's answers on the "unit test objects." Feed in the basis one-forms dxμ\mathrm{d}x^\mu where the covector slots go and the basis vectors ∂ν\partial_\nu where the vector slots go, and the numbers that come out are Tμ1⋯ν1⋯T^{\mu_1\cdots}{}_{\nu_1\cdots}. Because the machine is multilinear, these numbers are everything: any other input is a weighted sum of basis inputs, and linearity reassembles the full answer from the component table. This is why an equation full of indices and a coordinate-free geometric statement are the same claim written in two alphabets.

Figure
A type (1,2) tensor drawn as a machine with one covector slot on top and two vector slots below. Feeding the basis one-form and two basis vectors reads off a single component; in n = 4 spacetime the machine holds 4³ = 64 such numbers
A tensor is a multilinear machine: fill the slots, out comes one number T type (1,2) linear in each slot dx^μ covector slot ∂_ν ∂_ρ two vector slots T^μ_νρ ∈ ℝ one component count the numbers: n = 4 ⇒ 4³ = 64 components

The tensor product is the act of bolting two machines together side by side so the combined machine owns all the slots of both. Its non-commutativity is not a technicality but the whole reason index order matters: putting object AA in the first slot and BB in the second is a genuinely different arrangement from the reverse, so v⊗wv\otimes w and w⊗vw\otimes v are different tensors even though they are built from the same two vectors. The payoff of the entire framework is coordinate independence at the level of the object: an equation between tensors, A=BA=B, becomes A⋯⋯=B⋯⋯A^{\cdots}{}_{\cdots}=B^{\cdots}{}_{\cdots} in every chart at once, so you may prove a law in whatever frame is easiest and trust it everywhere. The second figure shows how slots concatenate under ⊗\otimes and how fast the component count grows with rank.

Figure
The tensor product concatenates slots: an S of type (1,1) glued to a T of type (0,1) makes an S ⊗ T of type (1,2), and dimensions multiply. On n = 4 spacetime the Riemann machine of type (1,3) carries 4⁴ = 256 components, which its symmetries reduce to 20 independent numbers
S ⊗ T: slots concatenate, dimensions multiply S type (1,1) 4² = 16 ⊗ T type (0,1) 4¹ = 4 = S ⊗ T type (1,2) 16 × 4 = 64 = 4³ Growth of the component count on n = 4 spacetime scalar (0,0): 4⁰ = 1 vector (1,0): 4¹ = 4 metric (0,2): 4² = 16 → 10 symmetric stress–energy (2,0): 4² = 16 Riemann (1,3): 4⁴ = 256 components → 20 independent after symmetries

The core equations

The starting point is the definition itself: a type-(p,q)(p,q) tensor at the point xx is a real-valued function of pp covector arguments and qq vector arguments, linear in each argument separately. Everything downstream is an unpacking of this one line.

T:  Tx∗M×⋯×Tx∗M⏟p×TxM×⋯×TxM⏟q⟶R(1)T:\;\underbrace{T_x^*M\times\cdots\times T_x^*M}_{p}\times\underbrace{T_xM\times\cdots\times T_xM}_{q}\longrightarrow\mathbb{R} \qquad (1)

where: TxMT_xM — tangent space at xx, the vectors; Tx∗MT_x^*M — cotangent space at xx, the covectors or one-forms; pp — contravariant rank, the number of covector slots and hence upper indices; qq — covariant rank, the number of vector slots and hence lower indices. Physical reading: a tensor is a linear-in-everything answer machine, defined pointwise, with no metric required. Because the tensor is multilinear, its whole content lives in what it returns on the basis arguments. Those returns are its components, and they rely on the one structural fact linking the two bases: the coordinate one-forms are dual to the coordinate vectors.

dxμ(∂ν)=δμν,Tμ1⋯μpν1⋯νq≡T ⁣(dxμ1,…,dxμp,∂ν1,…,∂νq)(2)\mathrm{d}x^\mu(\partial_\nu)=\delta^\mu{}_\nu,\qquad T^{\mu_1\cdots\mu_p}{}_{\nu_1\cdots\nu_q}\equiv T\!\left(\mathrm{d}x^{\mu_1},\dots,\mathrm{d}x^{\mu_p},\partial_{\nu_1},\dots,\partial_{\nu_q}\right) \qquad (2)

where: ∂μ=∂/∂xμ\partial_\mu=\partial/\partial x^\mu — coordinate basis vector of TxMT_xM; dxν\mathrm{d}x^\nu — coordinate basis one-form dual to it; δμν\delta^\mu{}_\nu — Kronecker delta, 11 if μ=ν\mu=\nu else 00. Physical reading: probe the machine with the standard basis and record its answers — those np+qn^{p+q} numbers are the tensor in coordinates. Running the definition backwards, the tensor is reconstructed from its components by re-attaching the basis objects with tensor products. This expansion is the coordinate face of the geometric object.

T=Tμ1⋯μpν1⋯νq  ∂μ1⊗⋯⊗∂μp⊗dxν1⊗⋯⊗dxνq(3)T=T^{\mu_1\cdots\mu_p}{}_{\nu_1\cdots\nu_q}\;\partial_{\mu_1}\otimes\cdots\otimes\partial_{\mu_p}\otimes\mathrm{d}x^{\nu_1}\otimes\cdots\otimes\mathrm{d}x^{\nu_q} \qquad (3)

where: the product ∂μ1⊗⋯⊗dxνq\partial_{\mu_1}\otimes\cdots\otimes\mathrm{d}x^{\nu_q} — a basis tensor of type (p,q)(p,q); Einstein summation over each repeated index pair is implied. Physical reading: the components are the coefficients of a tensor in the basis {∂μ⊗⋯⊗dxν}\{\partial_{\mu}\otimes\cdots\otimes\mathrm{d}x^{\nu}\}, exactly as vμv^\mu are the coefficients of a vector in {∂μ}\{\partial_\mu\}. The simplest non-trivial tensor product welds a vector to a one-form. It produces a rank-two machine whose value on a covector and a vector is just the product of the two separate pairings — the archetype from which the general rule is read off.

(v⊗ω)(α,u)=⟨α,v⟩ ⟨ω,u⟩=α(v) ω(u)(4)(v\otimes\omega)(\alpha,u)=\langle\alpha,v\rangle\,\langle\omega,u\rangle=\alpha(v)\,\omega(u) \qquad (4)

where: vv — a vector of type (1,0)(1,0), answering the covector slot; ω\omega — a one-form of type (0,1)(0,1), answering the vector slot; α,u\alpha,u — the covector and vector arguments supplied to the new tensor. Physical reading: each factor answers its own argument and the answers multiply — slots do not talk to each other. The general tensor product obeys the same law: split the arguments between the two factors, let each factor evaluate its share, and multiply. In components this is simply the outer product of the two component arrays.

(S⊗T)μ1⋯μp ρ1⋯ρrν1⋯νq σ1⋯σs=Sμ1⋯μpν1⋯νq  Tρ1⋯ρrσ1⋯σs(5)(S\otimes T)^{\mu_1\cdots\mu_p\,\rho_1\cdots\rho_r}{}_{\nu_1\cdots\nu_q\,\sigma_1\cdots\sigma_s}=S^{\mu_1\cdots\mu_p}{}_{\nu_1\cdots\nu_q}\;T^{\rho_1\cdots\rho_r}{}_{\sigma_1\cdots\sigma_s} \qquad (5)

where: SS — a type-(p,q)(p,q) tensor; TT — a type-(r,s)(r,s) tensor; S⊗TS\otimes T — the resulting type-(p+r, q+s)(p{+}r,\,q{+}s) tensor; ρ,σ\rho,\sigma — indices belonging to the second factor. Physical reading: ⊗\otimes is bilinear and associative but not commutative, since swapping SS and TT reassigns which object owns which slot. Counting basis tensors gives the dimension of the whole space. Each of the p+qp+q index positions ranges over nn values independently, so the component arrays fill an np+qn^{p+q}-dimensional vector space.

dim⁡ ⁣(Tx(p,q)M)=n p+q,n=dim⁡M(6)\dim\!\big(T^{(p,q)}_xM\big)=n^{\,p+q},\qquad n=\dim M \qquad (6)

where: nn — dimension of the manifold, 44 for spacetime; Tx(p,q)MT^{(p,q)}_xM — the vector space of all type-(p,q)(p,q) tensors at xx. Physical reading: tensors of a fixed type add and scale like ordinary vectors, so linear algebra applies to them wholesale. Among all types, (1,1)(1,1) is special: one up and one down index make it a linear map from vectors to vectors, and exactly one such tensor has the same components in every chart.

vμ=Tμν uν    ⟺    T:TxM→TxM,δμν=the unique invariant (1,1)(7)v^\mu=T^\mu{}_\nu\,u^\nu \;\;\Longleftrightarrow\;\; T:T_xM\to T_xM,\qquad \delta^\mu{}_\nu=\text{the unique invariant }(1,1) \qquad (7)

where: TμνT^\mu{}_\nu — components of the endomorphism; uνu^\nu — input vector; δμν\delta^\mu{}_\nu — Kronecker delta, whose two Jacobian factors cancel so it reads identically in all coordinates. Physical reading: a (1,1)(1,1) tensor is a coordinate-free matrix, and the identity map is the only matrix every observer agrees on.

Derivation AWhy the component array completely determines the tensor

The goal is to prove the claim on which the entire index formalism rests: that a multilinear map is fixed with no remaining freedom by the finite table of numbers it returns on basis arguments. If this failed, two distinct tensors could share every component and the index notation would be ambiguous. We show instead that multilinearity forces any input to be reconstructed from basis inputs, so the np+qn^{p+q} components pin the map exactly. We argue the representative (1,1)(1,1) case, and the pattern extends verbatim to any (p,q)(p,q).

Step 1. Fix the dual bases and define the components by probing, Tμν≡T(dxμ,∂ν)T^\mu{}_\nu\equiv T(\mathrm{d}x^\mu,\partial_\nu), using dxμ(∂ν)=δμν\mathrm{d}x^\mu(\partial_\nu)=\delta^\mu{}_\nu. Why: the components are not extra data bolted onto the tensor — they are literally its outputs on the standard test objects, so they are guaranteed to exist and be finite.

Step 2. Expand arbitrary arguments in the bases, α=αμ dxμ\alpha=\alpha_\mu\,\mathrm{d}x^\mu and u=uν ∂νu=u^\nu\,\partial_\nu, where αμ=α(∂μ)\alpha_\mu=\alpha(\partial_\mu) and uν=dxν(u)u^\nu=\mathrm{d}x^\nu(u). Why: every covector and vector is a coordinate combination of basis elements, so no input lies outside the reach of the basis — this is what finite dimension buys us.

Step 3. Push the expansion through the map using linearity in each slot, T(α,u)=αμ uν T(dxμ,∂ν)=Tμν αμ uνT(\alpha,u)=\alpha_\mu\,u^\nu\,T(\mathrm{d}x^\mu,\partial_\nu)=T^\mu{}_\nu\,\alpha_\mu\,u^\nu. Why: multilinearity lets the scalar coefficients αμ,uν\alpha_\mu,u^\nu come outside, leaving only the basis evaluations — so the answer on any input is a fixed contraction of the component table.

Step 4. Conclude uniqueness. If two tensors TT and T′T' have Tμν=T′μνT^\mu{}_\nu=T'^\mu{}_\nu for all μ,ν\mu,\nu, then T(α,u)=T′(α,u)T(\alpha,u)=T'(\alpha,u) for every α,u\alpha,u, hence T=T′T=T' as maps. Why: equal component tables give equal outputs everywhere, so the map is determined — the array and the object are one, and the same argument with more slots settles the general (p,q)(p,q) case.

Go deeper · Derivation B · 1 minThe tensor product builds every higher tensor and fixes the dimension count
Derivation BThe tensor product builds every higher tensor and fixes the dimension count

The goal is to show that the products of basis vectors and basis one-forms are not merely a set of tensors but a genuine basis of the whole type-(p,q)(p,q) space, which simultaneously proves the dimension formula np+qn^{p+q} and justifies writing any tensor as a sum of tensor-product terms. This is the abstract engine behind the index expansion of equation (3) and behind the universal property that characterizes ⊗\otimes as the space where multilinear maps become linear.

Step 1. Form the candidate basis, the np+qn^{p+q} tensors ∂μ1⊗⋯⊗∂μp⊗dxν1⊗⋯⊗dxνq\partial_{\mu_1}\otimes\cdots\otimes\partial_{\mu_p}\otimes\mathrm{d}x^{\nu_1}\otimes\cdots\otimes\mathrm{d}x^{\nu_q}, one for each choice of the p+qp+q indices. Why: these are the outputs of ⊗\otimes on basis inputs, and by construction each is a legitimate type-(p,q)(p,q) multilinear map, so the candidate set lives in the right space.

Step 2. Show they span. Given any TT, define numbers Tμ⋯ν⋯=T(dxμ,…,∂ν,… )T^{\mu\cdots}{}_{\nu\cdots}=T(\mathrm{d}x^\mu,\dots,\partial_\nu,\dots) and check that TT and the sum Tμ⋯ν⋯ ∂μ⊗⋯⊗dxνT^{\mu\cdots}{}_{\nu\cdots}\,\partial_\mu\otimes\cdots\otimes\mathrm{d}x^\nu agree on all basis arguments; by the previous derivation they are therefore equal. Why: agreement on basis inputs is enough for equality, so every tensor is a coordinate combination of the candidate set — the set spans.

Step 3. Show they are independent. If a combination cμ⋯ν⋯ ∂μ⊗⋯⊗dxνc^{\mu\cdots}{}_{\nu\cdots}\,\partial_\mu\otimes\cdots\otimes\mathrm{d}x^\nu is the zero tensor, evaluate it on (dxα,…,∂β,… )(\mathrm{d}x^{\alpha},\dots,\partial_{\beta},\dots) to read off cα⋯β⋯=0c^{\alpha\cdots}{}_{\beta\cdots}=0. Why: probing with basis arguments isolates one coefficient at a time via the deltas, so the only vanishing combination is the trivial one — the set is linearly independent.

Step 4. Count. A spanning, independent set is a basis, and it has one member per assignment of p+qp+q indices each ranging over nn values, so dim⁡Tx(p,q)M=np+q\dim T^{(p,q)}_xM=n^{p+q}. Why: with n=4n=4 this yields 42=164^2=16 for the metric, 44=2564^4=256 for Riemann, and 45=10244^5=1024 for a (2,3)(2,3) tensor — the numbers used throughout this article, now derived rather than asserted.

Go deeper · Derivation C · 1 minComponents carry one Jacobian per index
Derivation CComponents carry one Jacobian per index

The goal is to derive how the component array must change between two charts so that the geometric object TT stays fixed, recovering the transformation law that most textbooks promote to the very definition of a tensor. Demanding invariance of the object and substituting the chain-rule transformations of the basis factors will attach exactly one Jacobian to each contravariant index and one inverse Jacobian to each covariant index — the tensor product of the vector and one-form rules. The full machinery is owned by aq-gr-tensor-transformation-law; here we extract the law directly from the basis expansion.

Step 1. Write the same object in the chart xx, T=Tμ1⋯ν1⋯ ∂μ1⊗⋯⊗dxν1⊗⋯T=T^{\mu_1\cdots}{}_{\nu_1\cdots}\,\partial_{\mu_1}\otimes\cdots\otimes\mathrm{d}x^{\nu_1}\otimes\cdots. Why: the tensor is basis-independent, so a coordinate change alters only the split into components times basis — track how each basis factor moves and the component rule follows.

Step 2. Substitute the basis transformations ∂μ=∂xμ′∂xμ ∂μ′\partial_\mu=\dfrac{\partial x^{\mu'}}{\partial x^\mu}\,\partial_{\mu'} for each vector factor and dxν=∂xν∂xν′ dxν′\mathrm{d}x^\nu=\dfrac{\partial x^\nu}{\partial x^{\nu'}}\,\mathrm{d}x^{\nu'} for each one-form factor. Why: a basis vector is a directional derivative and drags the Jacobian ∂x′/∂x\partial x'/\partial x; a basis one-form is a coordinate gradient and drags the inverse — the two opposite rules are the origin of upper versus lower.

Step 3. Collect the coefficient of the new basis tensor ∂μ1′⊗⋯⊗dxν1′⊗⋯\partial_{\mu'_1}\otimes\cdots\otimes\mathrm{d}x^{\nu'_1}\otimes\cdots, giving Tμ1′⋯μp′ν1′⋯νq′=∂xμ1′∂xμ1⋯∂xμp′∂xμp∂xν1∂xν1′⋯∂xνq∂xνq′ Tμ1⋯ν1⋯T^{\mu'_1\cdots\mu'_p}{}_{\nu'_1\cdots\nu'_q}=\dfrac{\partial x^{\mu'_1}}{\partial x^{\mu_1}}\cdots\dfrac{\partial x^{\mu'_p}}{\partial x^{\mu_p}}\dfrac{\partial x^{\nu_1}}{\partial x^{\nu'_1}}\cdots\dfrac{\partial x^{\nu_q}}{\partial x^{\nu'_q}}\,T^{\mu_1\cdots}{}_{\nu_1\cdots}. Why: whatever multiplies the new basis is by definition the new component array, so the law reads off — one Jacobian per upper index, one inverse Jacobian per lower, matching Carroll Eq. (1.51) and Wald (2.3.6).

Step 4. Check the corollary that makes tensors carry physics: the law is linear and homogeneous in the old components, so if every Tμ⋯ν⋯=0T^{\mu\cdots}{}_{\nu\cdots}=0 in one chart, every Tμ′⋯ν′⋯=0T^{\mu'\cdots}{}_{\nu'\cdots}=0 in all charts. Why: a genuine tensor equation, once true, is true for every observer — this homogeneity is exactly the operational content of general covariance.

Limiting cases

Every familiar geometric object is a low-rank tensor; dialling (p,q)(p,q) selects the number and kind of slots.

CaseResultMeaning
Type (0,0)(0,0) — scalarsf:M→Rf:M\to\mathbb{R}No slots: a plain number or field, invariant under any change of basis.
Type (1,0)(1,0) — vectorsv=vμ ∂μv=v^\mu\,\partial_\muOne covector slot; the tangent vectors, acting on one one-form.
Type (0,1)(0,1) — one-formsω=ωμ dxμ\omega=\omega_\mu\,\mathrm{d}x^\muOne vector slot; the cotangent vectors, acting on one vector.
Type (0,2)(0,2) — bilinear formsg=gμν dxμ⊗dxνg=g_{\mu\nu}\,\mathrm{d}x^\mu\otimes\mathrm{d}x^\nuTwo vector slots; the symmetric instance is the metric, the antisymmetric a 2-form.
Type (1,1)(1,1) — linear mapsT=Tμν ∂μ⊗dxνT=T^\mu{}_\nu\,\partial_\mu\otimes\mathrm{d}x^\nuAn endomorphism of TxMT_xM; the identity δμν\delta^\mu{}_\nu is the unique chart-independent one.
Type (1,3)(1,3) — RiemannRρσμνR^\rho{}_{\sigma\mu\nu}Three vector slots and one covector slot; 44=2564^4=256 components, 2020 independent in n=4n=4.

Worked examples

1 · Counting the components of curvature (fully numeric)

On n=4n=4 spacetime, how many components does a general type-(2,3)(2,3) tensor carry with no symmetry imposed, and how does the naive count for the Riemann tensor compare with its true number of independent components?

Step 1. Apply the dimension formula np+qn^{p+q}. For the (2,3)(2,3) tensor, p+q=5p+q=5, so the count is 45=10244^{5}=1024. Every one of the five index slots ranges independently over the four spacetime directions, and 4×4×4×4×4=10244\times4\times4\times4\times4=\mathbf{1024}.

Step 2. Now the Riemann tensor RρσμνR^{\rho}{}_{\sigma\mu\nu} is type (1,3)(1,3), so its naive count is 41+3=44=2564^{1+3}=4^{4}=\mathbf{256}. This is what the raw tensor-product basis of the second derivation delivers before any of curvature's symmetries are used.

Step 3. The symmetries — antisymmetry in the last pair, in the first pair after lowering, pair-exchange symmetry, and the first Bianchi identity — collapse this dramatically. The standard result is 112n2(n2−1)\tfrac{1}{12}n^{2}(n^{2}-1), which for n=4n=4 gives 112⋅16⋅15=24012=20\tfrac{1}{12}\cdot16\cdot15=\tfrac{240}{12}=\mathbf{20}. So the tensor-product construction hands us 256256 slots, of which only 2020 are physically independent in four dimensions — the rest are fixed by symmetry. The tensor-product count is the ceiling; symmetry does the carving.

2 · The tensor product of two vectors, and why order matters (fully numeric)

Work on a 2-dimensional tangent space with basis {∂1,∂2}\{\partial_1,\partial_2\}. Take v=2 ∂1+3 ∂2v=2\,\partial_1+3\,\partial_2 and w=∂1−∂2w=\partial_1-\partial_2. Compute the components of the (2,0)(2,0) tensor v⊗wv\otimes w, compare with w⊗vw\otimes v, and verify the result by feeding in basis one-forms.

Step 1. By equation (5) the components are the outer product (v⊗w)μν=vμwν(v\otimes w)^{\mu\nu}=v^\mu w^\nu, with vμ=(2,3)v^\mu=(2,3) and wν=(1,−1)w^\nu=(1,-1). This gives (v⊗w)11=2⋅1=2(v\otimes w)^{11}=2\cdot1=2, (v⊗w)12=2⋅(−1)=−2(v\otimes w)^{12}=2\cdot(-1)=-2, (v⊗w)21=3⋅1=3(v\otimes w)^{21}=3\cdot1=3, (v⊗w)22=3⋅(−1)=−3(v\otimes w)^{22}=3\cdot(-1)=-3, i.e. the matrix (2−23−3)\begin{pmatrix}2&-2\\3&-3\end{pmatrix}.

Step 2. Now reverse the factors: (w⊗v)μν=wμvν(w\otimes v)^{\mu\nu}=w^\mu v^\nu gives (1⋅21⋅3−1⋅2−1⋅3)=(23−2−3)\begin{pmatrix}1\cdot2 & 1\cdot3\\ -1\cdot2 & -1\cdot3\end{pmatrix}=\begin{pmatrix}2&3\\-2&-3\end{pmatrix}. Comparing entry by entry, (v⊗w)12=−2(v\otimes w)^{12}=-2 but (w⊗v)12=3(w\otimes v)^{12}=3: the two are transposes of each other and are not equal, the concrete meaning of v⊗w≠w⊗vv\otimes w\neq w\otimes v.

Step 3. Verify against the defining action (v⊗w)(α,β)=α(v) β(w)(v\otimes w)(\alpha,\beta)=\alpha(v)\,\beta(w). Feed the basis one-forms α=dx1\alpha=\mathrm{d}x^1 and β=dx2\beta=\mathrm{d}x^2: then α(v)=v1=2\alpha(v)=v^1=2 and β(w)=w2=−1\beta(w)=w^2=-1, so the value is 2⋅(−1)=−22\cdot(-1)=\mathbf{-2}, which matches the component (v⊗w)12=−2(v\otimes w)^{12}=-2 read off in Step 1. The machine and its array agree exactly, as the first derivation guaranteed.

3 · A (1,1) tensor as a linear map and its invariant trace (fully numeric)

On the same 2-dimensional space let a type-(1,1)(1,1) tensor have components Tμν=(2103)T^\mu{}_\nu=\begin{pmatrix}2&1\\0&3\end{pmatrix}. Act with it on the vector u=∂1+4 ∂2u=\partial_1+4\,\partial_2, and compute its trace as an invariant scalar. Contrast with the identity tensor.

Step 1. By equation (7) the image has components vμ=Tμν uνv^\mu=T^\mu{}_\nu\,u^\nu with uν=(1,4)u^\nu=(1,4). The first component is v1=T11u1+T12u2=2⋅1+1⋅4=6v^1=T^1{}_1u^1+T^1{}_2u^2=2\cdot1+1\cdot4=\mathbf{6}; the second is v2=T21u1+T22u2=0⋅1+3⋅4=12v^2=T^2{}_1u^1+T^2{}_2u^2=0\cdot1+3\cdot4=\mathbf{12}. So TT sends u↦6 ∂1+12 ∂2u\mapsto 6\,\partial_1+12\,\partial_2, acting as an honest endomorphism of the tangent space.

Step 2. Contract the upper index against the lower to form the trace Tμμ=T11+T22=2+3=5T^\mu{}_\mu=T^1{}_1+T^2{}_2=2+3=\mathbf{5}. Because this pairs one contravariant slot against one covariant slot, its single Jacobian and inverse Jacobian cancel — the trace is a genuine scalar, the same number in every chart, unlike any individual component.

Step 3. Finally the identity tensor δμν=(1001)\delta^\mu{}_\nu=\begin{pmatrix}1&0\\0&1\end{pmatrix} maps every uu to itself and has trace δμμ=n=2\delta^\mu{}_\mu=n=\mathbf{2} here. It is the unique (1,1)(1,1) tensor whose components are identical in all coordinate systems, because its Jacobian and inverse-Jacobian factors cancel identically — the invariant heart of the (1,1)(1,1) space.

Physics of the portrait

The word "tensor" reached physics through crystals, not gravity. Long before spacetime curved, someone needed a name for a quantity that points differently in different directions inside a stressed solid — and that name, coined in the elasticity laboratories of Göttingen, is the one we now stamp on the curvature of the universe.

Origins · 1 minWoldemar Voigt and how this was discovered
WV
Woldemar Voigt
1850–1919 · the physicist who gave the tensor its name, in the crystal elasticity of Göttingen

Woldemar Voigt was a German physicist who spent most of his career at Göttingen studying the physics of crystals — their elasticity, their optical and thermal behaviour, and the way a single crystal responds differently along different axes. It was precisely this direction-dependence that demanded a new vocabulary. In his 1898 treatise Die fundamentalen physikalischen Eigenschaften der Krystalle, Voigt introduced the word Tensor for a physical quantity that, unlike a scalar or a simple vector, carries a whole array of directional data — the stress inside a strained crystal being the prototype. He took the name from the Latin tendere, to stretch, the same root as tension: a tensor was originally the mathematical embodiment of the stretching and shearing stresses a solid can sustain. The irony of history is that Voigt's name outgrew Voigt's subject. The multilinear algebra behind the object had already been built by Grassmann in 1844 and turned into a calculus by Ricci-Curbastro and Levi-Civita by 1900, and when Einstein needed a language in which the laws of gravitation would read the same to every observer, he adopted that calculus wholesale — and with it Voigt's word. Today the stress tensor of a crystal and the Riemann curvature tensor of spacetime are recognised as the same species of object, both type-(p,q)(p,q) multilinear machines, and both go by the name a crystallographer chose to describe how a solid resists being stretched.

History
1844
— Grassmann publishes Die lineale Ausdehnungslehre, founding the multilinear algebra behind the tensor product
1854
— Riemann's habilitation lecture founds the intrinsic geometry of curved manifolds
1898
— Voigt adopts the word tensor for direction-dependent physical quantities in crystal physics
1900
— Ricci-Curbastro and Levi-Civita publish the absolute differential calculus, systematizing tensor methods
1916
— Einstein's review of general relativity writes the laws of gravitation as equations between tensors

Going further

Texts. Misner, Thorne & Wheeler, Gravitation (1973), Ch. 3 (tensors as machines with slots) · Wald, General Relativity (1984), Ch. 2 and Appendix A (the abstract tensor-product construction) · Carroll, Spacetime and Geometry (2004), Ch. 1.4–1.5 · Schutz, A First Course in General Relativity (2009), Ch. 3 · Hartle, Gravity (2003), Ch. 20. The key numerical checks are: the dimension formula np+qn^{p+q} yields 45=10244^5=1024, 44=2564^4=256, and 42=164^2=16; the Riemann independent-component count is 112n2(n2−1)=20\tfrac{1}{12}n^2(n^2-1)=20 at n=4n=4; the duality relation is dxμ(∂ν)=δμν\mathrm{d}x^\mu(\partial_\nu)=\delta^\mu{}_{\nu}; the worked outer products v⊗wv\otimes w and w⊗vw\otimes v are transposes of each other, and the trace of the example (1,1)(1,1) tensor is Tμμ=5T^\mu{}_{\mu}=5. All of these are exact mathematical identities — no empirical inputs appear — and the word tensor in this sense follows Voigt (1898).

Builds on: Tangent Vectors and the Tangent Space · Cotangent Space and One-Forms · Smooth Manifolds and Coordinate Charts · Atlases, Transition Functions and Differentiable Structure. Leads to: The Tensor Transformation Law · Tensor Algebra: Contraction, Symmetrization and Antisymmetrization · The Metric Tensor and the Line Element · Raising and Lowering Indices · Tensor Densities and Weights.

Ask the tutor: ask me to build any tensor you like from vectors and one-forms, evaluate it slot by slot on explicit inputs, and watch which contractions come out as chart-independent invariants.

What is the difference between a tensor and its components?

A tensor is a coordinate-free geometric object — a multilinear machine — that exists before you pick any chart. Its components are the finite table of numbers the machine returns when you feed it the basis one-forms and basis vectors of a chosen coordinate system. Change the chart and every component can change, yet the machine itself is untouched, the same way an arrow on a page is one arrow whether you measure it in inches or centimetres. The two are tied together by the fact that the components determine the tensor completely (multilinearity), so nothing is lost by working with indices — but you must remember that a component is a chart-dependent readout, not the object.

Why does the order of indices matter if the tensor product is "just multiplication"?

Because the multiplication happens on labelled slots, and the labels are part of the object. When you form v⊗wv\otimes w, the first factor is assigned to slot one and the second to slot two, so its components are vμwνv^\mu w^\nu; forming w⊗vw\otimes v assigns them the other way, giving wμvνw^\mu v^\nu, which is the transpose. Numerically these differ: with v=(2,3)v=(2,3) and w=(1,−1)w=(1,-1) the (1,2)(1,2) entry is −2-2 in one and 33 in the other. The scalars multiply commutatively, but the arrangement into slots does not, and that arrangement is exactly what an index position records. Only after symmetrizing — averaging over slot orderings — may you permute indices freely.

Do I need a metric to define tensors or the tensor product?

No, and this is worth stating sharply because it is easy to assume otherwise. The tensor-product construction is purely linear-algebraic: it needs only the tangent space TxMT_xM, its dual Tx∗MT_x^*M, and the ability to form multilinear maps, all of which exist at every point of a bare smooth manifold with no extra structure. A metric enters only later, and for a different job — it lets you raise and lower indices, identifying TxMT_xM with Tx∗MT_x^*M and turning, say, a (0,2)(0,2) tensor into a (2,0)(2,0) or (1,1)(1,1) one. Without a metric those types remain genuinely distinct, but tensors and ⊗\otimes are already fully defined.

How is a (1,1) tensor a matrix, and why isn't every matrix a tensor?

A type-(1,1)(1,1) tensor has exactly one upper and one lower index, so its components TμνT^\mu{}_\nu form a square array, and its action vμ=Tμνuνv^\mu=T^\mu{}_\nu u^\nu is matrix-times-vector — it is a linear map from the tangent space to itself. But not every square array of numbers you write down is a tensor. To qualify, the array must transform correctly under a change of chart: one Jacobian on the upper index, one inverse Jacobian on the lower. A generic table of numbers, or the Christoffel symbols Γλμν\Gamma^\lambda{}_{\mu\nu}, or the bare partial derivative ∂μVν\partial_\mu V^\nu, will pick up extra inhomogeneous terms and fail the test. Wearing indices is necessary but not sufficient; obeying the transformation law is what makes a matrix a tensor.

The universal property is stated abstractly — what does it actually buy me?

The universal property says the tensor product is the unique space that turns every multilinear map into an ordinary linear map: any bilinear B(u,v)B(u,v) factors as B(u,v)=B~(u⊗v)B(u,v)=\tilde B(u\otimes v) for a single linear B~\tilde B. Concretely, this is the guarantee that "multilinear algebra is just linear algebra on a bigger space." It is why the products {ei⊗fj}\{e_i\otimes f_j\} form a genuine basis, why the dimension multiplies to np+qn^{p+q}, and why you may manipulate tensors with the full toolkit of vector spaces — add them, expand them in a basis, solve linear systems in their components. Without it, the leap from "linear in each slot separately" to "an element of one vector space with one basis" would be an assertion rather than a theorem.

Why is the Kronecker delta the only invariant (1,1) tensor?

Under a change of chart a (1,1)(1,1) tensor picks up one Jacobian ∂x′μ/∂xα\partial x'^\mu/\partial x^\alpha on its upper index and one inverse Jacobian ∂xβ/∂x′ν\partial x^\beta/\partial x'^\nu on its lower index. For the delta, δ′μν=∂x′μ∂xα∂xβ∂x′νδαβ=∂x′μ∂xα∂xα∂x′ν=δμν\delta'^\mu{}_\nu=\frac{\partial x'^\mu}{\partial x^\alpha}\frac{\partial x^\beta}{\partial x'^\nu}\delta^\alpha{}_\beta=\frac{\partial x'^\mu}{\partial x^\alpha}\frac{\partial x^\alpha}{\partial x'^\nu}=\delta^\mu{}_\nu by the chain rule — the two factors collapse to the identity, so its components are literally unchanged in every chart. No other (1,1)(1,1) array has this property: a general TμνT^\mu{}_\nu gets genuinely reshuffled by the Jacobians. The delta is invariant precisely because it is the identity map, and the identity is the one linear transformation every observer agrees on.

Is the tensor product the same as the outer product I learned in linear algebra?

In components, yes — that is the whole point. The outer product of two arrays, (v⊗w)μν=vμwν(v\otimes w)^{\mu\nu}=v^\mu w^\nu, is exactly the component form of the tensor product of the underlying geometric objects, and the Kronecker product of matrices is the same operation stacked up. What the geometric language adds is the meaning: the outer product isn't just a bookkeeping array but a genuine multilinear machine with a definite type (p+r, q+s)(p{+}r,\,q{+}s), living in a vector space with a basis and a transformation law. So you already know how to compute ⊗\otimes if you can take outer products; the tensor formalism tells you what the result is, how it transforms, and why its slots must not be reordered casually.

Before this

Where this leads