Indistinguishable processes #
We build a space of equivalence classes of processes, where two processes are treated as identical
if they are Indistinguishable. We form the set of equivalence classes under the relation of
being indistinguishable.
We consider equivalence classes of strongly adapted processes
(or, equivalently, of almost everywhere strongly adapted processes.)
Notation #
α →ₚ[μ, 𝓕] β
Main statements #
The linear structure of
L⁰: Addition and scalar multiplication are defined onL⁰in the natural way, i.e.,[f] + [g] := [f + g],c • [f] := [c • f]. So defined,α →ₚ βinherits the linear structure ofβ. For example, ifβis a module, thenα →ₚ βis a module over the same ring.See
mk_add_mk,neg_mk,mk_sub,smul_mk,coeFn_add,coeFn_neg,coeFn_sub,coeFn_smulThe order structure of
L⁰:≤can be defined in a similar way:[f] ≤ [g]iff a ≤ g afor almost allain domain. Andα →ₚ βinherits the preorder and partial order ofβ.TODO: Define
supandinfonL⁰so that it forms a lattice. It seems thatβmust be a linear order, since otherwisef ⊔ gmay not be a measurable function.
Implementation notes #
f.cast: To find a representative off : α →ₚ β, use the coercion(f : α → β), which is implemented asf.toFun. For each operationopinL⁰, there is a lemma calledcoe_fn_op, characterizing, say,(f op g : α → β).AEEqProcess.mk: To construct anL⁰functionα →ₚ βfrom an almost everywhere strongly measurable functionf : α → β, useae_eq_fun.mkcomp: Usecomp g fto get[g ∘ f]fromg : β → γand[f] : α →ₚ γwhengis continuous. UsecompMeasurableifgis only measurable (this requires the target space to be second countable).comp₂: Usecomp₂ g f₁ f₂to get[fun a ↦ g (f₁ a) (f₂ a)]. For example,[f + g]iscomp₂ (+)
The equivalence relation of being almost everywhere equal for almost everywhere strongly measurable functions.
Equations
Instances For
The space of equivalence classes of almost everywhere strongly measurable functions, where two
strongly measurable functions are equivalent if they agree almost everywhere, i.e.,
they differ on a set of measure 0.
Instances For
The space of equivalence classes of almost everywhere strongly measurable functions, where two
strongly measurable functions are equivalent if they agree almost everywhere, i.e.,
they differ on a set of measure 0.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct the equivalence class [f] of an almost everywhere measurable function f, based
on the equivalence relation of being almost everywhere equal.
Equations
- MeasureTheory.AEEqProcess.mk f hf = Quotient.mk'' ⟨f, hf⟩
Instances For
Coercion from a space of equivalence classes of almost everywhere strongly measurable
functions to functions. We ensure that if f has a constant representative,
then we choose that one.
Equations
- ↑X = if h : ∃ (c : β), X = MeasureTheory.AEEqProcess.mk (fun (x : ι) (x_1 : α) => c) ⋯ then fun (x : ι) (x_1 : α) => h.choose else MeasureTheory.AEStronglyAdapted.mk ↑(Quotient.out X) ⋯
Instances For
A measurable representative of an AEEqProcess [f]
Equations
Given a continuous function g : β → γ, and an almost everywhere equal function [f] : α →ₚ β,
return the equivalence class of g ∘ f, i.e., the almost everywhere equal function
[g ∘ f] : α →ₚ γ.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The class of x ↦ (f x, g x).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given a continuous function g : β → γ → δ, and almost everywhere equal functions
[f₁] : α →ₚ β and [f₂] : α →ₚ γ, return the equivalence class of the function
fun a => g (f₁ a) (f₂ a), i.e., the almost everywhere equal function
[fun a => g (f₁ a) (f₂ a)] : α →ₚ γ
Equations
- MeasureTheory.AEEqProcess.comp₂ g hg f₁ f₂ = MeasureTheory.AEEqProcess.comp (Function.uncurry g) hg (f₁.pair f₂)
Instances For
Interpret f : α →ₚ[μ, 𝓕] β as a germ at ae μ forgetting that f is almost everywhere
strongly measurable.
Equations
- f.toGerm = Quotient.liftOn' f (fun (f : { X : ι → α → β // MeasureTheory.AEStronglyAdapted X 𝓕 μ }) => ↑fun (ω : α) (t : ι) => ↑f t ω) ⋯
Instances For
Given a predicate p and an equivalence class [f], return true if p holds of f a
for almost all a
Equations
Instances For
Given a relation r and equivalence class [f] and [g], return true if r holds of
(f a, g a) for almost all a
Equations
Instances For
The equivalence class of a constant function: [fun _ : α => b], based on the equivalence
relation of being almost everywhere equal
Equations
- MeasureTheory.AEEqProcess.const α b = MeasureTheory.AEEqProcess.mk (fun (x : ι) (x_1 : α) => b) ⋯
Instances For
If the measure is nonzero, we can strengthen coeFn_const to get an equality.
Equations
Equations
Equations
Equations
- MeasureTheory.AEEqProcess.instSMul = { smul := fun (c : 𝕜) (f : α →ₚ[μ, 𝓕] γ) => MeasureTheory.AEEqProcess.comp (fun (x : γ) => c • x) ⋯ f }
Equations
- MeasureTheory.AEEqProcess.instMul = { mul := MeasureTheory.AEEqProcess.comp₂ (fun (x1 x2 : γ) => x1 * x2) ⋯ }
Equations
- MeasureTheory.AEEqProcess.instAdd = { add := MeasureTheory.AEEqProcess.comp₂ (fun (x1 x2 : γ) => x1 + x2) ⋯ }
Equations
- MeasureTheory.AEEqProcess.instPowNat = { pow := fun (f : α →ₚ[μ, 𝓕] γ) (n : ℕ) => MeasureTheory.AEEqProcess.comp (fun (a : γ) => a ^ n) ⋯ f }
AEEqProcess.toGerm as a MonoidHom.
Equations
- MeasureTheory.AEEqProcess.toGermMonoidHom = { toFun := MeasureTheory.AEEqProcess.toGerm, map_one' := ⋯, map_mul' := ⋯ }
Instances For
AEEqProcess.toGerm as an AddMonoidHom.
Equations
- MeasureTheory.AEEqProcess.toGermAddMonoidHom = { toFun := MeasureTheory.AEEqProcess.toGerm, map_zero' := ⋯, map_add' := ⋯ }
Instances For
Equations
Equations
Equations
Equations
Equations
- MeasureTheory.AEEqProcess.instPowInt = { pow := fun (f : α →ₚ[μ, 𝓕] γ) (n : ℤ) => MeasureTheory.AEEqProcess.comp (fun (a : γ) => a ^ n) ⋯ f }
Equations
Equations
- MeasureTheory.AEEqProcess.instAddCommGroup = { toAddGroup := MeasureTheory.AEEqProcess.instAddGroup, add_comm := ⋯ }
Equations
Equations
- MeasureTheory.AEEqProcess.instCommGroup = { toGroup := MeasureTheory.AEEqProcess.instGroup, mul_comm := ⋯ }
Equations
- MeasureTheory.AEEqProcess.instStarOfContinuousStar = { star := fun (f : α →ₚ[μ, 𝓕] R) => MeasureTheory.AEEqProcess.comp star ⋯ f }
Equations
- MeasureTheory.AEEqProcess.instInvolutiveStarOfContinuousStar = { toStar := MeasureTheory.AEEqProcess.instStarOfContinuousStar, star_involutive := ⋯ }