Content deleted Content added
No edit summary |
No edit summary |
||
(16 intermediate revisions by 13 users not shown) | |||
Line 1:
{{Short description|1970s automated theorem prover}}
{{see also|Logic of Computable Functions}}
'''Logic for Computable Functions''' ('''LCF''') is an interactive [[automated theorem prover]] developed at [[Stanford University|Stanford]] and [[University of Edinburgh|Edinburgh]] by [[Robin Milner]] and collaborators in early 1970s, based on the theoretical foundation of [[Logic of Computable Functions|logic
== Basic
Theorems in the system are terms of a special "theorem" [[abstract data type]]. The general mechanism of abstract data types of ML ensures that theorems are derived using only the [[inference rule]]s given by the operations of the theorem abstract type. Users can write arbitrarily complex ML programs to compute theorems; the validity of theorems does not depend on the complexity of such programs, but follows from the soundness of the abstract data type implementation and the
== Advantages ==
The LCF approach provides similar trustworthiness to systems that generate explicit proof certificates but without the need to store proof objects in memory. The Theorem data type can be easily implemented to optionally store proof objects, depending on the system's run-time configuration, so it generalizes the basic proof-generation approach. The design decision to use a general-purpose programming language for developing theorems means that, depending on the complexity of programs written, it is possible to use the same language to write step-by-step proofs, decision procedures, or theorem provers.
== Disadvantages ==
The implementation of the underlying ML compiler adds to the [[trusted computing base]]. Work on CakeML<ref name="cakeml">{{cite web |title=CakeML |url=https://cakeml.org/ |
Theorem proving often benefits from decision procedures and theorem proving algorithms, whose correctness has been extensively analyzed. A straightforward way of implementing these
== Influences ==
Among subsequent implementations is Cambridge LCF. Later systems simplified the logic to use total instead of partial functions, leading to
==
{{Reflist}}
== References ==
{{Refbegin}}
* {{cite book
}}
* {{cite book
|pages=169–185
|publisher=MIT Press
|___location=Cambridge, |date=2000 |isbn=0-262-16188-5
|access-date=2007-10-11}}
* {{cite book
▲ | edition = 2nd
▲ | publisher = Vieweg+Teubner Verlag
▲ | isbn = 978-3-322-96754-1 }}
* {{cite manual
* {{cite book
{{Refend}}
{{
[[Category:Logic in computer science]]
[[Category:Proof assistants]]
{{Mathlogic-stub}}
|