Literature Cited
R. Anderson, Proving Program Correctness [Russian translation], Mir, Moscow (1982).
E. Dijkstra, The Science of Programming [Russian translation], Mir, Moscow (1978).
S. Alagic and M. A. Arbib, The Design of Well-Structured and Correct Programs, Springer, Berlin (1978).
R. Bird, Programs and Machines, John Wiley, New York (1976).
Z. Manna, Mathematical Theory of Computation, McGraw-Hill, New York (1974).
R. A. Plyushkyavichus, A. Yu. Plyushkyavichene, K. K. Gyachas et al., “On program verification,” Proceedings of the All-Union Conf. on Methods of Mathematical Logic in Artificial Intelligence Problems and Systematic Programming [in Russian], Inst. Mat. Kibern. Akad. Nauk LitSSR, Vil'nyus (1980), p. 1, pp. 34–56.
E. L. Yushchenko and I. V. Kasatkina, “Modern methods of proving program correctness,” Kibernetika, No. 37-62 (1980).
S. L. Gerhart, “Program verification in the 1980's,” in: Proc. Conf. on Computing in the 1980's (Portland 1978), New York; IEEE (1978), pp. 80–89.
R. L. London, “A view of program verification,” Sigplan Notices,10, No. 6, 534 (1975).
Z. Manna and R. Waldinger, “The logic of computer programming,” IEEE Trans. Software Eng., 4, No. 3, 199 (1978).
J. T. Schwartz, A. Survey of Program Proof Technology, Techn. Rep., Comput. Sci. Dept., New York Univ., No. 001, New York (1978).
J. C. King, “Program correctness: on inductive assertion methods,” IEEE Trans. Software Eng.,6, No. 6, 465 (1980).
J. H. Morris and B. Wegbreit, “Subgoal induction,” Commun. ACM,20, No. 4, 209 (1977).
D. C. Luckham and N. Suzuki, “Proof of termination within a weak logic of programs,” Acta Inf.,8, No. 1, 21 (1977).
D. Gries, “Is sometimes ever better than always?” Lect. Notes Comput. Sci.,69, 113 (1978).
C. A. R. Hoare and N. Wirth, “An axiomatic definition of the programming language PASCAL,” Acta Inf.,2, No. 4, 335 (1973).
V. A. Nepomnyashchii, “Verification of file processing programs in PASCAL,” Programmirovanie, No. 2, 34 (1981).
S. Igarashi, R. L. London, and D. C. Luckham, “Automatic program verification I: A logical basis and its implementation,” Acta Inf.,4, No. 2, 145 (1975).
D. C. Luckham and N. Suzuki, “Verification of array, record, and pointer operations in PASCAL,” ACM Trans. Program. Lang. Syst.,1, No. 2, 226 (1979).
R. L. Schwartz, “An axiomatic treatment of ALGOL-68 routines,” Lect. Notes Comput. Sci.,71, 530 (1979).
D. C. Oppen and S. A. Cook, “Proving assertions about programs that manipulate data structures,” in: Proc. 7th Ann. ACM Symp. on Theory of Comput., ACM, New York (1975), pp. 107–116.
L. Robinson and K. N. Levitt, “Proff techniques for hierarchically structured programs,” Commun. ACM,20, No. 4, 271 (1977).
S. Owicki and D. Gries, “An axiomatic proof technique for parallel programs I,” Acta Inf.,6, No. 4, 319 (1976).
S. Owicki and D. Gries, “Verifying properties of parallel programs: An axiomatic approach,” Commun. ACM,19, No. 5, 279 (1976).
L. Flon and N. Suzuki, “The total correctness of parallel programs,” SIAM J. Comput.,10, No. 2, 227 (1981).
L. Lamport, “The ‘Hoare logic’ of concurrent programs,” Acta Inf.,14, No. 1, 21 (1980).
R. J. Lipton, “Reduction: a method of proving properties of parallel programs,” Commun. ACM,18, No. 12, 717 (1975).
V. A. Nepomnyashchii, “Proving the correctness of linear algebra programs,” Programmirovanie, No. 4, 63 (1982).
V. A. Nepomnyaschii and T. G. Churina, “Verification of array sorting programs,” in: Programming Languages and Systems [in Russian], VTs Akad. Nauk SSSR, Novosibirsk (1979), pp. 21–36.
S. K. Basu, “A note on synthesis of inductive assertions,” IEEE Trans. Software Eng.,6, No. 1, 32 (1980).
B. Wegbreit, “Complexity of synthesizing inductive assertions,” J. ACM,24, No. 3, 504 (1974).
M. Caplain, “Finding invariant assertions for proving programs,” Sigplan Notices,10, No. 6, 165 (1975).
H. A. Ellozy, “The determination of loop invariants for programs with arrays,” IEEE Trans. Software Eng.,7, No. 2, 197 (1981).
S. Katz and Z. Manna, “Logical analysis of programs,” Commun. ACM,19, No. 4, 188 (1976).
B. Wegbreit, “The synthesis of loop predicates,” Commun. ACM,17, No. 2, 102 (1974).
S. L. Krivoi, “An algorithm for finding invariant relations in programs,” Kibernetika, No. 5, 12 (1981).
A. A. Letichevskii, “On an approach to program analysis,” Kibernetika, No. 6, 1 (1979).
V. K. Sabel'fel'd, “Polynomial estimation of the complexity of identifying logical term equivalence, Dokl. Akad. Nauk SSSR,249, No. 4, 793 (1979).
P. Cousot and N. Halbwachs, “Automatic discovery of linear restraints among variables of a program,” in: Proc. Fifth Ann. ACM Symp. on Principles of Program. Lang., ACM, New York (1978), pp. 84–96.
N. Dershowitz and Z. Manna, “Inference rules for program annotation,” IEEE Trans. Software Eng.,7, No. 2, 207 (1981).
G. S. Tseitin, “Certain characteristics of a language for a programming system verifying proofs,” in: Theory of Programming, Proc. of a Symposium [in Russian], VTs Sib. Otd. Akad. Nauk SSSR, Novosibirsk, Part 2 (1972), pp. 234–249.
M. Moriconi and R. L. Schwartz, “Automatic construction of verification-condition generators from Hoare logics,” Lect. Notes Comput. Sci.,115, 363 (1981).
V. S. Kostyrko, “Proving the correctness of “for” loop operators,” Kibernetika, No. 5, 55 (1977).
S. K. Basu and J. Misra, “Some classes of naturally provable programs,” in: Proc. 2nd Intern. Conf. on Software Eng. (San Francisco, 1976), IEEE, New York (1976), pp. 400–406.
P. Mateti, “A decision procedure for the correctness of a class of programs,” J. ACM,28, No. 2, 215 (1981).
N. Suzuki and D. Jefferson, “Verification decidability of Presburger array programs,” J. ACM,27, No. 1, 191 (1980).
R. E. Shostak, “A practical decision procedure for arithmetic with function symbols,” J. ACM,26, No. 2, 351 (1979).
D. C. Oppen, “Reasoning about recursively defined data structures,” J. ACM,27, No. 3, 403 (1980).
C. G. Nelson and D. C. Oppen, “Simplification by cooperating decision procedures,” ACM Trans. Progr. Lang. Syst.,1, No. 2, 245 (1979).
D. E. Knuth and P. B. Bendix, “Simple word problems in universal algebra,” in: Computational Problems in Abstract Algebras, Pergamon Press, New York (1970), pp. 263–297.
G. E. Peterson and M. E. Stickel, “Complete sets of reductions for some equational theories,” J. ACM,28, No. 2, 233 (1981).
J. C. King, “A program verifier,” in: Proc. IFIP Congress (Ljubljana 1971), North-Holland, Amsterdam (1971), pp. 142–146.
A. A. Letichevskii and V. S. Kostyrko, “On the application of an MIR-2 computer for program analysis,” Kibernetika, No. 6, 31 (1974).
L. P. Deutsch, An Interactive Program Verifier, Dr. Diss., University of California, Berkeley (1973).
R. J. Waldinger and K. N. Levitt, “Reasoning about programs,” Artificial Intelligence,5, No. 3, 235 (1974).
S. M. German and B. Wegbreit, “A synthesizer of inductive assertions,” Trans. Software Eng.,1, No. 1, 68 (1975).
M. Tamir, “ADI: Automatic derivation of invariants,” Trans. Software Eng.,6, No. 1, 40 (1980).
V. A. Nepomnyashchii and L. V. Chernobrod, “Testing program correctness with computers,” in: Problems of Programming [in Russian], VTs Sib. Otd. Akad. Nauk SSSR, Novosibirsk (1976), pp. 63–80.
D. I. Good, R. L. London, and W. W. Bledsoe, “An interactive program verification system,” IEEE Trans. Software Eng.,1, No. 1, 59 (1975).
J. Hvorecky, “The system for proving of correctness of programs,” in: Proc. of 1st Symp. on Analysis and Synthesis of Algorithms (Smolenice 1977), Veda, Broatislava (1977), pp. 82–88.
D. C. Luckham, “Program verification and verification-oriented programming,” in: Proc. IFIP Congress (Toronto 1977), North-Holland, Amsterdam (1977), pp. 783–794.
S. Scholz and O. Herrlich, “Bemerkungen zur Generierung von Verificationsbendingungen in PASKAL Programmen,” Weiterbildungszentr. Math. Kybern. und Rechentechn., Sekt. Math., Dresden, No. 3, 71 (1977).
N. Suzuki, Automatic Verification of Programs with Complex Data Structures. Techn. Rep., Comput. Sci. Dept. Stanford Univ., No. 552, Stanford (1976).
S. L. Gerhart et al., “An overview of AFFIRM: a specification and verification system,” in: Proc. Congress IFIP (Tokyo, Melbourn 1980), North-Holland, Amsterdam (1980), pp. 343–347.
D. R. Musser, “Abstract data type specification in the AFFIRM system,” IEEE Trans. Software Eng.,6, No. 1, 24 (1980).
V. R. Pratt, “On specifying verifiers,” in: Proc. 7th Ann. ACM Symp. on Principles of Progr. Lang., (Las Vegas 1980), ACM, New York, (1980), pp. 106–116.
J. Misra, “An exercise in program explanation,” ACM Trans. Program. Lang. Syst.,3, No. 1, 104 (1981).
Z. Manna and R. Waldinger, “Is sometimes sometimes better than always? Intermittent assertions in proving program correctness,” Commun. ACM,21, No. 2, 159 (1978).
L. Lamport, “On the proof of correctness of a calendar program,” Commun. ACM,22, No. 10, 554 (1979).
W. Polak, “An exercise in automatic program verification,” IEEE Trans. Software Eng.,5, No. 5, 453 (1979).
V. S. Kostyrko, “On the analysis of computational programs,” in: Methodology and Practice of the Development of Automatic Quality Control [in Russian], Inst. Kibern. Akad. Nauk USSR, Kiev (1978), pp. 38–49.
T. E. Hull, W. H. Enright, and A. E. Sedgwick, “The correctness of numerical algorithms,” Sigplan Notices,7, No. 1, 66 (1972).
D. Gries, “An illustration of current ideas on the derivation of correctness proofs and correct programs,” IEEE Trans. Software Eng.,2, No. 4, 238 (1976).
D. Gries, “The Schorr-Waite graph making algorithm,” Acta Inf.,11, No. 3, 223 (1979).
C. H. Corell, “Proving program correct through refinement,” Artificial Intelligence,9, No. 2, 211 (1978).
A. A. Letichevskii, “Analysis of a program checking inconsistencies in a propositional formula,” in: Discrete Transformers [in Russian], Inst. Kibern. Akad. Nauk USSR, Kiev (1976), pp. 3–19.
F. W. Henke and D. C. Luckham, “A methodology for verifying programs,” Sigplan Notices,10, No. 6, 156 (1975).
S. L. Gerhart and L. Yelowitz, “Control structure abstractions of the backtracking technique,” IEEE Trans. Software Eng.,2, No. 4, 285 (1976).
V. A. Nepomnyashchii and A. A. Sulimov, “On one approach to translator specification and verification,” Programmirovanie, No. 4, 51 (1983).
P. Deransart, “Proof by semantic attributes of a LISP compiler,” Computer J.,22, No. 3, 240 (1979).
R. L. London, “Correctness of a compiler for a LISP subset,” Sigplan Notices,7, No. 1, 121 (1972).
W. Polak, “Compiler specification and verification,” Lect. Notes Comput. Sci.,124, 269 (1981).
L. Yelowitz, “Specifications, refinement, and proof of a macroprocessor,” in: Proc. Symp. Comput. Software Eng., New York (1976), Vol. 24, pp. 251–266.
L. Lamport, “The specification and proof of correctness of interactive programs,” Lect. Notes Comput. Sci.,75, 474 (1979).
A. Birman and W. H. Joyner, “A problem-reduction approach to proving simulation between programs,” IEEE Trans. Software Eng.,2, No. 2, 87 (1976).
D. A. Patterson, “An experiment in high-level language microprogramming and verification,” Commun. ACM,24, No. 10, 699 (1981).
E. A. Ashcroft, “Proving assertions about parallel programs,” J. Comput. System Sci.,10, No. 1, 110 (1975).
S. Owicki, “Verifying concurrent programs with shared data classes,” in: Proc. IFIP Working Conf. on Formal Description of Prog. Concepts, North-Holland, Amsterdam, (1978), pp. 279–299.
R. A. Karp and D. C. Luckham, “Verification of fairness in an implementation of monitors,” in: Proc. 2nd Intern. Conf. on Software Engrg. (San Francisco (1976)), IEEE, New York (1976), pp. 40–46.
N. Francez, “Application of a method for analysis of cyclic programs,” IEEE Trans. Software Eng.,4, No. 5, 371 (1978).
J. V. Phillips and T. H. Bredt, “Design and verification of realtime systems,” in: Proc. 2nd Intern. Conf. on Software Eng. (San Francisco 1976), IEEE, New York, (1976), pp. 124–131.
S. L. Gerhart and L. Yelowitz, “Observations of fallibility in applications of modern programming methodologies,” IEEE Trans. Software Eng.,2, No. 3, 195 (1976).
R. A. De Millo, R. J. Lipton, and A. J. Perlis, “Social processes and proofs of theorems and programs,” Commun. ACM,22, No. 5, 271 (1979).
E. W. Dijkstra, “On a political pamphlet from the middle ages,” Software Eng. Notes,3, No. 2, 14 (1978).
V. A. Nepomnyaschii and V. K. Sabel'fel'd, “Transformation synthesis of correct programs,” in: Optimization and Transformation of Programs (Materials of All-Union Seminar) [in Russian], VTs Sib. Otd. Akad. Nauk SSSR, Novosibirsk (1983), part 2, pp. 99–118.
Additional information
Translated from Kibernetika, No. 2, pp. 21–28, 43, March–April, 1984.
Rights and permissions
About this article
Cite this article
Nepomnyashchii, V.A. Practical methods of program verification. Cybern Syst Anal 20, 193–203 (1984). https://doi.org/10.1007/BF01069174
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF01069174