Prophecy variables are auxiliary program variables whose values are defined in terms of current program state and future behavior. This paper explains their relevance to reasoning about systems with “undo” operations, and develops an approach that facilitates their use.


State Space State Machine Auxiliary Variable History Variable Safety Property 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Abadi, M., Lamport, L.: The existence of refinement mappings. Theoretical Computer Science 82(2), 253–284 (1991)CrossRefzbMATHMathSciNetGoogle Scholar
  2. 2.
    Cook, B., Koskinen, E.: Making prophecies with decision predicates. In: Proceedings of the 38th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 399–410 (2011)Google Scholar
  3. 3.
    Elnozahy, E.N., Alvisi, L., Wang, Y., Johnson, D.B.: A survey of rollback-recovery protocols in message-passing systems. ACM Computing Surveys 34(3), 375–408 (2002)CrossRefGoogle Scholar
  4. 4.
    Harris, T., Larus, J.R., Rajwar, R.: Transactional Memory, 2nd edn. Synthesis Lectures on Computer Architecture. Morgan & Claypool Publishers (2010)Google Scholar
  5. 5.
    Henzinger, T.A., Sezgin, A., Vafeiadis, V.: Aspect-oriented linearizability proofs. In: D’Argenio, P.R., Melgratti, H. (eds.) CONCUR 2013 – Concurrency Theory. LNCS, vol. 8052, pp. 242–256. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  6. 6.
    Herlihy, M., Wing, J.M.: Linearizability: A correctness condition for concurrent objects. ACM Transactions on Programming Languages and Systems 12(3), 463–492 (1990)CrossRefGoogle Scholar
  7. 7.
    Jonsson, B.: Simulations between specifications of distributed systems. In: Groote, J.F., Baeten, J.C.M. (eds.) CONCUR 1991. LNCS, vol. 527, pp. 346–360. Springer, Heidelberg (1991)CrossRefGoogle Scholar
  8. 8.
    Kim, T., Wang, X., Zeldovich, N., Kaashoek, M.F.: Intrusion recovery using selective re-execution. In: 9th USENIX Symposium on Operating Systems Design and Implementation, pp. 89–104 (2010)Google Scholar
  9. 9.
    Lamport, L.: Specifying Systems, The TLA+ Language and Tools for Hardware and Software Engineers. Addison-Wesley (2002)Google Scholar
  10. 10.
    Lampson, B.W.: Reliable messages and connection establishment. In: Mullender, S. (ed.) Distributed Systems, pp. 251–281. Addison-Wesley (1993)Google Scholar
  11. 11.
    Lynch, N.A., Vaandrager, F.W.: Forward and backward simulations: I. Untimed systems. Information and Computation 121(2), 214–233 (1995)CrossRefzbMATHMathSciNetGoogle Scholar
  12. 12.
    Murray, D.G., McSherry, F., Isaacs, R., Isard, M., Barham, P., Abadi, M.: Naiad: a timely dataflow system. In: ACM SIGOPS 24th Symposium on Operating Systems Principles. pp. 439–455 (2013)Google Scholar
  13. 13.
    Sezgin, A., Tasiran, S., Qadeer, S.: Tressa: Claiming the future. In: Leavens, G.T., O’Hearn, P., Rajamani, S.K. (eds.) VSTTE 2010. LNCS, vol. 6217, pp. 25–39. Springer, Heidelberg (2010)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2015

Authors and Affiliations

  • Martín Abadi
    • 1
  1. 1.University of CaliforniaSanta CruzUSA

Personalised recommendations