]> matita.cs.unibo.it Git - helm.git/commitdiff
nicer hints, 16.1->3 done
authorEnrico Tassi <enrico.tassi@inria.fr>
Tue, 28 Sep 2010 11:35:23 +0000 (11:35 +0000)
committerEnrico Tassi <enrico.tassi@inria.fr>
Tue, 28 Sep 2010 11:35:23 +0000 (11:35 +0000)
helm/software/matita/nlibrary/logic/cprop.ma
helm/software/matita/nlibrary/re/re-setoids.ma
helm/software/matita/nlibrary/sets/setoids.ma
helm/software/matita/nlibrary/sets/setoids1.ma
helm/software/matita/nlibrary/sets/sets.ma

index 20942ecc89b450555bce720dd7710eb51105e617..9b352d4a4112dcab86e9b922343b67414301fa63 100644 (file)
@@ -81,6 +81,7 @@ unification hint 0 ≔ A,B:CProp[0];
 (*-------------------------------------------------------------*) ⊢
   fun11 T T (fun11 T (unary_morphism1_setoid1 T T) MM A) B ≡ Or A B.
   
+(* XXX always applied, generates hard unif problems  
 ndefinition if_morphism: unary_morphism1 CPROP (unary_morphism1_setoid1 CPROP CPROP).
  napply (mk_binary_morphism1 … (λA,B:CProp[0]. A → B));
  #a; #a'; #b; #b'; #Ha; #Hb; @; #H; #x
@@ -88,12 +89,16 @@ ndefinition if_morphism: unary_morphism1 CPROP (unary_morphism1_setoid1 CPROP CP
  //.
 nqed.
 
-unification hint 0 ≔ A,B ⊢
- mk_unary_morphism1 …
-  (λX:CProp[0].mk_unary_morphism1 … (λY:CProp[0]. X → Y) (prop11 … (if_morphism X)))
-  (prop11 … if_morphism)
-  A B ≡ A → B.
-  
+unification hint 0 ≔ A,B:CProp[0];
+  T ≟ CPROP,
+  R ≟ mk_unary_morphism1 …
+       (λX:CProp[0].mk_unary_morphism1 … 
+         (λY:CProp[0]. X → Y) (prop11 … (if_morphism X)))
+         (prop11 … if_morphism)
+(*----------------------------------------------------------------------*) ⊢
+  fun11 T T (fun11 T (unary_morphism1_setoid1 T T) R A) B ≡ A → B.
+*)
+
 (* not as morphism *)
 nlemma Not_morphism : CProp[0] ⇒_1 CProp[0].
 @(λx:CProp[0].¬ x); #a b; *; #; @; /3/; nqed.
index 3d868236597eab4507a1a888464e77c7793ad945..cfbd7cb31d8c0d5b203654d388d6e64958882ba7 100644 (file)
@@ -242,12 +242,11 @@ unification hint 0 ≔ A : setoid, B,C :  Elang A;
     
 unification hint 0 ≔ S:setoid, A,B:lang S;
     T ≟ powerclass_setoid (list S),
-    TT ≟ unary_morphism1_setoid1 T T,
-    MM ≟ mk_unary_morphism1 T TT  
+    MM ≟ mk_unary_morphism1 T (unary_morphism1_setoid1 T T)
           (λA:lang S.
              mk_unary_morphism1 T T 
-               (λB:lang S.A · B) (prop11 T T (cat_is_morph S A)))
-          (prop11 T TT (cat_is_morph S))
+               (λB:lang S.cat S A B) (prop11 T T (cat_is_morph S A)))
+          (prop11 T (unary_morphism1_setoid1 T T) (cat_is_morph S))
 (*--------------------------------------------------------------------------*) ⊢
    fun11 T T (fun11 T (unary_morphism1_setoid1 T T) MM A) B ≡ cat S A B.
    
@@ -259,19 +258,18 @@ nqed.
 unification hint 1 ≔ AA : setoid, B,C : Elang AA;
   AAS ≟ LIST AA,
   T ≟ ext_powerclass_setoid (list AA),
