Changeset 12757
- Timestamp:
- 30.10.2009 10:41:42 (3 weeks ago)
- Files:
-
- 1 modified
-
trunk/Comorphisms/CASL2PCFOL.hs (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Comorphisms/CASL2PCFOL.hs
r12730 r12757 108 108 -- | Make the name for the projection injectivity axiom 109 109 mkProjInjName :: SORT -> SORT -> String 110 mkProjInjName s s' = mkInjectivityName "projection" s' s110 mkProjInjName = mkInjectivityName "projection" 111 111 112 112 -- | create a quantified injectivity implication … … 138 138 mkProjInjAxiom :: SORT -> SORT -> Named (FORMULA ()) 139 139 mkProjInjAxiom s s' = 140 makeNamed (mkProjInjName s s')140 makeNamed (mkProjInjName s' s) 141 141 $ mkInjectivity (projectTo s) (mkVarDeclStr "x" s') $ mkVarDeclStr "y" s' 142 142 … … 155 155 -- i.e., forall x:s . pr(inj(x))=e=x 156 156 mkProjAxiom:: SORT -> SORT -> Named (FORMULA ()) 157 mkProjAxiom s s' = makeNamed (mkProjName s s')157 mkProjAxiom s s' = makeNamed (mkProjName s' s) 158 158 $ mkXExEq s (projectTo s . injectTo s') id 159 159 … … 180 180 181 181 generateAxioms :: Sign f e -> [Named (FORMULA ())] 182 generateAxioms sig = concat 183 $ [[mkEmbInjAxiom s s'] ++ [mkProjInjAxiom s s'] ++ [mkProjAxiom s s'] 184 | s <- sorts, 185 s' <- realSupers s] 186 ++ [[mkTransAxiom s s' s''] 187 | s <- sorts, 188 s' <- realSupers s, 189 s'' <- realSupers s', 190 s'' /= s] 191 ++ [[mkIdAxiom s s'] 192 | s <- sorts, 193 s' <- realSupers s, 194 Set.member s $ supersortsOf s' sig] 182 generateAxioms sig = concatMap (\ s -> 183 concatMap (\ s' -> 184 [mkIdAxiom s s' | Set.member s $ supersortsOf s' sig ] 185 ++ mkEmbInjAxiom s s' : mkProjInjAxiom s s' : mkProjAxiom s s' 186 : map (mkTransAxiom s s') (realSupers s')) 187 $ realSupers s) $ Set.toList $ sortSet sig 195 188 where 196 189 realSupers so = Set.toList $ supersortsOf so sig 197 sorts = Set.toList $ sortSet sig198 190 199 191 f2Formula :: FORMULA f -> FORMULA f