Nothing Special   »   [go: up one dir, main page]

skip to main content
article

Knowledge-based programs

Published: 01 July 1997 Publication History

Abstract

Reasoning about activities in a distributed computer system at the level of the knowledge of individuals and groups allows us to abstract away from many concrete details of the system we are considering. In this paper, we make use of two notions introduced in our recent book to facilitate designing and reasoning about systems in terms of knowledge. The first notion is that of a knowledge-based program. A knowledge-based program is a syntactic object: a program with tests for knowledge. The second notion is that of a context, which captures the setting in which a program is to be executed. In a given context, a standard program (one without tests for knowledge) is represented by (i.e., corresponds in a precise sense to) a unique system. A knowledge-based program, on the other hand, may be represented by no system, one system, or many systems. In this paper, we provide a sufficient condition for a knowledge-based program to be represented in a unique way in a given context. This condition applies to many cases of interest, and covers many of the knowledge-based programs considered in the literature. We also completely characterize the complexity of determining whether a given knowledge-based program has a unique representation, or any representation at all, in a given finite-state context.

References

[1]
1. Abadi M, Lamport L: The existence of refinement mappings. Theor Comput Sci 82(2): 253-284 (1991).
[2]
2. Barwise J: Scenes and other situations. J Phil 78(7): 369-397 (1981).
[3]
3. Chandy KM, Misra J: Parallel program design: a foundation. Addison-Wesley, Reading, MA 1988.
[4]
4. Choueka Y: Theories of automata on ω-tapes: a simplified approach. J Comput Syst Sci 8: 117-141 (1974).
[5]
5. Clarke EM, Emerson EA, Sistla AP: Automatic verification of finite-state concurrent systems using temporal logic specifications. ACM Trans Prog Lang Syst 8(2): 244-263 (1986) {An early version appeared in: Proc 10th ACM Symposium on Principles of Programming Languages (1983)}.
[6]
6. Dwork C, Moses Y: Knowledge and common knowledge in a Byzantine environment: crash failures. Inform Comput 88(2): 156-186 (1990).
[7]
7. Fagin R, Halpern JY, Moses Y, Vardi MY: An operational semantics for knowledge bases. In: Proc National Conference on Artificial Intelligence (AAAI '94), pp 1142-1144 (1994).
[8]
8. Fagin R, Halpern JY, Moses Y, Vardi MY: Reasoning about knowledge. MIT Press, Cambridge, MA 1995.
[9]
9. Fudenberg D, Tirole J: Game theory. MIT Press, Cambridge, MA 1991.
[10]
10. Garey M, Johnson DS: Computers and intractability: A guide to the theory of NP-completeness. Freeman, San Francisco, CA 1979.
[11]
11. Halpern JY, Fagin R: A formal model of knowledge, action, and communication in distributed systems: preliminary report. In: Proc 4th ACM Symp on Principles of Distributed Computing, pp 224-236 (1985).
[12]
12. Halpern JY, Fagin R: Modelling knowledge and action in distributed systems. Distrib Comput 3(4): 159-179 (1989). {A preliminary version appeared in: Proc 4th ACM Symposium on Principles of Distributed Computing (1985) with the title "A formal model of knowledge, action, and communication in distributed systems: preliminary report"}.
[13]
13. Halpern JY, Moses Y: Knowledge and common knowledge in a distributed environment. J ACM 37(3): 549-587 (1990). {A preliminary version appeared in: Proc 3rd ACM Symposium on Principles of Distributed Computing (1984)}.
[14]
14. Halpern JY, Moses Y: A guide to completeness and complexity for modal logics of knowledge and belief. Artif Intell 54: 319-379 (1992).
[15]
15. Halpern JY, Moses Y, Waarts O: A characterization of eventual Byzantine agreement. In: Proc 9th ACM Symp on Principles of Distributed Computing, pp 333-346 (1990).
[16]
16. Halpern JY, Zuck LD: A little knowledge goes a long way: knowledge-based derivations and correctness proofs for a family of protocols. J ACM 39(9): 449-478 (1992).
[17]
17. Jerrum MR, Valiant LG, Vazirani VV: Random generation of combinatorial structures from a uniform distribution. Theoret Comput Sci 43: 169-188 (1986).
[18]
18. Katz S, Taubenfeld G: What processes know: definitions and proof methods. In: Proc 5th ACM Symp on Principles of Distributed Computing, pp 249-262 (1986).
[19]
19. Kurki-Suonio R: Towards programming with knowledge expressions. In: Proc. 13th ACM Symp on Principles of Programming Languages, pp 140-149 (1986).
[20]
20. Manna Z, Pnueli A: The temporal logic of reactive and concurrent systems, vol 1. Springer, Berlin Heidelberg New York 1992.
[21]
21. Mazer MS: Implementing distributed knowledge-based protocols. Submitted for publication (1991).
[22]
22. Moses Y: Resource-bound knowledge. In: Vardi MY (ed) Proc Second Conference on Theoretical Aspects of Reasoning about Knowledge, pp 261-276. Morgan Kaufmann, San Francisco, CA 1988.
[23]
23. Moses Y, Kislev O: Knowledge-oriented programming. In: Proc 12th ACM Symp. on Principles of Distributed Computing, pp 261-270 (1993).
[24]
24. Moses Y, Tuttle MR: Programming simultaneous actions using common knowledge. Algorithmica 3: 121-169 (1988).
[25]
25. Neiger G: Knowledge consistency: a useful suspension of disbelief. In: Vardi MY (ed) Proc. Second Conference on Theoretical Aspects of Reasoning about Knowledge, pp 295-308, Morgan Kaufmann, San Francisco, CA 1988.
[26]
26. Neiger G, Bazzi R: Using knowledge to optimally achieve coordination in distributed systems. In: Moses Y (ed) Theoretical aspects of reasoning about knowledge: Proc Fourth Conference, pp 43-59. Morgan Kaufmann, San Francisco, CA 1992.
[27]
27. Neiger G, Toueg S: Simulating real-time clocks and common knowledge in distributed systems. J ACM 40(2): 334-367 (1993).
[28]
28. Owicki S, Lamport L: Proving liveness properties of concurrent programs. ACM Trans. Progr Lang Syst 4(3): 455-495 (1982).
[29]
29. Papadimitriou CH, Yanakakis M: The complexity of facets (and some facets of complexity). J Comput Syst Sci 28(2): 244-259 (1982).
[30]
30. Sanders B: A predicate transformer approach to knowledge and knowledge-based protocols. In: Proc 10th ACM Symp on Principles of Distributed Computing, pp 217-230 (1991). {A revised report appears as: ETH Informatik Technical Report 181 (1992)}.
[31]
31. Savitch WJ: Relationships between nondeterministic and deterministic tape complexities. J Comput Syst Sci 4: 177-192 (1970).
[32]
32. Shoham Y: Agent oriented programming. Artif Intell 60(1): 51-92 (1993).
[33]
33. Sistla AP, Clarke EM: The complexity of propositional linear temporal logics. J ACM 32(3): 733-749 (1985).
[34]
34. Vardi MY, Wolper P: An automata-theoretic approach to automatic program verification. In: Proc 1st IEEE Symp on Logic in Computer Science, pp 332-344 (1986).
[35]
35. Vardi MY, Wolper P: Reasoning about infinite computations. Inform Comput 115(1): 1-37 (1994).

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Distributed Computing
Distributed Computing  Volume 10, Issue 4
July 1997
58 pages

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 01 July 1997

Author Tags

  1. knowledge-based program
  2. multi-agent system
  3. protocol
  4. reasoning about knowledge

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

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

Other Metrics

Citations

Cited By

View all

View Options

View options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media