@@ -721,6 +721,11 @@ case=> J ->; exists J.
721721by under [in RHS]eq_bigr do rewrite normr_id.
722722Qed .
723723
724+ Lemma esum_psum_abs S :
725+ summable \`| S | ->
726+ (PosSum.psum (fun y => S y))%:E = \esum_(y in [set: T]) `|S y|%:E.
727+ Proof . by move => ?; rewrite -psum_abs -esum_psum. Qed .
728+
724729Lemma eq_psum_abs S1 S2 : \`|S1| =1 \`|S2| -> PosSum.psum S1 = PosSum.psum S2.
725730Proof .
726731by move=> eqS; rewrite -[LHS]psum_abs -[RHS]psum_abs; apply/eq_psum.
@@ -1104,8 +1109,42 @@ Qed.
11041109
11051110End PSumInterchange.
11061111
1107- #[deprecated(since="1.17.0", note="use `interchange_psum` instead")]
1108- Notation __admitted__interchange_psum := interchange_psum (only parsing).
1112+ (* -------------------------------------------------------------------- *)
1113+ Section PSumInterchangeEsum.
1114+ Context {R : realType} {T U : choiceType} (S: T -> U -> R).
1115+ Hypothesis H1 : (forall x, summable (S x)).
1116+ Hypothesis H2 : summable (PosSum.psum \o S).
1117+
1118+ Lemma esum_psum_abs2:
1119+ (PosSum.psum (fun x => PosSum.psum (fun y => S x y)))%:E =
1120+ \esum_(x in [set: T]) \esum_(y in [set: U]) `|S x y|%:E.
1121+ Proof .
1122+ rewrite -esum_psum//; first by move=> x; exact: ge0_psum.
1123+ by apply: eq_esum => x _; rewrite esum_psum_abs // summable_abs.
1124+ Qed .
1125+
1126+ Lemma interchange_psum_alt :
1127+ PosSum.psum (PosSum.psum \o S) =
1128+ PosSum.psum (fun y => PosSum.psum (S ^~ y)).
1129+ Proof .
1130+ apply: EFin_inj; rewrite esum_psum_abs2 exchange_esum.
1131+ + by move => ? ?; rewrite lee_fin.
1132+ have summable_y y : summable (fun x : T => `|S x y|).
1133+ + apply: (le_summable (F2 := fun x => PosSum.psum (fun y' => S x y'))) => // x.
1134+ by apply/andP; split; [exact: normr_ge0 | exact: ger1_psum y (H1 x)].
1135+ under eq_esum => y _ do rewrite -esum_psum_abs //.
1136+ rewrite -esum_psum//.
1137+ + by move=> y; exact: ge0_psum.
1138+ apply /esum_summableP; rewrite /esum.summable.
1139+ apply: (@le_lt_trans _ _ (\esum_(y in [set: U]) (PosSum.psum (fun x => S x y))%:E)).
1140+ + by apply le_esum=> y _; rewrite /comp/= ger0_norm// ge0_psum.
1141+ under eq_esum => y _ do rewrite esum_psum_abs//.
1142+ rewrite exchange_esum.
1143+ + by move => ? ?; rewrite lee_fin.
1144+ + by rewrite -esum_psum_abs2 ltey.
1145+ Qed .
1146+
1147+ End PSumInterchangeEsum.
11091148
11101149(* -------------------------------------------------------------------- *)
11111150Section SumTheory.
0 commit comments