-  TT ≟ unary_morphism1_setoid1 T T,
-  R ≟ mk_unary_morphism1 ??
+  R ≟ mk_unary_morphism1 T (unary_morphism1_setoid1 T T)
           (λS:Elang AA.
-           mk_unary_morphism1 ??
+           mk_unary_morphism1 T T
             (λS':Elang AA.
-              mk_ext_powerclass (list AA) (ext_carr ? S · ext_carr ? S'
+              mk_ext_powerclass (list AA) (cat AA (ext_carr ? S) (ext_carr ? S')
                 (ext_prop (list AA) (cat_is_ext AA S S')))
-            (prop11 ?? (cat_is_ext_morph AA S)))
-          (prop11 ?? (cat_is_ext_morph AA)),
+            (prop11 T T (cat_is_ext_morph AA S)))
+          (prop11 T (unary_morphism1_setoid1 T T) (cat_is_ext_morph AA)),
    BB ≟ ext_carr ? B,
    CC ≟ ext_carr ? C
 (*------------------------------------------------------*) ⊢
-   ext_carr AAS (fun11 T T (fun11 T TT R B) C) ≡ cat AA BB CC.
+   ext_carr AAS (fun11 T T (fun11 T (unary_morphism1_setoid1 T T) R B) C) ≡ cat AA BB CC.
 
 (* end hints for cat *)
 
@@ -340,13 +338,11 @@ unification hint 0 ≔ A:Alpha, a:re A;
    fun11 T T2 MM a ≡  𝐋 a.
    
 nlemma L_re_is_ext_morph:∀A:Alpha.(setoid1_of_setoid (re A)) ⇒_1 𝛀^(list A).
-#A; @; ##[ #a; napply (L_re_is_ext ? a); ##] #a b E; @; #x H;
-##[ nchange with (x ∈ 𝐋 b); napply (. #╪_1?); 
-    ##[ nchange with (𝐋 b = ?); napply (.= ┼_1 E^-1); napply #| ##skip]
-    nassumption;
-##| nchange with (x ∈ 𝐋 a); napply (. #╪_1?); 
-    ##[ nchange with (𝐋 a = ?); napply (.= ┼_1 E); napply #| ##skip]
-    nassumption; ##]
+#A; @; ##[ #a; napply (L_re_is_ext ? a); ##] #a b E;
+ncut (𝐋 b =  𝐋 a); ##[ napply (.=_1 (┼_1 E^-1)); // ] #EL;
+@; #x H; nchange in H ⊢ % with (x ∈ 𝐋 ?); 
+##[ napply (. (# ╪_1 ?)); ##[##3: napply H |##2: ##skip ] napply EL;
+##| napply (. (# ╪_1 ?)); ##[##3: napply H |##2: ##skip ] napply (EL^-1)]
 nqed.
             
 unification hint 1 ≔  AA : Alpha, a: re AA;
@@ -711,14 +707,15 @@ nlemma odot_dot_aux : ∀S:Alpha.∀e1,e2: pre S.
     nlapply (erase_bull S e2'); #XX;
     napply (.=_1 (((# ╪_1 (┼_1 ?) )╪_1 #)╪_1 #)); ##[##2: napply XX; ##| ##skip]
     //;   
-##| ncases e2; #e2' b2'; nchange in match (〈e1',false〉⊙?) with 〈?,?〉;
-    nchange in match (𝐋\p ?) with (?∪?);
-    nchange in match (𝐋\p (e1'·?)) with (?∪?);
-    nchange in match (𝐋\p 〈e1',?〉) with (?∪?);
-    nrewrite > (cup0…); 
-    nrewrite > (cupA…); //;##]
+##| ncases e2; #e2' b2'; nchange in match (𝐋\p ?) with (?∪?∪?);
+    napply (.=_1 (cupA…));
+    napply (?^-1); nchange in match (𝐋\p 〈?,false〉) with (?∪?);
+    napply (.=_1 ((cup0…)╪_1#)╪_1#);
+    //]
 nqed.
 
+STOP
+
 nlemma sub_dot_star : 
   ∀S.∀X:word S → Prop.∀b. (X - ϵ b) · X^* ∪ {[]} = X^*.
 #S X b; napply extP; #w; @;
index 0516982cdb8c654292fd271b40ec8fad62dcbb99..a7a5e74b0bbfa26f89b7e981a5d49da75e62d167 100644 (file)
@@ -106,7 +106,7 @@ unification hint 0 ≔ o1,o2,o3:setoid,f:o2 ⇒_0 o3,g:o1 ⇒_0 o2;
    R ≟ mk_unary_morphism ?? (composition ??? f g)
         (prop1 ?? (comp_unary_morphisms o1 o2 o3 f g))
  (* -------------------------------------------------------------------- *) ⊢
-                              fun1 ?? R ≡ (composition ??? f g).
+     fun1 o1 o3 R ≡ (composition o1 o2 o3 f g).
 
 ndefinition comp_binary_morphisms: 
   ∀o1,o2,o3.(o2 ⇒_0 o3) ⇒_0 ((o1 ⇒_0 o2) ⇒_0 (o1 ⇒_0 o3)).
index 068334183dc698ebb9cb3dea09ed1e7942a87c28..889fb054579ed5dc7c8c87d620f5d49ee8a8d628 100644 (file)
@@ -91,7 +91,7 @@ nqed.
 unification hint 0 ≔ S, T ;
    R ≟ (unary_morphism1_setoid1 S T)
 (* --------------------------------- *) ⊢
-   carr1 R ≡ S ⇒_1 T.
+   carr1 R ≡ unary_morphism1 S T.
    
 notation "l ╪_1 r" with precedence 89 for @{'prop2_x1 $l $r }.
 interpretation "prop21" 'prop2 l r = (prop11 ? (unary_morphism1_setoid1 ??) ? ?? l ?? r).
@@ -123,7 +123,7 @@ unification hint 0 ≔ o1,o2,o3:setoid1,f:o2 ⇒_1 o3,g:o1 ⇒_1 o2;
    R ≟ (mk_unary_morphism1 ?? (composition1 ??? f g)
         (prop11 ?? (comp1_unary_morphisms o1 o2 o3 f g)))
  (* -------------------------------------------------------------------- *) ⊢
-                              fun11 ?? R ≡ (composition1 ??? f g).
+       fun11 o1 o3 R ≡ (composition1 o1 o2 o3 f g).
                               
 ndefinition comp1_binary_morphisms:
  ∀o1,o2,o3. (o2 ⇒_1 o3) ⇒_1 ((o1 ⇒_1 o2) ⇒_1 (o1 ⇒_1 o3)).
index d547fbbbfcbd37efadd825e130a9575b3e6d892a..0038ad4f652bcea45dcc2e2866fd191d6fe2bc77 100644 (file)
@@ -185,6 +185,7 @@ nqed.
 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 ??
@@ -194,11 +195,11 @@ unification hint 1 ≔
               (prop11 ?? (intersect_is_ext_morph AA))) ,
        BB ≟ (ext_carr ? B),
        CC ≟ (ext_carr ? C)
-   (* ------------------------------------------------------*) ⊢ 
-            ext_carr AA (R B C) ≡ intersect A BB CC.
+   (* ---------------------------------------------------------------------------------------*) ⊢ 
+      ext_carr AA (fun11 T T (fun11 T (unary_morphism1_setoid1 T T) R B) C) ≡ intersect A BB CC.
 
 
-(* hints for â\88© *)
+(* hints for â\88ª *)
 nlemma union_is_morph : ∀A. Ω^A ⇒_1 (Ω^A ⇒_1 Ω^A).
 #X; napply (mk_binary_morphism1 … (λA,B.A ∪ B));
 #A1 A2 B1 B2 EA EB; napply ext_set; #x;
@@ -238,6 +239,7 @@ nqed.
 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 ??
@@ -248,7 +250,7 @@ unification hint 1 ≔
    BB ≟ (ext_carr ? B),
    CC ≟ (ext_carr ? C)
 (*------------------------------------------------------*) ⊢
-   ext_carr AA (R B C) ≡ union A BB CC.
+   ext_carr AA (fun11 T T (fun11 T (unary_morphism1_setoid1 T T) R B) C) ≡ union A BB CC.
 
 
 (* hints for - *)
@@ -288,6 +290,7 @@ nqed.
 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 ??
@@ -298,7 +301,7 @@ unification hint 1 ≔
    BB ≟ (ext_carr ? B),
    CC ≟ (ext_carr ? C)
 (*------------------------------------------------------*) ⊢
-   ext_carr AA (R B C) ≡ substract A BB CC.
+   ext_carr AA (fun11 T T (fun11 T (unary_morphism1_setoid1 T T) R B) C) ≡ substract A BB CC.
 
 (* hints for {x} *)
 nlemma single_is_morph : ∀A:setoid. (setoid1_of_setoid A) ⇒_1 Ω^A.
@@ -316,22 +319,24 @@ unification hint 0 ≔ A : setoid, a:A;
 
 unification hint 0 ≔ A:setoid, a:A;
   T ≟ setoid1_of_setoid A,
+  AA ≟ carr A,
   MM ≟ mk_unary_morphism1 ?? 
          (λa:setoid1_of_setoid A.{(a)}) (prop11 ?? (single_is_morph A))
 (*--------------------------------------------------------------------------*) ⊢
-   fun11 T (powerclass_setoid A) MM a ≡ {(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;
+  T ≟ ext_powerclass_setoid AA,
   R ≟ mk_unary_morphism1 ??
        (λa: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 (R a) ≡ singleton AA a.
+   ext_carr AA (fun11 (setoid1_of_setoid AA) T R a) ≡ singleton AA a.