Abstract
We define a function that finds a path between two given nodes of a given directed graph, if such a path exists. We prove the function terminates and we prove that it is correct. Aside from illustrating one way to formalize directed graphs in ACL2, this chapter illustrates the importance of the user’s decomposition of a problem into mathematically tractable parts and the importance of defining new concepts to formalize those parts. Our proof involves such auxiliary notions as that of a simple (loop-free) path, the process for obtaining a simple path from an arbitrary path, and an algorithm for collecting all simple paths. The algorithm we analyze is a naive one that executes in time exponential in the number of edges. This chapter requires no specialized knowledge of graph theory; indeed, the main thrusts of the chapter have nothing to do with graph theory. They are: to develop your formalization skills and to refine your expectations of what a formalization will involve. Appropriate expectations of a project are often the key to success.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2000 Springer Science+Business Media New York
About this chapter
Cite this chapter
Moore, J.S. (2000). An Exercise in Graph Theory. In: Kaufmann, M., Manolios, P., Moore, J.S. (eds) Computer-Aided Reasoning. Advances in Formal Methods, vol 4. Springer, Boston, MA. https://doi.org/10.1007/978-1-4757-3188-0_5
Download citation
DOI: https://doi.org/10.1007/978-1-4757-3188-0_5
Publisher Name: Springer, Boston, MA
Print ISBN: 978-1-4419-4981-3
Online ISBN: 978-1-4757-3188-0
eBook Packages: Springer Book Archive