]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/matita/nlibrary/sets/sets.ma
hints polished and fixed to allow recursive inference of ext_carr
[helm.git] / helm / software / matita / nlibrary / sets / sets.ma
index 0038ad4f652bcea45dcc2e2866fd191d6fe2bc77..c8f303a6b407920f101126160a4b6d6333d9acfc 100644 (file)
@@ -119,20 +119,18 @@ nlemma mem_ext_powerclass_setoid_is_morph:
 [ napply (. (ext_prop ā€¦ Ha^-1)) | napply (. (ext_prop ā€¦ Ha)) ] /2/.
 nqed.
 
-unification hint 0 ā‰”  AA, x, S;  
+unification hint 0 ā‰”  AA : setoid, S : š›€^AA, x : carr AA;  
      A ā‰Ÿ carr AA,
      SS ā‰Ÿ (ext_carr ? S),
      TT ā‰Ÿ (mk_unary_morphism1 ?? 
-             (Ī»x:setoid1_of_setoid ?.
+             (Ī»x:carr1 (setoid1_of_setoid ?).
                mk_unary_morphism1 ??
-                 (Ī»S:ext_powerclass_setoid ?. x āˆˆ S)
-                 (prop11 ?? (mem_ext_powerclass_setoid_is_morph AA x)))
+                 (Ī»S:carr1 (ext_powerclass_setoid ?). x āˆˆ (ext_carr ? S))
+                 (prop11 ?? (fun11 ?? (mem_ext_powerclass_setoid_is_morph AA) x)))
              (prop11 ?? (mem_ext_powerclass_setoid_is_morph AA))),
-     XX ā‰Ÿ (ext_powerclass_setoid AA)
-  (*-------------------------------------*) āŠ¢ 
-      fun11 (setoid1_of_setoid AA)
-       (unary_morphism1_setoid1 XX CPROP) TT x S 
-    ā‰” mem A SS x.
+     T2 ā‰Ÿ (ext_powerclass_setoid AA)
+(*---------------------------------------------------------------------------*) āŠ¢ 
+    fun11 T2 CPROP (fun11 (setoid1_of_setoid AA) (unary_morphism1_setoid1 T2 CPROP) TT x) S ā‰” mem A SS x.
 
 nlemma set_ext : āˆ€S.āˆ€A,B:Ī©^S.A =_1 B ā†’ āˆ€x:S.(x āˆˆ A) =_1 (x āˆˆ B).
 #S A B; *; #H1 H2 x; @; ##[ napply H1 | napply H2] nqed.
@@ -153,11 +151,15 @@ nlemma intersect_is_ext: āˆ€A. š›€^A ā†’ š›€^A ā†’ š›€^A.
 nqed.
 
 alias symbol "hint_decl" = "hint_decl_Type1".
-unification hint 0 ā‰” 
-  A : setoid, B,C : ext_powerclass A;
-  R ā‰Ÿ (mk_ext_powerclass ? (B āˆ© C) (ext_prop ? (intersect_is_ext ? B C))) 
+unification hint 0 ā‰” A : setoid, B,C : š›€^A;
+  AA ā‰Ÿ carr A,
+  BB ā‰Ÿ ext_carr ? B,
+  CC ā‰Ÿ ext_carr ? C,
+  R ā‰Ÿ (mk_ext_powerclass ? 
+        (ext_carr ? B āˆ© ext_carr ? C) 
+        (ext_prop ? (intersect_is_ext ? B C))) 
   (* ------------------------------------------*)  āŠ¢ 
-    ext_carr A R ā‰” intersect ? (ext_carr ? B) (ext_carr ? C).
+    ext_carr A R ā‰” intersect AA BB CC.
     
 nlemma intersect_is_morph: āˆ€A. Ī©^A ā‡’_1 Ī©^A ā‡’_1 Ī©^A.
 #A; napply (mk_binary_morphism1 ā€¦ (Ī»S,S'. S āˆ© S'));
@@ -168,7 +170,8 @@ alias symbol "hint_decl" = "hint_decl_Type1".
 unification hint 0 ā‰” A : Type[0], B,C : Ī©^A;
   T ā‰Ÿ powerclass_setoid A,
   R ā‰Ÿ mk_unary_morphism1 ??
-       (Ī»S. mk_unary_morphism1 ?? (Ī»S'.S āˆ© S') (prop11 ?? (intersect_is_morph A S))) 
+       (Ī»X. mk_unary_morphism1 ?? 
+         (Ī»Y.X āˆ© Y) (prop11 ?? (fun11 ?? (intersect_is_morph A) X))) 
        (prop11 ?? (intersect_is_morph A))
 (*------------------------------------------------------------------------*) āŠ¢ 
     fun11 T T (fun11 T (unary_morphism1_setoid1 T T) R B) C  ā‰” intersect A B C.
@@ -186,12 +189,12 @@ unification hint 1 ā‰”
       AA : setoid, B,C : š›€^AA;
       A ā‰Ÿ carr AA,
       T ā‰Ÿ ext_powerclass_setoid AA,
