| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Modelling.PetriNet.Reach.Deadlock
Description
originally from Autotool (https:/gitlab.imn.htwk-leipzig.deautotool/all0) based on revision: ad25a990816a162fdd13941ff889653f22d6ea0a based on file: collectionsrcPetri/Deadlock.hs
Synopsis
- data DeadlockInstance s t = DeadlockInstance {
- drawUsing :: GraphvizCommand
- minLength :: Int
- noLongerThan :: Maybe Int
- petriNet :: Net s t
- showPlaceNames :: Bool
- maxDisplayedSolutions :: Int
- shortestSolutions :: Either (NonEmpty [t]) (NonEmpty [t])
- withLengthHint :: Maybe Int
- withMinLengthHint :: Bool
- rejectSpaceballsLength :: Maybe Int
- data DeadlockConfig = DeadlockConfig {
- numPlaces :: Int
- numTransitions :: Int
- capacity :: Capacity Place
- graphLayouts :: [GraphvizCommand]
- maxTransitionLength :: Int
- minTransitionLength :: Int
- transitionBehaviorConstraints :: TransitionBehaviorConstraints
- arrowDensityConstraints :: ArrowDensityConstraints
- maxPrintedSolutions :: Int
- rejectLongerThan :: Maybe Int
- showLengthHint :: Bool
- showMinLengthHint :: Bool
- showPlaceNamesInNet :: Bool
- fusableTransitionsConsumingAreExactly :: Maybe Int
- fusableTransitionsProducingAreExactly :: Maybe Int
- filterConfig :: FilterConfig
- checkDeadlockConfig :: DeadlockConfig -> Maybe String
- generateDeadlock :: (MonadCatch m, MonadDiagrams m, MonadGraphviz m) => DeadlockConfig -> Int -> m (DeadlockInstance Place Transition)
- deadlockTask :: forall (m :: Type -> Type) s t. (MonadCache m, MonadDiagrams m, MonadGraphviz m, MonadThrow m, Ord s, Ord t, OutputCapable m, Show s, Show t) => Bool -> FilePath -> DeadlockInstance s t -> LangM m
- verifyDeadlock :: forall (m :: Type -> Type) a t. (OutputCapable m, Show a, Show t, Ord t, Ord a) => DeadlockInstance a t -> LangM m
- deadlockEvaluation :: forall (m :: Type -> Type). (Alternative m, MonadCache m, MonadDiagrams m, MonadGraphviz m, MonadThrow m, OutputCapable m) => FilePath -> DeadlockInstance Place Transition -> [Transition] -> Rated m
- deadlockSyntax :: forall (m :: Type -> Type). OutputCapable m => DeadlockInstance Place Transition -> [Transition] -> LangM m
- deadlockInitial :: DeadlockInstance s Transition -> TransitionsList
- defaultDeadlockConfig :: DeadlockConfig
- defaultDeadlockInstance :: DeadlockInstance Place Transition
- bimapDeadlockInstance :: (Ord a, Ord b) => (s -> a) -> (t -> b) -> DeadlockInstance s t -> DeadlockInstance a b
- toShowDeadlockInstance :: DeadlockInstance Place Transition -> DeadlockInstance ShowPlace ShowTransition
- exampleInstance :: Net Int Int
Types
data DeadlockInstance s t Source #
Constructors
| DeadlockInstance | |
Fields
| |
Instances
data DeadlockConfig Source #
Configuration for deadlock task generation. Note: The two kinds of fusable transition/place situations (consuming-fusable and producing-fusable) are guaranteed to be non-overlapping. No transition will be both consuming-fusable and producing-fusable and no such transitions will share a fusing-relevant place.
Constructors
| DeadlockConfig | |
Fields
| |
Instances
| Generic DeadlockConfig Source # | |||||
Defined in Modelling.PetriNet.Reach.Deadlock Associated Types
Methods from :: DeadlockConfig -> Rep DeadlockConfig x # to :: Rep DeadlockConfig x -> DeadlockConfig # | |||||
| Read DeadlockConfig Source # | |||||
Defined in Modelling.PetriNet.Reach.Deadlock Methods readsPrec :: Int -> ReadS DeadlockConfig # readList :: ReadS [DeadlockConfig] # | |||||
| Show DeadlockConfig Source # | |||||
Defined in Modelling.PetriNet.Reach.Deadlock Methods showsPrec :: Int -> DeadlockConfig -> ShowS # show :: DeadlockConfig -> String # showList :: [DeadlockConfig] -> ShowS # | |||||
| type Rep DeadlockConfig Source # | |||||
Defined in Modelling.PetriNet.Reach.Deadlock type Rep DeadlockConfig = D1 ('MetaData "DeadlockConfig" "Modelling.PetriNet.Reach.Deadlock" "modelling-tasks-0.0.0.1-2KiclaEArwR4yz1IHg8eKf" 'False) (C1 ('MetaCons "DeadlockConfig" 'PrefixI 'True) ((((S1 ('MetaSel ('Just "numPlaces") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Just "numTransitions") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)) :*: (S1 ('MetaSel ('Just "capacity") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Capacity Place)) :*: S1 ('MetaSel ('Just "graphLayouts") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [GraphvizCommand]))) :*: ((S1 ('MetaSel ('Just "maxTransitionLength") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Just "minTransitionLength") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)) :*: (S1 ('MetaSel ('Just "transitionBehaviorConstraints") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TransitionBehaviorConstraints) :*: S1 ('MetaSel ('Just "arrowDensityConstraints") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ArrowDensityConstraints)))) :*: (((S1 ('MetaSel ('Just "maxPrintedSolutions") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Just "rejectLongerThan") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Int))) :*: (S1 ('MetaSel ('Just "showLengthHint") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "showMinLengthHint") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) :*: ((S1 ('MetaSel ('Just "showPlaceNamesInNet") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "fusableTransitionsConsumingAreExactly") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Int))) :*: (S1 ('MetaSel ('Just "fusableTransitionsProducingAreExactly") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Int)) :*: S1 ('MetaSel ('Just "filterConfig") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FilterConfig)))))) | |||||
Generation
generateDeadlock :: (MonadCatch m, MonadDiagrams m, MonadGraphviz m) => DeadlockConfig -> Int -> m (DeadlockInstance Place Transition) Source #
Task creation
deadlockTask :: forall (m :: Type -> Type) s t. (MonadCache m, MonadDiagrams m, MonadGraphviz m, MonadThrow m, Ord s, Ord t, OutputCapable m, Show s, Show t) => Bool -> FilePath -> DeadlockInstance s t -> LangM m Source #
verifyDeadlock :: forall (m :: Type -> Type) a t. (OutputCapable m, Show a, Show t, Ord t, Ord a) => DeadlockInstance a t -> LangM m Source #
Evaluation
deadlockEvaluation :: forall (m :: Type -> Type). (Alternative m, MonadCache m, MonadDiagrams m, MonadGraphviz m, MonadThrow m, OutputCapable m) => FilePath -> DeadlockInstance Place Transition -> [Transition] -> Rated m Source #
deadlockSyntax :: forall (m :: Type -> Type). OutputCapable m => DeadlockInstance Place Transition -> [Transition] -> LangM m Source #
Configuration
Utilities
bimapDeadlockInstance :: (Ord a, Ord b) => (s -> a) -> (t -> b) -> DeadlockInstance s t -> DeadlockInstance a b Source #