@@ -817,45 +817,61 @@ HB.instance Definition _ := gen_choiceMixin (LfunType mu p1).
817817
818818End LfunType_canonical.
819819
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 ).
820+ Section AeEqEquiv .
821+ Context d1 d2 (R : realType) (T1 : measurableType d1 ) (T2 : measurableType d2 ).
822+ Variables (mu : {measure set T1 -> \bar R}).
823823
824- Definition Lequiv (f g : LfunType mu p1 ) := `[< f = g %[ae mu] >].
824+ Definition ae_eq_op (f g : {mfun T1 >-> T2} ) := `[< f = g %[ae mu] >].
825825
826- Let Lequiv_refl : reflexive Lequiv .
826+ Let ae_eq_op_refl : reflexive ae_eq_op .
827827Proof .
828828by move=> f; exact/asboolP/(filterS _ (ae_eq_refl mu setT (EFin \o f))).
829829Qed .
830830
831- Let Lequiv_sym : symmetric Lequiv .
831+ Let ae_eq_op_sym : symmetric ae_eq_op .
832832Proof .
833833by move=> f g; apply/idP/idP => /asboolP h; apply/asboolP/ae_eq_sym.
834834Qed .
835835
836- Let Lequiv_trans : transitive Lequiv .
836+ Let ae_eq_op_trans : transitive ae_eq_op .
837837Proof .
838838by move=> f g h /asboolP gf /asboolP fh; apply/asboolP/(ae_eq_trans gf fh).
839839Qed .
840840
841- Canonical Lequiv_canonical :=
842- EquivRel Lequiv Lequiv_refl Lequiv_sym Lequiv_trans .
841+ Canonical ae_eq_op_canonical :=
842+ EquivRel ae_eq_op ae_eq_op_refl ae_eq_op_sym ae_eq_op_trans .
843843
844844Local Open Scope quotient_scope.
845845
846- Definition LspaceType := {eq_quot Lequiv}.
847- HB.instance Definition _ := Choice.on LspaceType.
848- HB.instance Definition _ := EqQuotient.on LspaceType.
846+ Definition aeEqMfun : Type := {eq_quot ae_eq_op}.
847+ HB.instance Definition _ := Choice.on aeEqMfun.
848+ HB.instance Definition _ := EqQuotient.on aeEqMfun.
849+ Definition aqEqMfun_to_fun (f : aeEqMfun) : T1 -> T2 := repr f.
850+ Coercion aqEqMfun_to_fun : aeEqMfun >-> Funclass.
849851
850- Lemma LequivP (f g : LfunType mu p1) :
851- reflect (f = g %[ae mu]) (f == g %[mod LspaceType]).
852+ Lemma ae_eqP (f g : aeEqMfun) : reflect (f = g %[ae mu]) (f == g %[mod aeEqMfun]).
852853Proof . by apply/(iffP idP); rewrite eqmodE// => /asboolP. Qed .
853854
854- Record LType := MemLType { Lfun_class : LspaceType }.
855- Coercion LfunType_of_LType (f : LType) : LfunType mu p1 :=
856- repr (Lfun_class f).
855+ End AeEqEquiv.
856+
857+ Reserved Notation "{ 'mfun_' mu , U >-> V }"
858+ (at level 0, U at level 69, format "{ 'mfun_' mu , U >-> V }").
859+
860+ Notation "{ 'mfun_' mu , aT >-> T }" := (@aeEqMfun _ _ _ aT T mu)
861+ : form_scope.
857862
858- End Lequiv.
863+ Import numFieldNormedType.Exports HBNNSimple.
864+
865+ HB.mixin Record isFinLebesgue d (T : measurableType d) (R : realType)
866+ (mu : {measure set T -> \bar R}) (p : \bar R) (p1 : (1 <= p)%E)
867+ (f : {mfun_ mu, T >-> measurableTypeR R}) := {
868+ Lebesgue_finite : finite_norm mu p f
869+ }.
870+
871+ #[short(type=LType)]
872+ HB.structure Definition LebesgueSpace d (T : measurableType d) (R : realType)
873+ (mu : {measure set T -> \bar R}) (p : \bar R) (p1 : (1 <= p)%E) :=
874+ {f of isFinLebesgue d T R mu p p1 f}.
859875
860876Section mfun_extra.
861877Context d (T : measurableType d) (R : realType).
0 commit comments