% JH : TODO : serait-ce pertinent de mentionner ici la timelessness et l'objectivité de isQueue et la persistence de queueInv? Cela fait partie de la spec, à mon sens.
% GLEN: la persistance oui, la timelessness c’est peut-être trop technique ?
% TODO: a-t-on dit quelque part que tous ces triplets atomiques ont implicitement \queueInv en hypothèse ?
@@ -59,7 +59,7 @@ The idea of logical atomicity~\cite[\S7]{jung-slides-2019,iris-15} aims at addre
When using this concept, instead of using ordinary Hoare triples, we use \emph{logically atomic triples}.
This kind of triples are like Hoare triples: they specify a program fragment, have a precondition and a postcondition.
The core difference is that they allow opening invariants around the triple: in a sense, when a function is specified using logically atomic triples, one states that said function behaves just like if it were atomic.
The definition of logically atomic triples is further discussed in
The definition of logically atomic triples is further discussed in~\sref{sec:queue:proof:la}
% TODO : référencer la section
and given with detail in previous work~\cite[\S7]{jung-slides-2019,iris-15}.
In order to get a good intuition, let us consider an approximated definition of that concept: a logically atomic triple $\lahoare{P}{e}{Q}$ states, roughly, that the expression $e$ contains a linearization point which has $P$ as a precondition and $Q$ as a postcondition.
...
...
@@ -67,13 +67,13 @@ This linearization point being atomic, it allows the opening of invariants just
%
\begin{mathpar}
%
\infer{%
\infer[LAHoare]{% using the rule names from \cite{iris-15}
\lahoare <x> {P}{e}{Q}
}{%
\Forall x. \hoare{P}{e}{Q}
}
\infer{%
\infer[LAInv]{% using the rule names from \cite{iris-15}
\lahoare <x> {\later I \isep P}{e}{\later I \isep Q}