diff options
author | letouzey <letouzey@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2011-03-17 21:46:43 +0000 |
---|---|---|
committer | letouzey <letouzey@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2011-03-17 21:46:43 +0000 |
commit | ce5a3cd114d3a570cdd569e65f1a2a71f81c39f4 (patch) | |
tree | cdfc5975af04c229f6187fd88f2a83a7c35e8ebe /theories/PArith | |
parent | 7cc3c1b16771a7e8230fb0d1f74d63ade6f393a7 (diff) |
CompareSpec: a slight generalization/reformulation of CompSpec
CompareSpec expects 3 propositions Peq Plt Pgt instead of 2 relations
eq lt and 2 points x y. For the moment, we still always use (Peq=eq x y),
(Plt=lt x y) (Pgt=lt y x), but this may not be always the case,
especially for Pgt. The former CompSpec is now defined in term of
CompareSpec. Compatibility is preserved (except maybe a rare unfold
or red to break the CompSpec definition).
Typically, CompareSpec looks nicer when we have infix notations, e.g.
forall x y, CompareSpec (x=y) (x<y) (y<x) (x?=x)
while CompSpec is shorter when we directly refer to predicates:
forall x y, CompSpec eq lt x y (compare x y)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@13914 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'theories/PArith')
-rw-r--r-- | theories/PArith/BinPos.v | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/theories/PArith/BinPos.v b/theories/PArith/BinPos.v index 64e32c560..4570fde72 100644 --- a/theories/PArith/BinPos.v +++ b/theories/PArith/BinPos.v @@ -1015,7 +1015,7 @@ Proof. symmetry; apply Pcompare_antisym. Qed. -Lemma Pcompare_spec : forall p q, CompSpec eq Plt p q ((p ?= q) Eq). +Lemma Pcompare_spec : forall p q, CompareSpec (p=q) (p<q) (q<p) ((p ?= q) Eq). Proof. intros. destruct ((p ?= q) Eq) as [ ]_eqn; constructor. apply Pcompare_Eq_eq; auto. |