CASL2Prop.hs revision d29201dd5328b88140ce050100693c501852657d
957N/APortability : non-portable (imports Logic.Logic)
957N/Amodule Comorphisms.CASL2Prop (CASL2Prop (..)) where
957N/Aimport Common.ProofTree
957N/Aimport Logic.Logic
957N/Aimport Logic.Comorphism
957N/Aimport qualified Propositional.Logic_Propositional as PLogic
957N/Aimport qualified Propositional.AS_BASIC_Propositional as PBasic
957N/Aimport qualified Propositional.Sublogic as PSL
957N/Aimport qualified Propositional.Sign as PSign
957N/Aimport qualified Propositional.Morphism as PMor
957N/Aimport qualified Propositional.Symbol as PSymbol
957N/Aimport CASL.Logic_CASL
957N/Aimport CASL.AS_Basic_CASL
957N/Aimport CASL.Sublogic
957N/Aimport CASL.Morphism
957N/Aimport Common.AS_Annotation
import Common.Result
import Common.DocUtils
targetLogic CASL2Prop = PLogic.Propositional
mapSig :: CASLSign -> PSign.Sign
mapSub :: CASL_Sublogics -> PSL.PropSL
mapMor :: CASLMor -> Result PMor.Morphism
mapMor mor = return PMor.Morphism
{ PMor.source = mapSig (msource mor)
, PMor.target = mapSig (mtarget mor)
_ -> Set.empty
trNamedForm :: Named CASLFORMULA -> Result (Named PBasic.FORMULA)
trForm :: CASLFORMULA -> Result PBasic.FORMULA
return $ PBasic.Negation t rn
return $ PBasic.Conjunction ts rn
return $ PBasic.Disjunction ts rn
return $ if b then PBasic.Implication t1 t2 rn else
PBasic.Implication t2 t1 rn
return $ PBasic.Equivalence t1 t2 rn
True_atom rn -> return $ PBasic.True_atom rn
False_atom rn -> return $ PBasic.False_atom rn
return . PBasic.Predication . mkSimpleId $ show pid