fregel-1.2.0: sample-programs/re.fgl
{- reachability problems -}
data RVal = RVal { rch :: Bool } deriving (Eq, Show)
reAll g =
let init v = RVal (vid v == 1) ;
step v prev curr =
let newrch = prev v .^ rch || or [ prev u .^ rch | (e,u) <- is v ]
in RVal newrch
in fregel init step Fix g
re3 g =
let init v = RVal (vid v == 1) ;
step v prev curr =
let newrch = prev v .^ rch || or [ prev u .^ rch | (e,u) <- is v ]
in RVal newrch
in fregel init
step
(Until (\g -> sum [ 1 | u <- g, val u .^ rch ] > 3))
g