Certifying Standard and Stratified Datalog Inference Engines in SSReflect

  • Véronique Benzaken
  • Évelyne Contejean
  • Stefania DumbravaEmail author
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10499)


We propose a SSReflect library for logic programming in the Datalog setting. As part of this work, we give a first mechanization of standard Datalog and of its extension with stratified negation. The library contains a formalization of the model theoretical and fixpoint semantics of the languages, implemented through bottom-up and, respectively, through stratified evaluation procedures. We provide corresponding soundness, termination, completeness and model minimality proofs. To this end, we rely on the Coq proof assistant and SSReflect. In this context, we also construct a preliminary framework for dealing with stratified programs. We consider this to be a necessary first step towards the certification of security-aware data-centric applications.


  1. 1.
    Barceló, P., Pichler, R. (eds.): Datalog in Academia and Industry. LNCS, vol. 7494. Springer, Heidelberg (2012)zbMATHGoogle Scholar
  2. 2.
    Abiteboul, S., Hull, R., Vianu, V.: Foundations of Databases. Addison-Wesley, Boston (1995)zbMATHGoogle Scholar
  3. 3.
    Apt, K.R., Blair, H.A., Walker, A.: Foundations of Deductive Databases and Logic Programming. Morgan Kaufmann Publishers Inc., San Francisco (1988)Google Scholar
  4. 4.
    Aref, M., ten Cate, B., Green, T.J., Kimelfeld, B., Olteanu, D., Pasalic, E., Veldhuizen, T.L., Washburn, G.: Design and implementation of the LogicBlox system. In: SIGMOD ACM Proceedings of ICMD, pp. 1371–1382 (2015)Google Scholar
  5. 5.
    Bagan, G., Bonifati, A., Ciucanu, R., Fletcher, G.H.L., Lemay, A., Advokaat, N.: gMark: schema-driven generation of graphs and queries. IEEE TKDE 29, 856–869 (2017)Google Scholar
  6. 6.
    Calì, A., Gottlob, G., Lukasiewicz, T.: Datalog\({\pm }\): a unified approach to ontologies and integrity constraints. In: Fagin, R. (ed.) ACM Proceedings of ICDT, vol. 361, pp. 14–30 (2009)Google Scholar
  7. 7.
    Ceri, S., Gottlob, G., Tanca, L.: Logic Programming and Databases. Springer, Heidelberg (1990)CrossRefGoogle Scholar
  8. 8.
    Chin, B., von Dincklage, D., Ercegovac, V., Hawkins, P., Miller, M.S., Och, F.J., Olston, C., Pereira, F.: Yedalog: exploring knowledge at scale. In: Ball, T., Bodk, R., Krishnamurthi, S., Lerner, B.S., Morrisett, G. (eds.) LIPIcs Proceedings of SNAPL, vol. 32, pp. 63–78 (2015)Google Scholar
  9. 9.
  10. 10.
    DeTreville, J.: Binder, a logic-based security language. In: IEEE Proceedings of the Symposium on Security and Privacy, Washington, DC, USA, pp. 105–115. IEEE Computer Society (2002)Google Scholar
  11. 11.
    Doczkal, C., Smolka, G.: Completeness and decidability results for CTL in Coq. In: Klein, G., Gamboa, R. (eds.) ITP 2014. LNCS, vol. 8558, pp. 226–241. Springer, Cham (2014). doi: 10.1007/978-3-319-08970-6_15 Google Scholar
  12. 12.
  13. 13.
    Gonthier, G.: Point-free, set-free concrete linear algebra. In: van Eekelen, M., Geuvers, H., Schmaltz, J., Wiedijk, F. (eds.) ITP 2011. LNCS, vol. 6898, pp. 103–118. Springer, Heidelberg (2011). doi: 10.1007/978-3-642-22863-6_10 CrossRefGoogle Scholar
  14. 14.
    Gonthier, G., et al.: A machine-checked proof of the odd order theorem. In: Blazy, S., Paulin-Mohring, C., Pichardie, D. (eds.) ITP 2013. LNCS, vol. 7998, pp. 163–179. Springer, Heidelberg (2013). doi: 10.1007/978-3-642-39634-2_14 CrossRefGoogle Scholar
  15. 15.
    Gonthier, G., Mahboubi, A., Tassi, E.: A small scale reflection extension for the Coq system (2016).
  16. 16.
    Gottlob, G., Koch, C., Baumgartner, R., Herzog, M., Flesca, S.: The lixto data extraction project: back and forth between theory and practice. In: ACM SIGMOD-SIGACT-SIGART Proceedings of PODS, pp. 1–12. ACM, New York (2004)Google Scholar
  17. 17.
    Grumbach, S., Wang, F.: Netlog, a rule-based language for distributed programming. In: Carro, M., Peña, R. (eds.) PADL 2010. LNCS, vol. 5937, pp. 88–103. Springer, Heidelberg (2010). doi: 10.1007/978-3-642-11503-5_9 CrossRefGoogle Scholar
  18. 18.
    Hellerstein, J.M.: The declarative imperative: experiences and conjectures in distributed logic. ACM SIGMOD Rec. J. 39(1), 5–19 (2010)CrossRefGoogle Scholar
  19. 19.
    Huang, S.S., Green, T.J., Loo, B.T.: Datalog and emerging applications: an interactive tutorial. In: ACM SIGMOD Proceedings of ICMD, pp. 1213–1216 (2011)Google Scholar
  20. 20.
    Kriener, J., King, A., Blazy, S.: Proofs you can believe in: proving equivalences between prolog semantics in Coq. In: ACM Proceedings of PPDP, pp. 37–48 (2013)Google Scholar
  21. 21.
    Libkin, L.: The finite model theory toolbox of a database theoretician. In: ACM SIGMOD-SIGACT-SIGART Proceedings of PODS, pp. 65–76 (2009)Google Scholar
  22. 22.
    Lloyd, J.W.: Foundations of Logic Programming. Springer, Heidelberg (1987)CrossRefzbMATHGoogle Scholar
  23. 23.
  24. 24.
    Loo, B.T., Condie, T., Hellerstein, J.M., Maniatis, P., Roscoe, T., Stoica, I.: Implementing declarative overlays. In: ACM Proceedings of SOSP, pp. 75–90 (2005)Google Scholar
  25. 25.
    Lu, L., Cleary, J.G.: An operational semantics of starlog. In: Nadathur, G. (ed.) PPDP 1999. LNCS, vol. 1702, pp. 294–310. Springer, Heidelberg (1999). doi: 10.1007/10704567_18 CrossRefGoogle Scholar
  26. 26.
    Luteberget, B., Johansen, C., Feyling, C., Steffen, M.: Rule-based incremental verification tools applied to railway designs and regulations. In: Fitzgerald, J., Heitmeyer, C., Gnesi, S., Philippou, A. (eds.) FM 2016. LNCS, vol. 9995, pp. 772–778. Springer, Cham (2016). doi: 10.1007/978-3-319-48989-6_49 CrossRefGoogle Scholar
  27. 27.
    The Coq Development Team: The Coq Proof Assistant. Reference Manual (2016). Version 8.6
  28. 28.
    Ramakrishnan, R., Ullman, J.D.: A survey of research on deductive database systems. J. Log. Program. 23(2), 125–149 (1993)CrossRefGoogle Scholar
  29. 29.
  30. 30.
    Seo, J., Park, J., Shin, J., Lam, M.S.: Distributed socialite: a datalog-based language for large-scale graph analysis. Proc. VLDB Endow. 6, 1906–1917 (2013)CrossRefGoogle Scholar
  31. 31.
    Tarski, A.: A lattice-theoretical fixpoint theorem and its applications. Pac. J. Math. 5(2), 285–309 (1955)MathSciNetCrossRefzbMATHGoogle Scholar
  32. 32.
    Van Emden, M.H., Kowalski, R.A.: The semantics of predicate logic as a programming language. J. ACM 23(4), 733–742 (1976)MathSciNetCrossRefzbMATHGoogle Scholar
  33. 33.
    Vardi, M.Y.: The complexity of relational query languages. In: ACM Proceedings of STOC, pp. 137–146 (1982)Google Scholar
  34. 34.
    Whaley, J., Avots, D., Carbin, M., Lam, M.S.: Using datalog with binary decision diagrams for program analysis. In: Yi, K. (ed.) APLAS 2005. LNCS, vol. 3780, pp. 97–118. Springer, Heidelberg (2005). doi: 10.1007/11575467_8 CrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  • Véronique Benzaken
    • 1
  • Évelyne Contejean
    • 2
  • Stefania Dumbrava
    • 3
    Email author
  1. 1.Université Paris Sud, LRIOrsayFrance
  2. 2.CNRS, LRI, Université Paris SudOrsayFrance
  3. 3.LIRIS, Université Lyon 1LyonFrance

Personalised recommendations