Computer programs are increasingly being deployed in partially-observable environments. A partially observable environment is an environment whose state is not completely visible to the program, but from which the program receives partial observations. Developers typically deal with partial observability by writing a state estimator that, given observations, attempts to deduce the hidden state of the environment. In safety-critical domains, to formally verify safety properties developers may write an environment model. The model captures the relationship between observations and hidden states and is used to prove the software correct. In this paper, we present a new methodology for writing and verifying programs in partially observable environments. We present belief programming, a programming methodology where developers write an environment model that the program runtime automatically uses to perform state estimation. A belief program dynamically updates and queries a belief state that captures the possible states the environment could be in. To enable verification, we present Epistemic Hoare Logic that reasons about the possible belief states of a belief program the same way that classical Hoare logic reasons about the possible states of a program. We develop these concepts by defining a semantics and a program logic for a simple core language called BLIMP. In a case study, we show how belief programming could be used to write and verify a controller for the Mars Polar Lander in BLIMP. We present an implementation of BLIMP called CBLIMP and evaluate it to determine the feasibility of belief programming.
翻译:计算机程序正越来越多地部署在部分可观测的环境中。 部分可观测环境是一个环境, 状态不完全可见于程序, 但程序接受部分观测。 开发者通常通过撰写国家估计器处理部分可观测性, 国家估计器, 以观察为条件, 试图推断环境的隐蔽状态。 在安全关键领域, 安全属性开发者可以正式核查环境模型。 模型捕捉观测和隐藏状态之间的关系, 并用来证明软件正确。 本文中, 我们提出了一个在部分可观测环境中撰写和核查程序的新方法。 我们展示了信仰程序, 这是一种编程方法, 开发者在其中撰写一个环境模型, 程序自动使用该模型来进行国家估计。 一个充满活力的信念方案更新并询问一个能捕捉可能的环境状态的信仰状态。 为了进行核查, 我们展示了Hoare的典型逻辑性程序设计原理, 用以在部分可观测环境中进行编程。 我们通过定义一种语义和程序逻辑, 来为一种简单的核心语言编写一个叫做 BLIMP 的信念, 用来校验目前使用B 的B 级 校验 。 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校 校