X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Flibrary%2Flogic%2Fequality.ma;h=2dc6cb435ee610d899c234c5760e3a187b3816cf;hb=41af0583fbc8183183d389303951dca94f2965b0;hp=b87dc6c95656dcf5de3c3ceb00e9ed105067c6b8;hpb=7f2444c2670cadafddd8785b687ef312158376b0;p=helm.git diff --git a/matita/library/logic/equality.ma b/matita/library/logic/equality.ma index b87dc6c95..2dc6cb435 100644 --- a/matita/library/logic/equality.ma +++ b/matita/library/logic/equality.ma @@ -36,22 +36,22 @@ theorem eq_ind': [refl_eq \Rightarrow H]). qed. -theorem reflexive_eq : \forall A:Type. reflexive A (eq A). -simplify.intros.apply refl_eq. -qed. +variant reflexive_eq : \forall A:Type. reflexive A (eq A) +\def refl_eq. +(* simplify.intros.apply refl_eq. *) theorem symmetric_eq: \forall A:Type. symmetric A (eq A). unfold symmetric.intros.elim H. apply refl_eq. qed. -theorem sym_eq : \forall A:Type.\forall x,y:A. x=y \to y=x +variant sym_eq : \forall A:Type.\forall x,y:A. x=y \to y=x \def symmetric_eq. theorem transitive_eq : \forall A:Type. transitive A (eq A). unfold transitive.intros.elim H1.assumption. qed. -theorem trans_eq : \forall A:Type.\forall x,y,z:A. x=y \to y=z \to x=z +variant trans_eq : \forall A:Type.\forall x,y,z:A. x=y \to y=z \to x=z \def transitive_eq. theorem eq_elim_r: @@ -60,18 +60,30 @@ theorem eq_elim_r: intros. elim (sym_eq ? ? ? H1).assumption. qed. -default "equality" - cic:/matita/logic/equality/eq.ind - cic:/matita/logic/equality/sym_eq.con - cic:/matita/logic/equality/trans_eq.con - cic:/matita/logic/equality/eq_ind.con - cic:/matita/logic/equality/eq_elim_r.con. - theorem eq_f: \forall A,B:Type.\forall f:A\to B. \forall x,y:A. x=y \to f x = f y. -intros.elim H.reflexivity. +intros.elim H.apply refl_eq. +qed. + +theorem eq_f': \forall A,B:Type.\forall f:A\to B. +\forall x,y:A. x=y \to f y = f x. +intros.elim H.apply refl_eq. qed. +(* +coercion cic:/matita/logic/equality/sym_eq.con. +coercion cic:/matita/logic/equality/eq_f.con. +*) + +default "equality" + cic:/matita/logic/equality/eq.ind + cic:/matita/logic/equality/symmetric_eq.con + cic:/matita/logic/equality/transitive_eq.con + cic:/matita/logic/equality/eq_ind.con + cic:/matita/logic/equality/eq_elim_r.con + cic:/matita/logic/equality/eq_f.con + cic:/matita/logic/equality/eq_f'.con. (* \x.sym (eq_f x) *) + theorem eq_f2: \forall A,B,C:Type.\forall f:A\to B \to C. \forall x1,x2:A. \forall y1,y2:B. x1=x2 \to y1=y2 \to f x1 y1 = f x2 y2.