Morphism.hs revision 98890889ffb2e8f6f722b00e265a211f13b5a861
1178N/ALicense : GPLv2 or higher, see LICENSE.txt
1178N/APortability : non-portable (via Logic.Logic)
1178N/Amodule CommonLogic.Morphism
1178N/Aimport qualified Common.Result as Result
4033N/Aimport Common.Result
1178N/Aimport Common.Doc
1178N/Aimport Common.DocUtils
1178N/Aimport CommonLogic.AS_CommonLogic as AS_BASIC
1178N/Aimport CommonLogic.Sign as Sign
0N/A pdom = Map.keysSet $ propMap pmor
0N/AapplyMorphism mor idt = Map.findWithDefault idt idt $ propMap mor
4033N/AapplyMap pmap idt = Map.findWithDefault idt idt pmap
4033N/A if i == j then id else Map.insert i j)
1178N/A <> pretty y <> rparen) $ Map.assocs $ propMap m)
0N/A AS_BASIC.Quant_sent qs rn -> case qs of
0N/A (AS_BASIC.Universal xs (mapSentenceH mor sen)) rn -- fix
0N/A (AS_BASIC.Existential xs (mapSentenceH mor sen)) rn -- fix
0N/A AS_BASIC.Bool_sent bs rn -> case bs of
0N/A (AS_BASIC.Conjunction (map (mapSentenceH mor) sens)) rn
0N/A (AS_BASIC.Disjunction (map (mapSentenceH mor) sens)) rn
0N/A (AS_BASIC.Negation (mapSentenceH mor sen)) rn
1178N/A (AS_BASIC.Implication (mapSentenceH mor s1) (mapSentenceH mor s2)) rn
4033N/A (AS_BASIC.Biconditional (mapSentenceH mor s1) (mapSentenceH mor s2))
1178N/A $ id2SimpleId $ applyMorphism mor $ Id.simpleIdToId predH
0N/AmorphismUnion :: Morphism -> Morphism -> Result.Result Morphism
1178N/A (pds, pmap) = foldr ( \ (i, j) (ds, m) -> case Map.lookup i m of
1178N/A Nothing -> (ds, Map.insert i j m)
0N/A (Map.toList pmap2 ++ map (\ a -> (a, a))