diff --git a/Lebesgue/Set_theory/Set_system/Set_system_base_base.v b/Lebesgue/Set_theory/Set_system/Set_system_base_base.v index 11e2d3e6d6098c1538e77a7332b535b80384e186..40c779ae711c568c91d0cd05e4843ae7b27a79c3 100644 --- a/Lebesgue/Set_theory/Set_system/Set_system_base_base.v +++ b/Lebesgue/Set_theory/Set_system/Set_system_base_base.v @@ -341,6 +341,13 @@ Section Subset_Lift_Trace_Facts. Context {U : Type}. Variable A : set U. +Lemma Subset_equiv : + forall (P : set_system U) (B : set U), + Subset A P B <-> P B /\ incl B A. +Proof. +intros P B; split; intros H; try induction H; easy. +Qed. + Lemma Lift_Lift_full : forall (PA : subset_system A), Incl (Lift A PA) (Lift_full A PA). Proof. @@ -354,25 +361,31 @@ unfold Lift, Trace; setp_any_unfold. rewrite <- lift_trace, image_compose; easy. Qed. -Lemma Lift_Trace_equiv : +Lemma Lift_Trace_is_Subset : forall (P : set_system U), - Inter P -> - P A <-> compose (Lift A) (Trace A) P = Subset A P. + Inter P -> P A -> compose (Lift A) (Trace A) P = Subset A P. Proof. -intros P HP1; rewrite Lift_Trace; setp_any_unfold; split; intros HP2. -(* *) +intros P HP1 HP2; rewrite Lift_Trace; setp_any_unfold. apply Ext_equiv; split; intros B HB. -(* . *) +(* *) induction HB as [B HB]; apply Sub. apply HP1; easy. apply inter_lb_l. -(* . *) +(* *) induction HB as [P B HB1 HB2]. apply inter_right in HB2; rewrite <- HB2; easy. -(* *) -apply Ext_equiv in HP2. +Qed. + +Lemma Lift_Trace_is_Subset_rev : + forall (P : set_system U), + Union_seq P -> compose (Lift A) (Trace A) P = Subset A P -> P A. +Proof. +intros P HP1; rewrite Lift_Trace; setp_any_unfold; intros HP2'. +assert (HP2 : forall B, image (inter A) P B <-> P B /\ incl B A). + intros; rewrite <- Subset_equiv, <- HP2'; easy. +clear HP2'. + -Search inter incl. Admitted.