From 57dfee583c84915cb6b3aadfa1dba692681499b3 Mon Sep 17 00:00:00 2001 From: Adam Megacz Date: Sat, 9 Apr 2011 08:52:38 +0000 Subject: [PATCH] Isomorphisms: add alternative forms, useful for rewriting --- src/Isomorphisms_ch1_5.v | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/Isomorphisms_ch1_5.v b/src/Isomorphisms_ch1_5.v index 18eb3db..422d4bb 100644 --- a/src/Isomorphisms_ch1_5.v +++ b/src/Isomorphisms_ch1_5.v @@ -118,3 +118,32 @@ Lemma iso_inv_inv `{C:Category}{a}{b}(i:a ≅ b) : #(i⁻¹)⁻¹ ~~ #i. unfold iso_inv; simpl. reflexivity. Qed. + +(* the next four lemmas are handy for setoid_rewrite; they let you avoid having to get the associativities right *) +Lemma iso_comp2_right : forall `{C:Category}{a b}(i:a≅b) c (g:b~>c), iso_backward i >>> (iso_forward i >>> g) ~~ g. + intros. + setoid_rewrite <- associativity. + setoid_rewrite iso_comp2. + apply left_identity. + Qed. + +Lemma iso_comp2_left : forall `{C:Category}{a b}(i:a≅b) c (g:c~>b), (g >>> iso_backward i) >>> iso_forward i ~~ g. + intros. + setoid_rewrite associativity. + setoid_rewrite iso_comp2. + apply right_identity. + Qed. + +Lemma iso_comp1_right : forall `{C:Category}{a b}(i:a≅b) c (g:a~>c), iso_forward i >>> (iso_backward i >>> g) ~~ g. + intros. + setoid_rewrite <- associativity. + setoid_rewrite iso_comp1. + apply left_identity. + Qed. + +Lemma iso_comp1_left : forall `{C:Category}{a b}(i:a≅b) c (g:c~>a), (g >>> iso_forward i) >>> iso_backward i ~~ g. + intros. + setoid_rewrite associativity. + setoid_rewrite iso_comp1. + apply right_identity. + Qed. -- 1.7.10.4