KBX: Verified Model Synchronization via Formal Bidirectional Transformation (2404.18771v2)
Abstract: Complex safety-critical systems require multiple models for a comprehensive description, resulting in error-prone development and laborious verification. Bidirectional transformation (BX) is an approach to automatically synchronizing these models. However, existing BX frameworks lack formal verification to enforce these models' consistency rigorously. This paper introduces KBX, a formal bidirectional transformation framework for verified model synchronization. First, we present a matching logic-based BX model, providing a logical foundation for constructing BX definitions within the $\mathbb{K}$ framework. Second, we propose algorithms to synthesize formal BX definitions from unidirectional ones, which allows developers to focus on crafting the unidirectional definitions while disregarding the reverse direction and missing information recovery for synchronization. Afterward, we harness $\mathbb{K}$ to generate a formal synchronizer from the synthesized definitions for consistency maintenance and verification. To evaluate the effectiveness of KBX, we conduct a comparative analysis against existing BX frameworks. Furthermore, we demonstrate the application of KBX in constructing a BX between UML and HCSP for real-world scenarios, showcasing an 82.8\% reduction in BX development effort compared to manual specification writing in $\mathbb{K}$.
- 2017. Common Criteria for Information Technology Security Evaluation - Part 3: Security Assurance Components (version 3.1 revision 5 ed.). CCMB-2017-04-003, https://www.commoncriteriaportal.org/cc/.
- 2022. PlantUML. PlantUML. https://github.com/plantuml/plantuml
- 2023. K Framework Tools 5.0. Runtime Verification Inc.. https://github.com/runtimeverification/k
- 2024. Isabelle. https://isabelle.in.tum.de/
- 2024. Lean. https://leanprover.github.io/
- 2024. Welcome! — The Coq Proof Assistant. https://coq.inria.fr/
- Abstract Contract Synthesis and Verification in the Symbolic K𝐾\mathbb{K}italic_K Framework. Fundamenta Informaticae 177, 3-4 (Dec. 2020), 235–273. https://www.medra.org/servlet/aliasResolver?alias=iospress&doi=10.3233/FI-2020-1989
- Benchmarking Bidirectional Transformations: Theory, Implementation, Application, and Assessment. Software and systems modeling 19, 3 (2020), 647–691.
- Ralph-Johan Back and Joakim Wright. 2012. Refinement Calculus: A Systematic Introduction. Springer Science & Business Media.
- SMT-Based Translation Validation for Machine Learning Compiler. In Computer Aided Verification. Springer, Cham, 386–407. https://linkspringer.53yu.com/chapter/10.1007/978-3-031-13188-2_19
- Ron Bell. 2006. Introduction to IEC 61508. In Acm International Conference Proceeding Series, Vol. 162. 3–12.
- Lorenzo Bettini and Sven Efftinge. 2016. Implementing Domain-Specific Languages with Xtext and Xtend: Learn How to Implement a DSL with Xtext and Xtend Using Easy-to-Understand Examples and Best Practices (second edition ed.). Packt Publishing, Birmingham Mumbai.
- Denis Bogdanas and Grigore Roşu. 2015. K-Java: A Complete Semantics of Java. In Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. ACM, Mumbai India, 445–456. https://dl.acm.org/doi/10.1145/2676726.2676982
- Thomas Buchmann. 2018. BXtend-A Framework for (Bidirectional) Incremental Model Transformations.. In MODELSWARD. 336–345.
- BXtendDSL: A Layered Framework for Bidirectional Model Transformations Combining a Declarative and an Imperative Language. Journal of Systems and Software 189 (July 2022), 111288. https://www.sciencedirect.com/science/article/pii/S0164121222000462
- A Formal Description of Hybrid Systems. In Hybrid Systems III: Verification and Control 3. Springer, 511–530.
- Toward Compositional Verification of Interruptible Os Kernels and Device Drivers. Journal of Automated Reasoning 61, 1 (2018), 141–189.
- Towards a Trustworthy Semantics-Based Language Framework via Proof Generation. In Computer Aided Verification (Lecture Notes in Computer Science), Alexandra Silva and K. Rustan M. Leino (Eds.). Springer International Publishing, Cham, 477–499.
- Matching Logic Explained. Journal of Logical and Algebraic Methods in Programming 120 (April 2021), 100638. https://linkinghub.elsevier.com/retrieve/pii/S2352220821000018
- Xiaohong Chen and Grigore Roşu. 2019. Matching μ𝜇\muitalic_μ-Logic. In 2019 34th Annual ACM/IEEE Symposium on Logic in Computer Science (LICS). IEEE, 1–13.
- Xiaohong Chen and Grigore Rosu. 2019. Matching Mu-Logic: Foundation of K Framework. In 8th Conference on Algebra and Coalgebra in Computer Science (CALCO 2019). Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik.
- JTL: A Bidirectional and Change Propagating Transformation Language. In Software Language Engineering (Lecture Notes in Computer Science), Brian Malloy, Steffen Staab, and Mark van den Brand (Eds.). Springer, Berlin, Heidelberg, 183–202.
- A Complete Formal Semantics of X86-64 User-Level Instruction Set Architecture. In Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation. ACM, Phoenix AZ USA, 1133–1148. https://dl.acm.org/doi/10.1145/3314221.3314601
- Chucky M. Ellison and Grigore Roşu. 2011. An Executable Formal Semantics of C with Applications: Technical Report. Acm Sigplan Notices (2011). http://www.researchgate.net/publication/49175991_A_Formal_Semantics_of_C_with_Applications_Technical_Report
- Enhancing the JTL Tool for Bidirectional Transformations. In Conference Companion of the 2nd International Conference on Art, Science, and Engineering of Programming. ACM, Nice France, 36–41. https://dl.acm.org/doi/10.1145/3191697.3191720
- Defining the Undefinedness of C. ACM (2015), 336–345. http://dl.acm.org/doi/abs/10.1145/2737924.2737979
- Georg Hinkel and Erik Burger. 2019. Change Propagation and Bidirectionality in Internal Transformation DSLs. Software & Systems Modeling 18, 1 (2019), 249–278.
- Symmetric Lenses. ACM SIGPLAN Notices 46, 1 (2011), 371–384.
- Zhenjiang Hu and Hsiang-Shang Ko. 2018. Principles and Practice of Bidirectional Programming in BiGUL. In Bidirectional Transformations, Jeremy Gibbons and Perdita Stevens (Eds.). Vol. 9715. Springer International Publishing, Cham, 100–150. http://link.springer.com/10.1007/978-3-319-79108-1_4
- Stephen Jacklin. 2012. Certification of Safety-Critical Software Under DO-178C and DO-278A. In Infotech@Aerospace 2012. American Institute of Aeronautics and Astronautics, Garden Grove, California. https://arc.aiaa.org/doi/10.2514/6.2012-2473
- Comprehensive Formal Verification of an OS Microkernel. (2014). http://trustworthy.systems/publications/nictaabstracts/Klein_AEMSKH_14.abstract,/publications/nictaabstracts/Klein_AEMSKH_14.abstract
- Refinement in the Formal Verification of the seL4 Microkernel. In Design and Verification of Microprocessor Systems for High-Assurance Applications. Springer, 323–339.
- BiGUL: A Formally Verified Core Language for Putback-Based Bidirectional Programming. In Proceedings of the 2016 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation. ACM, St. Petersburg FL USA, 61–72. https://dl.acm.org/doi/10.1145/2847538.2847544
- Dexter Kozen. 1983. Results on the Propositional μ𝜇\muitalic_μ-Calculus. Theoretical computer science 27, 3 (1983), 333–354.
- A Survey of Practical Formal Methods for Security. Formal Aspects of Computing 34, 1 (2022), 1–39.
- A Framework for Model Transformation Verification. Formal Aspects of Computing 27 (2015), 193–235.
- Dirk Carsten Leinenbach. 2008. Compiler Verification in the Context of Pervasive System Verification. (2008).
- Xavier Leroy. 2012. Mechanized Semantics for Compiler Verification. In Programming Languages and Systems: 10th Asian Symposium, APLAS 2012, Kyoto, Japan, December 11-13, 2012. Proceedings 10. Springer, 386–388.
- A Secure and Formally Verified Linux KVM Hypervisor. In 2021 IEEE Symposium on Security and Privacy (SP). IEEE, San Francisco, CA, USA, 1782–1799. https://ieeexplore.ieee.org/document/9519433/
- A Calculus for Hybrid CSP. In Programming Languages and Systems: 8th Asian Symposium, APLAS 2010, Shanghai, China, November 28-December 1, 2010. Proceedings 8. Springer, 1–15.
- Alive2: Bounded Translation Validation for LLVM. In Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation. ACM, Virtual Canada, 65–79. https://dl.acm.org/doi/10.1145/3453483.3454030
- Synthesizing Quotient Lenses. Proceedings of the ACM on Programming Languages 2, ICFP (July 2018), 1–29. https://dl.acm.org/doi/10.1145/3236775
- Kazutaka Matsuda and Meng Wang. 2018. Hobit: Programming Lenses without Using Lens Combinators. In European Symposium on Programming. Springer, 31–59.
- Synthesizing Bijective Lenses. Proceedings of the ACM on Programming Languages 2, POPL (Jan. 2018), 1–30. https://dl.acm.org/doi/10.1145/3158089
- Synthesizing Symmetric Lenses. Proceedings of the ACM on Programming Languages 3, ICFP (July 2019), 1–28. https://dl.acm.org/doi/10.1145/3341699
- On the Refinement Calculus. Number 70 in Technical Monograph / Oxford Univ. Computing Laboratory, Programming Research Group. University Computing Laboratory, Oxford.
- KJS: A Complete Formal Semantics of JavaScript. In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’15). Association for Computing Machinery, New York, NY, USA, 346–356. https://doi.org/10.1145/2737924.2737991
- Towards Making Formal Methods Normal: Meeting Developers Where They Are. arXiv preprint arXiv:2010.16345 (2020). arXiv:2010.16345
- EVL+Strace: A Novel Bidirectional Model Transformation Approach. Information and Software Technology 100 (Aug. 2018), 47–72. https://linkinghub.elsevier.com/retrieve/pii/S0950584917300629
- Translation Validation for a Verified OS Kernel. In Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation. 471–482.
- From Program Verification to Program Synthesis. In Proceedings of the 37th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. 313–326.
- Incremental Bidirectional Model Transformation with eMoflon::IBeX. In Proceedings of the Eighth International Workshop on Bidirectional Transformations. http://ceur-ws.org
- Unified Graphical Co-Modeling, Analysis and Verification of Cyber-Physical Systems by Combining AADL and Simulink/Stateflow. Theoretical computer science 903 (2022), 1–25.
- Synbit: Synthesizing Bidirectional Programs Using Unidirectional Sketches. arXiv:2108.13783 [cs] http://arxiv.org/abs/2108.13783
- Brief Industry Paper: Modeling and Verification of Descent Guidance Control of Mars Lander. In 2021 IEEE 27th Real-Time and Embedded Technology and Applications Symposium (RTAS). IEEE, 457–460.
- BiYacc: Roll Your Parser and Reflective Printer into One. In Proceedings of the Fourth International Workshop on Bidirectional Transformations. CEUR-Ws. http://ceur-ws.org
- Unifying Parsing and Reflective Printing for Fully Disambiguated Grammars. New Generation Computing 38, 3 (July 2020), 423–476. https://doi.org/10.1007/s00354-019-00082-y
- Formal Verification of Simulink/Stateflow Diagrams. In Automated Technology for Verification and Analysis: 13th International Symposium, ATVA 2015, Shanghai, China, October 12-15, 2015, Proceedings 13. Springer, 464–481.
- Verifying Simulink Diagrams via a Hybrid Hoare Logic Prover. In 2013 Proceedings of the International Conference on Embedded Software (EMSOFT). IEEE, 1–10.