An open API service indexing awesome lists of open source software.

https://github.com/nilqed/snark

SNARK - SRI's New Automated Reasoning Kit
https://github.com/nilqed/snark

common-lisp theorem-prover

Last synced: 6 days ago
JSON representation

SNARK - SRI's New Automated Reasoning Kit

Awesome Lists containing this project

README

        

*** Update 20-FEB-2025

Replaced some SRI links (not available anymore) by adding [docs] folder locally.
More info: http://nilqed.github.io/SNARK/

(ql:quickload :snark)

=====
SNARK
=====

SNARK, SRI's New Automated Reasoning Kit, is a theorem prover intended for
applications in artificial intelligence and software engineering. SNARK is
geared toward dealing with large sets of assertions; it can be specialized
with strategic controls that tune its performance; and it has facilities
for integrating special-purpose reasoning procedures with general-purpose
inference.

--------
Overview
--------

SNARK is an automated theorem-proving program being developed in Common Lisp.
Its principal inference rules are resolution and paramodulation. SNARK's style
of theorem proving is similar to Otter's.

Some distinctive features of SNARK are its support for special unification
algorithms, sorts, answer construction for program synthesis, procedural
attachment, and extensibility by Lisp code.

SNARK has been used as the reasoning component of SRI's High Performance
Knowledge Base (HPKB) system, which deduces answers to questions based on
large repositories of information, and as the deductive core of NASA's Amphion
system, which composes software from components to meet users' specifications,
e.g., to perform computations in planetary astronomy. SNARK has also been
connected to Kestrel's SPECWARE environment for software development.

Selected Publications

Stickel, M., R. Waldinger, M. Lowry, T. Pressburger, and I. Underwood.
Deductive composition of astronomical software from subroutine libraries.
Proceedings of the Twelfth International Conference on Automated Deduction
(CADE-12), Nancy, France, June 1994, 341-355.

---------------------
Links & Documentation
---------------------

SNARK tutorial ... https://nilqed.github.io/SNARK/tutorial/tutorial.html
SNARK paper ...... https://nilqed.github.io/SNARK/snark.pdf
SNARK home ....... https://www.ai.sri.com/~stickel/snark.html
SNARK author ..... https://en.wikipedia.org/wiki/Mark_E._Stickel

----------------
Obtaining SNARK:
----------------

New (18-MAR-2016): get it by QuickLisp

(ql:quickload :snark)

Or:

SNARK can be downloaded from the SNARK web page
http://www.ai.sri.com/~stickel/snark.html

See INSTALL file for installation instructions

Running SNARK:

lisp
(load "snark-system.lisp")
(make-snark-system)
:

Examples:

(overbeek-test) in overbeek-test.lisp
some standard theorem-proving examples, some time-consuming (~10m)

(steamroller-example) in steamroller-example.lisp
illustrates sorts

(front-last-example) in front-last-example.lisp
illustrates program synthesis

(reverse-example) in reverse-example.lisp
illustrates logic programming style usage

A guide to SNARK has been written:

https://nilqed.github.io/SNARK/tutorial/tutorial.html

but has not been updated yet to reflect changes in SNARK,
especially for temporal and spatial reasoning.

-----
NOTES
-----
This repository is based on the latest version 20120808-r022 from the
download site and the '.asd' files from https://github.com/hoelzl/Snark.
The goal is to get SNARK installable by QuickLisp.

Loadable by quicklisp since: 18-MAR-2016

* (ql:system-apropos :snark)
#
#
#
#
#
#
#
#
#
#
#
#
#
#
*