diff options
author | 2009-11-06 16:43:48 +0000 | |
---|---|---|
committer | 2009-11-06 16:43:48 +0000 | |
commit | 9ed53a06a626b82920db6e058835cf2d413ecd56 (patch) | |
tree | 6bd4efe0d8679f9a3254091e6f1d64b1b2462ec2 /theories/Numbers/Integer/Binary | |
parent | 625a129d5e9b200399a147111f191abe84282aa4 (diff) |
Numbers: more (syntactic) changes toward new style of type classes
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12475 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'theories/Numbers/Integer/Binary')
-rw-r--r-- | theories/Numbers/Integer/Binary/ZBinary.v | 60 |
1 files changed, 11 insertions, 49 deletions
diff --git a/theories/Numbers/Integer/Binary/ZBinary.v b/theories/Numbers/Integer/Binary/ZBinary.v index 7afa1e442..9b55c771c 100644 --- a/theories/Numbers/Integer/Binary/ZBinary.v +++ b/theories/Numbers/Integer/Binary/ZBinary.v @@ -29,31 +29,11 @@ Definition NZsub := Zminus. Definition NZmul := Zmult. Instance NZeq_equiv : Equivalence NZeq. - -Add Morphism NZsucc with signature NZeq ==> NZeq as NZsucc_wd. -Proof. -congruence. -Qed. - -Add Morphism NZpred with signature NZeq ==> NZeq as NZpred_wd. -Proof. -congruence. -Qed. - -Add Morphism NZadd with signature NZeq ==> NZeq ==> NZeq as NZadd_wd. -Proof. -congruence. -Qed. - -Add Morphism NZsub with signature NZeq ==> NZeq ==> NZeq as NZsub_wd. -Proof. -congruence. -Qed. - -Add Morphism NZmul with signature NZeq ==> NZeq ==> NZeq as NZmul_wd. -Proof. -congruence. -Qed. +Program Instance NZsucc_wd : Proper (eq==>eq) NZsucc. +Program Instance NZpred_wd : Proper (eq==>eq) NZpred. +Program Instance NZadd_wd : Proper (eq==>eq==>eq) NZadd. +Program Instance NZsub_wd : Proper (eq==>eq==>eq) NZsub. +Program Instance NZmul_wd : Proper (eq==>eq==>eq) NZmul. Theorem NZpred_succ : forall n : Z, NZpred (NZsucc n) = n. Proof. @@ -61,7 +41,7 @@ exact Zpred'_succ'. Qed. Theorem NZinduction : - forall A : Z -> Prop, predicate_wd NZeq A -> + forall A : Z -> Prop, Proper (NZeq ==> iff) A -> A 0 -> (forall n : Z, A n <-> A (NZsucc n)) -> forall n : Z, A n. Proof. intros A A_wd A0 AS n; apply Zind; clear n. @@ -108,25 +88,10 @@ Definition NZle := Zle. Definition NZmin := Zmin. Definition NZmax := Zmax. -Add Morphism NZlt with signature NZeq ==> NZeq ==> iff as NZlt_wd. -Proof. -unfold NZeq. intros n1 n2 H1 m1 m2 H2; rewrite H1; now rewrite H2. -Qed. - -Add Morphism NZle with signature NZeq ==> NZeq ==> iff as NZle_wd. -Proof. -unfold NZeq. intros n1 n2 H1 m1 m2 H2; rewrite H1; now rewrite H2. -Qed. - -Add Morphism NZmin with signature NZeq ==> NZeq ==> NZeq as NZmin_wd. -Proof. -congruence. -Qed. - -Add Morphism NZmax with signature NZeq ==> NZeq ==> NZeq as NZmax_wd. -Proof. -congruence. -Qed. +Program Instance NZlt_wd : Proper (eq==>eq==>iff) NZlt. +Program Instance NZle_wd : Proper (eq==>eq==>iff) NZle. +Program Instance NZmin_wd : Proper (eq==>eq==>eq) NZmin. +Program Instance NZmax_wd : Proper (eq==>eq==>eq) NZmax. Theorem NZlt_eq_cases : forall n m : Z, n <= m <-> n < m \/ n = m. Proof. @@ -182,10 +147,7 @@ match x with | Zneg x => Zpos x end. -Add Morphism Zopp with signature NZeq ==> NZeq as Zopp_wd. -Proof. -congruence. -Qed. +Program Instance Zopp_wd : Proper (eq==>eq) Zopp. Theorem Zsucc_pred : forall n : Z, NZsucc (NZpred n) = n. Proof. |