From 8f1a123e61ff079b1f9ad63cc915470ec7e6abf3 Mon Sep 17 00:00:00 2001 From: Ferruccio Guidi Date: Sun, 6 Nov 2022 19:24:03 +0100 Subject: [PATCH] update in ground + additions to subset extensionality --- .../contribs/lambdadelta/ground/lib/subset_ext.ma | 13 +++++++++++++ .../ground/lib/subset_ext_equivalence.ma | 7 +++++++ .../lambdadelta/ground/lib/subset_ext_inclusion.ma | 7 +++++++ 3 files changed, 27 insertions(+) diff --git a/matita/matita/contribs/lambdadelta/ground/lib/subset_ext.ma b/matita/matita/contribs/lambdadelta/ground/lib/subset_ext.ma index 5d623ad16..5839bfb10 100644 --- a/matita/matita/contribs/lambdadelta/ground/lib/subset_ext.ma +++ b/matita/matita/contribs/lambdadelta/ground/lib/subset_ext.ma @@ -19,6 +19,11 @@ include "ground/lib/subset.ma". definition subset_ext_f1 (A1) (A0) (f:A1→A0): 𝒫❨A1❩ → 𝒫❨A0❩ ≝ λu1,a0. ∃∃a1. a1 ϵ u1 & f a1 = a0. +definition subset_ext_f1_1 (A11) (A21) (A0) (f1:A11→A0) (f2:A21→A0): 𝒫❨A11❩ → 𝒫❨A21❩ → 𝒫❨A0❩ ≝ + λu11,u21,a0. + ∨∨ subset_ext_f1 A11 A0 f1 u11 a0 + | subset_ext_f1 A21 A0 f2 u21 a0. + definition subset_ext_p1 (A1) (Q:predicate A1): predicate (𝒫❨A1❩) ≝ λu1. ∀a1. a1 ϵ u1 → Q a1. @@ -28,6 +33,14 @@ lemma subset_in_ext_f1_dx (A1) (A0) (f) (u1) (a1): a1 ϵ u1 → f a1 ϵ subset_ext_f1 A1 A0 f u1. /2 width=3 by ex2_intro/ qed. +lemma subset_in_ext_f1_1_dx_1 (A11) (A21) (A0) (f1) (f2) (u11) (u21) (a11): + a11 ϵ u11 → f1 a11 ϵ subset_ext_f1_1 A11 A21 A0 f1 f2 u11 u21. +/3 width=3 by subset_in_ext_f1_dx, or_introl/ qed. + +lemma subset_in_ext_f1_1_dx_2 (A11) (A21) (A0) (f1) (f2) (u11) (u21) (a21): + a21 ϵ u21 → f2 a21 ϵ subset_ext_f1_1 A11 A21 A0 f1 f2 u11 u21. +/3 width=3 by subset_in_ext_f1_dx, or_intror/ qed. + (* Basic inversions *********************************************************) lemma subset_in_inv_ext_p1_dx (A1) (Q) (u1) (a1): diff --git a/matita/matita/contribs/lambdadelta/ground/lib/subset_ext_equivalence.ma b/matita/matita/contribs/lambdadelta/ground/lib/subset_ext_equivalence.ma index 28e4facc8..07df6b3e9 100644 --- a/matita/matita/contribs/lambdadelta/ground/lib/subset_ext_equivalence.ma +++ b/matita/matita/contribs/lambdadelta/ground/lib/subset_ext_equivalence.ma @@ -30,6 +30,13 @@ lemma subset_equivalence_ext_f1_bi (A1) (A0) (f) (u1) (v1): /3 width=3 by subset_inclusion_ext_f1_bi, conj/ qed. +lemma subset_equivalence_ext_f1_1_bi (A11) (A21) (A0) (f1) (f2) (u11) (u21) (v11) (v21): + u11 ⇔ v11 → u21 ⇔ v21 → + subset_ext_f1_1 A11 A21 A0 f1 f2 u11 u21 ⇔ subset_ext_f1_1 A11 A21 A0 f1 f2 v11 v21. +#A11 #A21 #A0 #f1 #f2 #u11 #u21 #v11 #v21 * #Huv11 #Hvu11 * #Huv21 #Hvu21 +/3 width=5 by subset_inclusion_ext_f1_1_bi, conj/ +qed. + lemma subset_inclusion_ext_f1_compose (A0) (A1) (A2) (f1) (f2) (u): subset_ext_f1 A1 A2 f2 (subset_ext_f1 A0 A1 f1 u) ⇔ subset_ext_f1 A0 A2 (f2∘f1) u. /3 width=1 by subset_inclusion_ext_f1_compose_dx, subset_inclusion_ext_f1_compose_sn, conj/ diff --git a/matita/matita/contribs/lambdadelta/ground/lib/subset_ext_inclusion.ma b/matita/matita/contribs/lambdadelta/ground/lib/subset_ext_inclusion.ma index f16fc373a..adc3fa667 100644 --- a/matita/matita/contribs/lambdadelta/ground/lib/subset_ext_inclusion.ma +++ b/matita/matita/contribs/lambdadelta/ground/lib/subset_ext_inclusion.ma @@ -44,6 +44,13 @@ lemma subset_inclusion_ext_f1_compose_dx (A0) (A1) (A2) (f1) (f2) (u): /3 width=1 by subset_in_ext_f1_dx/ qed. +lemma subset_inclusion_ext_f1_1_bi (A11) (A21) (A0) (f1) (f2) (u11) (u21) (v11) (v21): + u11 ⊆ v11 → u21 ⊆ v21 → + subset_ext_f1_1 A11 A21 A0 f1 f2 u11 u21 ⊆ subset_ext_f1_1 A11 A21 A0 f1 f2 v11 v21. +#A11 #A21 #A0 #f1 #f2 #u11 #u21 #v11 #v21 #Huv11 #Huv21 #a0 * +/3 width=3 by subset_inclusion_ext_f1_bi, or_introl, or_intror/ +qed. + lemma subset_inclusion_ext_p1_trans (A1) (Q) (u1) (v1): u1 ⊆ v1 → subset_ext_p1 A1 Q v1 → subset_ext_p1 A1 Q u1. #A1 #Q #u1 #v1 #Huv1 #Hv1 -- 2.39.2