Commit 19a50a08 authored by Philipp Meyer's avatar Philipp Meyer

Excluded ghost transitions from deadlock and safety properties

parent a1fd605d
...@@ -270,7 +270,7 @@ makeImplicitProperty net DeadlockFree = ...@@ -270,7 +270,7 @@ makeImplicitProperty net DeadlockFree =
Property "deadlock-free" Safety $ Property "deadlock-free" Safety $
foldl (:&:) FTrue foldl (:&:) FTrue
(map (foldl (:|:) FFalse . map (placeOp Lt) . lpre net) (map (foldl (:|:) FFalse . map (placeOp Lt) . lpre net)
(transitions net)) (filter (`notElem` ghostTransitions net) (transitions net)))
makeImplicitProperty net DeadlockFreeUnlessFinal = makeImplicitProperty net DeadlockFreeUnlessFinal =
let nodeadlock = makeImplicitProperty net DeadlockFree let nodeadlock = makeImplicitProperty net DeadlockFree
(finals, nonfinals) = partition (null . lpost net) (places net) (finals, nonfinals) = partition (null . lpost net) (places net)
...@@ -281,7 +281,9 @@ makeImplicitProperty net DeadlockFreeUnlessFinal = ...@@ -281,7 +281,9 @@ makeImplicitProperty net DeadlockFreeUnlessFinal =
makeImplicitProperty net (Bounded k) = makeImplicitProperty net (Bounded k) =
Property (show k ++ "-bounded") Safety $ Property (show k ++ "-bounded") Safety $
foldl (:|:) FFalse foldl (:|:) FFalse
(map (\p -> placeOp Gt (p,k)) (places net)) (map (\p -> placeOp Gt (p,k))
(filter (`notElem` concatMap (post net) (ghostTransitions net))
(places net)))
makeImplicitProperty net Safe = makeImplicitProperty net Safe =
let bounded = makeImplicitProperty net (Bounded 1) let bounded = makeImplicitProperty net (Bounded 1)
in Property "safe" Safety $ pformula bounded in Property "safe" Safety $ pformula bounded
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment