diff options
author | 2008-07-01 17:03:43 +0000 | |
---|---|---|
committer | 2008-07-01 17:03:43 +0000 | |
commit | f6007680bfa822ecc3d2f101fb6e21e2b1464b1b (patch) | |
tree | b1868ec32ab9c1f901f1cd4d51f44e80c9e78b82 /theories | |
parent | 403399674d51d725c56ddbc15bc3d593ead8a800 (diff) |
Various bug fixes in type classes and subtac:
- Cases on multiple objects
- Avoid dangerous coercion with evars in subtac_coercion
- Resolve typeclasses method-by-method to get better error messages.
- Correct merging of instance databases (and add debug printer)
- Fix a script in NOrder where a setoid_replace was not working before.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@11198 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'theories')
-rw-r--r-- | theories/Classes/Morphisms.v | 6 | ||||
-rw-r--r-- | theories/Numbers/Natural/Abstract/NOrder.v | 9 |
2 files changed, 7 insertions, 8 deletions
diff --git a/theories/Classes/Morphisms.v b/theories/Classes/Morphisms.v index 724021799..3ffa8040d 100644 --- a/theories/Classes/Morphisms.v +++ b/theories/Classes/Morphisms.v @@ -75,7 +75,7 @@ Arguments Scope respectful [type_scope type_scope signature_scope signature_scop Open Local Scope signature_scope. -(** Pointwise lifting is just respect with leibnize equality on the left. *) +(** Pointwise lifting is just respect with leibniz equality on the left. *) Definition pointwise_relation {A B : Type} (R : relation B) : relation (A -> B) := fun f g => forall x : A, R (f x) (g x). @@ -222,8 +222,8 @@ Program Instance trans_sym_contra_impl_morphism transitivity x0... symmetry... Qed. -Program Instance equivalence_partial_app_morphism - [ Equivalence A R ] : Morphism (R ==> iff) (R x) | 1. +Program Instance per_partial_app_morphism + [ PER A R ] : Morphism (R ==> iff) (R x) | 1. Next Obligation. Proof with auto. diff --git a/theories/Numbers/Natural/Abstract/NOrder.v b/theories/Numbers/Natural/Abstract/NOrder.v index bcd4b92d6..5212e6381 100644 --- a/theories/Numbers/Natural/Abstract/NOrder.v +++ b/theories/Numbers/Natural/Abstract/NOrder.v @@ -309,13 +309,12 @@ Proof NZgt_wf. Theorem lt_wf_0 : well_founded lt. Proof. -assert (H : relations_eq lt (fun n m : N => 0 <= n /\ n < m)). +setoid_replace lt with (fun n m : N => 0 <= n /\ n < m) + using relation (@relations_eq N N). +apply lt_wf. intros x y; split. intro H; split; [apply le_0_l | assumption]. now intros [_ H]. -rewrite H; apply lt_wf. -(* does not work: -setoid_replace lt with (fun n m : N => 0 <= n /\ n < m) using relation relations_eq.*) -Qed. +Defined. (* Theorems that are true for natural numbers but not for integers *) |