Knowledge-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.
翻译:以知识为基础的程序指定了多试剂协议,与隐喻卫士的多试剂协议,这些协议摘自代理人如何学习和记录关于其他代理人和环境的事实或信息,其解释涉及对可达到的状态的认知卫士的评价与根据对隐喻卫士的评价得出可达到的状态的可达到的状态之间的非单一的相互依赖性。我们将为同步编程语言而发明的必须/不能的分析技术应用于知识方案的解释问题,并表明由此产生的建设性解释是单调的,并且有一个最不固定的点。我们将我们的方法与现有的同步和不同步方案的解释计划联系起来。最后,我们描述了建设性解释的执行情况,并以几个实例和对爪哇记忆模型的应用来说明程序。