-
Figure 1.
Left: Initial pointed Kripke model
. Right: Updated model$ {\cal{M}} $ (the actual world$ {\cal{M}}^U $ is dark gray). A formula$ v $ within a circle representing a world means that$ \varphi $ is true in this world. A light-gray rectangle with$ \varphi $ in the top left corner is the cluster that is numbered$ n $ . A double arrow from such cluster$ n $ to cluster$ n $ represents a set of accessibility arrows with the same agent's label from every world of cluster$ m $ to every world of cluster$ n $ .$ m $ -
Figure 2.
Left: Initial (pointed) Kripke model
where agent$ {\cal{M}} $ and$ a $ are uncertain about whether$ b $ or$ p $ is true. Right: (Pointed) action model$ \lnot p $ for a private message$ {\cal{U}} $ to$ p $ : agent$ a $ learns$ a $ , while$ p $ believes that nothing happened. A formula$ b $ within a square representing an event$ \varphi $ is the precondition for this event, i.e.,$ \beta $ .$ \text{pre}(\beta) = \varphi $ -
Figure 3.
Left: First product update
of Kripke model$ {\cal{M}} \otimes {\cal{U}} $ with action model$ {\cal{M}} $ . Right: Second product update$ {\cal{U}} $ with the same action model$ ({\cal{M}} \otimes {\cal{U}}) \otimes {\cal{U}} $ .$ {\cal{U}} $ is true in all worlds that start from$ p $ and false in all worlds that start from$ p $ .$ \lnot p $ -
Figure 4.
Third product update
with the same action model$ \bigl(({\cal{M}} \otimes {\cal{U}})\otimes {\cal{U}}\bigr)\otimes {\cal{U}} $ .$ {\cal{U}} $ -
Figure 5.
Successful update synthesis
by applying pointed update with pointed action model$ {\cal{M}}\odot {\cal{U}}_\varphi, (v,0) \vDash \varphi $ for DBI formula (1) from Example 8 to$ ({\cal{U}}_ \varphi,0) $ from Fig. 1 (left).$ ({\cal{M}},v) $ -
Figure 6.
Balder-Loki-Thor updated model using product updates
.$ {\cal{M}} \otimes {\cal{U}}_\varphi $ -
Figure 7.
Sketch of the result of the iterated product update operation
. Grey rectangles are a compact way to represent sub-models originating from worlds in the previous model. Dotted arrows are meant to capture the direction of the arrows and the agents involved. Unlike double arrows, they do not represent arrows from and to all worlds in the rectangle, but only from and to some of these worlds. We leave to the reader their identification. Finally, note that the sink is a copy of the previous model.$ ({\cal{M}} \otimes {\cal{U}}_\varphi) \otimes {\cal{U}}_\varphi $ -
Figure 8.
Modal syntactic trees.
-
// initially add the model’s point 1: $ E^\varphi := \{0\} $ 2: for all do$ i \in {\cal{A}} $ 3: $ Q^\varphi_{i} := \varnothing $ 4: $ pre(0) := \top $ 5: ,$ {\text{CreateActionModel (}} \varphi $ ,$ \langle E^\varphi, R^\varphi, pre^\varphi \rangle $ $ {\text{0)}} $ 6: $ {\text{AddSink}} (\langle E^\varphi, Q^\varphi, pre^\varphi \rangle)$ 7: return $ (\langle E^\varphi, Q^\varphi, pre^\varphi\rangle, 0) $ Table 1.
.$ {\text{SynthesizeActionModel}} (\varphi) $ -
// are passed by reference$\langle E^\varphi, Q^\varphi, pre^\varphi\rangle$ 1: if for propositional formula$ \varphi = B_i \xi $ then$ \xi $ 2: $ u':=\text{ComputeAccState}(\langle E^{\varphi},Q^{\varphi},pre^{\varphi}\rangle, u,i) $ 3: $ pre^\varphi(u') := \xi $ 4: else if then$ \varphi = B_i \varphi' $ 5: $ u' := { \text{ComputeAccState}}(\langle E^\varphi, Q^\varphi, pre^\varphi\rangle, u, i) $ 6: $ { \text{CreateActionModel}}(\varphi', \langle E^\varphi, Q^\varphi, pre^\varphi\rangle, u') $ 7: else if then$ \varphi = B_i (\xi \wedge \varphi') $ 8: $ u':=\text{ComputeAccState}(\langle E^{\varphi},Q^{\varphi},pre^{\varphi}\rangle, u,i) $ 9: $ \text{CreateActionModel}(\varphi', \langle E^\varphi, Q^\varphi, pre^\varphi\rangle, u') $ 10: $ pre^\varphi(u') := \xi $ 11: else if then$ \varphi = \varphi_1 \wedge \varphi_2 $ 12: $ { \text{CreateActionModel}}(\varphi_1, \langle E^\varphi, Q^\varphi, pre^\varphi\rangle, u) $ 13: $ { \text{CreateActionModel}}(\varphi_2, \langle E^\varphi, Q^\varphi, pre^\varphi\rangle, u) $ Table 2.
.$ {\text{CreateActionModel}} (\varphi, \langle E^\varphi, Q^\varphi, pre^\varphi\rangle, u) $ -
// are passed by reference$\langle E^\varphi, Q^\varphi, pre^\varphi\rangle$ 1: create new state (s.t.$ u' $ and$ u' \ne 0 $ ) with$ u' \ne -1 $ $ \text{pre}^\varphi(u') = \top $ 2: $ E^\varphi := E^\varphi \cup \{u'\} $ 3: $ Q^\varphi_i := Q^\varphi_i \cup \{(u, u'), (u', u')\} $ 4: return $ u' $ Table 3.
.$ \text{ComputeAccState}(\left\langle E^{\varphi},Q^{\varphi},pre^{\varphi}\right\rangle, u,i) $ -
1: create state , where$ -1 $ $ pre^\varphi(-1) = \top $ 2: $ E^\varphi := E^\varphi \cup \{-1\} $ 3: for all do$ i \in {\cal{A}} $ 4: $ Q^\varphi_i := Q^\varphi_i \cup \{(-1, -1)\} $ 5: for all do$ s \in E^\varphi $ 6: for all do$ i \in {\cal{A}} $ 7: if then$ (\forall s' \in E^\varphi)\ (s, s') \not\in Q^\varphi_i $ 8: $ Q^\varphi_i := Q^\varphi_i \cup \{(s, -1)\} $ Table 4.
($ {\text{AddSink}} $ ).$ \langle E^\varphi, Q^\varphi, pre^\varphi \rangle $
Figures
(8)
Tables
(4)