Skip to content

Commit 052c1d6

Browse files
committed
refactor sfun_op into mem_sfun_comp_pair
1 parent 144ba88 commit 052c1d6

2 files changed

Lines changed: 14 additions & 17 deletions

File tree

CHANGELOG_UNRELEASED.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
+ lemmas `singleton_bigcap`, `measurable1`
2121

2222
- in `simple_functions.v`:
23-
+ lemmas `sfun_op`, `sfun_submod_closed`
23+
+ lemmas `mem_sfun_comp_pair`, `sfun_submod_closed`
2424
+ `{sfun aT >-> borel_type V}` is an `lmodType` when `V` is a `normedModType`
2525

2626
- in `set_interval.v`:

theories/lebesgue_integral_theory/simple_functions.v

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -221,9 +221,8 @@ Section sfun_lmodType.
221221
Context d (aT : measurableType d) (R : realType).
222222
Import HBSimple.
223223

224-
Lemma sfun_op (U V W : normedModType R)
225-
(f : {sfun aT >-> U}) (g : {sfun aT >-> V})
226-
(h : U * V -> W) :
224+
Lemma mem_sfun_comp_pair (U V W : normedModType R) (f : {sfun aT >-> U})
225+
(g : {sfun aT >-> V}) (h : U * V -> W) :
227226
(fun x => h (f x, g x)) \in @sfun _ _ aT W.
228227
Proof.
229228
rewrite inE; apply/andP; split; rewrite inE/=.
@@ -232,28 +231,26 @@ rewrite inE; apply/andP; split; rewrite inE/=.
232231
\bigcup_(a in range f) (\bigcup_(b in range g)
233232
((f @^-1` [set a] `&` g @^-1` [set b]) `&` [set _ | Y (h (a, b))]))).
234233
apply/seteqP; split=> [x/= Yfg|x [a _] [b _] [[/= <- <-]]//].
235-
by exists (f x); [exists x|exists (g x); [exists x|split]].
234+
by exists (f x); [exists x|exists (g x); [exists x|]].
236235
apply: fin_bigcup_measurable; first exact: fimfunP.
237236
move=> a _; apply: fin_bigcup_measurable; first exact: fimfunP.
238-
move=> b _; apply: measurableI; last first.
239-
have [Yhab|Yhab] := pselect (Y (h (a, b))).
240-
by rewrite (_ : [set _ | _] = setT);
241-
[apply/seteqP; split|exact: measurableT].
242-
rewrite (_ : [set _ | _] = set0); last exact: measurable0.
243-
by apply/seteqP; split.
244-
apply: measurableI.
245-
exact: (measurable_funPTI f (measurable1 a)).
246-
exact: (measurable_funPTI g (measurable1 b)).
247-
apply: (sub_finite_set (B := h @` (range f `*` range g))).
237+
move=> b _; apply: measurableI.
238+
by apply: measurableI; exact/(measurable_funPTI _ (measurable1 _)).
239+
have [Yhab|Yhab] := pselect (Y (h (a, b))).
240+
by rewrite (_ : [set _ | _] = setT);
241+
[apply/seteqP; split|exact: measurableT].
242+
rewrite (_ : [set _ | _] = set0); last exact: measurable0.
243+
by apply/seteqP; split.
244+
apply: (@sub_finite_set _ _ (h @` (range f `*` range g))).
248245
by move=> _ [x _ <-]/=; exists (f x, g x) => //; split; exists x.
249-
by apply: finite_image; apply: finite_setX; exact: fimfunP.
246+
exact/finite_image/finite_setX/fimfunP.
250247
Qed.
251248

252249
Lemma sfun_submod_closed (V : normedModType R) :
253250
submod_closed (@sfun _ _ aT V).
254251
Proof.
255252
split=> [|k f g sf sg]; first exact: (valP (cst_sfun (0 : V))).
256-
exact: (sfun_op (sfun_Sub sf) (sfun_Sub sg) (fun t => k *: t.1 + t.2)).
253+
exact: (mem_sfun_comp_pair (sfun_Sub sf) (sfun_Sub sg) (fun t => k *: t.1 + t.2)).
257254
Qed.
258255

259256
HB.instance Definition _ (V : normedModType R) :=

0 commit comments

Comments
 (0)