102,352 research outputs found
The AutoProof Verifier: Usability by Non-Experts and on Standard Code
Formal verification tools are often developed by experts for experts; as a
result, their usability by programmers with little formal methods experience
may be severely limited. In this paper, we discuss this general phenomenon with
reference to AutoProof: a tool that can verify the full functional correctness
of object-oriented software. In particular, we present our experiences of using
AutoProof in two contrasting contexts representative of non-expert usage.
First, we discuss its usability by students in a graduate course on software
verification, who were tasked with verifying implementations of various sorting
algorithms. Second, we evaluate its usability in verifying code developed for
programming assignments of an undergraduate course. The first scenario
represents usability by serious non-experts; the second represents usability on
"standard code", developed without full functional verification in mind. We
report our experiences and lessons learnt, from which we derive some general
suggestions for furthering the development of verification tools with respect
to improving their usability.Comment: In Proceedings F-IDE 2015, arXiv:1508.0338
Logic Programming Applications: What Are the Abstractions and Implementations?
This article presents an overview of applications of logic programming,
classifying them based on the abstractions and implementations of logic
languages that support the applications. The three key abstractions are join,
recursion, and constraint. Their essential implementations are for-loops, fixed
points, and backtracking, respectively. The corresponding kinds of applications
are database queries, inductive analysis, and combinatorial search,
respectively. We also discuss language extensions and programming paradigms,
summarize example application problems by application areas, and touch on
example systems that support variants of the abstractions with different
implementations
A Goal-Directed Implementation of Query Answering for Hybrid MKNF Knowledge Bases
Ontologies and rules are usually loosely coupled in knowledge representation
formalisms. In fact, ontologies use open-world reasoning while the leading
semantics for rules use non-monotonic, closed-world reasoning. One exception is
the tightly-coupled framework of Minimal Knowledge and Negation as Failure
(MKNF), which allows statements about individuals to be jointly derived via
entailment from an ontology and inferences from rules. Nonetheless, the
practical usefulness of MKNF has not always been clear, although recent work
has formalized a general resolution-based method for querying MKNF when rules
are taken to have the well-founded semantics, and the ontology is modeled by a
general oracle. That work leaves open what algorithms should be used to relate
the entailments of the ontology and the inferences of rules. In this paper we
provide such algorithms, and describe the implementation of a query-driven
system, CDF-Rules, for hybrid knowledge bases combining both (non-monotonic)
rules under the well-founded semantics and a (monotonic) ontology, represented
by a CDF Type-1 (ALQ) theory. To appear in Theory and Practice of Logic
Programming (TPLP
- …