Imports
/- Copyright (c) 2025 Joseph Tooby-Smith. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. Authors: Joseph Tooby-Smith -/ module public import Physlib.Units.UnitDependent public import Mathlib.MeasureTheory.Integral.Bochner.Basic

Dimensional invariance of the integral

In this module we prove that the dimensional properties of the integral.

@[expose] public sectionlemma scaleUnit_measure (u1 u2 : UnitChoices) (μ : MeasureTheory.Measure M) : scaleUnit u1 u2 μ = μ.map (fun m => scaleUnit u1 u2 m) := M:Typeinst✝⁴:NormedAddCommGroup Minst✝³:NormedSpace Minst✝²:HasDim Minst✝¹:MeasurableSpace Minst✝:MeasurableConstSMul Mu1:UnitChoicesu2:UnitChoicesμ:Measure MscaleUnit u1 u2 μ = Measure.map (fun m => scaleUnit u1 u2 m) μ All goals completed! 🐙

The statement that for a measure μ of dimension d, and a function f : M → G of dimension (CarriesDimension.d G * d⁻¹) (where CarriesDimension.d G is the dimension associated with terms of type G), then ∫ x, f x ∂μ has the correct dimension, namely CarriesDimension.d G.

In other words, the function:

fun (μ : DimSet (MeasureTheory.Measure M) d)
    (f : DimSet (M → G) (CarriesDimension.d G * d⁻¹)) ↦ ∫ x, f.1 x ∂μ.1

is dimensionally correct.

M:Typeinst✝⁷:NormedAddCommGroup Minst✝⁶:NormedSpace Minst✝⁵:HasDim Minst✝⁴:MeasurableSpace Minst✝³:MeasurableConstSMul MG:Typeinst✝²:NormedAddCommGroup Ginst✝¹:NormedSpace Ginst✝:HasDim Gd:Dimension LTMCTDimensionBaseu1:UnitChoicesu2:UnitChoicesμ:Measure M:μ DimSet (Measure M) df:M Ghf:f DimSet (M G) (dim G * d⁻¹)(u1.dimScale u2) (dim G) * (u2.dimScale u1) d * ((u2.dimScale u1) (dim G) * (u1.dimScale u2) d) = (u1.dimScale u2) (dim G) * (u2.dimScale u1) (dim G) * ((u2.dimScale u1) d * (u1.dimScale u2) d) All goals completed! 🐙 _ = (x : M), f x μ := M:Typeinst✝⁷:NormedAddCommGroup Minst✝⁶:NormedSpace Minst✝⁵:HasDim Minst✝⁴:MeasurableSpace Minst✝³:MeasurableConstSMul MG:Typeinst✝²:NormedAddCommGroup Ginst✝¹:NormedSpace Ginst✝:HasDim Gd:Dimension LTMCTDimensionBaseu1:UnitChoicesu2:UnitChoicesμ:Measure M:μ DimSet (Measure M) df:M Ghf:f DimSet (M G) (dim G * d⁻¹)((u1.dimScale u2) (dim G) * (u2.dimScale u1) (dim G) * ((u2.dimScale u1) d * (u1.dimScale u2) d)) (x : M), f x μ = (x : M), f x μ All goals completed! 🐙