SLIDE 51 Quadratic algorithm (without conflicts) [SEFM’12]
u Forward reachability algorithm
n all reachable states computed by saturation
Algorithm 1 Checking achievability in the Aeolus model function Achievability(U, T , q) absConf := {⌦T ⇥, T ⇥.init↵ | T ⇥ ⇥ U} provPort :=
⇧T ,q⌃⇤absConf {dom(T ⇥.P(q⇥))}
repeat new := {⌦T ⇥, q⇥↵ | ⌦T ⇥, q⇥⇥↵ ⇥ absConf , (q⇥⇥, q⇥) ⇥ T ⇥.trans}\absConf newPort :=
⇧T ,q⌃⇤new{dom(T ⇥.P(q⇥))}
while ⌅⌦T ⇥, q⇥↵ ⇥ new . dom(T ⇥.R(q⇥)) ⇤ provPort ⌥ newPort do new := new \ {⌦T ⇥, q⇥↵} newPort :=
⇧T ,q⌃⇤new{dom(T ⇥.P(q⇥))}
end while absConf := absConf ⌥ new provPort := provPort ⌥ newPort until new = ⇧ if ⌦T , q↵ ⇥ absConf then return true else return false end if end function