125 research outputs found
A Bi-Directional Refinement Algorithm for the Calculus of (Co)Inductive Constructions
The paper describes the refinement algorithm for the Calculus of
(Co)Inductive Constructions (CIC) implemented in the interactive theorem prover
Matita. The refinement algorithm is in charge of giving a meaning to the terms,
types and proof terms directly written by the user or generated by using
tactics, decision procedures or general automation. The terms are written in an
"external syntax" meant to be user friendly that allows omission of
information, untyped binders and a certain liberal use of user defined
sub-typing. The refiner modifies the terms to obtain related well typed terms
in the internal syntax understood by the kernel of the ITP. In particular, it
acts as a type inference algorithm when all the binders are untyped. The
proposed algorithm is bi-directional: given a term in external syntax and a
type expected for the term, it propagates as much typing information as
possible towards the leaves of the term. Traditional mono-directional
algorithms, instead, proceed in a bottom-up way by inferring the type of a
sub-term and comparing (unifying) it with the type expected by its context only
at the end. We propose some novel bi-directional rules for CIC that are
particularly effective. Among the benefits of bi-directionality we have better
error message reporting and better inference of dependent types. Moreover,
thanks to bi-directionality, the coercion system for sub-typing is more
effective and type inference generates simpler unification problems that are
more likely to be solved by the inherently incomplete higher order unification
algorithms implemented. Finally we introduce in the external syntax the notion
of vector of placeholders that enables to omit at once an arbitrary number of
arguments. Vectors of placeholders allow a trivial implementation of implicit
arguments and greatly simplify the implementation of primitive and simple
tactics
Superposition as a logical glue
The typical mathematical language systematically exploits notational and
logical abuses whose resolution requires not just the knowledge of domain
specific notation and conventions, but not trivial skills in the given
mathematical discipline. A large part of this background knowledge is expressed
in form of equalities and isomorphisms, allowing mathematicians to freely move
between different incarnations of the same entity without even mentioning the
transformation. Providing ITP-systems with similar capabilities seems to be a
major way to improve their intelligence, and to ease the communication between
the user and the machine. The present paper discusses our experience of
integration of a superposition calculus within the Matita interactive prover,
providing in particular a very flexible, "smart" application tactic, and a
simple, innovative approach to automation.Comment: In Proceedings TYPES 2009, arXiv:1103.311
Sharing HOL4 and HOL Light proof knowledge
New proof assistant developments often involve concepts similar to already
formalized ones. When proving their properties, a human can often take
inspiration from the existing formalized proofs available in other provers or
libraries. In this paper we propose and evaluate a number of methods, which
strengthen proof automation by learning from proof libraries of different
provers. Certain conjectures can be proved directly from the dependencies
induced by similar proofs in the other library. Even if exact correspondences
are not found, learning-reasoning systems can make use of the association
between proved theorems and their characteristics to predict the relevant
premises. Such external help can be further combined with internal advice. We
evaluate the proposed knowledge-sharing methods by reproving the HOL Light and
HOL4 standard libraries. The learning-reasoning system HOL(y)Hammer, whose
single best strategy could automatically find proofs for 30% of the HOL Light
problems, can prove 40% with the knowledge from HOL4
Maximal Sharing in the Lambda Calculus with letrec
Increasing sharing in programs is desirable to compactify the code, and to
avoid duplication of reduction work at run-time, thereby speeding up execution.
We show how a maximal degree of sharing can be obtained for programs expressed
as terms in the lambda calculus with letrec. We introduce a notion of `maximal
compactness' for lambda-letrec-terms among all terms with the same infinite
unfolding. Instead of defined purely syntactically, this notion is based on a
graph semantics. lambda-letrec-terms are interpreted as first-order term graphs
so that unfolding equivalence between terms is preserved and reflected through
bisimilarity of the term graph interpretations. Compactness of the term graphs
can then be compared via functional bisimulation.
We describe practical and efficient methods for the following two problems:
transforming a lambda-letrec-term into a maximally compact form; and deciding
whether two lambda-letrec-terms are unfolding-equivalent. The transformation of
a lambda-letrec-term into maximally compact form proceeds in three
steps:
(i) translate L into its term graph ; (ii) compute the maximally
shared form of as its bisimulation collapse ; (iii) read back a
lambda-letrec-term from the term graph with the property . This guarantees that and have the same unfolding, and that
exhibits maximal sharing.
The procedure for deciding whether two given lambda-letrec-terms and
are unfolding-equivalent computes their term graph interpretations and , and checks whether these term graphs are bisimilar.
For illustration, we also provide a readily usable implementation.Comment: 18 pages, plus 19 pages appendi
A Foundational View on Integration Problems
The integration of reasoning and computation services across system and
language boundaries is a challenging problem of computer science. In this
paper, we use integration for the scenario where we have two systems that we
integrate by moving problems and solutions between them. While this scenario is
often approached from an engineering perspective, we take a foundational view.
Based on the generic declarative language MMT, we develop a theoretical
framework for system integration using theories and partial theory morphisms.
Because MMT permits representations of the meta-logical foundations themselves,
this includes integration across logics. We discuss safe and unsafe integration
schemes and devise a general form of safe integration
Isabelle/PIDE as Platform for Educational Tools
The Isabelle/PIDE platform addresses the question whether proof assistants of
the LCF family are suitable as technological basis for educational tools. The
traditionally strong logical foundations of systems like HOL, Coq, or Isabelle
have so far been counter-balanced by somewhat inaccessible interaction via the
TTY (or minor variations like the well-known Proof General / Emacs interface).
Thus the fundamental question of math education tools with fully-formal
background theories has often been answered negatively due to accidental
weaknesses of existing proof engines.
The idea of "PIDE" (which means "Prover IDE") is to integrate existing
provers like Isabelle into a larger environment, that facilitates access by
end-users and other tools. We use Scala to expose the proof engine in ML to the
JVM world, where many user-interfaces, editor frameworks, and educational tools
already exist. This shall ultimately lead to combined mathematical assistants,
where the logical engine is in the background, without obstructing the view on
applications of formal methods, formalized mathematics, and math education in
particular.Comment: In Proceedings THedu'11, arXiv:1202.453
Genome Wide Association Identifies PPFIA1 as a Candidate Gene for Acute Lung Injury Risk Following Major Trauma
Acute Lung Injury (ALI) is a syndrome with high associated mortality characterized by severe hypoxemia and pulmonary infiltrates in patients with critical illness. We conducted the first investigation to use the genome wide association (GWA) approach to identify putative risk variants for ALI. Genome wide genotyping was performed using the Illumina Human Quad 610 BeadChip. We performed a two-stage GWA study followed by a third stage of functional characterization. In the discovery phase (Phase 1), we compared 600 European American trauma-associated ALI cases with 2266 European American population-based controls. We carried forward the top 1% of single nucleotide polymorphisms (SNPs) at p<0.01 to a replication phase (Phase 2) comprised of a nested case-control design sample of 212 trauma-associated ALI cases and 283 at-risk trauma non-ALI controls from ongoing cohort studies. SNPs that replicated at the 0.05 level in Phase 2 were subject to functional validation (Phase 3) using expression quantitative trait loci (eQTL) analyses in stimulated B-lymphoblastoid cell lines (B-LCL) in family trios. 159 SNPs from the discovery phase replicated in Phase 2, including loci with prior evidence for a role in ALI pathogenesis. Functional evaluation of these replicated SNPs revealed rs471931 on 11q13.3 to exert a cis-regulatory effect on mRNA expression in the PPFIA1 gene (p = 0.0021). PPFIA1 encodes liprin alpha, a protein involved in cell adhesion, integrin expression, and cell-matrix interactions. This study supports the feasibility of future multi-center GWA investigations of ALI risk, and identifies PPFIA1 as a potential functional candidate ALI risk gene for future research
- …