Skip to content

Commit 2d350fd

Browse files
authored
Generalize quotient of Lspaces to all measurable functions (#1658)
1 parent 88e1e00 commit 2d350fd

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
@@ -207,6 +207,15 @@
207207
- in `measure.v`:
208208
+ fourth argument of `probability_setT` is now explicit
209209

210+
- in `hoelder.v`:
211+
+ generalized the quotient of Lspaces to all measurable functions rather than just Lp functions.
212+
+ consequently,
213+
* updated notation for measurable functions from `LfunType` to `{mfun_ mu , U >-> V }`
214+
* renamed definitions and lemmas from `Lequiv`, `Lequiv_refl`, `Lequiv_sym`, `Lequiv_trans`,
215+
`LspaceType` to `ae_eq_op`, `ae_eq_op_refl`, `ae_eq_op_sym`, `ae_eq_op_trans`, `aeEqMfun`
216+
* renamed lemma `LequivP` to `ae_eqP`
217+
218+
210219
### Renamed
211220

212221
- 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 *)
@@ -804,45 +805,61 @@ HB.instance Definition _ := gen_choiceMixin (LfunType mu p1).
804805

805806
End LfunType_canonical.
806807

807-
Section Lequiv.
808-
Context d (T : measurableType d) (R : realType).
809-
Variables (mu : {measure set T -> \bar R}) (p : \bar R) (p1 : (1 <= p)%E).
808+
Section AeEqEquiv.
809+
Context d1 d2 (R : realType) (T1 : measurableType d1) (T2 : measurableType d2).
810+
Variables (mu : {measure set T1 -> \bar R}).
810811

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

813-
Let Lequiv_refl : reflexive Lequiv.
814+
Let ae_eq_op_refl : reflexive ae_eq_op.
814815
Proof.
815816
by move=> f; exact/asboolP/(filterS _ (ae_eq_refl mu setT (EFin \o f))).
816817
Qed.
817818

818-
Let Lequiv_sym : symmetric Lequiv.
819+
Let ae_eq_op_sym : symmetric ae_eq_op.
819820
Proof.
820821
by move=> f g; apply/idP/idP => /asboolP h; apply/asboolP/ae_eq_sym.
821822
Qed.
822823

823-
Let Lequiv_trans : transitive Lequiv.
824+
Let ae_eq_op_trans : transitive ae_eq_op.
824825
Proof.
825826
by move=> f g h /asboolP gf /asboolP fh; apply/asboolP/(ae_eq_trans gf fh).
826827
Qed.
827828

828-
Canonical Lequiv_canonical :=
829-
EquivRel Lequiv Lequiv_refl Lequiv_sym Lequiv_trans.
829+
Canonical ae_eq_op_canonical :=
830+
EquivRel ae_eq_op ae_eq_op_refl ae_eq_op_sym ae_eq_op_trans.
830831

831832
Local Open Scope quotient_scope.
832833

833-
Definition LspaceType := {eq_quot Lequiv}.
834-
HB.instance Definition _ := Choice.on LspaceType.
835-
HB.instance Definition _ := EqQuotient.on LspaceType.
834+
Definition aeEqMfun : Type := {eq_quot ae_eq_op}.
835+
HB.instance Definition _ := Choice.on aeEqMfun.
836+
HB.instance Definition _ := EqQuotient.on aeEqMfun.
837+
Definition aqEqMfun_to_fun (f : aeEqMfun) : T1 -> T2 := repr f.
838+
Coercion aqEqMfun_to_fun : aeEqMfun >-> Funclass.
836839

837-
Lemma LequivP (f g : LfunType mu p1) :
838-
reflect (f = g %[ae mu]) (f == g %[mod LspaceType]).
840+
Lemma ae_eqP (f g : aeEqMfun) : reflect (f = g %[ae mu]) (f == g %[mod aeEqMfun]).
839841
Proof. by apply/(iffP idP); rewrite eqmodE// => /asboolP. Qed.
840842

841-
Record LType := MemLType { Lfun_class : LspaceType }.
842-
Coercion LfunType_of_LType (f : LType) : LfunType mu p1 :=
843-
repr (Lfun_class f).
843+
End AeEqEquiv.
844+
845+
Reserved Notation "{ 'mfun_' mu , U >-> V }"
846+
(at level 0, U at level 69, format "{ 'mfun_' mu , U >-> V }").
847+
848+
Notation "{ 'mfun_' mu , aT >-> T }" := (@aeEqMfun _ _ _ aT T mu)
849+
: form_scope.
844850

845-
End Lequiv.
851+
Import numFieldNormedType.Exports HBNNSimple.
852+
853+
HB.mixin Record isFinLebesgue d (T : measurableType d) (R : realType)
854+
(mu : {measure set T -> \bar R}) (p : \bar R) (p1 : (1 <= p)%E)
855+
(f : {mfun_ mu, T >-> measurableTypeR R}) := {
856+
Lebesgue_finite : finite_norm mu p f
857+
}.
858+
859+
#[short(type=LspaceType)]
860+
HB.structure Definition LebesgueSpace d (T : measurableType d) (R : realType)
861+
(mu : {measure set T -> \bar R}) (p : \bar R) (p1 : (1 <= p)%E) :=
862+
{f of isFinLebesgue d T R mu p p1 f}.
846863

847864
Section mfun_extra.
848865
Context d (T : measurableType d) (R : realType).
@@ -1052,12 +1069,12 @@ Section Lspace.
10521069
Context d (T : measurableType d) (R : realType).
10531070
Variable mu : {measure set T -> \bar R}.
10541071

1055-
Definition Lspace p (p1 : (1 <= p)%E) := [set: LType mu p1].
1072+
Definition Lspace p (p1 : (1 <= p)%E) := [set: LspaceType mu p1].
10561073
Arguments Lspace : clear implicits.
10571074

1058-
Definition LType1 := LType mu (@lexx _ _ 1%E).
1075+
Definition LspaceType1 := LspaceType mu (@lexx _ _ 1%E).
10591076

1060-
Definition LType2 := LType mu (lee1n 2).
1077+
Definition LspaceType2 := LspaceType mu (lee1n 2).
10611078

10621079
Lemma Lfun_norm (f : T -> R) : f \in Lfun mu 1 -> normr \o f \in Lfun mu 1.
10631080
Proof.

0 commit comments

Comments
 (0)