A Strongly Normalising System of Dependent Types for Transparent and Opaque Probabilistic Computation
Francesco A. Genco
TL;DR
This work presents a strongly normalising system that combines dependent types with probabilistic and nondeterministic computation, including both transparent and opaque execution models via oracle constants and oracular functions. The core technical contribution is a reducibility-based strong normalization proof for both terms and type constructors, together with a careful treatment of kinds, type constructors, and their evaluation during typing. A novel trustworthiness predicate and a static evaluation framework are added to reason about the runtime behavior and reliability of probabilistic programs within the type system. The resulting framework enables precise encoding of learning-like behavior and the testing of program trust during type checking, with potential implications for reliable, opacity-aware AI systems grounded in formal type theory.
Abstract
We define an extension of lambda-calculus with dependents types that enables us to encode transparent and opaque probabilistic programs and prove a strong normalisation result for it by a reducibility technique. While transparent nondeterministic programs are formalised by rather usual techniques, opaque nondeterministic programs are formalised by introducing in the syntax oracle constants, the behaviour of which is governed by oracular functions. The generality of these functions and the fact that their values are determined by the form of the whole term inside which the relative oracle occurs also enable us to simulate learning-like behaviours. We then extend the calculus in order to define a computational trustworthiness predicate. The extension of the calculus does not only enable us to precisely formalise a notion of trustworthiness and to encode the procedures required to test it on programs, but also to reason, by means of the type system, on the behaviour of programs with respect to trustworthiness.
