@@ -2,6 +2,7 @@ module Control.Isomorphism
3import Syntax.PreorderReasoning
3import Syntax.PreorderReasoning
4import Data.Fin
4import Data.Fin
5+import Control.Category
6%default total
7%default total
7%access public export
8%access public export
@@ -32,6 +33,10 @@ isoTrans (MkIso to from toFrom fromTo) (MkIso to' from' toFrom' fromTo') =
32 (from (to x)) ={ fromTo x }=
33 (from (to x)) ={ fromTo x }=
35||| Isomorphism is symmetric
40||| Isomorphism is symmetric
36isoSym : Iso a b -> Iso b a
41isoSym : Iso a b -> Iso b a
37isoSym (MkIso to from toFrom fromTo) = MkIso from to fromTo toFrom
42isoSym (MkIso to from toFrom fromTo) = MkIso from to fromTo toFrom