]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/matita/contribs/PREDICATIVE-TOPOLOGY/ac_defs.ma
Every exception that used to have type string is now a string Lazy.t.
[helm.git] / helm / matita / contribs / PREDICATIVE-TOPOLOGY / ac_defs.ma
index 89e67c2f9dce96adce6cd4016658060d40060566..d23ed4e1a4272d26fb6dc8b62e67f4c593ad9f35 100644 (file)
@@ -18,14 +18,19 @@ set "baseuri" "cic:/matita/PREDICATIVE-TOPOLOGY/ac_defs".
 
 
 
-(* ACZEL CATEGORIES:                                                      *)
-(* We use typoids with a compatible membership relation                   *)
-(* The category is intended to be the domain of the membership relation   *)
-(* The membership relation is necessary because we need to regard the     *)
-(* domain of a propositional function (ie a subset in the predicative     *)
-(* setting) as a quantification domain and therefore as a category, but   *)
-(* there is no type in CIC representing the domain of a propositional     *)
-(* function                                                               *)
+(* ACZEL CATEGORIES:
+   - We use typoids with a compatible membership relation
+   - The category is intended to be the domain of the membership relation
+   - The membership relation is necessary because we need to regard the
+     domain of a propositional function (ie a predicative subset) as a
+     quantification domain and therefore as a category, but there is no
+     type in CIC representing the domain of a propositional function
+   - We set up a single equality predicate, parametric on the category,
+     defined as the reflexive, symmetic, transitive and compatible closure
+     of the aceq predicate given inside the category. Then we prove the 
+     properties of the equality that usually are axiomatized inside the 
+     category structure. This makes categories easier to use
+     *) 
 
 record AC: Type \def {
    ac: Type;
@@ -33,9 +38,8 @@ record AC: Type \def {
    aceq: ac \to ac \to Prop
 }.
 
-definition a \def \lambda A. ac A.
+coercion ac. 
 
-coercion a. 
-
-inductive eq (A:AC) : ac A \to ac A \to Prop \def
-   | eq_refl: \forall a. acin ? a \to eq A a a.
+inductive eq (A:AC) (a:A): A \to Prop \def
+   | eq_refl:   acin ? a \to eq A a a.
+(*   | eq_sing_r: \forall b,c. eq A a b \to aceq A b c \to eq A a c. *)