Factor plainly out of main BI interface
The intention is to make the axioms compatible with
plainly P r := forall s, P s
in linear BIs. This
is needed to obtain propositional extensionality.
Merge request reports
Activity
We should not remove laws that no longer hold in the linear case. They still hold in the affine case, and @amintimany needs them, so we should have versions of them parameterized by
BiAffine
or something weaker.Apart from those for the combined modality, all of them exist in Iris
master
, so they should be preserved.Edited by Robbert Krebbersadded 1 commit
- 205285b9 - recover plainly_sep for affine BIs, and some other laws
Okay so here is the problem with
tac_always_intros
: With the proposed definition of■
, the intended behavior "make sure the affine-persistent context is allpureplain and clear the spatial context, then remove the■
in the goal" is just wrong. We would then be proving the new goal with an empty spatial context; in particular, we would be proving the new goal with a context that entailsemp
. So instead of showing it for all resources, we only show it foremp
.My proposed fix is based on the observation that
pureplain and affine are orthogonal in a linear setting. So whatiAlways
should do is remove everything non-pureplain from both contexts -- this could mean leaving this behind in the spatial context, aspureplain does not imply affine! (So, actually, we probably could allow a non-empty spatial context even for introducing persistent? Some persistent things may not be able to move to the affine-persistent context, after all.) Next, it moves everything from the affine-persistent context to the spatial context. Now we have an empty affine-persistent context and onlypureplain things in the spatial context. Now we can remove the■
.Edited by Ralf Jungwhen both contexts are empty, you cannot introduce
■ P
.What do you mean? You can introduce
■
when the affine-persistent context is empty and the spatial context is all plain. In that case, the context is[/\] nil /\ [*] \Gamma
where everything in\Gamma
is plain, so we can turn this into[/\] nil /\ [*] plainly \Gamma
which impliesplainly [*] \Gamma
so we can introduce the goal.Why not only allow one to introduce
■ P
whenP
is absorbing?That seems like a pretty arbitrary restriction.
Edited by Ralf Jung