remove reliance on General.v
[coq-categories.git] / src / Isomorphisms_ch1_5.v
index fd9e19a..372ad43 100644 (file)
@@ -1,6 +1,5 @@
 Generalizable All Variables.
 Require Import Preamble.
-Require Import General.
 Require Import Categories_ch1_3.
 Require Import Functors_ch1_4.
 
@@ -45,7 +44,7 @@ Definition iso_id `{C:Category}(A:C) : Isomorphic A A.
   Defined.
 
 (* the composition of two isomorphisms is an isomorphism *)
-Definition id_comp `{C:Category}{a b c:C}(i1:Isomorphic a b)(i2:Isomorphic b c) : Isomorphic a c.
+Definition iso_comp `{C:Category}{a b c:C}(i1:Isomorphic a b)(i2:Isomorphic b c) : Isomorphic a c.
   intros; apply (@Build_Isomorphic _ _ C a c (#i1 >>> #i2) (#i2⁻¹ >>> #i1⁻¹));
     setoid_rewrite juggle3;
     [ setoid_rewrite (iso_comp1 i2) | setoid_rewrite (iso_comp2 i1) ];
@@ -102,3 +101,19 @@ Lemma iso_shift_left' `{C:Category} : forall {a b c:C}(f:a~>b)(g:a~>c)(i:Isomorp
   symmetry.
   apply right_identity.
   Qed.  
+
+Lemma isos_forward_equal_then_backward_equal `{C:Category}{a}{b}(i1 i2:a ≅ b) : #i1 ~~ #i2 ->  #i1⁻¹ ~~ #i2⁻¹.
+  intro H.
+  setoid_rewrite <- left_identity at 1.
+  setoid_rewrite <- (iso_comp2 i2).
+  setoid_rewrite associativity.
+  setoid_rewrite <- H.
+  setoid_rewrite iso_comp1.
+  setoid_rewrite right_identity.
+  reflexivity.
+  Qed.
+
+Lemma iso_inv_inv `{C:Category}{a}{b}(i:a ≅ b) : #(i⁻¹)⁻¹ ~~ #i.
+  unfold iso_inv; simpl.
+  reflexivity.
+  Qed.