Semi-Riemannian geometry