-      R ā‰Ÿ (mk_unary_morphism1 ??
-              (Ī»S:š›€^AA.
-               mk_unary_morphism1 ??
-                (Ī»S':š›€^AA.
-                  mk_ext_powerclass AA (Sāˆ©S') (ext_prop AA (intersect_is_ext ? S S')))
-                (prop11 ?? (intersect_is_ext_morph AA S))) 
+      R ā‰Ÿ (mk_unary_morphism1 ?? (Ī»X:š›€^AA.
+               mk_unary_morphism1 ?? (Ī»Y:š›€^AA.
+                  mk_ext_powerclass AA 
+                    (ext_carr ? X āˆ© ext_carr ? Y) 
+                    (ext_prop AA (intersect_is_ext ? X Y)))
+                (prop11 ?? (fun11 ?? (intersect_is_ext_morph AA) X))) 
               (prop11 ?? (intersect_is_ext_morph AA))) ,
        BB ā‰Ÿ (ext_carr ? B),
        CC ā‰Ÿ (ext_carr ? C)
@@ -217,16 +220,20 @@ nassumption;
 nqed.
 
 alias symbol "hint_decl" = "hint_decl_Type1".
-unification hint 0 ā‰”
-   A : setoid, B,C :  š›€^A;
-   R ā‰Ÿ (mk_ext_powerclass ? (B āˆŖ C) (ext_prop ? (union_is_ext ? B C)))
+unification hint 0 ā‰” A : setoid, B,C :  š›€^A;
+   AA ā‰Ÿ carr A,
+   BB ā‰Ÿ ext_carr ? B,
+   CC ā‰Ÿ ext_carr ? C,
+   R ā‰Ÿ mk_ext_powerclass ? 
+         (ext_carr ? B āˆŖ ext_carr ? C) (ext_prop ? (union_is_ext ? B C))
 (*-------------------------------------------------------------------------*)  āŠ¢
-    ext_carr A R ā‰” union ? (ext_carr ? B) (ext_carr ? C).
+    ext_carr A R ā‰” union AA BB CC.
 
 unification hint 0 ā‰” S:Type[0], A,B:Ī©^S;
   T ā‰Ÿ powerclass_setoid S,
   MM ā‰Ÿ mk_unary_morphism1 ??
-        (Ī»A.mk_unary_morphism1 ?? (Ī»B.A āˆŖ B) (prop11 ?? (union_is_morph S A)))
+        (Ī»A.mk_unary_morphism1 ?? 
+          (Ī»B.A āˆŖ B) (prop11 ?? (fun11 ?? (union_is_morph S) A)))
         (prop11 ?? (union_is_morph S))
 (*--------------------------------------------------------------------------*) āŠ¢
    fun11 T T (fun11 T (unary_morphism1_setoid1 T T) MM A) B ā‰” A āˆŖ B.
@@ -240,13 +247,12 @@ unification hint 1 ā‰”
   AA : setoid, B,C : š›€^AA;
   A ā‰Ÿ carr AA,
   T ā‰Ÿ ext_powerclass_setoid AA,  
-  R ā‰Ÿ (mk_unary_morphism1 ??
-          (Ī»S:š›€^AA.
-           mk_unary_morphism1 ??
-            (Ī»S':š›€^AA.
-              mk_ext_powerclass AA (S āˆŖ S') (ext_prop AA (union_is_ext ? S S')))
-            (prop11 ?? (union_is_ext_morph AA S)))
-          (prop11 ?? (union_is_ext_morph AA))) ,
+  R ā‰Ÿ mk_unary_morphism1 ?? (Ī»X:š›€^AA.
+           mk_unary_morphism1 ?? (Ī»Y:š›€^AA.
+              mk_ext_powerclass AA 
+               (ext_carr ? X āˆŖ ext_carr ? Y) (ext_prop AA (union_is_ext ? X Y)))
+            (prop11 ?? (fun11 ?? (union_is_ext_morph AA) X)))
+          (prop11 ?? (union_is_ext_morph AA)),
    BB ā‰Ÿ (ext_carr ? B),
    CC ā‰Ÿ (ext_carr ? C)
 (*------------------------------------------------------*) āŠ¢
@@ -268,16 +274,21 @@ nlemma substract_is_ext: āˆ€A. š›€^A ā†’ š›€^A ā†’ š›€^A.
 nqed.
 
 alias symbol "hint_decl" = "hint_decl_Type1".
