Translating B to TLA +  for Validation with TLC

  • Dominik Hansen
  • Michael Leuschel
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8477)


The state-based formal methods B and TLA  +  share the common base of predicate logic, arithmetic and set theory. However, there are still considerable differences, such as the way to specify state transitions, the different approaches to typing, and the available tool support. In this paper, we present a translation from B to TLA  +  to validate B specifications using the model checker TLC. We provide translation rules for almost all constructs of B, in particular for those which are not built-in in TLA  + . The translation also includes many adaptations and optimizations to allow efficient checking by TLC. Moreover, we present a way to validate liveness properties for B specifications under fairness conditions. Our implemented translator, Tlc4B, automatically translates a B specification to TLA  + , invokes the model checker TLC, and translates the results back to B. We use ProB to double check the counter examples produced by TLC and replay them in the ProB animator. We also present a series of case studies and benchmark tests comparing Tlc4B and ProB.


B-Method TLA +  Tool Support Model Checking Animation 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Abrial, J.-R.: The B-Book. Cambridge University Press (1996)Google Scholar
  2. 2.
    ClearSy. B language reference manual, (accessed: November 10, 2013)
  3. 3.
    Cousineau, D., Doligez, D., Lamport, L., Merz, S., Ricketts, D., Vanzetto, H.: TLA +  proofs. In: Giannakopoulou, D., Méry, D. (eds.) FM 2012. LNCS, vol. 7436, pp. 147–154. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  4. 4.
    Gafni, E., Lamport, L.: Disk Paxos. Distributed Computing 16(1), 1–20 (2003)CrossRefGoogle Scholar
  5. 5.
    Hansen, D., Leuschel, M.: Translating TLA +  to B for validation with ProB. In: Derrick, J., Gnesi, S., Latella, D., Treharne, H. (eds.) IFM 2012. LNCS, vol. 7321, pp. 24–38. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  6. 6.
    Hansen, D., Leuschel, M.: Translating B to TLA+ for validation with TLC (2013),
  7. 7.
    Lamport, L.: The TLA+ hyperbook, (accessed: October 30, 2013)
  8. 8.
    Lamport, L.: Specifying Systems, The TLA+ Language and Tools for Hardware and Software Engineers. Addison-Wesley (2002)Google Scholar
  9. 9.
    Leuschel, M., Butler, M.: ProB: A model checker for B. In: Araki, K., Gnesi, S., Mandrioli, D. (eds.) FME 2003. LNCS, vol. 2805, pp. 855–874. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  10. 10.
    Leuschel, M., Butler, M.J.: ProB: an automated analysis toolset for the B method. STTT 10(2), 185–203 (2008)CrossRefGoogle Scholar
  11. 11.
    Mosbahi, O., Jemni, L., Jaray, J.: A formal approach for the development of automated systems. In: Filipe, J., Shishkov, B., Helfert, M. (eds.) ICSOFT (SE), pp. 304–310. INSTICC Press (2007)Google Scholar
  12. 12.
    Reynolds, M.: Changing nothing is sometimes doing something. Technical Report TR-98-02, Department of Computer Science, King’s College London (February 1998)Google Scholar
  13. 13.
    Yu, Y., Manolios, P., Lamport, L.: Model checking TLA+ specifications. In: Pierre, L., Kropf, T. (eds.) CHARME 1999. LNCS, vol. 1703, pp. 54–66. Springer, Heidelberg (1999)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2014

Authors and Affiliations

  • Dominik Hansen
    • 1
  • Michael Leuschel
    • 1
  1. 1.Institut für InformatikUniversität DüsseldorfDüsseldorfGermany

Personalised recommendations