106,101 research outputs found
A Theory of Formal Synthesis via Inductive Learning
Formal synthesis is the process of generating a program satisfying a
high-level formal specification. In recent times, effective formal synthesis
methods have been proposed based on the use of inductive learning. We refer to
this class of methods that learn programs from examples as formal inductive
synthesis. In this paper, we present a theoretical framework for formal
inductive synthesis. We discuss how formal inductive synthesis differs from
traditional machine learning. We then describe oracle-guided inductive
synthesis (OGIS), a framework that captures a family of synthesizers that
operate by iteratively querying an oracle. An instance of OGIS that has had
much practical impact is counterexample-guided inductive synthesis (CEGIS). We
present a theoretical characterization of CEGIS for learning any program that
computes a recursive language. In particular, we analyze the relative power of
CEGIS variants where the types of counterexamples generated by the oracle
varies. We also consider the impact of bounded versus unbounded memory
available to the learning algorithm. In the special case where the universe of
candidate programs is finite, we relate the speed of convergence to the notion
of teaching dimension studied in machine learning theory. Altogether, the
results of the paper take a first step towards a theoretical foundation for the
emerging field of formal inductive synthesis
Elaboration in Dependent Type Theory
To be usable in practice, interactive theorem provers need to provide
convenient and efficient means of writing expressions, definitions, and proofs.
This involves inferring information that is often left implicit in an ordinary
mathematical text, and resolving ambiguities in mathematical expressions. We
refer to the process of passing from a quasi-formal and partially-specified
expression to a completely precise formal one as elaboration. We describe an
elaboration algorithm for dependent type theory that has been implemented in
the Lean theorem prover. Lean's elaborator supports higher-order unification,
type class inference, ad hoc overloading, insertion of coercions, the use of
tactics, and the computational reduction of terms. The interactions between
these components are subtle and complex, and the elaboration algorithm has been
carefully designed to balance efficiency and usability. We describe the central
design goals, and the means by which they are achieved
Goal Translation for a Hammer for Coq (Extended Abstract)
Hammers are tools that provide general purpose automation for formal proof
assistants. Despite the gaining popularity of the more advanced versions of
type theory, there are no hammers for such systems. We present an extension of
the various hammer components to type theory: (i) a translation of a
significant part of the Coq logic into the format of automated proof systems;
(ii) a proof reconstruction mechanism based on a Ben-Yelles-type algorithm
combined with limited rewriting, congruence closure and a first-order
generalization of the left rules of Dyckhoff's system LJT.Comment: In Proceedings HaTT 2016, arXiv:1606.0542
The exp-log normal form of types
Lambda calculi with algebraic data types lie at the core of functional
programming languages and proof assistants, but conceal at least two
fundamental theoretical problems already in the presence of the simplest
non-trivial data type, the sum type. First, we do not know of an explicit and
implemented algorithm for deciding the beta-eta-equality of terms---and this in
spite of the first decidability results proven two decades ago. Second, it is
not clear how to decide when two types are essentially the same, i.e.
isomorphic, in spite of the meta-theoretic results on decidability of the
isomorphism.
In this paper, we present the exp-log normal form of types---derived from the
representation of exponential polynomials via the unary exponential and
logarithmic functions---that any type built from arrows, products, and sums,
can be isomorphically mapped to. The type normal form can be used as a simple
heuristic for deciding type isomorphism, thanks to the fact that it is a
systematic application of the high-school identities.
We then show that the type normal form allows to reduce the standard beta-eta
equational theory of the lambda calculus to a specialized version of itself,
while preserving the completeness of equality on terms. We end by describing an
alternative representation of normal terms of the lambda calculus with sums,
together with a Coq-implemented converter into/from our new term calculus. The
difference with the only other previously implemented heuristic for deciding
interesting instances of eta-equality by Balat, Di Cosmo, and Fiore, is that we
exploit the type information of terms substantially and this often allows us to
obtain a canonical representation of terms without performing sophisticated
term analyses
Formalizing Mathematical Knowledge as a Biform Theory Graph: A Case Study
A biform theory is a combination of an axiomatic theory and an algorithmic
theory that supports the integration of reasoning and computation. These are
ideal for formalizing algorithms that manipulate mathematical expressions. A
theory graph is a network of theories connected by meaning-preserving theory
morphisms that map the formulas of one theory to the formulas of another
theory. Theory graphs are in turn well suited for formalizing mathematical
knowledge at the most convenient level of abstraction using the most convenient
vocabulary. We are interested in the problem of whether a body of mathematical
knowledge can be effectively formalized as a theory graph of biform theories.
As a test case, we look at the graph of theories encoding natural number
arithmetic. We used two different formalisms to do this, which we describe and
compare. The first is realized in , a version of Church's
type theory with quotation and evaluation, and the second is realized in Agda,
a dependently typed programming language.Comment: 43 pages; published without appendices in: H. Geuvers et al., eds,
Intelligent Computer Mathematics (CICM 2017), Lecture Notes in Computer
Science, Vol. 10383, pp. 9-24, Springer, 201
Frequentist statistics as a theory of inductive inference
After some general remarks about the interrelation between philosophical and
statistical thinking, the discussion centres largely on significance tests.
These are defined as the calculation of -values rather than as formal
procedures for ``acceptance'' and ``rejection.'' A number of types of null
hypothesis are described and a principle for evidential interpretation set out
governing the implications of -values in the specific circumstances of each
application, as contrasted with a long-run interpretation. A variety of more
complicated situations are discussed in which modification of the simple
-value may be essential.Comment: Published at http://dx.doi.org/10.1214/074921706000000400 in the IMS
Lecture Notes--Monograph Series
(http://www.imstat.org/publications/lecnotes.htm) by the Institute of
Mathematical Statistics (http://www.imstat.org
- …