_______________________________________________________________________________

Welcome to the Don Theorem Prover (DTP).

The Common Lisp (CLtL2) source code is available by anonymous FTP from
	meta.stanford.edu:/pub/dtp/
The code has been tested under Franz Allegro Common Lisp and Lucid Common Lisp.

Please send comments to Don Geddis at
	Geddis@CS.Stanford.EDU
or
	Computer Science Department
	Stanford University
	Stanford, California 94305
_______________________________________________________________________________

This is not the Stanford Theorem Prover (STP), but it might be when it grows
up.  Unification is done by the auxiliary files (match, symbols, bindings, cnf,
binding-dag) which I stole from Matt Ginsberg's MVL.

DTP does clausal resolution theorem proving, with the following resolution
strategies: set of support (namely, the goal sentence), ordered resolution
(but with all database sentences treated as though all contrapositives were
also stored), subsumption elimination, tautology elimination, and pure literal
elimination.  Also, recursion control via caching and slaving is implemented,
so infinite paths (e.g. a transitive closure rule) are not a problem.  The
result is a complete theorem prover with a surprisingly small search space.

Pointers to the relevant files can be found in the file "dtp", which loads all
the others.
_______________________________________________________________________________

Theorem Prover Demo:

Start lisp, then evaluate
	(load "dtp")
	(in-package "DTP")
	(test-dtp)

You might want to then try the same examples by hand after doing
	(trace-options :everything t)
in order to watch the theorem proving happen.  Also
	(show-contents 'animal)
and 'house and 'conn will show you the relevant databases.
	(show-contents)
will show all the example databases.
_______________________________________________________________________________

Loading dtp.lisp loads all the other files, and also defines
	(load-dtp-system)
in the USER package.  This function may be called to reload the system, or
	(load-dtp-system :recompile t)
or
	(load-dtp-system :recompile :optimize)
may be called to compile all the lisp files.
_______________________________________________________________________________

User Functions [exported from the DTP package]:

[toplevel.lisp]
	prove
	show-contents
	reset-dtp
	make-theory-from-sentences
	save-sentence-in-theory
	drop-sentence-from-theory
	options
	iteration-options
	trace-options
	output-form-options
	justify
	id-to-node
	sentences-in

[hierarchy.lisp]
	includes
	unincludes
	includees
	decludes
	included-active-theory-names
	show-theory-dag

[database.lisp]
	empty-theory

[test.lisp]
	test-dtp

[epikit-dtp.lisp]
	proval
	prologp
	prologx
	prologs
	save
	drop
	empty
	facts
	contents
_______________________________________________________________________________

Files:

	README			This file
	TODO			Thoughts for the future

	dtp.lisp		Pseudo-DEFSYSTEM: A file to load all the rest

	definitions.lisp	Structures, global variables

	symbols.lisp		Logic variables	[Stolen from MVL]
	bindings.lisp		Binding lists	[Stolen from MVL]
	binding-dag.lisp	Binding lists	[Stolen from MVL]
	match.lisp		Logic variables	[Stolen from MVL]
	cnf.lisp		Database	[Stolen from MVL]

	internals.lisp		Macros, general lisp functions
	database.lisp		Theories and sentences
	hierarchy.lisp		Theory DAG
	literals.lisp		Logic literals
	clauses.lisp		Logic clauses
	agenda.lisp		Proof space nodes
	labels.lisp		Logic sentence labels
	answers.lisp		Query answers
	residue.lisp		Assumption mechanism
	cache.lisp		Answer caching and recursion control
	inference.lisp		First-order theorem prover
	toplevel.lisp		User-callable functions
	tracing.lisp		Proof tracing and debugging
	file.lisp		File loading of logic theories

	circuits.lisp		Example of residue (design synthesis)

	test.lisp		Functions to test all the code
	examples.dtp		Sample logic theories
	examples.test		Sample queries and answers for "examples.dtp"

	epikit-dtp.lisp		Definition of Epikit functions in terms of DTP
_______________________________________________________________________________
