skip to main content
10.1145/1374376.1374399acmconferencesArticle/Chapter ViewAbstractPublication PagesstocConference Proceedingsconference-collections
research-article

A (de)constructive approach to program checking

Published: 17 May 2008 Publication History

Abstract

Program checking, program self-correcting and program self-testing were pioneered by [Blum and Kannan] and [Blum, Luby and Rubinfeld] in the mid eighties as a new way to gain confidence in software, by considering program correctness on an input by input basis rather than full program verification. Work in the field of program checking focused on designing, for specific functions, checkers, testers and correctors which are more efficient than the best program known for the function. These were designed utilizing specific algebraic, combinatorial or completeness properties of the function at hand. In this work we introduce a novel composition methodology for improving the efficiency of program checkers. We use this approach to design a variety of program checkers that are provably more efficient, in terms of circuit depth, than the optimal program for computing the function being checked. Extensions of this methodology for the cases of program testers and correctors are also presented. In particular, we show: For all i ≥ 1, every language in RNCi (that is NCO-hard under NCZ-reductions) has a program checker in RNCi-1. In addition, for all i ≥ 1, every language in RNCi (that is NCO-hard under ACZ-reductions) has a program corrector, tester and checker in RACi-1. This is the first time checkers are designed for a wide class of functions characterized only by its complexity, rather than by algebraic or combinatorial properties. This characterization immediately yields new and efficient checkers for languages such as graph connectivity, perfect matching and bounded-degree graph isomorphism. Constant-depth checkers, testers and correctors for matrix multiplication, inversion, determinant and rank. All previous program checkers, testers and correctors for these problems run in nearly logarithmic depth. Moreover, except for matrix multiplication, they all require the use of the library notion of [Blum-Luby-Rubinfeld], in which checkers have access to a library of programs for various matrix functions, rather than only having access to a program for the function being checked. Furthermore, we provide conditions under which program libraries can be eliminated. Important ingredients in these results are new and very efficient checkers for complete languages in low complexity classes (e.g. NCO). These constructions are based on techniques that were developed in the field of cryptography.

References

[1]
B. Applebaum, Y. Ishai, and E. Kushilevitz. Cryptography in NC0. SIAM Journal on Computing, 2004. To appear. Preliminary version in FOCS 2004.
[2]
V. Arvind, K. Subrahmanyam, and N. Vinodchandran. The query complexity of program checking by constant-depth circuits. Chicago Journal of Theoretical Computer Science, 2, 2002.
[3]
L. Babai, L. Fortnow, and C. Lund. Non-deterministic exponential time has two-prover interactive protocols. In FOCS, pages 16--25, 1990.
[4]
L. Babai, L. Fortnow, N. Nisan, and A. Wigderson. BPP has subexponential simulation unless Exptime has publishable proofs. Computational Complexity, 3:307--318, 1993.
[5]
B. Barak. A probabilistic-time hierarchy theorem for "slightly non-uniform" algorithms. In RANDOM, pages 194--208, 2002.
[6]
D. Barrington. Bounded-width polynomial-size branching programs recognize exactly those languages in $NC^1$. Journal of Computer and System Sciences, 38(1):150--164, 1989.
[7]
R. Beigel, M. Bellare, J. Feigenbaum, and S. Goldwasser. Languages that are easier than their proofs. In FOCS, pages 19--28, 1991.
[8]
M. Ben-Or, D. Coppersmith, M. Luby, and R. Rubinfeld. Non-abelian homomorphism testing, and distributions close to their self-convolutions. In Proceedings of APPROX-RANDOM, pages 273--285, 2004.
[9]
M. Blum and S. Kannan. Designing programs that check their work. Journal of the ACM, 42(1):269--291, 1995.
[10]
M. Blum, M. Luby, and R. Rubinfeld. Self-testing/correcting with applications to numerical problems. Journal of Computer and System Sciences, 47(3):549--595, 1993.
[11]
D. Coppersmith and S. Winograd. Matrix muliplication via arithmetic progressions. In STOC, pages 1--6, 1987.
[12]
U. Feige, J. Kilian, and M. Naor. A minimal model for secure computation. In STOC, pages 554--563, 1994.
[13]
L. Fortnow and R. Santhanam. Hierarchy theorems for probabilistic polynomial time. In FOCS, pages 316--324, 2004.
[14]
L. Fortnow, R. Santhanam, and L. Trevisan. Hierarchies for semantic classes. In STOC, pages 348--355, 2005.
[15]
R. Freivalds. Fast probablistic algorithms. Springer Verlag Lecture Notes in CS, Mathematical Foundations of CS, 74:57--69, 1979.
[16]
M. L. Furst, J. B. Saxe, and M. Sipser. Parity, circuits, and the polynomial-time hierarchy. Mathematical Systems Theory, 17(1):13--27, April 1984.
[17]
S. Goldwasser, D. Gutfreund, A. Healy, T. Kaufman, and G. N. Rothblum. A (de)constructive approach to program checking. ECCC Technical Report, TR07-047, 2007.
[18]
S. Goldwasser, D. Gutfreund, A. Healy, T. Kaufman, and G. N. Rothblum. Verifying and decoding in constant depth. In STOC, pages 440--449, 2007.
[19]
D. Gutfreund, R. Shaltiel, and A. Ta-Shma. Uniform hardness vs. randoness tradeoffs for Arthur-Merlin games. Computational Complexity, 12:85--130, 2003.
[20]
R. Impagliazzo, V. Kabanets, and A. Wigderson. In search of an easy witness: Exponential time vs. probabilistic polynomial time. In CCC, pages 1--11, 2001.
[21]
Y. Ishai and E. Kushilevitz. Perfect constant-round secure computation via perfect randomizing polynomials. In In proceedins of 29th ICALP, pages 244--256, 2002.
[22]
J. Kilian. Founding cryptography on oblivious transfer. In STOC, pages 20--31, 1988.
[23]
R. Lipton. New directions in testing. Proceedings of DIMACS workshop on distributed computing and cryptography, 2:191--202, 1991.
[24]
D. Randall. Effcient random generation of nonsingular matrices. Technical Report 91, U.C. Berekely Technical Report, Computer Science Department.
[25]
R. Rubinfeld. Designing checkers for programs that run in parallel. Algorithmica, 15(4):287--301, 1996.
[26]
R. Santhanam. Circuit lower bounds for Merlin-Arthur classes. In STOC, pages 275--283, 2007.
[27]
R. Shaltiel and C. Umans. Low-end uniform hardness vs. randomness tradeoffs for am. In STOC, pages 430--439, 2007.
[28]
A. Shamir. IP = PSPACE. In FOCS, pages 11--15, 1990.
[29]
L. Trevisan and S. Vadhan. Pseudorandomness and average-case complexity via uniform reductions. In CCC, pages 129--138, 2002.
[30]
H. Wasserman and M. Blum. Software reliability via run-time result-checking. Journal of the ACM, 44(6):826--849, 1997.

