Skip to content

Commit bd16d92

Browse files
committed
Rename Morphism-related functions for clarity. #148
1 parent 9690d64 commit bd16d92

File tree

3 files changed

+32
-32
lines changed

3 files changed

+32
-32
lines changed

src/Language/CQL/Mapping.hs

+7-7
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ import qualified Data.Set as Set
4747
import Data.Typeable
4848
import Data.Void
4949
import Language.CQL.Common
50-
import Language.CQL.Morphism (Morphism(..), trans, trans', typeOfMor)
50+
import Language.CQL.Morphism (Morphism(..), translate, translate', typeOfMor)
5151
import Language.CQL.Schema as Schema
5252
import Language.CQL.Term
5353
import Prelude hiding (EQ)
@@ -125,16 +125,16 @@ validateMapping m@(Mapping src' dst' ens' _ _) = do
125125
where
126126
validateObsEq :: (en, EQ () ty sym en fk att Void Void) -> Err ()
127127
validateObsEq (enx, EQ (l,r)) = let
128-
l' = trans (mapToMor m) l
129-
r' = trans (mapToMor m) r :: Term () ty sym en' fk' att' Void Void
128+
l' = translate (mapToMor m) l
129+
r' = translate (mapToMor m) r :: Term () ty sym en' fk' att' Void Void
130130
en' = ens' ! enx
131131
in if eq dst' en' (EQ (l', r'))
132132
then pure ()
133133
else Left $ show l ++ " = " ++ show r ++ " translates to " ++ show l' ++ " = " ++ show r' ++ " which is not provable"
134134
validatePathEq :: (en, EQ () Void Void en fk Void Void Void) -> Err ()
135135
validatePathEq (enx, EQ (l,r)) = let
136-
l' = trans' (mapToMor m) l
137-
r' = trans' (mapToMor m) r :: Term () Void Void en' fk' Void Void Void
136+
l' = translate' (mapToMor m) l
137+
r' = translate' (mapToMor m) r :: Term () Void Void en' fk' Void Void Void
138138
en' = ens' ! enx
139139
in if eq dst' en' (EQ (upp l', upp r'))
140140
then pure ()
@@ -187,8 +187,8 @@ composeMapping
187187
composeMapping (Mapping s t e f a) m2@(Mapping s' t' e' _ _) =
188188
if t == s'
189189
then let e'' = Map.fromList [ (k, e' ! v) | (k, v) <- Map.toList e ]
190-
f'' = Map.fromList [ (k, trans' (mapToMor m2) v) | (k, v) <- Map.toList f ]
191-
a'' = Map.fromList [ (k, trans (mapToMor m2) v) | (k, v) <- Map.toList a ]
190+
f'' = Map.fromList [ (k, translate' (mapToMor m2) v) | (k, v) <- Map.toList f ]
191+
a'' = Map.fromList [ (k, translate (mapToMor m2) v) | (k, v) <- Map.toList a ]
192192
in pure $ Mapping s t' e'' f'' a''
193193
else Left $ "Source and target schemas do not match: " ++ show t ++ " and " ++ show s'
194194

src/Language/CQL/Morphism.hs

+15-15
Original file line numberDiff line numberDiff line change
@@ -79,39 +79,39 @@ checkDoms' mor = do
7979
s sk = if Map.member sk $ m_sks mor then pure () else Left $ "No sk mapping for " ++ show sk
8080

8181
-- | Translates a term along a morphism.
82-
trans'
82+
translate'
8383
:: forall var var' ty sym en fk att gen sk en' fk' att' gen' sk'
8484
. TyMap Ord '[gen, sk, fk, var, att, var']
8585
=> Morphism var ty sym en fk att gen sk en' fk' att' gen' sk'
8686
-> Term var' Void Void en fk Void gen Void
8787
-> Term var' Void Void en' fk' Void gen' Void
88-
trans' _ (Var x) = Var x
89-
trans' mor (Fk f a) = let
90-
x = trans' mor a :: Term var' Void Void en' fk' Void gen' Void
91-
y = upp (m_fks mor ! f) :: Term () Void Void en' fk' Void gen' Void
88+
translate' _ (Var x) = Var x
89+
translate' mor (Fk f a) = let
90+
x = translate' mor a :: Term var' Void Void en' fk' Void gen' Void
91+
y = upp (m_fks mor ! f) :: Term () Void Void en' fk' Void gen' Void
9292
in subst y x
93-
trans' mor (Gen g) = upp $ m_gens mor ! g
94-
trans' _ (Sym _ _) = undefined
95-
trans' _ (Att _ _) = undefined
96-
trans' _ (Sk _ ) = undefined
93+
translate' mor (Gen g) = upp $ m_gens mor ! g
94+
translate' _ (Sym _ _) = undefined
95+
translate' _ (Att _ _) = undefined
96+
translate' _ (Sk _ ) = undefined
9797

9898
-- | Translates a term along a morphism.
99-
trans
99+
translate
100100
:: forall var var' ty sym en fk att gen sk en' fk' att' gen' sk'
101101
. TyMap Ord '[gen, sk, fk, var, att, var']
102102
=> Morphism var ty sym en fk att gen sk en' fk' att' gen' sk'
103103
-> Term var' ty sym en fk att gen sk
104104
-> Term var' ty sym en' fk' att' gen' sk'
105-
trans mor term = case term of
105+
translate mor term = case term of
106106
Var x -> Var x
107-
Sym f xs -> Sym f $ Prelude.map (trans mor) xs
107+
Sym f xs -> Sym f (translate mor <$> xs)
108108
Gen g -> upp $ m_gens mor ! g
109109
Sk s -> upp $ m_sks mor ! s
110-
Att f a -> subst (upp $ (m_atts mor) ! f) $ trans mor a
110+
Att f a -> subst (upp $ m_atts mor ! f) $ translate mor a
111111
Fk f a -> subst (upp y) x
112112
where
113-
x = trans mor a :: Term var' ty sym en' fk' att' gen' sk'
114-
y = m_fks mor ! f :: Term () Void Void en' fk' Void Void Void
113+
x = translate mor a :: Term var' ty sym en' fk' att' gen' sk'
114+
y = m_fks mor ! f :: Term () Void Void en' fk' Void Void Void
115115

116116

117117
typeOfMor

src/Language/CQL/Transform.hs

+10-10
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ import Data.Void
4949
import Language.CQL.Common
5050
import Language.CQL.Instance as I
5151
import Language.CQL.Mapping as M
52-
import Language.CQL.Morphism (Morphism(..), trans, trans', typeOfMor)
52+
import Language.CQL.Morphism (Morphism(..), translate, translate', typeOfMor)
5353
import Language.CQL.Options
5454
import Language.CQL.Query
5555
import Language.CQL.Schema as S
@@ -95,7 +95,7 @@ typecheckTransform
9595
:: (MultiTyMap '[Show, Ord, Typeable, NFData] '[sym, en, fk, att], MultiTyMap '[Show, Ord, NFData] '[var, ty, gen, sk, x, y, gen', sk', x', y'])
9696
=> Transform var ty sym en fk att gen sk x y gen' sk' x' y'
9797
-> Err ()
98-
typecheckTransform m = typeOfMor $ transToMor m
98+
typecheckTransform m = typeOfMor $ toMorphism m
9999

100100
validateTransform
101101
:: forall var ty sym en fk att gen sk x y gen' sk' x' y' -- need forall
@@ -107,17 +107,17 @@ validateTransform m@(Transform src' dst' _ _) =
107107
where
108108
f :: (EQ Void ty sym en fk att gen sk) -> Err () -- need type signature
109109
f (EQ (l, r)) = let
110-
l' = trans (transToMor m) l
111-
r' = trans (transToMor m) r :: Term Void ty sym en fk att gen' sk'
110+
l' = translate (toMorphism m) l
111+
r' = translate (toMorphism m) r :: Term Void ty sym en fk att gen' sk'
112112
in if dp dst' (EQ (l', r'))
113113
then pure ()
114114
else Left $ show l ++ " = " ++ show r ++ " translates to " ++ show l' ++ " = " ++ show r' ++ " which is not provable"
115115

116-
transToMor
116+
toMorphism
117117
:: (MultiTyMap '[Show, Ord, NFData] '[var, ty, sym, gen, sk, en', fk', att', gen', sk'])
118118
=> Transform var ty sym en' fk' att' gen sk x1 y1 gen' sk' x2 y2
119119
-> Morphism var ty sym en' fk' att' gen sk en' fk' att' gen' sk'
120-
transToMor (Transform src' dst' gens' sks') =
120+
toMorphism (Transform src' dst' gens' sks') =
121121
Morphism (presToCol (I.schema src') (pres src'))
122122
(presToCol (I.schema src') (pres dst'))
123123
ens0 fks0 atts0 gens' sks'
@@ -195,8 +195,8 @@ composeTransform (Transform s t f a) m2@(Transform s' t' _ _)
195195
| t == s' = pure $ Transform s t' f'' a''
196196
| otherwise = Left $ "Source and target instances do not match: " ++ show t ++ " and " ++ show s'
197197
where
198-
f'' = Map.fromList [ (k, trans' (transToMor m2) v) | (k, v) <- Map.toList f ]
199-
a'' = Map.fromList [ (k, trans (transToMor m2) v) | (k, v) <- Map.toList a ]
198+
f'' = Map.fromList [ (k, translate' (toMorphism m2) v) | (k, v) <- Map.toList f ]
199+
a'' = Map.fromList [ (k, translate (toMorphism m2) v) | (k, v) <- Map.toList a ]
200200

201201
evalSigmaTrans
202202
:: (MultiTyMap '[Show, Ord, Typeable, NFData] '[var, ty, sym, en, fk, att, gen, sk, en', fk', att', gen', sk', x', y'])
@@ -252,8 +252,8 @@ evalDeltaTrans m h o = do
252252
j <- evalDeltaInst m (dstT h) o
253253
pure $ Transform i j (gens' i) (sks' i)
254254
where
255-
gens' i = mapWithKey (\(_,x) en' -> Gen (en', nf (algebra $ dstT h) $ trans' (transToMor h) $ repr (algebra $ srcT h) x)) $ I.gens $ pres i
256-
sks' i = mapWithKey (\y _ -> upp $ nf'' (algebra $ dstT h) $ trans (transToMor h) $ repr' (algebra $ srcT h) y) $ I.sks $ pres i
255+
gens' i = mapWithKey (\(_,x) en' -> Gen (en', nf (algebra $ dstT h) $ translate' (toMorphism h) $ repr (algebra $ srcT h) x)) $ I.gens $ pres i
256+
sks' i = mapWithKey (\y _ -> upp $ nf'' (algebra $ dstT h) $ translate (toMorphism h) $ repr' (algebra $ srcT h) y) $ I.sks $ pres i
257257

258258
---------------------------------------------------------------------------------------------------------
259259
-- Raw literals

0 commit comments

Comments
 (0)