diff options
author | herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2010-06-08 13:56:14 +0000 |
---|---|---|
committer | herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2010-06-08 13:56:14 +0000 |
commit | d14635b0c74012e464aad9e77aeeffda0f1ef154 (patch) | |
tree | bb913fa1399a1d4c7cdbd403e10c4efcc58fcdb1 /theories/Classes | |
parent | f4c5934181c3e036cb77897ad8c8a192c999f6ad (diff) |
Made option "Automatic Introduction" active by default before too many
people use the undocumented "Lemma foo x : t" feature in a way
incompatible with this activation.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@13090 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'theories/Classes')
-rw-r--r-- | theories/Classes/Morphisms.v | 17 | ||||
-rw-r--r-- | theories/Classes/RelationPairs.v | 4 |
2 files changed, 10 insertions, 11 deletions
diff --git a/theories/Classes/Morphisms.v b/theories/Classes/Morphisms.v index 2421c90d0..f21439107 100644 --- a/theories/Classes/Morphisms.v +++ b/theories/Classes/Morphisms.v @@ -476,8 +476,7 @@ Qed. Lemma proper_normalizes_proper `(Normalizes A R0 R1, Proper A R1 m) : Proper R0 m. Proof. - intros A R0 R1 H m H'. - red in H, H'. + red in H, H0. setoid_rewrite H. assumption. Qed. @@ -512,16 +511,16 @@ Hint Extern 7 (@Proper _ _ _) => proper_reflexive : typeclass_instances. (** When the relation on the domain is symmetric, we can inverse the relation on the codomain. Same for binary functions. *) -Lemma proper_sym_flip - `(Symmetric A R1)`(Proper (A->B) (R1==>R2) f) : +Lemma proper_sym_flip : + forall `(Symmetric A R1)`(Proper (A->B) (R1==>R2) f), Proper (R1==>inverse R2) f. Proof. intros A R1 Sym B R2 f Hf. intros x x' Hxx'. apply Hf, Sym, Hxx'. Qed. -Lemma proper_sym_flip_2 - `(Symmetric A R1)`(Symmetric B R2)`(Proper (A->B->C) (R1==>R2==>R3) f) : +Lemma proper_sym_flip_2 : + forall `(Symmetric A R1)`(Symmetric B R2)`(Proper (A->B->C) (R1==>R2==>R3) f), Proper (R1==>R2==>inverse R3) f. Proof. intros A R1 Sym1 B R2 Sym2 C R3 f Hf. @@ -532,14 +531,14 @@ Qed. compatible with [iff] as soon as it is compatible with [impl]. Same with a binary relation. *) -Lemma proper_sym_impl_iff `(Symmetric A R)`(Proper _ (R==>impl) f) : +Lemma proper_sym_impl_iff : forall `(Symmetric A R)`(Proper _ (R==>impl) f), Proper (R==>iff) f. Proof. intros A R Sym f Hf x x' Hxx'. repeat red in Hf. split; eauto. Qed. -Lemma proper_sym_impl_iff_2 - `(Symmetric A R)`(Symmetric B R')`(Proper _ (R==>R'==>impl) f) : +Lemma proper_sym_impl_iff_2 : + forall `(Symmetric A R)`(Symmetric B R')`(Proper _ (R==>R'==>impl) f), Proper (R==>R'==>iff) f. Proof. intros A R Sym B R' Sym' f Hf x x' Hxx' y y' Hyy'. diff --git a/theories/Classes/RelationPairs.v b/theories/Classes/RelationPairs.v index fd01495c4..7972c96ca 100644 --- a/theories/Classes/RelationPairs.v +++ b/theories/Classes/RelationPairs.v @@ -134,13 +134,13 @@ Proof. firstorder. Qed. Instance fst_compat { A B } (RA:relation A)(RB:relation B) : Proper (RA*RB ==> RA) Fst. Proof. -intros A B RA RB (x,y) (x',y') (Hx,Hy); compute in *; auto. +intros (x,y) (x',y') (Hx,Hy); compute in *; auto. Qed. Instance snd_compat { A B } (RA:relation A)(RB:relation B) : Proper (RA*RB ==> RB) Snd. Proof. -intros A B RA RB (x,y) (x',y') (Hx,Hy); compute in *; auto. +intros (x,y) (x',y') (Hx,Hy); compute in *; auto. Qed. Instance RelCompFun_compat {A B}(f:A->B)(R : relation B) |