@@ -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
805806End 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 .
814815Proof .
815816by move=> f; exact/asboolP/(filterS _ (ae_eq_refl mu setT (EFin \o f))).
816817Qed .
817818
818- Let Lequiv_sym : symmetric Lequiv .
819+ Let ae_eq_op_sym : symmetric ae_eq_op .
819820Proof .
820821by move=> f g; apply/idP/idP => /asboolP h; apply/asboolP/ae_eq_sym.
821822Qed .
822823
823- Let Lequiv_trans : transitive Lequiv .
824+ Let ae_eq_op_trans : transitive ae_eq_op .
824825Proof .
825826by move=> f g h /asboolP gf /asboolP fh; apply/asboolP/(ae_eq_trans gf fh).
826827Qed .
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
831832Local 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]).
839841Proof . 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
847864Section mfun_extra.
848865Context d (T : measurableType d) (R : realType).
@@ -1052,12 +1069,12 @@ Section Lspace.
10521069Context d (T : measurableType d) (R : realType).
10531070Variable 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].
10561073Arguments 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
10621079Lemma Lfun_norm (f : T -> R) : f \in Lfun mu 1 -> normr \o f \in Lfun mu 1.
10631080Proof .
0 commit comments