@@ -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
818819End 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 .
827828Proof .
828829by move=> f; exact/asboolP/(filterS _ (ae_eq_refl mu setT (EFin \o f))).
829830Qed .
830831
831- Let Lequiv_sym : symmetric Lequiv .
832+ Let ae_eq_op_sym : symmetric ae_eq_op .
832833Proof .
833834by move=> f g; apply/idP/idP => /asboolP h; apply/asboolP/ae_eq_sym.
834835Qed .
835836
836- Let Lequiv_trans : transitive Lequiv .
837+ Let ae_eq_op_trans : transitive ae_eq_op .
837838Proof .
838839by move=> f g h /asboolP gf /asboolP fh; apply/asboolP/(ae_eq_trans gf fh).
839840Qed .
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
844845Local 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]).
852854Proof . 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
860877Section mfun_extra.
861878Context d (T : measurableType d) (R : realType).
@@ -1065,12 +1082,12 @@ Section Lspace.
10651082Context d (T : measurableType d) (R : realType).
10661083Variable 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].
10691086Arguments 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
10751092Lemma Lfun_integrable (f : T -> R) r :
10761093 1 <= r -> f \in Lfun mu r%:E ->
0 commit comments