On this page
Conditioning a product law on a set of coordinates
Imports 2 library modules and 23 external
External: HB.structures, mathcomp.classical.all_ssreflect_compat, mathcomp.algebra.algebraic_hierarchy.ssralg, mathcomp.algebra.numeric_hierarchy.ssrnum, mathcomp.algebra.interval, mathcomp.algebra.ring_tactic, mathcomp.algebra.field_tactic, mathcomp.algebra.arithmetic_tactic, mathcomp.classical.boolp, mathcomp.classical.classical_sets, mathcomp.classical.functions, mathcomp.classical.cardinality, mathcomp.reals.reals, mathcomp.analysis.ereal, mathcomp.analysis.topology_theory.topology, mathcomp.analysis.normedtype_theory.normedtype, mathcomp.analysis.sequences, mathcomp.analysis.measure_theory.measure, mathcomp.analysis.lebesgue_measure, mathcomp.analysis.measurable_realfun, mathcomp.analysis.numfun, mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral, mathcomp.analysis.probability_theory.probability
Imported by 7
Under the product law tuple_prod mu n of n independent coordinates, the coordinates outside a set S may be resampled independently of those in S (ge0_integral_tuple_prod_merge). This gives, without conditional expectations, the tools of a proof that reveals the coordinates in stages, as the proof of Proposition 3.4 of Koehler and Sohn (arXiv 2608.27372, lines 3610-3805) does. An event E depends only on the coordinates in S when replacing the others does not change it: E (tuple_merge S x y) = E x for all x and y.
- tuple_prod_box, measure_tuple_box_unique: the measure of a box is the product of the measures of its sides, and two finite measures on the n-tuples that agree on the boxes agree.
- tuple_prod_merge: resampling the coordinates outside S does not change tuple_prod mu n.
- tuple_prod_cond_le: if H depends only on the coordinates in S and, for every x in H, resampling the coordinates of x outside S puts it in E with probability at most c x, then P(E and H) <= int_H c.
- tuple_prod_indepS, tuple_prod_indep_big: events that depend on pairwise disjoint sets of coordinates are independent.
- tuple_prod_chain_le: if the coordinates are revealed in nested sets S 0, S 1, ..., the event A l depends only on the coordinates in S l.+1 and, given the coordinates in S l of a tuple of the earlier events, has probability at most c l, then the A l, l < L, occur together with probability at most the product of the c l.
- tuple_prod_pick: for an injective f, the coordinates f 0, ..., f (k - 1) of tuple_prod mu n have the product law of their laws.
tuple_ | the n-tuples x with x_i in A i for every i |
tuple_ | the n-tuple with the coordinates of x in S and those of y outside S |
tuple_ | the k-tuple (x_(f 0), ..., x_(f (k - 1))) |
Main results
| Results | Statement |
|---|---|
Conditioning tuple_prod mu n on the coordinates in a set S by resampling the others: tuple_merge S x y takes the coordinates in S from x and the others from y, and its law under two independent copies of tuple_prod mu n is tuple_prod mu n. If H depends only on the coordinates in S (H (tuple_merge S x y) = H x) and, for every x in H, tuple_merge S x y is in E with probability at most c x, then P(E and H) <= int_H c. | |
Events that depend on pairwise disjoint sets of coordinates are independent. Revealing the coordinates in nested sets S 0, S 1, ...: if A l depends only on the coordinates in S (l + 1) and, given those in S l of a tuple of A 0, ..., A (l - 1), has probability at most c l, then P(A 0, ..., A (L - 1)) <= c 0 ... c (L - 1). | |
For an injective f : 'I_k -> 'I_n, the coordinates f 0, ..., f (k - 1) of tuple_prod mu n have the law tuple_prod nu k with nu i = mu (f i). The measure of a box is the product of the measures of its sides, and two finite measures on n.-tuple T that agree on the boxes agree. |
Declarations24 exported
Context d (T : measurableType d) (n : nat).
forall [d : measure_display] [T : measurableType d] [n : nat], ('I_n -> set T) -> set (n.-tuple T)
Definition tuple_box (A : 'I_n -> set T) : set (n.-tuple T) := [set x | forall i, A i (tnth x i)].
The product of the sets A i.
Used by 12 declarations in 5 files
- GaussianAnalysis.probability.mixture: tuple_prod_mixture
- GaussianAnalysis.probability.countable_mixture: tuple_prod_cmixture
- this file: tuple_boxes, tuple_boxE, measurable_tuple_box, measure_tuple_box_unique, tuple_prod_box, tuple_prod_merge, tuple_prod_pick
- GaussianAnalysis.probability.density_law: indic_tuple_box, tuple_prod_density
- GaussianAnalysis.comparison.gauss_matrix_law: gauss_tuple_mx
forall [d : measure_display] [T : measurableType d] [n : nat], set (set (n.-tuple T))
Definition tuple_boxes : set (set (n.-tuple T)) := [set tuple_box A | A in [set A | forall i, measurable (A i)]].
Used by 3 declarations in 1 file
forall [d : measure_display] [T : measurableType d] [n : nat] (A : 'I_n -> set T), tuple_box A = \bigcap_i (tnth (T:=T))^~ i @^-1` A i
Statement as written in the source
Lemma tuple_boxE (A : 'I_n -> set T) : tuple_box A = \bigcap_(i in [set: 'I_n]) ((@tnth n T)^~ i @^-1` A i).
Used by 1 declaration in 1 file
- this file: measurable_tuple_box
forall [d : measure_display] [T : measurableType d] [n : nat] [A : 'I_n -> set T], (forall i : 'I_n, d.-measurable (A i)) -> (measure_tuple_display d).-measurable (tuple_box A)
Statement as written in the source
Lemma measurable_tuple_box (A : 'I_n -> set T) : (forall i, measurable (A i)) -> measurable (tuple_box A).
Used by 3 declarations in 1 file
- this file: measurable_tuple_boxes, tuple_prod_box, tuple_prod_merge
forall [d : measure_display] (T : measurableType d) (n : nat), (measure_tuple_display d).-measurable = <<s tuple_boxes (n:=n) >>
Statement as written in the source
Lemma measurable_tuple_boxes : @measurable _ (n.-tuple T) = <<s tuple_boxes >>.
Used by 1 declaration in 1 file
- this file: measure_tuple_box_unique
forall [d : measure_display] [T : measurableType d] [n : nat], setI_closed (tuple_boxes (n:=n))
Statement as written in the source
Lemma setI_closed_tuple_boxes : setI_closed tuple_boxes.
Used by 1 declaration in 1 file
- this file: measure_tuple_box_unique
forall [d : measure_display] [T : measurableType d] [n : nat] [R : realType] [mu1 mu2 : measure (n.-tuple T) R], (mu1 [set: n.-tuple T] < +oo)%E -> (forall A : 'I_n -> set T, (forall i : 'I_n, d.-measurable (A i)) -> mu1 (tuple_box A) = mu2 (tuple_box A)) -> forall [X : set (n.-tuple T)], (measure_tuple_display d).-measurable X -> mu1 X = mu2 X
Two finite measures that agree on the boxes agree.
Stated in the README together with tuple_prod_pick.
Statement as written in the source
Used by 6 declarations in 4 files
- GaussianAnalysis.probability.mixture: tuple_prod_mixture
- GaussianAnalysis.probability.countable_mixture: tuple_prod_cmixture
- this file: tuple_prod_merge, tuple_prod_pick
- GaussianAnalysis.probability.density_law: tuple_prod_density, tuple_prod_density_law
Context d (T : measurableType d) (R : realType).
forall [d : measure_display] [T : measurableType d] [R : realType] (mu : nat -> probability T R) [n : nat] [A : 'I_n -> set T], (forall i : 'I_n, d.-measurable (A i)) -> tuple_prod mu n (tuple_box A) = (\prod_(i < n) mu i (A i))%E
tuple_prod mu n gives a box the product of the measures of its sides.
Stated in the README together with tuple_prod_pick.
Statement as written in the source
Lemma tuple_prod_box (mu : nat -> probability T R) n (A : 'I_n -> set T) : (forall i, measurable (A i)) -> tuple_prod mu n (tuple_box A) = (\prod_(i < n) mu i (A i))%E.
Used by 7 declarations in 5 files
- GaussianAnalysis.probability.mixture: tuple_prod_mixture
- GaussianAnalysis.probability.countable_mixture: tuple_prod_cmixture
- this file: tuple_prod_merge, tuple_prod_pick
- GaussianAnalysis.probability.density_law: tuple_prod_density, tuple_prod_density_law
- GaussianAnalysis.comparison.gauss_matrix_law: gauss_tuple_mx
Context d (T : measurableType d) (R : realType) (n : nat). Variable S : {pred 'I_n}.
forall [d : measure_display] [T : measurableType d] [n : nat],
{pred 'I_n} -> n.-tuple T -> n.-tuple T -> n.-tuple TDefinition tuple_merge (x y : n.-tuple T) : n.-tuple T := [tuple if i \in S then tnth x i else tnth y i | i < n].
The coordinates in S from x, the others from y.
Conditioning tuple_prod mu n on the coordinates in a set S by resampling the others: tuple_merge S x y takes the coordinates in S from x and the others from y, and its law under two independent copies of tuple_prod mu n is tuple_prod mu n. If H depends only on the coordinates in S (H (tuple_merge S x y) = H x) and, for every x in H, tuple_merge S x y is in E with probability at most c x, then P(E and H) <= int_H c.
Used by 15 declarations in 4 files
- GaussianAnalysis.matrix.covering: matrix_small_ball
- this file: tnth_merge, measurable_tuple_merge, tuple_prod_merge, ge0_integral_tuple_prod_merge, measurable_merge_section, tuple_prod_cond_le, tuple_prod_indepS, tuple_merge_id, tuple_merge_dep_sub, tuple_merge_dep_disj, tuple_prod_indep_big, tuple_prod_chain_le
- GaussianAnalysis.probability.hanson_wright: hw_decoupled_mgf
- GaussianAnalysis.random_matrix.restricted_isometry: cross_tail
forall [d : measure_display] [T : measurableType d] [n : nat] (S : {pred 'I_n}) (x y : n.-tuple T) (i : 'I_n), tnth (tuple_merge S x y) i = (if i \in S then tnth x i else tnth y i)
Statement as written in the source
Lemma tnth_merge x y i : tnth (tuple_merge x y) i = if i \in S then tnth x i else tnth y i.
Used by 7 declarations in 3 files
- this file: measurable_tuple_merge, tuple_prod_merge, tuple_merge_id, tuple_merge_dep_sub, tuple_merge_dep_disj
- GaussianAnalysis.probability.hanson_wright: hw_decoupled_mgf
- GaussianAnalysis.random_matrix.restricted_isometry: cross_tail
forall [d : measure_display] [T : measurableType d] [n : nat] (S : {pred 'I_n}), measurable_fun [set: ((n.-tuple _) * (n.-tuple _))] (fun p : n.-tuple T * n.-tuple T => tuple_merge S p.1 p.2)
Statement as written in the source
Lemma measurable_tuple_merge : measurable_fun setT (fun p : n.-tuple T * n.-tuple T => tuple_merge p.1 p.2).
Used by 5 declarations in 2 files
- this file: tuple_prod_merge, ge0_integral_tuple_prod_merge, measurable_merge_section, tuple_prod_cond_le
- GaussianAnalysis.probability.hanson_wright: hw_decoupled_mgf
Local Open Scope ereal_scope.
forall [d : measure_display] [T : measurableType d] [R : realType] [n : nat] (S : {pred 'I_n}) (mu : nat -> probability T R) [X : set (n.-tuple T)], (measure_tuple_display d).-measurable X -> (tuple_prod mu n \x tuple_prod mu n)%E ((fun p : n.-tuple T * n.-tuple T => tuple_merge S p.1 p.2) @^-1` X) = tuple_prod mu n X
Resampling the coordinates outside S does not change a product law.
Stated in the README together with tuple_merge.
Statement as written in the source
Lemma tuple_prod_merge (mu : nat -> probability T R) (X : set (n.-tuple T)) : measurable X -> (tuple_prod mu n \x tuple_prod mu n) ((fun p : n.-tuple T * n.-tuple T => tuple_merge p.1 p.2) @^-1` X) = tuple_prod mu n X.
Used by 1 declaration in 1 file
- this file: ge0_integral_tuple_prod_merge
Context d (T : measurableType d) (R : realType) (n : nat). Variable S : {pred 'I_n}. Local Open Scope ereal_scope.
forall [d : measure_display] [T : measurableType d] [R : realType] [n : nat] (S : {pred 'I_n}) (mu : nat -> probability T R) [F : n.-tuple T -> \bar R], measurable_fun [set: n.-tuple _] F -> (forall x : n.-tuple T, (0%R <= F x)%E) -> (\int[tuple_prod mu n]_x F x)%E = (\int[tuple_prod mu n]_x \int[tuple_prod mu n]_y F (tuple_merge S x y))%E
The coordinates outside S may be resampled independently.
Stated in the README together with tuple_merge.
Statement as written in the source
Lemma ge0_integral_tuple_prod_merge (mu : nat -> probability T R) (F : n.-tuple T -> \bar R) : measurable_fun setT F -> (forall x, 0 <= F x) -> \int[tuple_prod mu n]_x F x = \int[tuple_prod mu n]_x \int[tuple_prod mu n]_y F (tuple_merge S x y).
Used by 3 declarations in 2 files
- this file: tuple_prod_cond_le, tuple_prod_indepS
- GaussianAnalysis.probability.hanson_wright: hw_decoupled_mgf
forall [d : measure_display] [T : measurableType d] [n : nat] (S : {pred 'I_n}) [E : set (n.-tuple T)] (x : n.-tuple T), (measure_tuple_display d).-measurable E -> (measure_tuple_display d).-measurable [set y | E (tuple_merge S x y)]
Statement as written in the source
Lemma measurable_merge_section (E : set (n.-tuple T)) (x : n.-tuple T) : measurable E -> measurable [set y | E (tuple_merge S x y)].
Used by 2 declarations in 2 files
- this file: tuple_prod_cond_le
- GaussianAnalysis.random_matrix.restricted_isometry: cross_tail
forall [d : measure_display] [T : measurableType d] [R : realType] [n : nat] [S : {pred 'I_n}] [mu : nat -> probability T R] [E H : set (n.-tuple T)] [c : n.-tuple T -> \bar R], (measure_tuple_display d).-measurable E -> (measure_tuple_display d).-measurable H -> measurable_fun [set: n.-tuple _] c -> (forall x : n.-tuple T, (0%R <= c x)%E) -> (forall x y : n.-tuple T, H (tuple_merge S x y) = H x) -> (forall x : n.-tuple T, H x -> (tuple_prod mu n [set y | E (tuple_merge S x y)] <= c x)%E) -> (tuple_prod mu n (E `&` H) <= \int[tuple_prod mu n]_(x in H) c x)%E
If H depends only on the coordinates in S and, for x in H, resampling the coordinates outside S puts the tuple in E with probability at most c x, then E and H occur together with probability at most the integral of c over H.
Stated in the README together with tuple_merge.
Statement as written in the source
Lemma tuple_prod_cond_le (mu : nat -> probability T R) (E H : set (n.-tuple T)) (c : n.-tuple T -> \bar R) : measurable E -> measurable H -> measurable_fun setT c -> (forall x, 0 <= c x) -> (forall x y, H (tuple_merge S x y) = H x) -> (forall x, H x -> tuple_prod mu n [set y | E (tuple_merge S x y)] <= c x) -> tuple_prod mu n (E `&` H) <= \int[tuple_prod mu n]_(x in H) c x.
Used by 2 declarations in 2 files
- this file: tuple_prod_chain_le
- GaussianAnalysis.random_matrix.restricted_isometry: cross_tail
forall [d : measure_display] [T : measurableType d] [R : realType] [n : nat] [S : {pred 'I_n}] (mu : nat -> probability T R) [E F : set (n.-tuple T)], (measure_tuple_display d).-measurable E -> (measure_tuple_display d).-measurable F -> (forall x y : n.-tuple T, E (tuple_merge S x y) = E x) -> (forall x y : n.-tuple T, F (tuple_merge S x y) = F y) -> tuple_prod mu n (E `&` F) = (tuple_prod mu n E * tuple_prod mu n F)%E
Events that depend on the coordinates in S and outside S are independent.
Events that depend on pairwise disjoint sets of coordinates are independent. Revealing the coordinates in nested sets S 0, S 1, ...: if A l depends only on the coordinates in S (l + 1) and, given those in S l of a tuple of A 0, ..., A (l - 1), has probability at most c l, then P(A 0, ..., A (L - 1)) <= c 0 ... c (L - 1).
Statement as written in the source
Lemma tuple_prod_indepS (mu : nat -> probability T R) (E F : set (n.-tuple T)) : measurable E -> measurable F -> (forall x y, E (tuple_merge S x y) = E x) -> (forall x y, F (tuple_merge S x y) = F y) -> tuple_prod mu n (E `&` F) = tuple_prod mu n E * tuple_prod mu n F.
Used by 1 declaration in 1 file
- this file: tuple_prod_indep_big
Context d (T : measurableType d) (n : nat).
forall [d : measure_display] [T : measurableType d] [n : nat] [S : {pred 'I_n}] [x y : n.-tuple T], (forall i : 'I_n, i \in S -> tnth x i = tnth y i) -> tuple_merge S x y = y
Statement as written in the source
Lemma tuple_merge_id (S : {pred 'I_n}) (x y : n.-tuple T) : (forall i, i \in S -> tnth x i = tnth y i) -> tuple_merge S x y = y.
Used by 2 declarations in 1 file
- this file: tuple_merge_dep_sub, tuple_merge_dep_disj
forall [d : measure_display] [T : measurableType d] [n : nat] [S U : {pred 'I_n}] [E : set (n.-tuple T)], (forall x y : n.-tuple T, E (tuple_merge S x y) = E x) -> {subset S <= U} -> forall x y : n.-tuple T, E (tuple_merge U x y) = E x
An event that depends only on the coordinates in S depends only on the coordinates in any U that contains S.
Statement as written in the source
Lemma tuple_merge_dep_sub (S U : {pred 'I_n}) (E : set (n.-tuple T)) : (forall x y, E (tuple_merge S x y) = E x) -> {subset S <= U} -> forall x y, E (tuple_merge U x y) = E x.
Used by 2 declarations in 1 file
- this file: tuple_prod_indep_big, tuple_prod_chain_le
forall [d : measure_display] [T : measurableType d] [n : nat] [S U : {pred 'I_n}] [E : set (n.-tuple T)], (forall x y : n.-tuple T, E (tuple_merge S x y) = E x) -> (forall i : 'I_n, i \in S -> i \notin U) -> forall x y : n.-tuple T, E (tuple_merge U x y) = E y
It does not depend on the coordinates in a U disjoint from S.
Statement as written in the source
Lemma tuple_merge_dep_disj (S U : {pred 'I_n}) (E : set (n.-tuple T)) : (forall x y, E (tuple_merge S x y) = E x) -> (forall i, i \in S -> i \notin U) -> forall x y, E (tuple_merge U x y) = E y.
Used by 1 declaration in 1 file
- this file: tuple_prod_indep_big
Context d (T : measurableType d) (R : realType) (n : nat). Local Open Scope ereal_scope.
forall [d : measure_display] [T : measurableType d] [R : realType] [n : nat] (mu : nat -> probability T R) [k : nat] [S0 : nat -> {pred 'I_n}] [E : nat -> set (n.-tuple T)], (forall j : nat, (j < k)%N -> (measure_tuple_display d).-measurable (E j)) -> (forall (j j' : nat) (i : 'I_n), (j < k)%N -> (j' < k)%N -> j != j' -> i \in S0 j -> i \notin S0 j') -> (forall (j : nat) (x y : n.-tuple T), (j < k)%N -> E j (tuple_merge (S0 j) x y) = E j x) -> tuple_prod mu n (\bigcap_(j < k) E j) = (\prod_(j < k) tuple_prod mu n (E j))%E
Events that depend on pairwise disjoint sets of coordinates are independent.
Stated in the README together with tuple_prod_indepS.
Statement as written in the source
Lemma tuple_prod_indep_big (mu : nat -> probability T R) k (S : nat -> {pred 'I_n}) (E : nat -> set (n.-tuple T)) : (forall j, (j < k)%N -> measurable (E j)) -> (forall j j' i, (j < k)%N -> (j' < k)%N -> j != j' -> i \in S j -> i \notin S j') -> (forall j x y, (j < k)%N -> E j (tuple_merge (S j) x y) = E j x) -> tuple_prod mu n (\bigcap_(j < k) E j) = \prod_(j < k) tuple_prod mu n (E j).
Used by 1 declaration in 1 file
- GaussianAnalysis.matrix.covering: matrix_small_ball
forall [d : measure_display] [T : measurableType d] [R : realType] [n : nat] [mu : nat -> probability T R] [L : nat] [S0 : nat -> {pred 'I_n}] [A : nat -> set (n.-tuple T)] [c : nat -> R], (forall l : nat, (l < L)%N -> (measure_tuple_display d).-measurable (A l)) -> (forall l : nat, {subset S0 l <= S0 l.+1}) -> (forall (l : nat) (x y : n.-tuple T), (l < L)%N -> A l (tuple_merge (S0 l.+1) x y) = A l x) -> (forall l : nat, (l < L)%N -> 0 <= c l) -> (forall (l : nat) (x : n.-tuple T), (l < L)%N -> (\bigcap_(r < l) A r) x -> (tuple_prod mu n [set y | A l (tuple_merge (S0 l) x y)] <= (c l)%:E)%E) -> (tuple_prod mu n (\bigcap_(l < L) A l) <= (\prod_(l < L) c l)%:E)%E
Revealing the coordinates in nested sets S 0, S 1, ...: if the event A l depends only on the coordinates in S l.+1 and, given the coordinates in S l of a tuple of the earlier events, has probability at most c l, then the events A l, l < L, occur together with probability at most the product of the c l.
Stated in the README together with tuple_prod_indepS.
Statement as written in the source
Lemma tuple_prod_chain_le (mu : nat -> probability T R) L (S : nat -> {pred 'I_n}) (A : nat -> set (n.-tuple T)) (c : nat -> R) : (forall l, (l < L)%N -> measurable (A l)) -> (forall l, {subset S l <= S l.+1}) -> (forall l x y, (l < L)%N -> A l (tuple_merge (S l.+1) x y) = A l x) -> (forall l, (l < L)%N -> (0 <= c l)%R) -> (forall l x, (l < L)%N -> (\bigcap_(r < l) A r) x -> tuple_prod mu n [set y | A l (tuple_merge (S l) x y)] <= (c l)%:E) -> tuple_prod mu n (\bigcap_(l < L) A l) <= (\prod_(l < L) c l)%:E.
Context d (T : measurableType d) (R : realType) (n k : nat). Variable f : 'I_k -> 'I_n.
forall [d : measure_display] [T : measurableType d] [n k : nat],
('I_k -> 'I_n) -> n.-tuple T -> k.-tuple TDefinition tuple_pick (x : n.-tuple T) : k.-tuple T := [tuple tnth x (f i) | i < k].
The coordinates f 0, ..., f (k - 1) of x.
Used by 4 declarations in 2 files
- GaussianAnalysis.matrix.covering: colsum_mx_col, matrix_small_ball
- this file: measurable_tuple_pick, tuple_prod_pick
forall [d : measure_display] [T : measurableType d] [n k : nat] (f : 'I_k -> 'I_n), measurable_fun [set: n.-tuple _] (tuple_pick f)
Statement as written in the source
Lemma measurable_tuple_pick : measurable_fun setT tuple_pick.
Used by 2 declarations in 2 files
- GaussianAnalysis.matrix.covering: matrix_small_ball
- this file: tuple_prod_pick
forall [d : measure_display] [T : measurableType d] [R : realType] [n k : nat] [f : 'I_k -> 'I_n] [mu nu : nat -> probability T R] [B : set (k.-tuple T)], injective f -> (forall i : 'I_k, nu i = mu (f i)) -> (measure_tuple_display d).-measurable B -> tuple_prod mu n (tuple_pick f @^-1` B) = tuple_prod nu k B
For an injective f, the coordinates f 0, ..., f (k - 1) of a product law have the product law of their laws.
For an injective f : 'I_k -> 'I_n, the coordinates f 0, ..., f (k - 1) of tuple_prod mu n have the law tuple_prod nu k with nu i = mu (f i). The measure of a box is the product of the measures of its sides, and two finite measures on n.-tuple T that agree on the boxes agree.
Statement as written in the source
Lemma tuple_prod_pick (mu nu : nat -> probability T R) (B : set (k.-tuple T)) : injective f -> (forall i : 'I_k, nu i = mu (f i)) -> measurable B -> tuple_prod mu n (tuple_pick @^-1` B) = tuple_prod nu k B.
Used by 1 declaration in 1 file
- GaussianAnalysis.matrix.covering: matrix_small_ball