Programming and Reasoning with Partial Observability

AI-generated keywords: Belief Programming Epistemic Hoare Logic BLIMP Language State Estimation Verification

AI-generated Key Points

  • Computer programs are increasingly being used in partially-observable environments
  • Developers typically write a state estimator to deduce the hidden state of the environment from partial observations
  • Verifying safety properties in such environments can be difficult
  • Belief programming is a new methodology that enables developers to write an environment model that is automatically used by the program runtime for performing state estimation
  • Belief programming dynamically updates and queries a belief state that captures all possible states that the environment could be in
  • Epistemic Hoare Logic has been presented to enable verification of safety properties in these environments, reasoning about possible belief states of a belief program similar to how classical Hoare logic reasons about possible states of a program
  • BLIMP language has been used to define semantics and program logic for belief programming, with a case study conducted on Mars Polar Lander controller written and verified using BLIMP language through belief programming methodology
  • CBLIMP implementation has also been evaluated for feasibility
  • Classical verification techniques have been compared with belief programming methodology
  • Classical verification requires handwritten code for state estimator while belief programming uses infer statements which are more intuitive but require more effort in developing Epistemic Hoare Logic
  • This work provides new foundations for soundly reasoning about software behavior executing in partially-observable environments and opens up avenues for future research in probabilistic programming.
Also access our AI generated: Comprehensive summary, Lay summary, Blog-like article; or ask questions about this paper to our AI assistant.

Authors: Eric Atkinson, Michael Carbin

Proc. ACM Program. Lang. 4, OOPSLA, Article 200 (November 2020), 28 pages
License: CC BY-NC-SA 4.0

Abstract: 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.

Submitted to arXiv on 12 Jan. 2021

Ask questions about this paper to our AI assistant

You can also chat with multiple papers at once here.

AI assistant instructions?

Results of the summarizing process for the arXiv paper: 2101.04742v1

In today's world, computer programs are increasingly being deployed in partially-observable environments where the state of the environment is not completely visible to the program. To address this challenge, developers typically write a state estimator that attempts to deduce the hidden state of the environment from partial observations. However, verifying safety properties in such environments can be difficult. To address this issue, a new methodology called belief programming has been introduced which enables developers to write an environment model that is automatically used by the program runtime for performing state estimation. Belief programming dynamically updates and queries a belief state that captures all possible states that the environment could be in. To enable verification of safety properties in these environments, Epistemic Hoare Logic has been presented which reasons about the possible belief states of a belief program similar to how classical Hoare logic reasons about possible states of a program. The concepts have been developed using BLIMP language by defining semantics and program logic for it. A case study has also been conducted on Mars Polar Lander controller written and verified using BLIMP language through belief programming methodology. CBLIMP implementation has also been evaluated for feasibility. Furthermore, classical verification techniques have been compared with belief programming methodology where classical verification requires handwritten code for state estimator while belief programming uses infer statements which are more intuitive but require more effort in developing Epistemic Hoare Logic. Overall, this work provides new foundations for soundly reasoning about software behavior executing in partially-observable environments and opens up avenues for future research in probabilistic programming.
Created on 06 Jun. 2023

Assess the quality of the AI-generated content by voting

Score: 0

Why do we need votes?

Votes are used to determine whether we need to re-run our summarizing tools. If the count reaches -10, our tools can be restarted.

The previous summary was created more than a year ago and can be re-run (if necessary) by clicking on the Run button below.

Similar papers summarized with our AI tools

Navigate through even more similar papers through a

tree representation

Look for similar papers (in beta version)

By clicking on the button above, our algorithm will scan all papers in our database to find the closest based on the contents of the full papers and not just on metadata. Please note that it only works for papers that we have generated summaries for and you can rerun it from time to time to get a more accurate result while our database grows.

Disclaimer: The AI-based summarization tool and virtual assistant provided on this website may not always provide accurate and complete summaries or responses. We encourage you to carefully review and evaluate the generated content to ensure its quality and relevance to your needs.