]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/matita/library/datatypes/subsets.ma
maction support added to notation, adopted for = AKA = \sub t
[helm.git] / helm / software / matita / library / datatypes / subsets.ma
index 5483dfa37f1fd648a38eca5727cd9cb9d05cc134..8c7963d67ea3a28b3073cadb844f27d1d25f713a 100644 (file)
@@ -26,6 +26,8 @@ theorem transitive_subseteq_operator: ∀A. transitive ? (subseteq_operator A).
  assumption.
 qed.
 
+(*
+
 definition powerset_setoid: setoid → setoid1.
  intros (T);
  constructor 1;
@@ -74,6 +76,14 @@ qed.
 
 interpretation "subseteq" 'subseteq U V = (fun1 ___ (subseteq _) U V).
 
+theorem subseteq_refl: ∀A.∀S:Ω \sup A.S ⊆ S.
+ intros 4; assumption.
+qed.
+
+theorem subseteq_trans: ∀A.∀S1,S2,S3: Ω \sup A. S1 ⊆ S2 → S2 ⊆ S3 → S1 ⊆ S3.
+ intros; apply transitive_subseteq_operator; [apply S2] assumption.
+qed.
+
 definition overlaps: ∀A. binary_morphism1 (Ω \sup A) (Ω \sup A) CPROP.
  intros;
  constructor 1;
@@ -116,12 +126,17 @@ qed.
 
 interpretation "union" 'union U V = (fun1 ___ (union _) U V).
 
-definition singleton: ∀A:setoid. A → Ω \sup A.
- apply (λA:setoid.λa:A.{b | a=b});
- intros; simplify;
- split; intro;
- apply (.= H1);
-  [ apply H | apply (H \sup -1) ]
+definition singleton: ∀A:setoid. unary_morphism A (Ω \sup A).
+ intros; constructor 1;
+  [ apply (λA:setoid.λa:A.{b | a=b});
+    intros; simplify;
+    split; intro;
+    apply (.= H1);
+     [ apply H | apply (H \sup -1) ]
+  | intros; split; intros 2; simplify in f ⊢ %; apply trans;
+     [ apply a |4: apply a'] try assumption; apply sym; assumption]
 qed.
 
-interpretation "singleton" 'singl a = (singleton _ a).
+interpretation "singleton" 'singl a = (fun_1 __ (singleton _) a).
+
+*)
\ No newline at end of file