refactor pool_safe
This MR refactors pool_safe
to use a more constructive formulation (see #10).
In short,
- the new definition of
pool_safe
pushes through the negation at the top of the old definition (which was defined in terms ofpool_reach_stuck
), - but leaves the definition of
pool_reach_stuck
as it is (a definition in terms ofpool_safe
seems very unconstructive). This is relevant in particular because our definition of behaviour still usesreach_stuck
. This definition has the consequence that the equivalencenot pool_safe <-> pool_reach_stuck
does hold only classically or with decidability of reduction now. - we need XM at a few different places in the adequacy proof and in the behaviour metatheory and can drop it at others.
-
reach_or_stuck
has becomesafe_reach
and is defined in terms ofpool_safe
now, -
IrredUnless
has been replaced bySafeImplies
, which is defined assafe P e σ -> ϕ
, which mostly matches the def we show on paper.
This entails that also the relevant lemmas for exploiting safety have been renamed, e.g.:
-
source_red_irred_unless
has becomesource_red_safe_implies
, -
safe_reach_irred
has becomesafe_reach_safe
, -
pool_safe_irred
has becomepool_safe_implies
.
@jung or @msammler : can you review if you are fine with the naming changes?