A higher-order implementation of rewriting
From MaRDI portal
Abstract: Many automatic theorem-provers rely on rewriting. Using theorems as rewrite rules helps to simplify the subgoals that arise during a proof. LCF is an interactive theorem-prover intended for reasoning about computation. Its implementation of rewriting is presented in detail. LCF provides a family of rewriting functions, and operators to combine them. A succession of functions is described, from pattern matching primitives to the rewriting tool that performs most inferences in LCF proofs. The design is highly modular. Each function performs a basic, specific task, such as recognizing a certain form of tautology. Each operator implements one method of building a rewriting function from simpler ones. These pieces can be put together in numerous ways, yielding a variety of rewrit- ing strategies. The approach involves programming with higher-order functions. Rewriting functions are data values, produced by computation on other rewriting functions. The code is in daily use at Cambridge, demonstrating the practical use of functional programming.
This paper describes the implementation of rewriting in LCF (the interactive theorem-prover for Scott's logic of computable functions). Because many theorem-proving tools are written in ML (the metalanguage for LCF) an introduction into ML is presented. Further sections contain detailed descriptions of pattern matching primitives, term conversions, formula conversions and rewriting tactics. Good examples and clear style make the paper very readable.
Recommendations
Cited in
(27)- n-level rewriting systems
- Rewriting with a nondeterministic choice operator
- Lazy techniques for fully expansive theorem proving
- An overview of the Tecton proof system
- Typed generic traversal with term rewriting strategies
- Rewriting conversions implemented with continuations
- Crystal: Integrating structured queries into a tactic language
- A metatheory of a mechanized object theory
- Equational Reasoning with Applicative Functors
- Generic type-preserving traversal strategies
- An account of implementing applicative term rewriting
- scientific article; zbMATH DE number 1231655 (Why is no real title available?)
- Transparent optimisation of rewriting combinators
- Implementing theorem provers in a purely functional style
- scientific article; zbMATH DE number 512772 (Why is no real title available?)
- scientific article; zbMATH DE number 2043545 (Why is no real title available?)
- scientific article; zbMATH DE number 7340567 (Why is no real title available?)
- A restricted form of higher-order rewriting applied to an HDL semantics
- Understanding and maintaining tactics graphically OR how we are learning that a diagram can be worth more than 10K LoC
- REWRITING WITH STRATEGIES IN $\mathsf{ELAN}$: A FUNCTIONAL SEMANTICS
- Scalable fine-grained proofs for formula processing
- A comparison of HOL and ALF formalizations of a categorical coherence theorem
- A Mizar mode for HOL
- Function definition in higher-order logic
- Transforming optimization problems into disciplined convex programming form
- A few exercises in theorem processing
- Term rewriting and beyond -- theorem proving in Isabelle
This page was built for publication: A higher-order implementation of rewriting
Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q800739)