]> matita.cs.unibo.it Git - helm.git/blob - matita/matita/contribs/lambdadelta/ground/lib/subset_equivalence.ma
b3957eaf304a6079d1dd03c0ccdbbcd9738b40ce
[helm.git] / matita / matita / contribs / lambdadelta / ground / lib / subset_equivalence.ma
1 (**************************************************************************)
2 (*       ___                                                              *)
3 (*      ||M||                                                             *)
4 (*      ||A||       A project by Andrea Asperti                           *)
5 (*      ||T||                                                             *)
6 (*      ||I||       Developers:                                           *)
7 (*      ||T||         The HELM team.                                      *)
8 (*      ||A||         http://helm.cs.unibo.it                             *)
9 (*      \   /                                                             *)
10 (*       \ /        This file is distributed under the terms of the       *)
11 (*        v         GNU General Public License Version 2                  *)
12 (*                                                                        *)
13 (**************************************************************************)
14
15 include "ground/notation/relations/arroweq_2.ma".
16 include "ground/lib/subset_inclusion.ma".
17
18 (* EQUIVALENCE FOR SUBSETS **************************************************)
19
20 definition subset_eq (A): relation2 𝒫❨A❩ 𝒫❨A❩ ≝
21            λu1,u2. ∧∧ u1 ⊆ u2 & u2 ⊆ u1.
22
23 interpretation
24   "equivalence (subset)"
25   'ArrowEq u1 u2 = (subset_eq ? u1 u2).
26
27 (* Basic destructions *******************************************************)
28
29 lemma subset_in_eq_repl_back (A) (a:A):
30       ∀u1. a ϵ u1 → ∀u2. u1 ⇔ u2 → a ϵ u2.
31 #A #a #u1 #Hu1 #u2 *
32 /2 width=1 by/
33 qed-.
34
35 lemma subset_in_eq_repl_fwd (A) (a:A):
36       ∀u1. a ϵ u1 → ∀u2. u2 ⇔ u1 → a ϵ u2.
37 #A #a #u1 #Hu1 #u2 *
38 /2 width=1 by/
39 qed-.
40
41 (* Basic constructions ******************************************************)
42
43 lemma subset_eq_refl (A):
44       reflexive … (subset_eq A).
45 /2 width=1 by conj/ qed.
46
47 lemma subset_eq_sym (A):
48       symmetric … (subset_eq A).
49 #A #u1 #u2 * /2 width=1 by conj/
50 qed-.
51
52 (* Main constructions *******************************************************)
53
54 theorem subset_eq_trans (A):
55         Transitive … (subset_eq A).
56 #A #u1 #u2 * #H12 #H21 #u3 * #H23 #H32
57 /3 width=5 by subset_le_trans, conj/
58 qed-.