Module mathcomp.analysis.measure_theory.probability_measure
From HB Require Import structures.From mathcomp Require Import boot order algebra.
From mathcomp Require Import boolp classical_sets functions cardinality reals.
From mathcomp Require Import interval_inference ereal topology normedtype.
From mathcomp Require Import measurable_structure measure_function dirac_measure.
# Probability Measures
```
isSubProbability == interface for functions that satisfy the
property of subprobability
The HB class is SubProbability.
subprobability T R == subprobability measure over the
measurableType T with values in \bar R with
R : realType
The HB class is SubProbability.
Measure_isSubProbability == interface that extends measures to
subprobability measures
isProbability == interface for functions that satisfy the
property of probability measures
The HB class is Probability.
probability T R == type of probability measure over the
measurableType T with values in \bar R
with R : realType
Measure_isProbability == interface that extends measures to
probability measures
mnormalize mu == normalization of a measure to a probability
```
```
mset U r == the set of probability measures mu such that
mu U < r
pset == the sets mset U r with U measurable and
r \in [0,1]
pprobability == the measurable type generated by pset
```
Unset SsrOldRewriteGoalsOrder.
Set Implicit Arguments.
Unset Strict Implicit.
Unset Printing Implicit Defensive.
Import Order.TTheory GRing.Theory Num.Theory.
Local Open Scope classical_set_scope.
Local Open Scope ring_scope.
.
mixin
Source code
Source code
Record
Source code
Source code
isSubProbability
Source code
(Source code
sigmaRingType
Source code
d) (R : realType)Source code
(P : set T -> \bar R) := { sprobability_setT : (P setT <= 1)%E }.
#[short
Source code
(Source code
type=subprobability
Source code
)Source code
.
structure
Source code
Source code
Definition
Source code
Source code
SubProbability
Source code
(Source code
measurableType
Source code
d) (R : realType)Source code
:= { of @FiniteMeasure d T R mu & isSubProbability d T R mu }.
.
factory
Source code
Source code
Record
Source code
Source code
Measure_isSubProbability
Source code
(Source code
measurableType
Source code
d)Source code
(R : realType) (P : set T -> \bar R) & isMeasure _ _ _ P :=
{ sprobability_setT : (P setT <= 1)%E }.
.
builders
Source code
Source code
Context
Source code
(Source code
measurableType
Source code
d) (R : realType)Source code
P & Measure_isSubProbability d T R P.
Let
finite
Source code
: @Measure_isFinite d T R P.Source code
Proof.
.
instance
Source code
Source code
Definition
Source code
Source code
finite
Source code
.Source code
.
instance
Source code
Source code
Definition
Source code
Source code
@isSubProbability
Source code
.Build _ _ _ P sprobability_setT.Source code
.
end
Source code
.Source code
Section mzero_subprobability.
Context ( : measurableType d) ( : realType).
Let
mzero_setT
Source code
: (@mzero d T R setT <= 1)%E.Source code
Proof.
.
instance
Source code
Source code
Definition
Source code
Source code
Measure_isSubProbability.Build _ _ _ (@mzero d T R) mzero_setT.
End mzero_subprobability.
.
mixin
Source code
Source code
Record
Source code
Source code
isProbability
Source code
(Source code
measurableType
Source code
d) (R : realType)Source code
(P : set T -> \bar R) := { probability_setT : P setT = 1%E }.
#[short
Source code
(Source code
type=probability
Source code
)Source code
.
structure
Source code
Source code
Definition
Source code
Source code
Probability
Source code
(Source code
measurableType
Source code
d) (R : realType) :=Source code
{ of @SubProbability d T R P & isProbability d T R P }.
Arguments probability_setT {d T R} s.
.
instance
Source code
Source code
Definition
Source code
(Source code
measurableType
Source code
d) (R : realType) :=Source code
gen_eqMixin (probability T R).
.
instance
Source code
Source code
Definition
Source code
(Source code
measurableType
Source code
d) (R : realType) :=Source code
gen_choiceMixin (probability T R).
Section probability_lemmas.
Local Open Scope ereal_scope.
Context ( : measurableType d) ( : realType) ( : probability T R).
Lemma
probability_le1
Source code
( : set T) : measurable A -> P A <= 1.Source code
Proof.
Lemma
probability_setC
Source code
( : set T) : measurable A -> P (~` A) = 1 - P A.Source code
Proof.
move=> mA; rewrite -(probability_setT P) -(setvU A) measureU ?addeK ?setICl//.
exact: measurableC.
by rewrite fin_num_measure.
Qed.
exact: measurableC.
by rewrite fin_num_measure.
Qed.
End probability_lemmas.
.
factory
Source code
Source code
Record
Source code
Source code
Measure_isProbability
Source code
(Source code
measurableType
Source code
d)Source code
(R : realType) (P : set T -> \bar R) & isMeasure _ _ _ P :=
{ probability_setT : P setT = 1%E }.
.
builders
Source code
Source code
Context
Source code
(Source code
measurableType
Source code
d) (R : realType)Source code
P & Measure_isProbability d T R P.
Let
subprobability
Source code
: @Measure_isSubProbability d T R P.Source code
Proof.
.
instance
Source code
Source code
Definition
Source code
Source code
subprobability
Source code
.Source code
.
instance
Source code
Source code
Definition
Source code
Source code
@isProbability
Source code
.Build _ _ _ P probability_setT.Source code
.
end
Source code
.Source code
Section pdirac.
Context ( : measurableType d) ( : realType).
.
instance
Source code
Source code
Definition
Source code
Source code
Measure_isProbability.Build _ _ _ (@dirac _ T x R) (diracT R x).
End pdirac.
Section mnormalize.
Local Open Scope ereal_scope.
Context ( : measurableType d) ( : realType).
Variables ( : {measure set T -> \bar R}) ( : probability T R).
Definition
mnormalize
Source code
:=Source code
let
evidence
Source code
:= mu [set: T] inSource code
if (evidence == 0) || (evidence == +oo) then fun => P U
else fun => mu U * (fine evidence)^-1%:E.
Let
mnormalize0
Source code
: mnormalize set0 = 0.Source code
Proof.
Let
mnormalize_ge0
Source code
: 0 <= mnormalize U.Source code
Proof.
Let
mnormalize_sigma_additive
Source code
: semi_sigma_additive mnormalize.Source code
Proof.
move=> F mF tF mUF; rewrite /mnormalize/=.
case: ifPn => [_|_]; first exact: measure_semi_sigma_additive.
rewrite [X in X @ _ --> _](_ : _ = (fun => \sum_(0 <= < n) mu (F i)) \*
cst (fine (mu setT))^-1%:E).
by apply/funext => n; rewrite -ge0_sume_distrl.
by apply: cvgeZr => //; exact: measure_semi_sigma_additive.
Qed.
case: ifPn => [_|_]; first exact: measure_semi_sigma_additive.
rewrite [X in X @ _ --> _](_ : _ = (fun => \sum_(0 <= < n) mu (F i)) \*
cst (fine (mu setT))^-1%:E).
by apply/funext => n; rewrite -ge0_sume_distrl.
by apply: cvgeZr => //; exact: measure_semi_sigma_additive.
Qed.
.
instance
Source code
Source code
Definition
Source code
Source code
isMeasure
Source code
.Build _ _ _ mnormalizeSource code
mnormalize0 mnormalize_ge0 mnormalize_sigma_additive.
Let
mnormalize1
Source code
: mnormalize [set: T] = 1.Source code
Proof.
.
instance
Source code
Source code
Definition
Source code
Source code
Measure_isProbability.Build _ _ _ mnormalize mnormalize1.
End mnormalize.
Lemma
mnormalize_id
Source code
( : measurableType d) ( : realType)Source code
( : probability T R) : mnormalize P P' = P.
Proof.
.
instance
Source code
Source code
Definition
Source code
(Source code
pmeasurableType
Source code
d) (R : realType) :=Source code
isPointed.Build (probability T R) (dirac point).
Section dist_sigma_algebra_instance.
Context ( : measurableType d) ( : realType).
Definition
mset
Source code
( : set T) ( : R) :=Source code
[set : probability T R | mu U < r%:E]%E.
Lemma
lt0_mset
Source code
( : set T) ( : R) : (r < 0)%R -> mset U r = set0.Source code
Proof.
Lemma
gt1_mset
Source code
( : set T) ( : R) :Source code
measurable U -> (1 < r)%R -> mset U r = [set: probability T R].
Proof.
move=> mU r1; apply/seteqP; split => // x/= _.
by rewrite /mset/= (le_lt_trans (probability_le1 _ _)).
Qed.
by rewrite /mset/= (le_lt_trans (probability_le1 _ _)).
Qed.
Definition
pset
Source code
: set_system (probability T R) :=Source code
[set mset U r | in `[0%R,1%R] & in measurable].
Definition
pprobability
Source code
: measurableType pset.-sigma :=mnormalize : forall [d : measure_display] [T : measurableType d] [R : realType], measure T R -> probability T R -> set T -> \bar R mnormalize is not universe polymorphic Arguments mnormalize [d]%_measure_display_scope [T R] mu P U%_classical_set_scope mnormalize is transparent Expands to: Constant mathcomp.analysis.measure_theory.probability_measure.mnormalize Declared in library mathcomp.analysis.measure_theory.probability_measure, line 146, characters 11-21
Source code
g_sigma_algebraType pset.
End dist_sigma_algebra_instance.