proposition: Lemma jtdec_map epsilon (P : {fdist A}) (W : `Ch(A, B)) (f : encT A M n) tb m0 m1 : (prod_rV (f m0, tb) \in `JTS P W n epsilon) && [forall m', (m' != m0) ==> (prod_rV (f m', tb) \notin `JTS P W n epsilon)] -> (prod_rV (f m1, tb) \in `JTS P W n epsilon) && [forall m', (m' != m1) ==> (prod_rV (f m', tb) \notin `JTS P W n epsilon)] -> m0 = m1.
proof: Proof. case/andP. rewrite /prod_rV /= => H1 H2. case/andP => H1'. move/forallP/(_ m0). rewrite implybE. case/orP. - rewrite negbK; by move/eqP. - by rewrite H1. Qed.
imports: mathcomp(all_ssreflect ssralg ssrnum matrix perm) Reals Lra Classical mathcomp(Rstruct classical_sets) ssrZ ssrR Reals_ext realType_ext logb ssr_ext ssralg_ext bigop_ext fdist proba entropy aep typ_seq joint_typ_seq channel channel_code