Abstract
P systems are widely used to solve computationally hard problems. In this study, we formally verify cP systems (P systems with complex objects) in the Coq proof assistant, and provide a corresponding open source library. To help transform cP notation into Gallina, we propose two sets of modelling guidelines. Comparing to existing P system formal verification studies, our approach shows many advantages and has great potential. To the best of our knowledge, this is the first study to formally verify membrane computing models using an interactive theorem prover.
Similar content being viewed by others
Notes
cP-Coq and verification examples can be found in https://github.com/YezhouLiu/cP-Coq
References
Păun, G. (2000). Computing with membranes. Journal of Computer and System Sciences, 61(1), 108–143.
Păun, G. (2003). Membrane computing. In International Symposium on Fundamentals of Computation Theory (pp. 284–295).Malmö, Sweden.
Martín-Vide, C., Păun, G., Pazos, J., & Rodríguez-Patón, A. (2003). Tissue P systems. Theoretical Computer Science, 296(2), 295–326.
Ionescu, M., Păun, G., & Yokomori, T. (2006). Spiking neural P systems. Fundamenta informaticae, 71(2–3), 279–308.
Gheorgue, M., Ipate, F., Dragomir, C., Mierla, L., Valencia Cabrera, L., García Quismondo, M., & Pérez Jiménez, M. D. J. (2013). Kernel P systems-version 1. In Proceedings of the Eleventh Brainstorming Week on Membrane Computing (pp. 97–124). Sevilla: Spain.
Nicolescu, R., Ipate, F., & Wu, H. (2013). Programming P systems with complex objects. In International conference on membrane computing (pp. 280–300). Chişinău: Republic of Moldova.
Nicolescu, R., & Henderson, A. (2018). An introduction to cP systems. In Enjoying natural computing (pp.204–227).
Dang, Z., Ibarra, O. H., Li, C., & Xie, G. (2006). On the decidability of model-checking for P systems. Journal of Automata, Languages and combinatorics, 11(3), 279–298.
Gheorghe, M., Ipate, F., Lefticaru, R., Pérez-Jiménez, M. J., Ţurcanu, A., Cabrera, L. Valencia., et al. (2013). 3-Col problem modelling using simple kernel P systems. International Journal of Computer Mathematics, 90(4), 816–830.
Ipate, F., Lefticaru, R., & Tudose, C. (2011). Formal verification of P systems using Spin. International Journal of Foundations of Computer Science, 22(01), 133–142.
Lefticaru, R., Tudose, C., & Ipate, F. (2011). Towards automated verification of P systems using Spin. International Journal of Natural Computing Research (IJNCR), 2(3), 1–12.
Gheorghe, M., Ceterchi, R., Ipate, F., Konur, S., & Lefticaru, R. (2018). Kernel P systems: from modelling to verification and testing. Theoretical Computer Science, 724, 45–60.
Konur, S., Mierlă, L., Ipate, F., & Gheorghe, M. (2020). kPWorkbench: A software suit for membrane systems. SoftwareX, 11, 100407.
Lefticaru, R., Ipate, F., Cabrera, L. Valencia., Turcanu, A., Tudose, C., Gheorgue, M., Pérez Jiménez, M. d. J., Niculescu, I. M., & Dragomir, C. (2012). Towards an Integrated Approach for Model Simulation, Property Extraction and Veri cation of P Systems. In Proceedings of the Tenth Brainstorming Week on Membrane Computing (pp. 291–318). Sevilla: Spain.
Ipate, F., Gheorghe, M., & Lefticaru, R. (2010). Test generation from P systems using model checking. The Journal of Logic and Algebraic Programming, 79(6), 350–362.
Ipate, F., & Turcanu, A. (2011). Modeling, verification and testing of P systems using Rodin and ProB. In Proceedings of the Ninth Brainstorming Week on Membrane Computing (pp. 209–219). Sevilla: Spain.
Liu, Y., Nicolescu, R., & Sun, J. (2020). Formal verification of cP systems using PAT3 and ProB. Journal of Membrane Computing, 2(2), 80–94.
Aman, B., & Ciobanu, G. (2016). Modelling and verification of weighted spiking neural systems. Theoretical Computer Science, 623, 92–102.
Gheorghe, M., Lefticaru, R., Konur, S., Niculescu, I. M., & Adorna, H. N. (2021). Spiking neural P systems: matrix representation and formal verification. Journal of Membrane Computing, 3(2), 133–148.
Barras, B., Boutin, S., Cornes, C., Courant, J., Filliatre, J. C., Gimenez, E., Herbelin, H., Huet, G., Munoz, C., Murthy, C., & et al. (1997). The Coq proof assistant reference manual: Version 6.1. PhD thesis, Inria.
Kästner, D., Barrho, J., Wünsche, U., Schlickling, M., Schommer, B., Schmidt, M., Ferdinand, C., Leroy, X., & Blazy, S. (2018). CompCert: Practical experience on integrating and qualifying a formally verified optimizing compiler. In ERTS2 2018-9th European Congress Embedded Real-Time Software and Systems (pp. 1–9).
Gonthier, G. (2008). Formal proof-the four-color theorem. Notices of the AMS, 55(11), 1382–1393.
Gonthier, G., Asperti, A., Avigad, J., Bertot, Y., Cohen, C., Garillot, F., Roux, S. Le., Mahboubi, A., O’Connor, R., Biha, S. O., & et al. (2013). A machine-checked proof of the odd order theorem. In International Conference on Interactive Theorem Proving (pp. 163–179).
Cooper, J., & Nicolescu, R. (2019). The Hamiltonian cycle and travelling salesman problems in cP systems. Fundamenta Informaticae, 164(2–3), 157–180.
Liu, Y., Nicolescu, R., Sun, J., & Henderson, A. (2021). A Sublinear Sudoku Solution in cP Systems and its Formal Verification. Computer Science Journal of Moldova, 29(1), 85–107.
Henderson, A., Nicolescu, R., & Dinneen, M. J. (2020). Solving a PSPACE-complete problem with cP systems. Journal of Membrane Computing, 2(4), 311–322.
Liu, Y., Nicolescu, R., & Sun, J. (2021). An efficient labelled nested multiset unification algorithm. Journal of Membrane Computing (pp. 1–11).
Paulin-Mohring, C. (2011) Introduction to the Coq proof-assistant for practical software verification. In LASER Summer School on Software Engineering (pp. 45–95).
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Appendices
Appendix 1.A: A simulation of the minimum finding cP system, input = {3, 7, 6, 8}
Appendix 1.B: The subset sum cP system in Gallina
The Coq representation of R1, R2, and R3
The Coq representation of R4 and R5
Appendix 1.C: A simulation of the subset sum cP system, S = {1, 2, 3, 4}, T = 10
A simulation of the subset sum cP system, S = {1, 2, 3, 4}, T = 10.
Rights and permissions
About this article
Cite this article
Liu, Y., Nicolescu, R. & Sun, J. Formal verification of cP systems using Coq. J Membr Comput 3, 205–220 (2021). https://doi.org/10.1007/s41965-021-00080-4
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s41965-021-00080-4