skip to main content

Programming and reasoning with partial observability

Published:13 November 2020Publication History
Skip Abstract Section

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.

Skip Supplemental Material Section

Supplemental Material

Auxiliary Presentation Video

Video of the talk for "Programming and Reasoning with Partial Observability".

References

  1. Carlos Areces, Pascal Fontaine, and Stephan Marz. 2015. Modal Satisfiability via SMT Solving. In Software, Services, and Systems. Springer.Google ScholarGoogle Scholar
  2. Ralph-Johan Back. 1978. On the Correctness of Refinement Steps in Program Development. Ph.D. Dissertation. University of Helsinki.Google ScholarGoogle Scholar
  3. Alexandru Baltag and Lawrence S. Moss. 2004. Logics for Epistemic Programs. Synthese 139 (03 2004 ), 165-224.Google ScholarGoogle Scholar
  4. Guillaume Baudart, Louis Mandel, Eric Atkinson, Benjamin Sherman, Marc Pouzet, and Michael Carbin. 2020. Reactive Probabilistic Programming. In Conference on Programming Language Design and Implementation.Google ScholarGoogle Scholar
  5. Dimitri P. Bertsekas. 1971. Control of uncertain systems with a set-membership description of the uncertainty. Ph.D. Dissertation. MIT.Google ScholarGoogle Scholar
  6. Thomas Caridroit, Jean-Marie Lagniez, Daniel Le Barre, Tiago de Lima, and Valentin Montmirail. 2017. A SAT-based Approach to Solving the Modal Logic S5-Satisfiability Problem. In AAAI Conference on Artificial Intelligence.Google ScholarGoogle Scholar
  7. Souray Chatterjee and Persi Diaconis. 2018. The Sample Size Required in Importance Sampling. Annals of Applied Probability 28 (04 2018 ), 1099-1135. Issue 2.Google ScholarGoogle Scholar
  8. G. Cimmino. 1938. Calcolo aprossimato per le souzioni dei sistemi di equazioni lineari. La Ricera Scientifica, Series II 9 ( 1938 ), 326-333.Google ScholarGoogle Scholar
  9. P.L. Combettes. 1993. Foundations of Set-Theoretic Estimation. Proc. IEEE 81 ( 02 1993 ), 182-208. Issue 2.Google ScholarGoogle ScholarCross RefCross Ref
  10. Mary Kathryn Cowles and Bradley P. Carlin. 1996. Markov Chain Monte Carlo Convergence Diagnostics: A Comparative Review. J. Amer. Statist. Assoc. 91 ( 06 1996 ), 883-904. Issue 434.Google ScholarGoogle Scholar
  11. Pierre Del Moral, Arnaud Doucet, and Ajay Jasra. 2006. Sequential Monte Carlo samplers. Journal of the Royal Statistical Society: Series B (Statistical Methodology) 68 (06 2006 ), 411-436. Issue 3.Google ScholarGoogle Scholar
  12. Benjamin Delaware, Clément Pit-Claudel, Jason Gross, and Adam Chlipala. 2015. Fiat: Deductive Synthesis of Abstract Data Types in a Proof Assistant. In Symposium on Principles of Programming Languages.Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Edsger W. Dijkstra. 1975. Guarded Commands, Nondeterminacy, and Formal Derivations of Programs. Commun. ACM 18 ( 08 1975 ), 453-457. Issue 8.Google ScholarGoogle Scholar
  14. Cormac Flanagan and K Rustan M Leino. 2001. Houdini, an annotation assistant for ESC/Java. In International Symposium on Formal Methods Europe.Google ScholarGoogle ScholarCross RefCross Ref
  15. R.W. Floyd. 1967. Assigning Meanings to Programs. In Symposium in Applied Mathematics.Google ScholarGoogle ScholarCross RefCross Ref
  16. C.A.R. Hoare. 1969. An Axiomatic Basis for Computer Programming. Commun. ACM 12 ( 10 1969 ), 576-580. Issue 10.Google ScholarGoogle Scholar
  17. JPL Special Review Board. 2000. Report on the Loss of the Mars Polar Lander and Deep Space 2 Missions. Technical Report. Jet Propulsion Laboratory.Google ScholarGoogle Scholar
  18. Stefan Kaczmarz. 1937. Angenaherte Auflosung von Systemen linearer Gleichungen. In Bulletin International de l' Academie Polonaise des Sciences et des Lettres. Classe des Sciences Mathematiques et Naturelles. Serie A, Sciences Mathematiques.Google ScholarGoogle Scholar
  19. Tessa Lau, Pedro Domingos, and Daniel S. Weld. 2000. Version Space Algebra and its Application to Programming by Demonstration. In International Conference on Machine Learning.Google ScholarGoogle Scholar
  20. Jun S. Liu. 1996. Metropolized Independent Sampling with Comparisons to Rejection Sampling and Importance Sampling. Statistics and Computing 6 ( 06 1996 ), 113-119.Google ScholarGoogle Scholar
  21. Leonardo De Moura and Nikolaj Bjørner. 2008. Z3: An Eficient SMT Solver. In Tools and Algorithms for the Construction and Analysis of Systems.Google ScholarGoogle Scholar
  22. Jan Plaza. 2007. Logics of Public Communications. Synthese 158 (09 2007 ), 165-179.Google ScholarGoogle Scholar
  23. Stuart Russel and Peter Norvig. 2020. Artificial Intelligence: A Modern Approach (4 ed.). Pearson.Google ScholarGoogle Scholar
  24. Hesam Samimi, Ei Darli Aung, and Todd Millstein. 2010. Falling Back on Executable Specification Languages. In European Conference Object-Oriented Programming.Google ScholarGoogle Scholar
  25. Adrian Sampson, Pavel Panchekha, Todd Mytkowicz, Kathryn S. McKinley, Dan Grossman, and Luis Ceze. 2014. Expressing and Verifying Probabilistic Assertions. In Conference on Programming Language Design and Implementation.Google ScholarGoogle Scholar
  26. Tetsuya Sato, Alejandro Aguirre, Gilles Barthe, Marco Gaboardi, Deepak Garg, and Justin Hsu. 2019. Formal Verification of Higher-order Probabilistic Programs: Reasoning About Approximation, Convergence, Bayesian Inference, and Optimization. In Symposium on Principles of Programming Languages.Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Fred C. Schweppe. 1973. Uncertain Dynamic Systems. Prentice-Hall.Google ScholarGoogle Scholar
  28. Richard D. Smallwood and Edward J. Sondik. 1973. The Optimal Control of Partially Observable Markov Processes Over a Finite Horizon. Operations Research 21 ( 10 1973 ), 1071-1088. Issue 5.Google ScholarGoogle Scholar
  29. Armando Solar-Lezama, Liviu Tancau, Rastislav Bodik, Vijay Saraswat, and Sanjit Seshia. 2006. Combinatorial Sketching for Finite Programs. In International Conference on Architectural Support for Programming Languages and Operating Systems.Google ScholarGoogle Scholar
  30. Sparkfun. 2020. GPS Buying Guide-SparkFun Electronics. https://www.sparkfun.com/GPS_Guide. Accessed 2020-07-16.Google ScholarGoogle Scholar
  31. Sam Staton. 2017. Commutative Semantics for Probabilistic Programming. In European Symposium on Programming.Google ScholarGoogle Scholar
  32. Jian Wan, Sanjay Sharma, and Robert Sutton. 2018. Guaranteed State Estimation for Nonlinear Discrete-Time Systems via Indirectly Implemented Polytopic Set Computation. IEEE Trans. on Automatic Control 63 ( 12 2018 ), 4317-4322. Issue 12.Google ScholarGoogle ScholarCross RefCross Ref
  33. Glynn Winskel. 1993. The Formal Semantics of Programming Languages. MIT Press.Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Jean Yang, Kuat Yessenov, and Armando Solar-Lezama. 2012. A Language for Automatically Enforcing Privacy Policies. In Symposium on Principles of Programming Languages.Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Programming and reasoning with partial observability

                  Recommendations

                  Comments

                  Login options

                  Check if you have access through your login credentials or your institution to get full access on this article.

                  Sign in

                  Full Access

                  • Article Metrics

                    • Downloads (Last 12 months)165
                    • Downloads (Last 6 weeks)15

                    Other Metrics

                  PDF Format

                  View or Download as a PDF file.

                  PDF

                  eReader

                  View online with eReader.

                  eReader
                  About Cookies On This Site

                  We use cookies to ensure that we give you the best experience on our website.

                  Learn more

                  Got it!