Abstract
AbstractKnowledge-based programs specify multi-agent protocols with epistemic guards that abstract from how agents learn and record facts or information about other agents and the environment. Their interpretation involves a non-monotone mutual dependency between the evaluation of epistemic guards over the reachable states and the derivation of the reachable states depending on the evaluation of epistemic guards. We apply the technique of a must/cannot analysis invented for synchronous programming languages to the interpretation problem of knowledge-based programs and demonstrate that the resulting constructive interpretation is monotone and has a least fixed point. We relate our approach with existing interpretation schemes for both synchronous and asynchronous programs. Finally, we describe an implementation of the constructive interpretation and illustrate the procedure by several examples and an application to the Java memory model.
Publisher
Springer Nature Switzerland
Reference31 articles.
1. Aczel, P.: An introduction to inductive definitions. In: Barwise, J. (ed.) Handbook of Mathematical Logic, chap. C.7, pp. 783–818. North-Holland (1977)
2. Aspinall, D., Ševčík, J.: Java Memory Model examples: Good, bad and ugly. In: Proc. Verification and Analysis of Multi-Threaded Java-like Programs (VAMP 2007) (2007)
3. Baier, C., Katoen, J.P.: Principles of Model Checking. MIT Press (2008)
4. Baltag, A., Moss, L.S.: Logics for Epistemic Programs. Synth. 139(2), 165–224 (2004). https://doi.org/10.1023/B:SYNT.0000024912.56773.5e
5. Baral, C., Gelfond, M.: Logic programming and knowledge representation. J. Logic Program. 19–20(Suppl. 1), 73–148 (1994)