The name of the initial branch for new projects is now "main" instead of "master". Existing projects remain unchanged. More information:

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

Excluded ghost transitions from deadlock and safety properties

parent a1fd605d
......@@ -270,7 +270,7 @@ makeImplicitProperty net DeadlockFree =
Property "deadlock-free" Safety $
foldl (:&:) FTrue
(map (foldl (:|:) FFalse . map (placeOp Lt) . lpre net)
(transitions net))
(filter (`notElem` ghostTransitions net) (transitions net)))
makeImplicitProperty net DeadlockFreeUnlessFinal =
let nodeadlock = makeImplicitProperty net DeadlockFree
(finals, nonfinals) = partition (null . lpost net) (places net)
......@@ -281,7 +281,9 @@ makeImplicitProperty net DeadlockFreeUnlessFinal =
makeImplicitProperty net (Bounded k) =
Property (show k ++ "-bounded") Safety $
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 =
let bounded = makeImplicitProperty net (Bounded 1)
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