diff options
author | msozeau <msozeau@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2008-04-12 16:08:04 +0000 |
---|---|---|
committer | msozeau <msozeau@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2008-04-12 16:08:04 +0000 |
commit | 63ffd17f771d0f4c8c7f9b1ada9faa04253f05aa (patch) | |
tree | ff43de2111efb4a9b9db28e137130b4d7854ec69 /theories/Numbers/NumPrelude.v | |
parent | 1ea4a8d26516af14670cc677a5a0fce04b90caf7 (diff) |
Add the ability to specify what to do with free variables in instance
declarations. By default, print the list of implicitely generalized
variables. Implement new commands Add Parametric Relation/Morphism for...
parametric relations and morphisms. Now the Add * commands are strict
about free vars and will fail if there remain some. Parametric just allows to
give a variable context. Also, correct a bug in generalization of
implicits that ordered the variables in the wrong order.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@10782 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'theories/Numbers/NumPrelude.v')
-rw-r--r-- | theories/Numbers/NumPrelude.v | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/theories/Numbers/NumPrelude.v b/theories/Numbers/NumPrelude.v index c063c7bc1..f042ab068 100644 --- a/theories/Numbers/NumPrelude.v +++ b/theories/Numbers/NumPrelude.v @@ -148,13 +148,13 @@ intros R1 R2 R3 H1 H2 x y; rewrite H1; apply H2. now symmetry. Qed. -Add Relation (A -> B -> Prop) (@relations_eq A B) +Add Parametric Relation (A B : Type) : (A -> B -> Prop) (@relations_eq A B) reflexivity proved by (proj1 (relations_eq_equiv A B)) symmetry proved by (proj2 (proj2 (relations_eq_equiv A B))) transitivity proved by (proj1 (proj2 (relations_eq_equiv A B))) as relations_eq_rel. -Add Morphism (@well_founded A) with signature (@relations_eq A A) ==> iff as well_founded_wd. +Add Parametric Morphism (A : Type) : (@well_founded A) with signature (@relations_eq A A) ==> iff as well_founded_wd. Proof. unfold relations_eq, well_founded; intros R1 R2 H; split; intros H1 a; induction (H1 a) as [x H2 H3]; constructor; |