Module infotheo.probability.variation_dist
From mathcomp Require Import all_ssreflect ssralg ssrnum.From mathcomp Require Import reals.
Require Import fdist.
# The Variation Distance
```
'd(P, Q) == The variation distance of two distributions P and Q
```
Reserved Notation "'d(' P ',' Q ')'".
Declare Scope variation_distance_scope.
Set Implicit Arguments.
Set SsrOldRewriteGoalsOrder.
Unset Strict Implicit.
Import Prenex Implicits.
Local Open Scope ring_scope.
Local Open Scope fdist_scope.
Import GRing.Theory Num.Theory.
Section variation_distance.
Context {R : realType}.
Variable A : finType.
Definition
var_dist
(P Q : R.-fdist A) := \sum_(a : A) `| P a - Q a |.var_dist not a defined object.
Local Notation "'d(' P ',' Q ')' " := (var_dist P Q).
Lemma symmetric_var_dist p q : d(p , q) = d(q , p).
Lemma pos_var_dist p q : 0 <= d(p , q).
Lemma def_var_dist p q : d( p , q) = 0 -> p = q.
Proof.
Lemma leq_var_dist (p q : R.-fdist A) x : `| p x - q x | <= d( p , q ).
End variation_distance.
Notation "'d(' P ',' Q ')'" := (var_dist P Q) : variation_distance_scope.