Computable decision making on the reals and other spaces via partiality and nondeterminism

05/01/2018
by   Benjamin Sherman, et al.
0

Though many safety-critical software systems use floating point to represent real-world input and output, programmers usually have idealized versions in mind that compute with real numbers. Significant deviations from the ideal can cause errors and jeopardize safety. Some programming systems implement exact real arithmetic, which resolves this matter but complicates others, such as decision making. In these systems, it is impossible to compute (total and deterministic) discrete decisions based on connected spaces such as R. We present programming-language semantics based on constructive topology with variants allowing nondeterminism and/or partiality. Either nondeterminism or partiality suffices to allow computable decision making on connected spaces such as R. We then introduce pattern matching on spaces, a language construct for creating programs on spaces, generalizing pattern matching in functional programming, where patterns need not represent decidable predicates and also may overlap or be inexhaustive, giving rise to nondeterminism or partiality, respectively. Nondeterminism and/or partiality also yield formal logics for constructing approximate decision procedures. We implemented these constructs in the Marshall language for exact real arithmetic.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/21/2021

Deductive Verification of Floating-Point Java Programs in KeY

Deductive verification has been successful in verifying interesting prop...
research
07/11/2014

Decision-Making with Complex Data Structures using Probabilistic Programming

Existing decision-theoretic reasoning frameworks such as decision networ...
research
01/07/2020

Automatic generation and verification of test-stable floating-point code

Test instability in a floating-point program occurs when the control flo...
research
09/21/2023

Semantics for a Turing-complete Reversible Programming Language with Inductive Types

This paper is concerned with the expressivity and denotational semantics...
research
02/02/2022

Extracting efficient exact real number computation from proofs in constructive type theory

Exact real computation is an alternative to floating-point arithmetic wh...
research
04/09/2018

Restructuring expression dags for efficient parallelization

In the field of robust geometric computation it is often necessary to ma...

Please sign up or login with your details

Forgot password? Click here to reset