Module mathcomp.analysis.measure_theory.measure_negligible
From HB Require Import structures.From mathcomp Require Import boot order algebra.
#[warning="-warn-library-file-internal-analysis"]
From mathcomp Require Import unstable.
From mathcomp Require Import boolp classical_sets functions cardinality reals.
From mathcomp Require Import interval_inference ereal topology normedtype.
From mathcomp Require Import sequences numfun.
From mathcomp Require Import measurable_structure measure_function.
Reserved Notation "mu .-negligible" (format "mu .-negligible").
Reserved Notation "{ 'ae' m , P }" (format "{ 'ae' m , P }").
Reserved Notation "\forall x \ae mu , P"
(at level 200, x name, P at level 200, format "\forall x \ae mu , P").
Reserved Notation "f = g %[ae mu 'in' D ]"
(at level 70, g at next level, format "f = g '%[ae' mu 'in' D ]").
Reserved Notation "f = g %[ae mu ]"
(at level 70, g at next level, format "f = g '%[ae' mu ]").
Reserved Notation "m .-null_set" (at level 2, format "m .-null_set").
Reserved Notation "m1 `<< m2" (at level 51).
Unset SsrOldRewriteGoalsOrder.
Set Implicit Arguments.
Unset Strict Implicit.
Unset Printing Implicit Defensive.
Import ProperNotations.
Import Order.TTheory GRing.Theory.
Local Open Scope classical_set_scope.
Local Open Scope ring_scope.
Section negligible.
Context ( : semiRingOfSetsType d) ( : realFieldType).
Definition
Source code
exists , [/\ measurable A, mu A = 0 & N `<=` A].
Local Notation
Source code
Variable : {content set T -> \bar R}.
Lemma
Source code
Proof.
by apply/eqP; rewrite -measure_le0 -mB0 le_measure ?inE.
Qed.
Lemma
Source code
Proof.
Lemma
Source code
measurable A -> mu.-negligible A -> mu A = 0%E.
Proof.
Lemma
Source code
Proof.
Lemma
Source code
mu.-negligible A -> mu.-negligible B -> mu.-negligible (A `&` B).
Proof.
- exact: measurableI.
- by apply/eqP; rewrite -measure_le0 -N0 le_measure ?inE//; exact: measurableI.
- exact: setISS.
Qed.
End negligible.
Notation
Source code
Definition
negligible : forall [d : measure_display] [T : semiRingOfSetsType d] [R : realFieldType], (set T -> \bar R) -> set T -> Prop negligible is not universe polymorphic Arguments negligible [d]%_measure_display_scope [T R] mu%_function_scope N%_classical_set_scope negligible is transparent Expands to: Constant mathcomp.analysis.measure_theory.measure_negligible.negligible Declared in library mathcomp.analysis.measure_theory.measure_negligible, line 66, characters 11-21
Source code
( : set T -> \bar R) :=
mu.-negligible `<=` measurable.
Section negligible_ringOfSetsType.
Context ( : ringOfSetsType d) ( : realFieldType).
Variable : {content set T -> \bar R}.
Lemma
Source code
mu.-negligible A -> mu.-negligible B -> mu.-negligible (A `|` B).
Proof.
- exact: measurableU.
- apply/eqP; rewrite -measure_le0 -N0 -[leRHS]adde0 -M0 -bigsetU_bigcup2.
apply: le_trans.
+ apply: (@content_subadditive _ _ _ _ _ (bigcup2 N M) 2%N) => //.
* by move=> [|[|[|]]].
* apply: bigsetU_measurable => // i _; rewrite /bigcup2.
by case: ifPn => // i0; case: ifPn.
+ by rewrite big_ord_recr/= big_ord_recr/= big_ord0 add0e.
- exact: setUSS.
Qed.
Lemma
Source code
(forall , P k -> mu.-negligible (F k)) ->
mu.-negligible (\big[setU/set0]_( <- s | P k) F k).
Proof.
End negligible_ringOfSetsType.
Lemma
Source code
( : {measure set T -> \bar R}) ( : (set T)^nat) :
(forall , mu.-negligible (F k)) -> mu.-negligible (\bigcup_ F k).
Proof.
- by apply: bigcupT_measurable => // k; have [] := svalP (cid (mF k)).
- rewrite seqDU_bigcup_eq measure_bigcup//.
move=> k _; apply: measurableD; first by case: cid => //= A [].
by apply: bigsetU_measurable => i _; case: cid => //= A [].
rewrite eseries0// => k _ _.
have [mFk mFk0 ?] := svalP (cid (mF k)).
rewrite measureD//=.
+ by apply: bigsetU_measurable => i _; case: cid => // A [].
+ by rewrite mFk0.
rewrite mFk0 sub0e eqe_oppLRP oppe0; apply/eqP; rewrite -measure_le0.
rewrite -[leRHS]mFk0 le_measure//= ?inE//; apply: measurableI => //.
by apply: bigsetU_measurable => i _; case: cid => // A [].
- by apply: subset_bigcup => k _; rewrite /sval/=; by case: cid => //= A [].
Qed.
Section ae.
Definition
measure_is_complete : forall [d : measure_display] [T : semiRingOfSetsType d] [R : realFieldType], (set T -> \bar R) -> Prop measure_is_complete is not universe polymorphic Arguments measure_is_complete [d]%_measure_display_scope [T R] mu%_function_scope measure_is_complete is transparent Expands to: Constant mathcomp.analysis.measure_theory.measure_negligible.measure_is_complete Declared in library mathcomp.analysis.measure_theory.measure_negligible, line 103, characters 11-30
Source code
( : set T -> \bar R) : set_system T :=
fun => mu.-negligible (~` [set | P x]).
Let
Source code
( : {content set T -> \bar R}) : almost_everywhere mu setT.
Proof.
Let
Source code
( : {measure set T -> \bar R}) : A `<=` B ->
almost_everywhere mu A -> almost_everywhere mu B.
Proof.
Let
Source code
( : {measure set T -> \bar R}) :
almost_everywhere mu A -> almost_everywhere mu B ->
almost_everywhere mu (A `&` B).
Proof.
Definition
almost_everywhere : forall [d : measure_display] [T : semiRingOfSetsType d] [R : realFieldType], (set T -> \bar R) -> set_system T almost_everywhere is not universe polymorphic Arguments almost_everywhere [d]%_measure_display_scope [T R] mu%_function_scope _ almost_everywhere is transparent Expands to: Constant mathcomp.analysis.measure_theory.measure_negligible.almost_everywhere Declared in library mathcomp.analysis.measure_theory.measure_negligible, line 158, characters 11-28
Source code
( : {measure set T -> \bar R}) : Filter (almost_everywhere mu).
Proof.
Definition
ae_filter_ringOfSetsType : forall [d : measure_display] {T : ringOfSetsType d} [R : realFieldType] (mu : measure T R), Filter (almost_everywhere (T:=T) (R:=R) mu) ae_filter_ringOfSetsType is not universe polymorphic Arguments ae_filter_ringOfSetsType [d]%_measure_display_scope {T} [R] mu ae_filter_ringOfSetsType is opaque Expands to: Constant mathcomp.analysis.measure_theory.measure_negligible.ae_filter_ringOfSetsType Declared in library mathcomp.analysis.measure_theory.measure_negligible, line 179, characters 11-35
Source code
( : realFieldType) ( : {measure set T -> \bar R}) :
(mu [set: T] > 0)%E -> ProperFilter (almost_everywhere mu).
Proof.
rewrite /almost_everywhere setC0 => /(measure_negligible measurableT).
by move/eqP; rewrite -measure_le0 leNgt => /negP.
Qed.
End ae.
#[global] Hint Extern 0 (Filter (almost_everywhere _)) =>
(apply: ae_filter_ringOfSetsType) : typeclass_instances.
#[global] Hint Extern 0 (Filter (nbhs (almost_everywhere _))) =>
(apply: ae_filter_ringOfSetsType) : typeclass_instances.
#[global] Hint Extern 0 (ProperFilter (almost_everywhere _)) =>
(apply: ae_properfilter_algebraOfSetsType) : typeclass_instances.
#[global] Hint Extern 0 (ProperFilter (nbhs (almost_everywhere _))) =>
(apply: ae_properfilter_algebraOfSetsType) : typeclass_instances.
Notation
Source code
Notation
Source code
: type_scope.
Definition
ae_properfilter_algebraOfSetsType : forall [d : measure_display] {T : algebraOfSetsType d} [R : realFieldType] [mu : measure T R], (0%R < mu [set: T]%classic)%E -> ProperFilter (almost_everywhere (T:=T) (R:=R) mu) ae_properfilter_algebraOfSetsType is not universe polymorphic Arguments ae_properfilter_algebraOfSetsType [d]%_measure_display_scope {T} [R mu] _ ae_properfilter_algebraOfSetsType is opaque Expands to: Constant mathcomp.analysis.measure_theory.measure_negligible.ae_properfilter_algebraOfSetsType Declared in library mathcomp.analysis.measure_theory.measure_negligible, line 186, characters 11-44
Source code
( : {measure set T -> \bar R}) ( : T -> Type) ( : forall , V x) :=
\forall \ae mu, D x -> f x = g x.
Notation
Source code
Notation
Source code
Lemma
Source code
( : {measure set T -> \bar R}) ( : set T) :
mu [set: T] = 0 -> \forall \ae mu, P x.
Proof.
Lemma
Source code
( : {measure set _ -> \bar R}) ( : T -> Prop) :
(forall , P x) -> \forall \ae mu, P x.
Proof.
Instance
Source code
RelationClasses.Equivalence (@ae_eq d T R mu V D).
Proof.
Section ae_eq.
Local Open Scope ring_scope.
Context ( : sigmaRingType d) ( : realType).
Implicit Types (U V : Type) (W : pzRingType).
Variables ( : {measure set T -> \bar R}) ( : set T).
Local Notation
Source code
Lemma
Source code
Proof.
Instance
Source code
Proper (ae_eq ==> ae_eq) (fun => j x (f x)).
Instance
Source code
Proper (ae_eq ==> ae_eq ==> ae_eq) (fun => j x (f x) (g x)).
Proof.
Instance
Source code
Proper (ae_eq ==> ae_eq ==> ae_eq) (fun => j (f x) (g x)).
Proof.
Instance
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
ae_eq f g -> ae_eq (fun => j x (f x)) (fun => j x (g x)).
Local Open Scope ereal_scope.
Lemma
Source code
ae_eq f g <-> ae_eq f^\+ g^\+ /\ ae_eq f^\- g^\-.
Proof.
by split; near=> x => Dx; rewrite !(funeposE,funenegE) (near fg).
near=> x => Dx.
by rewrite -(funeposBneg f) -(funeposBneg g) ?(near pfg, near nfg).
Unshelve. all: by end_near. Qed.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
ae_eq (f \- h) (g \- i).
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
ae_eq (abse \o f) (abse \o g).
Lemma
Source code
(forall , \forall \ae mu, P n x) -> \forall \ae mu, forall , P n x.
Proof.
have seqDUAmeas := seqDU_measurable Ameas.
exists (\bigcup_ A n); split => //.
- exact/bigcup_measurable.
- rewrite seqDU_bigcup_eq measure_bigcup// eseries0// => i _ _.
by rewrite (@subset_measure0 _ _ _ _ _ (A i))//=; exact: subset_seqDU.
- by move=> x /=; rewrite -existsNP => -[n NPnx]; exists n => //; exact: NPA.
Qed.
End ae_eq.
Section ae_eq_lemmas.
Context ( : sigmaRingType d) ( : realType) ( : Type).
Implicit Types (mu : {measure set T -> \bar R}) (A : set T) (f g : T -> U).
Lemma
Source code
Proof.
End ae_eq_lemmas.
Section ae_eqe.
Context ( : sigmaRingType d) ( : realType).
Local Open Scope ereal_scope.
Implicit Types (mu : {measure set T -> \bar R}) (D : set T) (f g h : T -> \bar R).
Lemma
Source code
End ae_eqe.
Section null_set.
Context ( : semiRingOfSetsType d) ( : numDomainType).
Implicit Types m : set T -> \bar R.
Definition
ae_eq : forall [d : measure_display] [T : semiRingOfSetsType d] [R : realType], measure T R -> forall [V : T -> Type], (T -> Type) -> (forall x : T, V x) -> (forall x : T, V x) -> Prop ae_eq is not universe polymorphic Arguments ae_eq [d]%_measure_display_scope [T R] mu [V]%_function_scope (D f g)%_function_scope ae_eq is transparent Expands to: Constant mathcomp.analysis.measure_theory.measure_negligible.ae_eq Declared in library mathcomp.analysis.measure_theory.measure_negligible, line 210, characters 11-16
Source code
[set | forall , measurable A -> A `<=` N -> m A = 0].
End null_set.
Notation
Source code
Section null_set_lemmas.
Context ( : semiRingOfSetsType d) ( : numDomainType).
Implicit Types m : set T -> \bar R.
Lemma
Source code
Proof.
End null_set_lemmas.
Section content_null_set_lemmas.
Context ( : measurableType d) ( : realType).
Implicit Types m : {content set T -> \bar R}.
Lemma
Source code
Proof.
by apply/eqP; rewrite -measure_le0 -N0 le_measure// inE.
Qed.
Lemma
Source code
Proof.
Lemma
Source code
m.-null_set B <-> (forall , measurable A -> m (A `|` B) = m A).
Proof.
- apply/eqP; rewrite eq_le.
rewrite (@le_measure _ _ _ _ A) ?inE ?andbT//; first exact: measurableU.
by rewrite (le_trans (measureU2 _ _ _))// (nullB B)// adde0.
- apply/eqP; rewrite eq_le measure_ge0 andbT.
by rewrite -(measure0 m) -[leRHS]B0// set0U le_measure// inE.
Qed.
End content_null_set_lemmas.
Section absolute_continuity.
Context ( : semiRingOfSetsType d) ( : realType).
Implicit Types m : set T -> \bar R.
Definition
null_set : forall [d : measure_display] [T : semiRingOfSetsType d] [R : numDomainType], (set T -> \bar R) -> set (set T) null_set is not universe polymorphic Arguments null_set [d]%_measure_display_scope [T R] m%_function_scope _ null_set is transparent Expands to: Constant mathcomp.analysis.measure_theory.measure_negligible.null_set Declared in library mathcomp.analysis.measure_theory.measure_negligible, line 344, characters 11-19
Source code
End absolute_continuity.
Notation
Source code
Section null_dominates_lemmas.
Context ( : semiRingOfSetsType d) ( : realType).
Implicit Types m : set T -> \bar R.
Lemma
Source code
Proof.
End null_dominates_lemmas.
Definition
null_dominates : forall [d : measure_display] [T : semiRingOfSetsType d] [R : realType], (set T -> \bar R) -> (set T -> \bar R) -> Prop null_dominates is not universe polymorphic Arguments null_dominates [d]%_measure_display_scope [T R] (m2 m1)%_function_scope null_dominates is transparent Expands to: Constant mathcomp.analysis.measure_theory.measure_negligible.null_dominates Declared in library mathcomp.analysis.measure_theory.measure_negligible, line 392, characters 11-25
Source code
( : {content set T -> \bar R}) ( : set T -> \bar R) :=
forall , measurable A -> mu A = 0 -> nu A = 0.
Section null_content_dominatesP.
Context ( : measurableType d) ( : realType).
Implicit Types (mu : {content set T -> \bar R}).
Lemma
Source code
nu `<< mu <-> content_dominates mu nu.
Proof.
- by move=> dom A mA muA0; apply: (dom A) => //; exact/measure0_null_setP.
- by move=> + A muA0 B mB BA; apply => //; exact: muA0.
Qed.
End null_content_dominatesP.
Section null_dominates_ae_eq.
Context ( : measurableType d) ( : realType) ( : Type).
Implicit Types (nu mu : {measure set T -> \bar R}) (f g : T -> U).
Lemma
Source code
nu `<< mu -> ae_eq mu E f g -> ae_eq nu E f g.
Proof.
End null_dominates_ae_eq.
#[deprecated(since="mathcomp-analysis 1.15.0", note="renamed `null_dominates_ae_eq`")]
Notation
Source code