890 research outputs found
Probabilistic Operational Semantics for the Lambda Calculus
Probabilistic operational semantics for a nondeterministic extension of pure
lambda calculus is studied. In this semantics, a term evaluates to a (finite or
infinite) distribution of values. Small-step and big-step semantics are both
inductively and coinductively defined. Moreover, small-step and big-step
semantics are shown to produce identical outcomes, both in call-by- value and
in call-by-name. Plotkin's CPS translation is extended to accommodate the
choice operator and shown correct with respect to the operational semantics.
Finally, the expressive power of the obtained system is studied: the calculus
is shown to be sound and complete with respect to computable probability
distributions.Comment: 35 page
A rich hierarchy of functionals of finite types
We are considering typed hierarchies of total, continuous functionals using
complete, separable metric spaces at the base types. We pay special attention
to the so called Urysohn space constructed by P. Urysohn. One of the properties
of the Urysohn space is that every other separable metric space can be
isometrically embedded into it. We discuss why the Urysohn space may be
considered as the universal model of possibly infinitary outputs of algorithms.
The main result is that all our typed hierarchies may be topologically
embedded, type by type, into the corresponding hierarchy over the Urysohn
space. As a preparation for this, we prove an effective density theorem that is
also of independent interest.Comment: 21 page
Computational Soundness for Dalvik Bytecode
Automatically analyzing information flow within Android applications that
rely on cryptographic operations with their computational security guarantees
imposes formidable challenges that existing approaches for understanding an
app's behavior struggle to meet. These approaches do not distinguish
cryptographic and non-cryptographic operations, and hence do not account for
cryptographic protections: f(m) is considered sensitive for a sensitive message
m irrespective of potential secrecy properties offered by a cryptographic
operation f. These approaches consequently provide a safe approximation of the
app's behavior, but they mistakenly classify a large fraction of apps as
potentially insecure and consequently yield overly pessimistic results.
In this paper, we show how cryptographic operations can be faithfully
included into existing approaches for automated app analysis. To this end, we
first show how cryptographic operations can be expressed as symbolic
abstractions within the comprehensive Dalvik bytecode language. These
abstractions are accessible to automated analysis, and they can be conveniently
added to existing app analysis tools using minor changes in their semantics.
Second, we show that our abstractions are faithful by providing the first
computational soundness result for Dalvik bytecode, i.e., the absence of
attacks against our symbolically abstracted program entails the absence of any
attacks against a suitable cryptographic program realization. We cast our
computational soundness result in the CoSP framework, which makes the result
modular and composable.Comment: Technical report for the ACM CCS 2016 conference pape
Strong Invariants Are Hard: On the Hardness of Strongest Polynomial Invariants for (Probabilistic) Programs
We show that computing the strongest polynomial invariant for single-path
loops with polynomial assignments is at least as hard as the Skolem problem, a
famous problem whose decidability has been open for almost a century. While the
strongest polynomial invariants are computable for affine loops, for polynomial
loops the problem remained wide open. As an intermediate result of independent
interest, we prove that reachability for discrete polynomial dynamical systems
is Skolem-hard as well. Furthermore, we generalize the notion of invariant
ideals and introduce moment invariant ideals for probabilistic programs. With
this tool, we further show that the strongest polynomial moment invariant is
(i) uncomputable, for probabilistic loops with branching statements, and (ii)
Skolem-hard to compute for polynomial probabilistic loops without branching
statements. Finally, we identify a class of probabilistic loops for which the
strongest polynomial moment invariant is computable and provide an algorithm
for it
Deterministic stream-sampling for probabilistic programming: semantics and verification
Probabilistic programming languages rely fundamentally on some notion of sampling, and this is doubly true for probabilistic programming languages which perform Bayesian inference using Monte Carlo techniques. Verifying samplers - proving that they generate samples from the correct distribution - is crucial to the use of probabilistic programming languages for statistical modelling and inference. However, the typical denotational semantics of probabilistic programs is incompatible with deterministic notions of sampling. This is problematic, considering that most statistical inference is performed using pseudorandom number generators.We present a higher-order probabilistic programming language centred on the notion of samplers and sampler operations. We give this language an operational and denotational semantics in terms of continuous maps between topological spaces. Our language also supports discontinuous operations, such as comparisons between reals, by using the type system to track discontinuities. This feature might be of independent interest, for example in the context of differentiable programming.Using this language, we develop tools for the formal verification of sampler correctness. We present an equational calculus to reason about equivalence of samplers, and a sound calculus to prove semantic correctness of samplers, i.e. that a sampler correctly targets a given measure by construction
Why Philosophers Should Care About Computational Complexity
One might think that, once we know something is computable, how efficiently
it can be computed is a practical question with little further philosophical
importance. In this essay, I offer a detailed case that one would be wrong. In
particular, I argue that computational complexity theory---the field that
studies the resources (such as time, space, and randomness) needed to solve
computational problems---leads to new perspectives on the nature of
mathematical knowledge, the strong AI debate, computationalism, the problem of
logical omniscience, Hume's problem of induction, Goodman's grue riddle, the
foundations of quantum mechanics, economic rationality, closed timelike curves,
and several other topics of philosophical interest. I end by discussing aspects
of complexity theory itself that could benefit from philosophical analysis.Comment: 58 pages, to appear in "Computability: G\"odel, Turing, Church, and
beyond," MIT Press, 2012. Some minor clarifications and corrections; new
references adde
Measurable Cones and Stable, Measurable Functions
We define a notion of stable and measurable map between cones endowed with
measurability tests and show that it forms a cpo-enriched cartesian closed
category. This category gives a denotational model of an extension of PCF
supporting the main primitives of probabilistic functional programming, like
continuous and discrete probabilistic distributions, sampling, conditioning and
full recursion. We prove the soundness and adequacy of this model with respect
to a call-by-name operational semantics and give some examples of its
denotations
- …