1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
15 include "ground/lib/subset_inclusion.ma".
16 include "ground/lib/subset_ext.ma".
17 include "ground/lib/exteq.ma".
19 (* EXTENSIONS FOR SUBSETS ***************************************************)
21 (* Constructions with subset_inclusion **************************************)
23 lemma subset_inclusion_ext_f1_exteq (A1) (A0) (f1) (f2) (u):
24 f1 ⊜ f2 → subset_ext_f1 A1 A0 f1 u ⊆ subset_ext_f1 A1 A0 f2 u.
25 #A1 #A0 #f1 #f2 #u #Hf #a0 * #a1 #Hau1 #H destruct
26 /2 width=1 by subset_in_ext_f1_dx/
29 lemma subset_inclusion_ext_f1_bi (A1) (A0) (f) (u1) (v1):
30 u1 ⊆ v1 → subset_ext_f1 A1 A0 f u1 ⊆ subset_ext_f1 A1 A0 f v1.
31 #A1 #A0 #f #u1 #v1 #Huv1 #a0 * #a1 #Hau1 #H destruct
32 /3 width=3 by subset_in_ext_f1_dx/
35 lemma subset_inclusion_ext_f1_compose_sn (A0) (A1) (A2) (f1) (f2) (u):
36 subset_ext_f1 A1 A2 f2 (subset_ext_f1 A0 A1 f1 u) ⊆ subset_ext_f1 A0 A2 (f2∘f1) u.
37 #A0 #A1 #A2 #f1 #f2 #u #a2 * #a1 * #a0 #Ha0 #H1 #H2 destruct
38 /2 width=1 by subset_in_ext_f1_dx/
41 lemma subset_inclusion_ext_f1_compose_dx (A0) (A1) (A2) (f1) (f2) (u):
42 subset_ext_f1 A0 A2 (f2∘f1) u ⊆ subset_ext_f1 A1 A2 f2 (subset_ext_f1 A0 A1 f1 u).
43 #A0 #A1 #A2 #f1 #f2 #u #a2 * #a0 #Ha0 #H0 destruct
44 /3 width=1 by subset_in_ext_f1_dx/
47 lemma subset_inclusion_ext_f1_1_bi (A11) (A21) (A0) (f1) (f2) (u11) (u21) (v11) (v21):
48 u11 ⊆ v11 → u21 ⊆ v21 →
49 subset_ext_f1_1 A11 A21 A0 f1 f2 u11 u21 ⊆ subset_ext_f1_1 A11 A21 A0 f1 f2 v11 v21.
50 #A11 #A21 #A0 #f1 #f2 #u11 #u21 #v11 #v21 #Huv11 #Huv21 #a0 *
51 /3 width=3 by subset_inclusion_ext_f1_bi, or_introl, or_intror/
54 lemma subset_inclusion_ext_p1_trans (A1) (Q) (u1) (v1):
55 u1 ⊆ v1 → subset_ext_p1 A1 Q v1 → subset_ext_p1 A1 Q u1.
56 #A1 #Q #u1 #v1 #Huv1 #Hv1