232 research outputs found
A Decision Procedure for (Co)datatypes in SMT Solvers
International audienceWe present a decision procedure that combines reasoning about datatypes and codatatypes. The dual of the acyclicity rule for datatypes is a uniqueness rule that identifies observationally equal codatatype values, including cyclic values. The procedure decides universal problems and is composable via the Nelson–Oppen method. It has been implemented in CVC4, a state-of-the-art SMT solver. An evaluation based on problems generated from theories developed with Isabelle demonstrates the potential of the procedure
The Vampire and the FOOL
This paper presents new features recently implemented in the theorem prover
Vampire, namely support for first-order logic with a first class boolean sort
(FOOL) and polymorphic arrays. In addition to having a first class boolean
sort, FOOL also contains if-then-else and let-in expressions. We argue that
presented extensions facilitate reasoning-based program analysis, both by
increasing the expressivity of first-order reasoners and by gains in
efficiency
Extending Nunchaku to Dependent Type Theory
Nunchaku is a new higher-order counterexample generator based on a sequence
of transformations from polymorphic higher-order logic to first-order logic.
Unlike its predecessor Nitpick for Isabelle, it is designed as a stand-alone
tool, with frontends for various proof assistants. In this short paper, we
present some ideas to extend Nunchaku with partial support for dependent types
and type classes, to make frontends for Coq and other systems based on
dependent type theory more useful.Comment: In Proceedings HaTT 2016, arXiv:1606.0542
An Eager Satisfiability Modulo Theories Solver for Algebraic Datatypes
Algebraic data types (ADTs) are a construct classically found in functional
programming languages that capture data structures like enumerated types,
lists, and trees. In recent years, interest in ADTs has increased. For example,
popular programming languages, like Python, have added support for ADTs.
Automated reasoning about ADTs can be done using satisfiability modulo theories
(SMT) solving, an extension of the Boolean satisfiability problem with
constraints over first-order structures. Unfortunately, SMT solvers that
support ADTs do not scale as state-of-the-art approaches all use variations of
the same \emph{lazy} approach. In this paper, we present an SMT solver that
takes a fundamentally different approach, an \emph{eager} approach.
Specifically, our solver reduces ADT queries to a simpler logical theory,
uninterpreted functions (UF), and then uses an existing solver on the reduced
query. We prove the soundness and completeness of our approach and demonstrate
that it outperforms the state-of-theart on existing benchmarks, as well as a
new, more challenging benchmark set from the planning domain
09411 Abstracts Collection -- Interaction versus Automation: The two Faces of Deduction
From 04.10. to 09.10.2009, the Dagstuhl Seminar 09411
``Interaction versus Automation: The two Faces of Deduction\u27\u27 was held
in Schloss Dagstuhl~--~Leibniz Center for Informatics.
During the seminar, several participants presented their current
research, and ongoing work and open problems were discussed. Abstracts of
the presentations given during the seminar as well as abstracts of
seminar results and ideas are put together in this paper. The first section
describes the seminar topics and goals in general.
Links to extended abstracts or full papers are provided, if available
- …