Cited By

View all
  • (2023)Advisor-Verifier-Prover Games and the Hardness of Information Theoretic Cryptography2023 IEEE 64th Annual Symposium on Foundations of Computer Science (FOCS)10.1109/FOCS57990.2023.00039(539-555)Online publication date: 6-Nov-2023
  • (2023)Cryptographic hardness under projections for time-bounded Kolmogorov complexityTheoretical Computer Science10.1016/j.tcs.2022.10.040940(206-224)Online publication date: Jan-2023
  • (2021)Single-Server Delegation of Ring Multiplications from Quasilinear-time Clients2021 14th International Conference on Security of Information and Networks (SIN)10.1109/SIN54109.2021.9699330(1-8)Online publication date: 15-Dec-2021
  • Show More Cited By

Index Terms

  1. A (de)constructive approach to program checking

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    STOC '08: Proceedings of the fortieth annual ACM symposium on Theory of computing
    May 2008
    712 pages
    ISBN:9781605580470
    DOI:10.1145/1374376
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 17 May 2008

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. program checking
    2. program correcting
    3. program testing

    Qualifiers

    • Research-article

    Conference

    STOC '08
    Sponsor:
    STOC '08: Symposium on Theory of Computing
    May 17 - 20, 2008
    British Columbia, Victoria, Canada

    Acceptance Rates

    STOC '08 Paper Acceptance Rate 80 of 325 submissions, 25%;
    Overall Acceptance Rate 1,469 of 4,586 submissions, 32%

    Upcoming Conference

    STOC '25
    57th Annual ACM Symposium on Theory of Computing (STOC 2025)
    June 23 - 27, 2025
    Prague , Czech Republic

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)6
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 18 Feb 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)Advisor-Verifier-Prover Games and the Hardness of Information Theoretic Cryptography2023 IEEE 64th Annual Symposium on Foundations of Computer Science (FOCS)10.1109/FOCS57990.2023.00039(539-555)Online publication date: 6-Nov-2023
    • (2023)Cryptographic hardness under projections for time-bounded Kolmogorov complexityTheoretical Computer Science10.1016/j.tcs.2022.10.040940(206-224)Online publication date: Jan-2023
    • (2021)Single-Server Delegation of Ring Multiplications from Quasilinear-time Clients2021 14th International Conference on Security of Information and Networks (SIN)10.1109/SIN54109.2021.9699330(1-8)Online publication date: 15-Dec-2021
    • (2015)Verifiable stream computation and arthur-merlin communicationProceedings of the 30th Conference on Computational Complexity10.5555/2833227.2833238(217-243)Online publication date: 17-Jun-2015
    • (2015)The communication complexity of interleaved group productsProceedings of the forty-seventh annual ACM symposium on Theory of Computing10.1145/2746539.2746560(351-360)Online publication date: 14-Jun-2015
    • (2013)Shielding circuits with groupsProceedings of the forty-fifth annual ACM symposium on Theory of Computing10.1145/2488608.2488640(251-260)Online publication date: 1-Jun-2013
    • (2013)Locality and checkability in wait-free computingDistributed Computing10.1007/s00446-013-0188-x26:4(223-242)Online publication date: 1-Aug-2013
    • (2012)On beating the hybrid argumentProceedings of the 3rd Innovations in Theoretical Computer Science Conference10.1145/2090236.2090273(468-483)Online publication date: 8-Jan-2012
    • (2012)From randomizing polynomials to parallel algorithmsProceedings of the 3rd Innovations in Theoretical Computer Science Conference10.1145/2090236.2090244(76-89)Online publication date: 8-Jan-2012
    • (2012)Uniform derandomization from pathetic lower boundsPhilosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences10.1098/rsta.2011.0318370:1971(3512-3535)Online publication date: 18-Jun-2012
    • Show More Cited By

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media