Vectors of length zero
In the Euclidean dot product, q(v) = 0 forces v = 0 — that is exactly what positive-definiteness means. But for general forms there can be nonzero vectors with q(v) = 0; such a v is called [[isotropic-vector|isotropic]], and a form possessing one is called isotropic (otherwise anisotropic / definite). On the real form q(x, y) = x² − y² the vectors (1, 1) and (1, −1) are isotropic — they sit on the “light cone”. Isotropy is the obstruction to a form behaving like an honest notion of length.
The hyperbolic plane: the universal isotropic piece
Suppose a nondegenerate form has an isotropic vector u, q(u) = 0. Nondegeneracy gives some w with B(u, w) ≠ 0; rescale so B(u, w) = 1, then adjust w by a multiple of u to also make q(w) = 0. The span of u, w is a 2-dimensional nondegenerate subspace with Gram matrix [0, 1; 1, 0] — the [[hyperbolic-plane|hyperbolic plane]] ℍ. In the equivalent diagonal form it is ⟨1, −1⟩, since x² − y² = (x + y)(x − y) and the substitution u = x + y, w = x − y converts one to the other. The hyperbolic plane is the atom of isotropy.
Splitting off a hyperbolic plane. Claim: if a nondegenerate form q contains an isotropic vector, it decomposes as q = H (+) q', where H is the hyperbolic plane. Build a hyperbolic pair (u, w): q(u) = 0, B(u, w) = 1, q(w) = 0. Gram matrix of span(u, w) = [0, 1; 1, 0], det = -1 != 0 (nondegenerate). Orthogonal complement splits off: V = span(u, w) (+) span(u, w)^perp, with the form restricting nondegenerately to each summand. So q = H (+) q' with dim q' = n - 2. As diagonal forms: H = <1, -1>, hence over R every form is q = (p - m copies of the SIGN it favors) plus (min(p,m) copies of H), i.e. <1,...,1, -1,...,-1> = k*H (+) <eps,...,eps>, with k = min(p, m) hyperbolic planes and |p - m| leftover same-sign axes.
Iterating gives the Witt decomposition: every nondegenerate form splits as a direct sum q ≅ k·ℍ ⊥ q_an, where ℍ is the hyperbolic plane and q_an is anisotropic (no isotropic vectors). The integer k is the *Witt index*; the anisotropic part q_an is the irreducible kernel of information. Over ℝ this just re-says Sylvester: k = min(p, m) hyperbolic planes, and q_an = ⟨1, …, 1⟩ or ⟨−1, …, −1⟩ of size |p − m| carrying the surviving signature. The power of the decomposition is that it works over *any* field.
Witt's theorems and the orthogonal group
Two deep results make the decomposition canonical. [[witt-theorem|Witt's extension theorem]]: any isometry between two subspaces of (V, q) extends to an isometry of all of V. Witt's cancellation theorem: if q₁ ⊥ q ≅ q₂ ⊥ q then q₁ ≅ q₂ — you may cancel a common summand. Cancellation is what makes the Witt index k and the anisotropic core q_an *invariants* of the form, not artifacts of a chosen splitting. The proof reduces (via extension) to cancelling one hyperbolic plane or one anisotropic line at a time.