Additive Haar measure constructed from a basis #
Given a basis of a finite-dimensional real vector space, we define the corresponding Lebesgue
measure, which gives measure 1
to the parallelepiped spanned by the basis.
Main definitions #
parallelepiped v
is the parallelepiped spanned by a finite family of vectors.Basis.parallelepiped
is the parallelepiped associated to a basis, seen as a compact set with nonempty interior.Basis.addHaar
is the Lebesgue measure associated to a basis, giving measure1
to the corresponding parallelepiped.
In particular, we declare a MeasureSpace
instance on any finite-dimensional inner product space,
by using the Lebesgue measure associated to some orthonormal basis (which is in fact independent
of the basis).
The closed parallelepiped spanned by a finite family of vectors.
Instances For
Reindexing a family of vectors does not change their parallelepiped.
A parallelepiped
is the convex hull of its vertices
The axis aligned parallelepiped over ι → ℝ
is a cuboid.
The parallelepiped spanned by a basis, as a compact set with nonempty interior.
Equations
- b.parallelepiped = { carrier := parallelepiped ⇑b, isCompact' := ⋯, interior_nonempty' := ⋯ }
Instances For
The Lebesgue measure associated to a basis, giving measure 1
to the parallelepiped spanned
by the basis.
Equations
- b.addHaar = MeasureTheory.Measure.addHaarMeasure b.parallelepiped
Instances For
Let μ
be a σ-finite left invariant measure on E
. Then μ
is equal to the Haar measure
defined by b
iff the parallelepiped defined by b
has measure 1
for μ
.
A finite dimensional inner product space has a canonical measure, the Lebesgue measure giving
volume 1
to the parallelepiped spanned by any orthonormal basis. We define the measure using
some arbitrary choice of orthonormal basis. The fact that it works with any orthonormal basis
is proved in orthonormalBasis.volume_parallelepiped
.
This instance creates:
a potential non-defeq diamond with the natural instance for
MeasureSpace (ULift E)
, which does not exist in Mathlib at the moment;a diamond with the existing instance
MeasureTheory.Measure.instMeasureSpacePUnit
.
However, we've decided not to refactor until one of these diamonds starts creating issues, see https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Hausdorff.20measure.20normalisation
Equations
- measureSpaceOfInnerProductSpace = MeasureTheory.MeasureSpace.mk (stdOrthonormalBasis ℝ E).toBasis.addHaar
Equations
- Real.measureSpace = inferInstance
Miscellaneous instances for EuclideanSpace
#
In combination with measureSpaceOfInnerProductSpace
, these put a MeasureSpace
structure
on EuclideanSpace
.
Equations
- EuclideanSpace.instMeasurableSpaceReal ι = MeasurableSpace.pi
WithLp.equiv
as a MeasurableEquiv
.
Equations
- EuclideanSpace.measurableEquiv ι = { toEquiv := WithLp.equiv 2 ((i : ι) → (fun (x : ι) => ℝ) i), measurable_toFun := ⋯, measurable_invFun := ⋯ }