-unification hint 0 ā‰”
-   A : setoid, B,C :  š›€^A;
-   R ā‰Ÿ (mk_ext_powerclass ? (B - C) (ext_prop ? (substract_is_ext ? B C)))
-(*-------------------------------------------------------------------------*)  āŠ¢
-    ext_carr A R ā‰” substract ? (ext_carr ? B) (ext_carr ? C).
+unification hint 0 ā‰” A : setoid, B,C :  š›€^A;
+   AA ā‰Ÿ carr A,
+   BB ā‰Ÿ ext_carr ? B,
+   CC ā‰Ÿ ext_carr ? C,
+   R ā‰Ÿ mk_ext_powerclass ? 
+         (ext_carr ? B - ext_carr ? C) 
+         (ext_prop ? (substract_is_ext ? B C))
+(*---------------------------------------------------*)  āŠ¢
+    ext_carr A R ā‰” substract AA BB CC.
 
 unification hint 0 ā‰” S:Type[0], A,B:Ī©^S;
   T ā‰Ÿ powerclass_setoid S,  
   MM ā‰Ÿ mk_unary_morphism1 ??
-        (Ī»A.mk_unary_morphism1 ?? (Ī»B.A - B) (prop11 ?? (substract_is_morph S A)))
+        (Ī»A.mk_unary_morphism1 ?? 
+          (Ī»B.A - B) (prop11 ?? (fun11 ?? (substract_is_morph S) A)))
         (prop11 ?? (substract_is_morph S))
 (*--------------------------------------------------------------------------*) āŠ¢
    fun11 T T (fun11 T (unary_morphism1_setoid1 T T) MM A) B ā‰” A - B.
@@ -291,13 +302,13 @@ unification hint 1 ā‰”
   AA : setoid, B,C : š›€^AA;
   A ā‰Ÿ carr AA,
   T ā‰Ÿ ext_powerclass_setoid AA,    
-  R ā‰Ÿ (mk_unary_morphism1 ??
-          (Ī»S:š›€^AA.
-           mk_unary_morphism1 ??
-            (Ī»S':š›€^AA.
-              mk_ext_powerclass AA (S - S') (ext_prop AA (substract_is_ext ? S S')))
-            (prop11 ?? (substract_is_ext_morph AA S)))
-          (prop11 ?? (substract_is_ext_morph AA)),
+  R ā‰Ÿ mk_unary_morphism1 ?? (Ī»X:š›€^AA.
+           mk_unary_morphism1 ?? (Ī»Y:š›€^AA.
+              mk_ext_powerclass AA 
+                (ext_carr ? X - ext_carr ? Y) 
+                (ext_prop AA (substract_is_ext ? X Y)))
+            (prop11 ?? (fun11 ?? (substract_is_ext_morph AA) X)))
+          (prop11 ?? (substract_is_ext_morph AA)),
    BB ā‰Ÿ (ext_carr ? B),
    CC ā‰Ÿ (ext_carr ? C)
 (*------------------------------------------------------*) āŠ¢
@@ -312,37 +323,32 @@ nlemma single_is_ext: āˆ€A:setoid. A ā†’ š›€^A.
 #X a; @; ##[ napply ({(a)}); ##] #x y E; @; #H; /3/; nqed. 
 
 alias symbol "hint_decl" = "hint_decl_Type1".
-unification hint 0 ā‰” A : setoid, a:A;
+unification hint 0 ā‰” A : setoid, a : carr A;
    R ā‰Ÿ (mk_ext_powerclass ? {(a)} (ext_prop ? (single_is_ext ? a)))
 (*-------------------------------------------------------------------------*)  āŠ¢
     ext_carr A R ā‰” singleton A a.
 
-unification hint 0 ā‰” A:setoid, a:A;
+unification hint 0 ā‰” A:setoid, a : carr A;
   T ā‰Ÿ setoid1_of_setoid A,
   AA ā‰Ÿ carr A,
   MM ā‰Ÿ mk_unary_morphism1 ?? 
-         (Ī»a:setoid1_of_setoid A.{(a)}) (prop11 ?? (single_is_morph A))
+         (Ī»a:carr1 (setoid1_of_setoid A).{(a)}) (prop11 ?? (single_is_morph A))
 (*--------------------------------------------------------------------------*) āŠ¢
    fun11 T (powerclass_setoid AA) MM a ā‰” {(a)}.
    
 nlemma single_is_ext_morph:āˆ€A:setoid.(setoid1_of_setoid A) ā‡’_1 š›€^A.
 #A; @; ##[ #a; napply (single_is_ext ? a); ##] #a b E; @; #x; /3/; nqed.
             
-unification hint 1 ā‰”
-  AA : setoid, a: AA;
+unification hint 1 ā‰” AA : setoid, a: carr AA;
   T ā‰Ÿ ext_powerclass_setoid AA,
   R ā‰Ÿ mk_unary_morphism1 ??
-       (Ī»a:setoid1_of_setoid AA.
+       (Ī»a:carr1 (setoid1_of_setoid AA).
          mk_ext_powerclass AA {(a)} (ext_prop ? (single_is_ext AA a)))
             (prop11 ?? (single_is_ext_morph AA))
 (*------------------------------------------------------*) āŠ¢
    ext_carr AA (fun11 (setoid1_of_setoid AA) T R a) ā‰” singleton AA a.
 
 
-
-
-
-
 (*
 alias symbol "hint_decl" = "hint_decl_Type2".
 unification hint 0 ā‰”