]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/matita/nlibrary/sets/sets.ma
...
[helm.git] / helm / software / matita / nlibrary / sets / sets.ma
index 8ee6ea1ae81a83e2983843138918ab4cde542095..4e7418fd93bcc17f4777d3bb30a293d674bc43c3 100644 (file)
@@ -116,9 +116,11 @@ nlemma mem_ok: ∀A. binary_morphism1 (setoid1_of_setoid A) (qpowerclass_setoid
   ##]
 nqed.
 
-unification hint 0 ≔ 
-  A : setoid, x, S ⊢ (mem_ok A) x S ≡ mem A S x.
-  
+unification hint 0 ≔  A:setoid, x, S;  
+         SS ≟ (pc ? S)
+  (*-------------------------------------*) ⊢ 
+    fun21 ??? (mem_ok A) x S ≡ mem A SS x.
+
 nlemma subseteq_ok: ∀A. binary_morphism1 (qpowerclass_setoid A) (qpowerclass_setoid A) CPROP.
  #A; @
   [ napply (λS,S'. S ⊆ S')
@@ -129,14 +131,8 @@ nlemma subseteq_ok: ∀A. binary_morphism1 (qpowerclass_setoid A) (qpowerclass_s
         [ nassumption | napply (subseteq_trans … b'); nassumption ] ##]
 nqed.
 
-(* hints can pass under mem *) (* ??? XXX why is it needed? *)
-unification hint 0 ≔ A,B,x ;
-           C ≟ B
- (*---------------------*) ⊢ 
-   mem A B x ≡ mem A C x.
-
 unification hint 0 ≔ A,a,a'
- (*---------------------*) ⊢
+ (*-----------------------------------------------------------------*) ⊢
   eq_rel ? (eq A) a a' ≡ eq_rel1 ? (eq1 (setoid1_of_setoid A)) a a'.
 
 nlemma intersect_ok: ∀A. binary_morphism1 (qpowerclass_setoid A) (qpowerclass_setoid A) (qpowerclass_setoid A).
@@ -144,7 +140,6 @@ nlemma intersect_ok: ∀A. binary_morphism1 (qpowerclass_setoid A) (qpowerclass_
   [ #S; #S'; @
      [ napply (S ∩ S')
      | #a; #a'; #Ha;
-       (*napply (.= #‡#);*)
         nwhd in ⊢ (? ? ? % %); @; *; #H1; #H2; @
         [##1,2: napply (. Ha^-1‡#); nassumption;
       ##|##3,4: napply (. Ha‡#); nassumption]##]
@@ -176,10 +171,6 @@ ndefinition counter_image: ∀A,B. (carr A → carr B) → Ω^B → Ω^A ≝
 nrecord compatible_equivalence_relation (A: setoid) : Type[1] ≝
  { rel:> equivalence_relation A;
    compatibility: ∀x,x':A. x=x' → rel x x'
-    (* coercion qui non andava per via di un Failure invece di Uncertain
-       ritornato dall'unificazione per il problema: 
-         ?[] A =?= ?[Γ]->?[Γ+1] 
-    *)
  }.
 
 ndefinition quotient: ∀A. compatible_equivalence_relation A → setoid.
@@ -227,7 +218,7 @@ ndefinition injective ≝
 nlemma first_omomorphism_theorem_functions2:
  ∀A,B.∀f: unary_morphism A B. 
    surjective … (Full_set ?) (Full_set ?) (canonical_proj ? (eqrel_of_morphism … f)).
- #A; #B; #f; nwhd; #y; #Hy; @ y; @ [ napply I | napply refl] 
+ #A; #B; #f; nwhd; #y; #Hy; @ y; @ I ; napply refl; 
  (* bug, prova @ I refl *)
 nqed.
 
@@ -237,9 +228,31 @@ nlemma first_omomorphism_theorem_functions3:
  #A; #B; #f; nwhd; #x; #x'; #Hx; #Hx'; #K; nassumption.
 nqed.
 
-nrecord isomorphism (A) (B) (S: qpowerclass A) (T: qpowerclass B) : CProp[0] ≝
+nrecord isomorphism (A, B : setoid) (S: qpowerclass A) (T: qpowerclass B) : Type[0] ≝
  { iso_f:> unary_morphism A B;
    f_closed: ∀x. x ∈ S → iso_f x ∈ T;
    f_sur: surjective … S T iso_f;
    f_inj: injective … S iso_f
  }.
+
+(*
+nrecord isomorphism (A, B : setoid) (S: qpowerclass A) (T: qpowerclass B) : CProp[0] ≝
+ { iso_f:> unary_morphism A B;
+   f_closed: ∀x. x ∈ pc A S → fun1 ?? iso_f x ∈ pc B T}.
+   
+   
+ncheck (λA:?.
+   λB:?.
+    λS:?.
+     λT:?.
+      λxxx:isomorphism A B S T.
+       match xxx
+       return λxxx:isomorphism A B S T.
+               ∀x: carr A.
+                ∀x_72: mem (carr A) (pc A S) x.
+                 mem (carr B) (pc B T) (fun1 A B ((λ_.?) A B S T xxx) x)
+        with [ mk_isomorphism _ yyy ⇒ yyy ] ).   
+   
+   ;
+ }.
+*)