]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/matita/nlibrary/properties/relations.ma
Setoids, setoids1, sets, and the like. The mess begins.
[helm.git] / helm / software / matita / nlibrary / properties / relations.ma
index 619ab7807719d48a788b3cda5bed1fcdb500f1aa..581208d9afb8fcf567a4f931b8fe16f6899edeb2 100644 (file)
 
 include "logic/pts.ma".
 
-ndefinition reflexive ≝ λT:Type.λP:T → T → CProp. ∀x.P x x.
-ndefinition symmetric ≝ λT:Type.λP:T → T → CProp. ∀x,y.P x y → P y x.
-ndefinition transitive ≝ λT:Type.λP:T → T → CProp. ∀z,x,y. P x z → P z y → P x y.
+ndefinition reflexive ≝ λT:Type[0].λP:T → T → CProp[0]. ∀x.P x x.
+ndefinition symmetric ≝ λT:Type[0].λP:T → T → CProp[0]. ∀x,y.P x y → P y x.
+ndefinition transitive ≝ λT:Type[0].λP:T → T → CProp[0]. ∀z,x,y. P x z → P z y → P x y.
+
+nrecord equivalence_relation (A:Type[0]) : Type[1] ≝
+ { eq_rel:2> A → A → CProp[0];
+   refl: reflexive ? eq_rel;
+   sym: symmetric ? eq_rel;
+   trans: transitive ? eq_rel
+ }.