Programming and Reasoning with Partial Observability

01/12/2021
by   Eric Atkinson, et al.
0

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.

READ FULL TEXT
research
09/09/2013

Technical Report: Distribution Temporal Logic: Combining Correctness with Quality of Estimation

We present a new temporal logic called Distribution Temporal Logic (DTL)...
research
11/15/2018

Neural Predictive Belief Representations

Unsupervised representation learning has succeeded with excellent result...
research
01/26/2019

The informal semantics of Answer Set Programming: A Tarskian perspective

In Knowledge Representation, it is crucial that knowledge engineers have...
research
06/20/2017

An Online Development Environment for Answer Set Programming

Recent progress in logic programming (e.g., the development of the Answe...
research
02/28/2023

Now It Compiles! Certified Automatic Repair of Uncompilable Protocols

Choreographic programming is a paradigm where developers write the globa...
research
05/24/2022

ACL2s Systems Programming

ACL2 provides a systems programming capability that allows one to write ...
research
04/17/2018

An iterative approach to precondition inference using constrained Horn clauses

We present a method for automatic inference of conditions on the initial...

Please sign up or login with your details

Forgot password? Click here to reset