Skip to content

Commit ef83135

Browse files
committed
Generalize quotient of Lspaces to all measurable functions
1 parent ecc270f commit ef83135

2 files changed

Lines changed: 50 additions & 24 deletions

File tree

CHANGELOG_UNRELEASED.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,15 @@
201201
- in `measure.v`:
202202
+ fourth argument of `probability_setT` is now explicit
203203

204+
- in `hoelder.v`:
205+
+ generalized the quotient of Lspaces to all measurable functions rather than just Lp functions.
206+
+ consequently,
207+
* updated notation for measurable functions from `LfunType` to `{mfun_ mu , U >-> V }`
208+
* renamed definitions and lemmas from `Lequiv`, `Lequiv_refl`, `Lequiv_sym`, `Lequiv_trans`,
209+
`LspaceType` to `ae_eq_op`, `ae_eq_op_refl`, `ae_eq_op_sym`, `ae_eq_op_trans`, `aeEqMfun`
210+
* renamed lemma `LequivP` to `ae_eqP`
211+
212+
204213
### Renamed
205214

206215
- in `measure.v`

theories/hoelder.v

Lines changed: 41 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,10 @@ From mathcomp Require Import lebesgue_integral numfun exp convex.
3030
(* greater or equal to 1. *)
3131
(* The HB class is Lfunction. *)
3232
(* f \in Lfun == holds for f : LfunType mu p1 *)
33-
(* Lequiv f g == f is equal to g almost everywhere *)
34-
(* The functions f and g have type LfunType mu p1. *)
35-
(* Lequiv is made a canonical equivalence relation. *)
33+
(* ae_eq_op f g == boolean version of ae_eq, *)
34+
(* ae_eq_op is canonically an equivalence relation *)
35+
(* {mfun_mu, T1 >-> T2} == the quotient of measurable functions T1 -> T2, *)
36+
(* quotiented by the equivalence relation ae_eq_op *)
3637
(* LspaceType mu p1 == type of the elements of the Lp space for the *)
3738
(* measure mu *)
3839
(* mu.-Lspace p == Lp space as a set *)
@@ -817,45 +818,61 @@ HB.instance Definition _ := gen_choiceMixin (LfunType mu p1).
817818

818819
End LfunType_canonical.
819820

820-
Section Lequiv.
821-
Context d (T : measurableType d) (R : realType).
822-
Variables (mu : {measure set T -> \bar R}) (p : \bar R) (p1 : (1 <= p)%E).
821+
Section AeEqEquiv.
822+
Context d1 d2 (R : realType) (T1 : measurableType d1) (T2 : measurableType d2).
823+
Variables (mu : {measure set T1 -> \bar R}).
823824

824-
Definition Lequiv (f g : LfunType mu p1) := `[< f = g %[ae mu] >].
825+
Definition ae_eq_op (f g : {mfun T1 >-> T2}) := `[< f = g %[ae mu] >].
825826

826-
Let Lequiv_refl : reflexive Lequiv.
827+
Let ae_eq_op_refl : reflexive ae_eq_op.
827828
Proof.
828829
by move=> f; exact/asboolP/(filterS _ (ae_eq_refl mu setT (EFin \o f))).
829830
Qed.
830831

831-
Let Lequiv_sym : symmetric Lequiv.
832+
Let ae_eq_op_sym : symmetric ae_eq_op.
832833
Proof.
833834
by move=> f g; apply/idP/idP => /asboolP h; apply/asboolP/ae_eq_sym.
834835
Qed.
835836

836-
Let Lequiv_trans : transitive Lequiv.
837+
Let ae_eq_op_trans : transitive ae_eq_op.
837838
Proof.
838839
by move=> f g h /asboolP gf /asboolP fh; apply/asboolP/(ae_eq_trans gf fh).
839840
Qed.
840841

841-
Canonical Lequiv_canonical :=
842-
EquivRel Lequiv Lequiv_refl Lequiv_sym Lequiv_trans.
842+
Canonical ae_eq_op_canonical :=
843+
EquivRel ae_eq_op ae_eq_op_refl ae_eq_op_sym ae_eq_op_trans.
843844

844845
Local Open Scope quotient_scope.
845846

846-
Definition LspaceType := {eq_quot Lequiv}.
847-
HB.instance Definition _ := Choice.on LspaceType.
848-
HB.instance Definition _ := EqQuotient.on LspaceType.
847+
Definition aeEqMfun : Type := {eq_quot ae_eq_op}.
848+
HB.instance Definition _ := Choice.on aeEqMfun.
849+
HB.instance Definition _ := EqQuotient.on aeEqMfun.
850+
Definition aqEqMfun_to_fun (f : aeEqMfun) : T1 -> T2 := repr f.
851+
Coercion aqEqMfun_to_fun : aeEqMfun >-> Funclass.
849852

850-
Lemma LequivP (f g : LfunType mu p1) :
851-
reflect (f = g %[ae mu]) (f == g %[mod LspaceType]).
853+
Lemma ae_eqP (f g : aeEqMfun) : reflect (f = g %[ae mu]) (f == g %[mod aeEqMfun]).
852854
Proof. by apply/(iffP idP); rewrite eqmodE// => /asboolP. Qed.
853855

854-
Record LType := MemLType { Lfun_class : LspaceType }.
855-
Coercion LfunType_of_LType (f : LType) : LfunType mu p1 :=
856-
repr (Lfun_class f).
856+
End AeEqEquiv.
857+
858+
Reserved Notation "{ 'mfun_' mu , U >-> V }"
859+
(at level 0, U at level 69, format "{ 'mfun_' mu , U >-> V }").
860+
861+
Notation "{ 'mfun_' mu , aT >-> T }" := (@aeEqMfun _ _ _ aT T mu)
862+
: form_scope.
857863

858-
End Lequiv.
864+
Import numFieldNormedType.Exports HBNNSimple.
865+
866+
HB.mixin Record isFinLebesgue d (T : measurableType d) (R : realType)
867+
(mu : {measure set T -> \bar R}) (p : \bar R) (p1 : (1 <= p)%E)
868+
(f : {mfun_ mu, T >-> measurableTypeR R}) := {
869+
Lebesgue_finite : finite_norm mu p f
870+
}.
871+
872+
#[short(type=LspaceType)]
873+
HB.structure Definition LebesgueSpace d (T : measurableType d) (R : realType)
874+
(mu : {measure set T -> \bar R}) (p : \bar R) (p1 : (1 <= p)%E) :=
875+
{f of isFinLebesgue d T R mu p p1 f}.
859876

860877
Section mfun_extra.
861878
Context d (T : measurableType d) (R : realType).
@@ -1065,12 +1082,12 @@ Section Lspace.
10651082
Context d (T : measurableType d) (R : realType).
10661083
Variable mu : {measure set T -> \bar R}.
10671084

1068-
Definition Lspace p (p1 : (1 <= p)%E) := [set: LType mu p1].
1085+
Definition Lspace p (p1 : (1 <= p)%E) := [set: LspaceType mu p1].
10691086
Arguments Lspace : clear implicits.
10701087

1071-
Definition LType1 := LType mu (@lexx _ _ 1%E).
1088+
Definition LspaceType1 := LspaceType mu (@lexx _ _ 1%E).
10721089

1073-
Definition LType2 := LType mu (lee1n 2).
1090+
Definition LspaceType2 := LspaceType mu (lee1n 2).
10741091

10751092
Lemma Lfun_integrable (f : T -> R) r :
10761093
1 <= r -> f \in Lfun mu r%:E ->

0 commit comments

Comments
 (0)