#### DMCA

## Proving Theorems about LISP Functions (1975)

Citations: | 57 - 2 self |

### Citations

256 |
Outline of a mathematical theory of computation
- Scott
- 1970
(Show Context)
Citation Context .... Both are essentially induction on the depth of function calls. Milner, 1972 [20] and Milner and Weyhrauch, 1972 [21] describe a proof checker for Scott's Logic for Computable Functions (Scott, 1970 =-=[25]-=-) which uses computational induction. The most commonly used method is forsow diagram languages and was suggested by Naur, 1966 [23] and Floyd, 1967 [10]. In this approach, inductive assertions are at... |

236 | A basis for a mathematical theory of computation
- McCARTHY
- 1963
(Show Context)
Citation Context ... Painter, 1967 [19] in a compiler correctness proof. Common alternative inductive methods for recursive languages are computational induction (Park, 1969 [24]) and recursion induction (McCarthy, 1963 =-=[17]-=-). Both are essentially induction on the depth of function calls. Milner, 1972 [20] and Milner and Weyhrauch, 1972 [21] describe a proof checker for Scott's Logic for Computable Functions (Scott, 1970... |

101 | Proving properties of programs by structural induction. The computer journal
- Burstall
- 1969
(Show Context)
Citation Context ...ctions on the forms of recursive equations allowed), but it will not always choose the one we choose. Our program uses structural induction, which was introduced into the literature by Burstall, 1969 =-=[4]-=-, although it was used earlier by McCarthy and Painter, 1967 [19] in a compiler correctness proof. Common alternative inductive methods for recursive languages are computational induction (Park, 1969 ... |

95 | Correctness of a compiler for arithmetic expressions
- McCarthy, Painter
- 1967
(Show Context)
Citation Context ... not always choose the one we choose. Our program uses structural induction, which was introduced into the literature by Burstall, 1969 [4], although it was used earlier by McCarthy and Painter, 1967 =-=[19]-=- in a compiler correctness proof. Common alternative inductive methods for recursive languages are computational induction (Park, 1969 [24]) and recursion induction (McCarthy, 1963 [17]). Both are ess... |

80 | A program verifier - King - 1971 |

62 |
The synthesis of loop predicates
- Wegbreit
- 1974
(Show Context)
Citation Context ... languages which include assignments (possibly to arrays), jumps or loops, and dened procedure calls. These programs require the user to invent inductive assertions. Elspas, 1972 [8], Wegbreit, 1973 =-=[27]-=-, and Katz and Manna, 1973 [14] present heuristics for generating inductive assertions automatically. Darlington and Burstall, 1973 [6] describe a system which will take functions such as the ones in ... |

59 |
A system which automatically improves programs
- Darlington, Burstall
- 1976
(Show Context)
Citation Context ...o invent inductive assertions. Elspas, 1972 [8], Wegbreit, 1973 [27], and Katz and Manna, 1973 [14] present heuristics for generating inductive assertions automatically. Darlington and Burstall, 1973 =-=[6]-=- describe a system which will take functions such as the ones in our LISP subset and write equivalent programs which are more ecient. This system will replace recursion by iteration, merge loops, and... |

57 |
Fixpoint induction and proofs of program properties
- Park
- 1969
(Show Context)
Citation Context ..., although it was used earlier by McCarthy and Painter, 1967 [19] in a compiler correctness proof. Common alternative inductive methods for recursive languages are computational induction (Park, 1969 =-=[24]-=-) and recursion induction (McCarthy, 1963 [17]). Both are essentially induction on the depth of function calls. Milner, 1972 [20] and Milner and Weyhrauch, 1972 [21] describe a proof checker for Scott... |

46 |
Computer proofs of limit theorems
- Bledsoe, Boyer
- 1972
(Show Context)
Citation Context ...e essentially similar. This conviction was inspired by conversations with Bob Kowalski and Pat Hayes, and the beauty of LISP. Our program is in the style of theoremproving programs written by Bledsoe =-=[1, 2]-=-. We would like to note that our program uses no search and has no knowledge of user functions other than their denitions. Consequently our theorem-prover frequently reproves simple facts like the as... |

46 |
Proof of Algorithms by General Snapshots
- Naur
- 1966
(Show Context)
Citation Context ...oof checker for Scott's Logic for Computable Functions (Scott, 1970 [25]) which uses computational induction. The most commonly used method is forsow diagram languages and was suggested by Naur, 1966 =-=[23]-=- and Floyd, 1967 [10]. In this approach, inductive assertions are attached to points in a program and are used to generate \verication conditions," which are theorems that must be proved to establish... |

33 |
Inductive methods for proving properties of programs
- Manna, Ness, et al.
- 1973
(Show Context)
Citation Context ...r frequently reproves simple facts like the associativity of APPEND. 11 Related Work An excellent survey of the various methods for verifying programs is presented in Manna, Ness, and Vuillemin, 1972 =-=[16]-=-. Brotz, 1973 [3] has implemented an arithmetic theorem-prover very similar to ours. His system generates its own induction formulas and uses the generalization heuristic we use (without \type functio... |

27 | An Interactive Program Verifier - Deutsch - 1973 |

26 |
Proving compiler correctness in a mechanized logic
- Milner, Weyhrauch
- 1972
(Show Context)
Citation Context ...omputational induction (Park, 1969 [24]) and recursion induction (McCarthy, 1963 [17]). Both are essentially induction on the depth of function calls. Milner, 1972 [20] and Milner and Weyhrauch, 1972 =-=[21]-=- describe a proof checker for Scott's Logic for Computable Functions (Scott, 1970 [25]) which uses computational induction. The most commonly used method is forsow diagram languages and was suggested ... |

25 |
Implementation and Applications of Scott's Logic for Computable Functions
- Milner
- 1972
(Show Context)
Citation Context ...ethods for recursive languages are computational induction (Park, 1969 [24]) and recursion induction (McCarthy, 1963 [17]). Both are essentially induction on the depth of function calls. Milner, 1972 =-=[20]-=- and Milner and Weyhrauch, 1972 [21] describe a proof checker for Scott's Logic for Computable Functions (Scott, 1970 [25]) which uses computational induction. The most commonly used method is forsow ... |

14 | Programs for Mechanical Program Verification - Cooper |

13 | A heuristic approach to program verification - Katz, Manna - 1973 |

11 |
The semiautomatic generation of inductive assertions for provin g program correctness
- Elspas
- 1974
(Show Context)
Citation Context ... use this method for languages which include assignments (possibly to arrays), jumps or loops, and dened procedure calls. These programs require the user to invent inductive assertions. Elspas, 1972 =-=[8]-=-, Wegbreit, 1973 [27], and Katz and Manna, 1973 [14] present heuristics for generating inductive assertions automatically. Darlington and Burstall, 1973 [6] describe a system which will take functions... |

8 |
Computational logic: Structure sharing and proof of program properties
- Moore
- 1973
(Show Context)
Citation Context ...ives and the LISP denitions supplied by the user. No further information is required of the user. This paper describes many aspects of the program in brevity. A thorough presentation can be found in =-=[22]-=-. 2 Our LISP Subset We use a subset of pure LISP [18] which has as primitives NIL, CONS, CAR, CDR, COND, and EQUAL. With these primitive we can dene recursive functions such as those in Appendix A, a... |

7 |
1701 Toward a man-machine system for proving program correctness
- Good
- 1970
(Show Context)
Citation Context ...s are attached to points in a program and are used to generate \verication conditions," which are theorems that must be proved to establish the correctness of the program. King 1969 [15], Good, 1970 =-=[12]-=-, Cooper, 1971 [5], Gerhart, 1972 [11], Deutsch, 1973 [7], Igarashi, London, and Luckham, 1973 [13], Elspas, Levitt, and Waldinger, 1973 [9], and Topor and Burstall, 1973 [26] have implemented systems... |

4 |
An Interactive Program Veri
- Deutsch
- 1973
(Show Context)
Citation Context ...rate \verication conditions," which are theorems that must be proved to establish the correctness of the program. King 1969 [15], Good, 1970 [12], Cooper, 1971 [5], Gerhart, 1972 [11], Deutsch, 1973 =-=[7]-=-, Igarashi, London, and Luckham, 1973 [13], Elspas, Levitt, and Waldinger, 1973 [9], and Topor and Burstall, 1973 [26] have implemented systems which use this method for languages which include assign... |

4 |
A program veri
- King
- 1969
(Show Context)
Citation Context ...ductive assertions are attached to points in a program and are used to generate \verication conditions," which are theorems that must be proved to establish the correctness of the program. King 1969 =-=[15]-=-, Good, 1970 [12], Cooper, 1971 [5], Gerhart, 1972 [11], Deutsch, 1973 [7], Igarashi, London, and Luckham, 1973 [13], Elspas, Levitt, and Waldinger, 1973 [9], and Topor and Burstall, 1973 [26] have im... |

3 | An interactive system for the verification of computer programs - Elspas, Levitt, et al. - 1973 |

3 |
Assigning meaning to programs. Proceedings of a Symposium in
- Floyd
- 1967
(Show Context)
Citation Context ...'s Logic for Computable Functions (Scott, 1970 [25]) which uses computational induction. The most commonly used method is forsow diagram languages and was suggested by Naur, 1966 [23] and Floyd, 1967 =-=[10]-=-. In this approach, inductive assertions are attached to points in a program and are used to generate \verication conditions," which are theorems that must be proved to establish the correctness of t... |

3 | Verification of APL Programs
- Gerhart
- 1972
(Show Context)
Citation Context ...and are used to generate \verication conditions," which are theorems that must be proved to establish the correctness of the program. King 1969 [15], Good, 1970 [12], Cooper, 1971 [5], Gerhart, 1972 =-=[11]-=-, Deutsch, 1973 [7], Igarashi, London, and Luckham, 1973 [13], Elspas, Levitt, and Waldinger, 1973 [9], and Topor and Burstall, 1973 [26] have implemented systems which use this method for languages w... |

3 |
private communication
- Burstall
(Show Context)
Citation Context ...ng 1969 [15], Good, 1970 [12], Cooper, 1971 [5], Gerhart, 1972 [11], Deutsch, 1973 [7], Igarashi, London, and Luckham, 1973 [13], Elspas, Levitt, and Waldinger, 1973 [9], and Topor and Burstall, 1973 =-=[26]-=- have implemented systems which use this method for languages which include assignments (possibly to arrays), jumps or loops, and dened procedure calls. These programs require the user to invent indu... |

2 |
Proving Theorems by Mathematical Induction
- Brotz
- 1974
(Show Context)
Citation Context ...ves simple facts like the associativity of APPEND. 11 Related Work An excellent survey of the various methods for verifying programs is presented in Manna, Ness, and Vuillemin, 1972 [16]. Brotz, 1973 =-=[3]-=- has implemented an arithmetic theorem-prover very similar to ours. His system generates its own induction formulas and uses the generalization heuristic we use (without \type functions"). He inducts ... |

2 |
Programs for mechanical program veri
- Cooper
- 1971
(Show Context)
Citation Context ...oints in a program and are used to generate \verication conditions," which are theorems that must be proved to establish the correctness of the program. King 1969 [15], Good, 1970 [12], Cooper, 1971 =-=[5]-=-, Gerhart, 1972 [11], Deutsch, 1973 [7], Igarashi, London, and Luckham, 1973 [13], Elspas, Levitt, and Waldinger, 1973 [9], and Topor and Burstall, 1973 [26] have implemented systems which use this me... |

2 |
A heuristic approach to program veri
- Katz, Manna
- 1973
(Show Context)
Citation Context ...ments (possibly to arrays), jumps or loops, and dened procedure calls. These programs require the user to invent inductive assertions. Elspas, 1972 [8], Wegbreit, 1973 [27], and Katz and Manna, 1973 =-=[14]-=- present heuristics for generating inductive assertions automatically. Darlington and Burstall, 1973 [6] describe a system which will take functions such as the ones in our LISP subset and write equiv... |

1 |
Splitting and reduction heursitics in automatic theorem proving
- Bledsoe
- 1971
(Show Context)
Citation Context ...e essentially similar. This conviction was inspired by conversations with Bob Kowalski and Pat Hayes, and the beauty of LISP. Our program is in the style of theoremproving programs written by Bledsoe =-=[1, 2]-=-. We would like to note that our program uses no search and has no knowledge of user functions other than their denitions. Consequently our theorem-prover frequently reproves simple facts like the as... |

1 | Automatic program verification I: A logical basis and its - Igarashi, London, et al. - 1973 |

1 |
An interactive system for the veri of computer programs
- Elspas, Levitt, et al.
- 1973
(Show Context)
Citation Context ...the correctness of the program. King 1969 [15], Good, 1970 [12], Cooper, 1971 [5], Gerhart, 1972 [11], Deutsch, 1973 [7], Igarashi, London, and Luckham, 1973 [13], Elspas, Levitt, and Waldinger, 1973 =-=[9]-=-, and Topor and Burstall, 1973 [26] have implemented systems which use this method for languages which include assignments (possibly to arrays), jumps or loops, and dened procedure calls. These progr... |

1 |
C.Automatic program veri I: A logical basis and its
- Igarashi, London, et al.
- 1973
(Show Context)
Citation Context ...theorems that must be proved to establish the correctness of the program. King 1969 [15], Good, 1970 [12], Cooper, 1971 [5], Gerhart, 1972 [11], Deutsch, 1973 [7], Igarashi, London, and Luckham, 1973 =-=[13]-=-, Elspas, Levitt, and Waldinger, 1973 [9], and Topor and Burstall, 1973 [26] have implemented systems which use this method for languages which include assignments (possibly to arrays), jumps or loops... |