X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=sidebyside;f=helm%2Fmatita%2Flibrary%2Fhigher_order_defs%2Ffunctions.ma;h=321ae46b7502c1578975b24ccdc25c4351065788;hb=28ac70d3f475442cda4ef30e0e9c0e6d012b2527;hp=e8fbb6dd9b4b63beee7d9cba581f325e368d6cbf;hpb=633474751ddf1074947ff0d324fb1aca2293eff8;p=helm.git diff --git a/helm/matita/library/higher_order_defs/functions.ma b/helm/matita/library/higher_order_defs/functions.ma index e8fbb6dd9..321ae46b7 100644 --- a/helm/matita/library/higher_order_defs/functions.ma +++ b/helm/matita/library/higher_order_defs/functions.ma @@ -15,20 +15,21 @@ set "baseuri" "cic:/matita/higher_order_defs/functions/". include "logic/equality.ma". -include "logic/connectives.ma". definition injective: \forall A,B:Type.\forall f:A \to B.Prop \def \lambda A,B.\lambda f. \forall x,y:A.f x = f y \to x=y. -(* we have still to attach exists *) definition surjective: \forall A,B:Type.\forall f:A \to B.Prop \def \lambda A,B.\lambda f. - \forall z:B.ex A (\lambda x:A.z=f x). + \forall z:B. \exists x:A.z=f x. definition symmetric: \forall A:Type.\forall f:A \to A\to A.Prop \def \lambda A.\lambda f.\forall x,y.f x y = f y x. +definition symmetric2: \forall A,B:Type.\forall f:A \to A\to B.Prop +\def \lambda A,B.\lambda f.\forall x,y.f x y = f y x. + definition associative: \forall A:Type.\forall f:A \to A\to A.Prop \def \lambda A.\lambda f.\forall x,y,z.f (f x y) z = f x (f y z). @@ -41,4 +42,6 @@ definition monotonic : \forall A:Type.\forall R:A \to A \to Prop. definition distributive: \forall A:Type.\forall f,g:A \to A \to A.Prop \def \lambda A.\lambda f,g.\forall x,y,z:A. f x (g y z) = g (f x y) (f x z). - +definition distributive2: \forall A,B:Type.\forall f:A \to B \to B. +\forall g: B\to B\to B. Prop +\def \lambda A,B.\lambda f,g.\forall x:A.\forall y,z:B. f x (g y z) = g (f x y) (f x z).