18 research outputs found
Recommended from our members
Using inductive types for ensuring correctness of neuro-symbolic computations
The Tactician (extended version): A Seamless, Interactive Tactic Learner and Prover for Coq
We present Tactician, a tactic learner and prover for the Coq Proof
Assistant. Tactician helps users make tactical proof decisions while they
retain control over the general proof strategy. To this end, Tactician learns
from previously written tactic scripts and gives users either suggestions about
the next tactic to be executed or altogether takes over the burden of proof
synthesis. Tactician's goal is to provide users with a seamless, interactive,
and intuitive experience together with robust and adaptive proof automation. In
this paper, we give an overview of Tactician from the user's point of view,
regarding both day-to-day usage and issues of package dependency management
while learning in the large. Finally, we give a peek into Tactician's
implementation as a Coq plugin and machine learning platform.Comment: 19 pages, 2 figures. This is an extended version of a paper published
in CICM-2020. For the project website, see https://coq-tactician.github.i
Proof-Pattern Recognition and Lemma Discovery in ACL2
We present a novel technique for combining statistical machine learning for
proof-pattern recognition with symbolic methods for lemma discovery. The
resulting tool, ACL2(ml), gathers proof statistics and uses statistical
pattern-recognition to pre-processes data from libraries, and then suggests
auxiliary lemmas in new proofs by analogy with already seen examples. This
paper presents the implementation of ACL2(ml) alongside theoretical
descriptions of the proof-pattern recognition and lemma discovery methods
involved in it
Category theoretic semantics for theorem proving in logic programming: embracing the laxness
A propositional logic program may be identified with a -coalgebra
on the set of atomic propositions in the program. The corresponding
-coalgebra, where is the cofree comonad on ,
describes derivations by resolution. Using lax semantics, that correspondence
may be extended to a class of first-order logic programs without existential
variables. The resulting extension captures the proofs by term-matching
resolution in logic programming. Refining the lax approach, we further extend
it to arbitrary logic programs. We also exhibit a refinement of Bonchi and
Zanasi's saturation semantics for logic programming that complements lax
semantics.Comment: 20 pages, CMCS 201
Termination Casts: A Flexible Approach to Termination with General Recursion
This paper proposes a type-and-effect system called Teqt, which distinguishes
terminating terms and total functions from possibly diverging terms and partial
functions, for a lambda calculus with general recursion and equality types. The
central idea is to include a primitive type-form "Terminates t", expressing
that term t is terminating; and then allow terms t to be coerced from possibly
diverging to total, using a proof of Terminates t. We call such coercions
termination casts, and show how to implement terminating recursion using them.
For the meta-theory of the system, we describe a translation from Teqt to a
logical theory of termination for general recursive, simply typed functions.
Every typing judgment of Teqt is translated to a theorem expressing the
appropriate termination property of the computational part of the Teqt term.Comment: In Proceedings PAR 2010, arXiv:1012.455
LiFtEr: Language to Encode Induction Heuristics for Isabelle/HOL
Proof assistants, such as Isabelle/HOL, offer tools to facilitate inductive
theorem proving. Isabelle experts know how to use these tools effectively;
however, there is a little tool support for transferring this expert knowledge
to a wider user audience. To address this problem, we present our
domain-specific language, LiFtEr. LiFtEr allows experienced Isabelle users to
encode their induction heuristics in a style independent of any problem domain.
LiFtEr's interpreter mechanically checks if a given application of induction
tool matches the heuristics, thus automating the knowledge transfer loop.Comment: This is the pre-print of our paper of the same title accepted at
APLAS2019 (https://doi.org/10.1007/978-3-030-34175-6_14). We updated the
draft after fixing the errata found by Kenji Miyamot
Unification neural networks:unification by error-correction learning
We show that the conventional first-order algorithm of unification can be simulated by finite artificial neural networks with one layer of neurons. In these unification neural networks, the unification algorithm is performed by error-correction learning. Each time-step of adaptation of the network corresponds to a single iteration of the unification algorithm. We present this result together with the library of learning functions and examples fully formalised in MATLAB Neural Network Toolbox.</p
A coalgebraic approach to unification semantics of logic programming
In the version of logic programming (LP) based on interpretations where variables occur in atoms, a goal reduction via unification can be seen as a transition labelled by the most general unifier. Categorically, it is thus natural to model a logic program as a coalgebra. In the paper we represent: (i) goals as the substitutive monoid freely generated by the predicate symbols; (ii) the LTS as the structured coalgebra defined by the SOS rules implicit in the LP semantics; (iii) the bisimulation semantics of a logic program as its image on the final coalgebra