122 research outputs found
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
Eclipse-based IDE for the Agda Programming Language
Antud töö eesmärk oli kavandada ja implementeerida Eclipse põhine integreeritud arenduskeskkond (IDE) sõltuvate tüüpidega funktsionaalsele programmeerimiskeelele Agda. Töös vaadati lähemalt Agdat, Eclipse Platformi ja Eclipse põhiste arenduskeskkondade loomise raamistikke ning selle põhjal implementeeriti viis DLTK (Dynamic Languages Toolkit) raamistikule tuginevat Eclipse pistikprogrammi ning Haskelli teek, mis vahendab suhtlust Eclipse pistikprogrammide ja Agda vahel. Implementeeritud IDE toetab Agda projektide ja failide loomist Eclipses, sisaldab Agda-spetsiifilist perspektiivi (perspective), süntaksi esiletõstmist, toetab erinevaid päringuid eesmärgi (goal) kontekstis, navigeerimist deklaratsioonide juurde, otsingut, sisu assisteerimist (content assist) ja probleemide markeerimist.The goal of this thesis was to design and implement an Eclipse-based IDE for the dependently typed programming language Agda. Agda, Eclipse Platform and tools supporting the creation of Eclipse-based IDE were studied as a part of the thesis and based on the results an IDE was developed, comprising of a set of Eclipse plug-in supported by the Dynamic Languages Toolkit framework and a Haskell-based library to mediate the communication between Eclipse plug-ins and the Agda proof engine. The resulting IDE supports creating of Agda project and files, has an Agda-specific perspective, syntax highlighting, support different queries in the context of the goal, simple navigation to declarations, searching, content assist features and problem marking
Integrating Testing and Interactive Theorem Proving
Using an interactive theorem prover to reason about programs involves a
sequence of interactions where the user challenges the theorem prover with
conjectures. Invariably, many of the conjectures posed are in fact false, and
users often spend considerable effort examining the theorem prover's output
before realizing this. We present a synergistic integration of testing with
theorem proving, implemented in the ACL2 Sedan (ACL2s), for automatically
generating concrete counterexamples. Our method uses the full power of the
theorem prover and associated libraries to simplify conjectures; this
simplification can transform conjectures for which finding counterexamples is
hard into conjectures where finding counterexamples is trivial. In fact, our
approach even leads to better theorem proving, e.g. if testing shows that a
generalization step leads to a false conjecture, we force the theorem prover to
backtrack, allowing it to pursue more fruitful options that may yield a proof.
The focus of the paper is on the engineering of a synergistic integration of
testing with interactive theorem proving; this includes extending ACL2 with new
functionality that we expect to be of general interest. We also discuss our
experience in using ACL2s to teach freshman students how to reason about their
programs.Comment: In Proceedings ACL2 2011, arXiv:1110.447
Foundational Extensible Corecursion
This paper presents a formalized framework for defining corecursive functions
safely in a total setting, based on corecursion up-to and relational
parametricity. The end product is a general corecursor that allows corecursive
(and even recursive) calls under well-behaved operations, including
constructors. Corecursive functions that are well behaved can be registered as
such, thereby increasing the corecursor's expressiveness. The metatheory is
formalized in the Isabelle proof assistant and forms the core of a prototype
tool. The corecursor is derived from first principles, without requiring new
axioms or extensions of the logic
Reconstructing propositional proofs in type theory
We describe a syntactical proof-reconstruction approach to verify derivations generated by Metis prover to theorems in classical propositional logic -- To verify such derivations, we formalize in type theory each inference rule of the Metis reasoning -- We developed a tool jointly with two Agda libraries to translate Metis derivations to Agda proof-terms -- These developments allowed us to type-check with Agda, Metis derivations step-by-ste
Isabelle/HOL as a Meta-Language for Teaching Logic
Proof assistants are important tools for teaching logic. We support this
claim by discussing three formalizations in Isabelle/HOL used in a recent
course on automated reasoning. The first is a formalization of System W (a
system of classical propositional logic with only two primitive symbols), the
second is the Natural Deduction Assistant (NaDeA), and the third is a one-sided
sequent calculus that uses our Sequent Calculus Verifier (SeCaV). We describe
each formalization in turn, concentrating on how we used them in our teaching,
and commenting on features that are interesting or useful from a logic
education perspective. In the conclusion, we reflect on the lessons learned and
where they might lead us next.Comment: In Proceedings ThEdu'20, arXiv:2010.1583
- …