]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/matita/nlibrary/sets/sets.ma
Use the inversion!
[helm.git] / helm / software / matita / nlibrary / sets / sets.ma
index 241282c1acde3865a377f1fea26436d4e0fa85ce..d4a13507c79bf6790b4d8dce4da16266dc8fb9cc 100644 (file)
@@ -52,8 +52,8 @@ ndefinition seteq: ∀A. equivalence_relation1 (Ω^A).
  #A; @
   [ napply (λS,S'. S ⊆ S' ∧ S' ⊆ S)
   | /2/
-  | #S; #S'; *; /2/
-  | #S; #T; #U; *; #H1; #H2; *; /3/]
+  | #S; #S'; *; /3/
+  | #S; #T; #U; *; #H1; #H2; *; /4/]
 nqed.
 
 include "sets/setoids1.ma".
@@ -107,38 +107,40 @@ unification hint 0 ≔ A;
   (* ----------------------------------------------------- *) ⊢  
                  carr1 R ≡ ext_powerclass A.
 
+(*
 interpretation "prop21 mem" 'prop2 l r = (prop21 (setoid1_of_setoid ?) (ext_powerclass_setoid ?) ? ? ???? l r).
-      
+*)
+    
 (*
 ncoercion ext_carr' : ∀A.∀x:ext_powerclass_setoid A. Ω^A ≝ ext_carr 
 on _x : (carr1 (ext_powerclass_setoid ?)) to (Ω^?). 
 *)
 
 nlemma mem_ext_powerclass_setoid_is_morph: 
- ∀A. binary_morphism1 (setoid1_of_setoid A) (ext_powerclass_setoid A) CPROP.
- #A; @
-  [ napply (λx,S. x ∈ S)
-  | #a; #a'; #b; #b'; #Ha; *; #Hb1; #Hb2; @; #H;
-     ##[ napply Hb1; napply (. (ext_prop … Ha^-1)); nassumption;
-     ##| napply Hb2; napply (. (ext_prop … Ha)); nassumption;
-     ##]
-  ##]
+ ∀A. unary_morphism1 (setoid1_of_setoid A) (unary_morphism1_setoid1 (ext_powerclass_setoid A) CPROP).
+ #A; napply (mk_binary_morphism1 … (λx:setoid1_of_setoid A.λS: 𝛀^A. x ∈ S));
+ #a; #a'; #b; #b'; #Ha; *; #Hb1; #Hb2; @; #H
+  [ napply (. (ext_prop … Ha^-1)) | napply (. (ext_prop … Ha)) ] /2/.
 nqed.
 
 unification hint 0 ≔  A:setoid, x, S;  
      SS ≟ (ext_carr ? S),
-     TT ≟ (mk_binary_morphism1 ??? 
-             (λx:setoid1_of_setoid ?.λS:ext_powerclass_setoid ?. x ∈ S) 
-             (prop21 ??? (mem_ext_powerclass_setoid_is_morph A))),
+     TT ≟ (mk_unary_morphism1 … 
+             (λx:setoid1_of_setoid ?.
+               mk_unary_morphism1 …
+                 (λS:ext_powerclass_setoid ?. x ∈ S)
+                 (prop11 … (mem_ext_powerclass_setoid_is_morph A x)))
+             (prop11 … (mem_ext_powerclass_setoid_is_morph A))),
      XX ≟ (ext_powerclass_setoid A)
   (*-------------------------------------*) ⊢ 
-      fun21 (setoid1_of_setoid A) XX CPROP TT x S 
+      fun11 (setoid1_of_setoid A)
+       (unary_morphism1_setoid1 XX CPROP) TT x S 
     ≡ mem A SS x.
 
-nlemma subseteq_is_morph: ∀A. binary_morphism1 (ext_powerclass_setoid A) (ext_powerclass_setoid A) CPROP.
- #A; @
-  [ napply (λS,S'. S ⊆ S')
-  | #a; #a'; #b; #b'; *; #Ha1; #Ha2; *;/4/]
+nlemma subseteq_is_morph: ∀A. unary_morphism1 (ext_powerclass_setoid A)
+ (unary_morphism1_setoid1 (ext_powerclass_setoid A) CPROP).
+ #A; napply (mk_binary_morphism1 … (λS,S':𝛀^A. S ⊆ S'));
+ #a; #a'; #b; #b'; *; #H1; #H2; *; /5/.
 nqed.
 
 unification hint 0 ≔ A,a,a'
@@ -160,45 +162,45 @@ unification hint 0 ≔
   (* ------------------------------------------*)  ⊢ 
     ext_carr A R ≡ intersect ? (ext_carr ? B) (ext_carr ? C).
 
-nlemma intersect_is_morph: 
- ∀A. binary_morphism1 (powerclass_setoid A) (powerclass_setoid A) (powerclass_setoid A).
- #A; @ (λS,S'. S ∩ S');
+nlemma intersect_is_morph:
+ ∀A. unary_morphism1 (powerclass_setoid A) (unary_morphism1_setoid1 (powerclass_setoid A) (powerclass_setoid A)).
+ #A; napply (mk_binary_morphism1 … (λS,S'. S ∩ S'));
  #a; #a'; #b; #b'; *; #Ha1; #Ha2; *; #Hb1; #Hb2; @; #x; nnormalize; *;/3/.
 nqed.
 
 alias symbol "hint_decl" = "hint_decl_Type1".
 unification hint 0 ≔ 
   A : Type[0], B,C : Ω^A;
-  R ≟ (mk_binary_morphism1 …
-       (λS,S'.S ∩ S'
-       (prop21 … (intersect_is_morph A)))
+  R ≟ (mk_unary_morphism1 …
+       (λS. mk_unary_morphism1 … (λS'.S ∩ S') (prop11 … (intersect_is_morph A S))
+       (prop11 … (intersect_is_morph A)))
    ⊢ 
-    fun21 (powerclass_setoid A) (powerclass_setoid A) (powerclass_setoid A) R B C 
-  ≡ intersect ? B C.
+    R B C  ≡ intersect ? B C.
 
-interpretation "prop21 ext" 'prop2 l r = (prop21 (ext_powerclass_setoid ?) (ext_powerclass_setoid ?) ? ? ???? l r).
+interpretation "prop21 ext" 'prop2 l r =
+ (prop11 (ext_powerclass_setoid ?)
+  (unary_morphism1_setoid1 (ext_powerclass_setoid ?) ?) ? ?? l ?? r).
 
 nlemma intersect_is_ext_morph: 
- ∀A. binary_morphism1 (ext_powerclass_setoid A) (ext_powerclass_setoid A) (ext_powerclass_setoid A).
- #A; @ (intersect_is_ext …); nlapply (prop21 … (intersect_is_morph A));
-#H; #a; #a'; #b; #b'; #H1; #H2; napply H; nassumption; 
+ ∀A. unary_morphism1 (ext_powerclass_setoid A)
+  (unary_morphism1_setoid1 (ext_powerclass_setoid A) (ext_powerclass_setoid A)).
+ #A; napply (mk_binary_morphism1 … (intersect_is_ext …));
+ #a; #a'; #b; #b'; #Ha; #Hb; napply (prop11 … (intersect_is_morph A)); nassumption.
 nqed.
 
 unification hint 1 ≔ 
       A:setoid, B,C : 𝛀^A;
-      R ≟ (mk_binary_morphism1 (ext_powerclass_setoid A) (ext_powerclass_setoid A) (ext_powerclass_setoid A)
-              (λS,S':carr1 (ext_powerclass_setoid A).
-                mk_ext_powerclass A (S∩S') (ext_prop A (intersect_is_ext ? S S'))) 
-              (prop21 … (intersect_is_ext_morph A))) ,
+      R ≟ (mk_unary_morphism1 …
+              (λS:ext_powerclass_setoid A.
+               mk_unary_morphism1 ??
+                (λS':ext_powerclass_setoid A.
+                  mk_ext_powerclass A (S∩S') (ext_prop A (intersect_is_ext ? S S')))
+                (prop11 … (intersect_is_ext_morph A S))) 
+              (prop11 … (intersect_is_ext_morph A))) ,
        BB ≟ (ext_carr ? B),
        CC ≟ (ext_carr ? C)
    (* ------------------------------------------------------*) ⊢ 
-            ext_carr A
-             (fun21 
-              (ext_powerclass_setoid A) 
-              (ext_powerclass_setoid A) 
-              (ext_powerclass_setoid A) R B C) ≡ 
-            intersect (carr A) BB CC.
+            ext_carr A (R B C) ≡ intersect (carr A) BB CC.
 
 (*
 alias symbol "hint_decl" = "hint_decl_Type2".
@@ -360,4 +362,4 @@ ncheck (λA:?.
    
    ;
  }.
-*)
+*)
\ No newline at end of file