module CSPM.CoreLanguage.Event
where
import Data.Typeable
type family Event i
type family EventSet i
type family RenamingRelation i
type Sigma i = EventSet i
class BE i where
eventEq :: i -> Event i -> Event i -> Bool
member :: i -> Event i -> EventSet i -> Bool
intersection :: i -> EventSet i -> EventSet i -> EventSet i
difference :: i -> EventSet i -> EventSet i -> EventSet i
union :: i -> EventSet i -> EventSet i -> EventSet i
null :: i -> EventSet i -> Bool
singleton :: i -> Event i -> EventSet i
insert :: i -> Event i -> EventSet i -> EventSet i
delete :: i -> Event i -> EventSet i -> EventSet i
eventSetToList :: i -> EventSet i -> [Event i]
allEvents :: i -> EventSet i
isInRenaming :: i -> RenamingRelation i -> Event i -> Event i -> Bool
imageRenaming :: i -> RenamingRelation i -> Event i -> [Event i]
preImageRenaming :: i -> RenamingRelation i -> Event i -> [Event i]
isInRenamingDomain :: i -> Event i -> RenamingRelation i -> Bool
isInRenamingRange :: i -> Event i -> RenamingRelation i -> Bool
getRenamingDomain :: i -> RenamingRelation i -> [Event i]
getRenamingRange :: i -> RenamingRelation i -> [Event i]
renamingFromList :: i -> [(Event i, Event i)] -> RenamingRelation i
renamingToList :: i -> RenamingRelation i -> [(Event i, Event i)]
singleEventToClosureSet :: i -> Event i -> EventSet i
data TTE i
= TickEvent
| TauEvent
| SEvent (Event i)
deriving Typeable
class ShowEvent i where showEvent :: i -> String
class ShowTTE i where showTTE :: i -> String