25 research outputs found

    A syntactic approach to continuity of T-definable functionals

    Full text link
    We give a new proof of the well-known fact that all functions (N→N)→N(\mathbb{N} \to \mathbb{N}) \to \mathbb{N} which are definable in G\"odel's System T are continuous via a syntactic approach. Differing from the usual syntactic method, we firstly perform a translation of System T into itself in which natural numbers are translated to functions (N→N)→N(\mathbb{N} \to \mathbb{N}) \to \mathbb{N}. Then we inductively define a continuity predicate on the translated elements and show that the translation of any term in System T satisfies the continuity predicate. We obtain the desired result by relating terms and their translations via a parametrized logical relation. Our constructions and proofs have been formalized in the Agda proof assistant. Because Agda is also a programming language, we can execute our proof to compute moduli of continuity of T-definable functions

    Dynamic IFC Theorems for Free!

    Full text link
    We show that noninterference and transparency, the key soundness theorems for dynamic IFC libraries, can be obtained "for free", as direct consequences of the more general parametricity theorem of type abstraction. This allows us to give very short soundness proofs for dynamic IFC libraries such as faceted values and LIO. Our proofs stay short even when fully mechanized for Agda implementations of the libraries in terms of type abstraction.Comment: CSF 2021 final versio

    A Provably Correct Translation of the λ-Calculus into a Mathematical Model of C++

    Get PDF
    We introduce a translation of the simply typed λ-calculus into C++, and give a mathematical proof of the correctness of this translation. For this purpose we develop a suitable fragment of C++ together with a denotational semantics. We introduce a formal translation of the λ-calculus into this fragment, and show that this translation is correct with respect to the denotational semantics. We show as well a completeness result, namely that by translating λ-terms we obtain essentially all C++ terms in this fragment. We introduce a mathematical model for the evaluation of programs of this fragment, and show that the evaluation computes the correct result with respect to this semantics.

    Open Higher-Order Logic

    Get PDF
    We introduce a variation on Barthe et al.’s higher-order logic in which formulas are interpreted as predicates over open rather than closed objects. This way, concepts which have an intrinsically functional nature, like continuity, differentiability, or monotonicity, can be expressed and reasoned about in a very natural way, following the structure of the underlying program. We give open higher-order logic in distinct flavors, and in particular in its relational and local versions, the latter being tailored for situations in which properties hold only in part of the underlying function’s domain of definition

    Kripke Semantics for Dependent Type Theory and Realizability Interpretations

    Get PDF
    Abstract Constructive reasoning has played an increasingly important role in the development of provably correct software. Both typed and type-free frameworks stemming from ideas of Heyting, Kleene, and Curry have been developed for extracting computations from constructive specifications. These include Realizability, and Theories based on the Curry-Howard isomorphism. Realizability -in its various typed and type-free formulations -brings out the algorithmic content of theories and proofs and supplies models of the "recursive universe". Formal systems based on the propositions-as-types paradigm, such as Martin-Löf's dependent type theories, incorporate term extraction into the logic itself. Another, major tradition in constructive semantics originated in the model theory developed by Gödel, Herbrand and Tarski, resulting in the interpretations developed by Kripke and Beth, and in subsequent categorical generalizations. They provide a complete semantics for constructive logic. These models are a powerful tool for building counterexamples and establishing independence and conservativity results, but they are often less constructive and less computationally oriented. It is highly desirable to combine the power of these approaches to constructive semantics, and to elucidate some connections between them. We define modified Kripke and Beth models for syntactic Realizability and Dependent Type theory, in particular for the one-universe Intensional Martin-Löf Theory ML i 0 . These models provide a new framework for reasoning about computational evidence and the process of term-extraction. They are defined over a constructive type-free metatheory based on the Feferman-Beeson theories of abstract applicative structure. Our models have a feature which is shared by all published constructive completeness theorems for intuitionistic logic, known in the literature as "fallibility": there may be worlds in which some sentences are both false and true, a phenomenon which corresponds to the presence of empty types in various type disciplines. We also identify a natural lattice of truth values associated with type theory and realizability: the degrees of inhabitation

    A static analysis for quantifying information flow in a simple imperative language

    Get PDF
    We propose an approach to quantify interference in a simple imperative language that includes a looping construct. In this paper we focus on a particular case of this definition of interference: leakage of information from private variables to public ones via a Trojan Horse attack. We quantify leakage in terms of Shannon's information theory and we motivate our definition by proving a result relating this definition of leakage and the classical notion of programming language interference. The major contribution of the paper is a quantitative static analysis based on this definition for such a language. The analysis uses some non-trivial information theory results like Fano's inequality and L1 inequalities to provide reasonable bounds for conditional statements. While-loops are handled by integrating a qualitative flow-sensitive dependency analysis into the quantitative analysis

    Prelogical Relations

    Get PDF
    n/
    corecore