Hostname: page-component-76fb5796d-skm99 Total loading time: 0 Render date: 2024-04-26T23:21:20.063Z Has data issue: false hasContentIssue false

Formalising nominal C-unification generalised with protected variables

Published online by Cambridge University Press:  07 May 2021

Mauricio Ayala-Rincón*
Affiliation:
Departments of Mathematics, University of Brasília (UnB), Brasilia, Brazil, Computer Science, University of Brasília (UnB), Brasilia, Brazil
Washington de Carvalho-Segundo
Affiliation:
Computer Science, University of Brasília (UnB), Brasilia, Brazil
Maribel Fernández
Affiliation:
Department of Informatics, King’s College London, LondonWC2R 2LS, UK
Gabriel Ferreira Silva
Affiliation:
Computer Science, University of Brasília (UnB), Brasilia, Brazil
Daniele Nantes-Sobrinho
Affiliation:
Departments of Mathematics, University of Brasília (UnB), Brasilia, Brazil,
*
*Corresponding author. Email: ayala@unb.brayala@unb.br

Abstract

This work extends a rule-based specification of nominal C-unification formalised in Coq to include ‘protected variables’ that cannot be instantiated during the unification process. By introducing protected variables, we are able to reuse the C-unification simplification rules to solve nominal C-matching (as well as equality check) problems. From the algorithmic point of view, this extension is sufficient to obtain a generalised C-unification procedure; however, it cannot be formally checked by simple reuse of the original formalisation. This paper describes the additional effort necessary in order to adapt the specification of the inference rules and reuse previous formalisations. We also generalise a functional recursive nominal C-unification algorithm specified in PVS with protected variables, effectively adapting this algorithm to the tasks of nominal C-matching and nominal equality check. The PVS formalisation is applied to test the correctness of a Python manual implementation of the algorithm.

Type
Paper
Copyright
© The Author(s), 2021. Published by Cambridge University Press

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

References

Ayala-Rincón, M., Carvalho-Segundo, W., Fernández, M. and Nantes-Sobrinho, D. (2017). On solving nominal fixpoint equations. In: Proceedings of the 11th International Symposium on Frontiers of Combining Systems (FroCoS), LNCS, vol. 10483, Springer, 209226.CrossRefGoogle Scholar
Ayala-Rincón, M., Carvalho-Segundo, W., Fernández, M. and Nantes-Sobrinho, D. (2018a). Nominal C-unification. In: Post-proceedings of the 27th International Symposium Logic-based Program Synthesis and Transformation (LOPSTR 2017), LNCS, vol. 10855, Springer, 235251.Google Scholar
Ayala-Rincón, M., de Carvalho-Segundo, W., Fernández, M., Nantes-Sobrinho, D. and Rocha-Oliveira, A. (2019a). A formalisation of nominal alpha-equivalence with A, C, and AC function symbols. Theoretical Computer Science 781 323.CrossRefGoogle Scholar
Ayala-Rincón, M., de Carvalho-Segundo, W., Fernández, M. and Nantes-Sobrinho, D. (2019b). A formalisation of nominal C-matching through unification with protected variables. ENTCS 344 47–65.Google Scholar
Ayala-Rincón, M., Fernández, M. and Nantes-Sobrinho., D. (2016a). Nominal narrowing. In: Proceedings of the 1st International Conference on Formal Structures for Computation and Deduction (FSCD), LIPIcs, vol. 52, 11:1–11:17.Google Scholar
Ayala-Rincón, M., Fernández, M. and Nantes-Sobrinho, D. (2018b). Fixed point constraints for nominal equational unification. In: Proceedings of the 3rd International Conference Formal Structures for Computation and Deduction (FSCD), LIPIcs, vol. 108, 7:1–7:16.Google Scholar
Ayala-Rincón, M., Fernández, M. and Rocha-oliveira, A. C. (2016b). Completeness in PVS of a nominal unification algorithm. ENTCS 323 5774.Google Scholar
Ayala-Rincón, M., Fernández, M., Silva, G. and Nantes-Sobrinho, D. (2019c). A certified functional nominal C-unification algorithm. In: Post-proceedings of the 29th International Symposium Logic-based Program Synthesis and Transformation (LOPSTR 2019), LNCS, vol. 12042, Springer, 123138.CrossRefGoogle Scholar
Baader, F. (1986). The theory of idempotent semigroups is of unification type zero. Journal of Automated Reasoning 2 (3) 283286.CrossRefGoogle Scholar
Baader, F. and Schulz, K. U. (1996). Unification in the union of disjoint equational theories: Combining decision procedures. Journal of Symbolic Computation 21 (2) 211243.CrossRefGoogle Scholar
Baader, F. and Snyder, W. (2001). Unification theory. In: Handbook of Automated Reasoning (in 2 volumes), Elsevier and MIT Press, 445532.CrossRefGoogle Scholar
Calvès, C. F. (2010). Complexity and Implementation of Nominal Algorithms. Phd thesis, King’s College London.Google Scholar
Calvès, C. F. and Fernández, M. (2010). Matching and alpha-equivalence check for nominal terms. Journal of Computer and System Sciences 76 (5) 283301.CrossRefGoogle Scholar
Calvès, C. F. and Fernández, M. (2011). The first-order nominal link. In: Proceedings of the 20th International Symposium Logic-based Program Synthesis and Transformation (LOPSTR), LNCS, vol. 6564, Springer, 234248.CrossRefGoogle Scholar
Comon, H. (1993). Complete axiomatizations of some quotient term algebras. Theoretical Computer Science 118 (2) 167191.CrossRefGoogle Scholar
Contejean, E. (2004). A certified AC matching algorithm. In: Proceedings of the 15th International Conference on Rewriting Techniques and Applications, (RTA), LNCS, vol. 3091, Springer, 7084.CrossRefGoogle Scholar
Fages, F. (1987). Associative-commutative unification. Journal of Symbolic Computation 3 257275.CrossRefGoogle Scholar
Fernández, M. and Gabbay, M. J. 2007. Nominal Rewriting. Information and Computation 205 (6) 917965.CrossRefGoogle Scholar
Kapur, D. and Narendran, P. (1986). NP-completeness of the set unification and matching problems. In: 8th International Conference on Automated Deduction (CADE), LNCS, vol. 230, Springer, 489495.CrossRefGoogle Scholar
Kapur, D. and Narendran, P. (1987). Matching, unification and complexity. SIGSAM Bulletin 21 (4) 69.CrossRefGoogle Scholar
Kapur, D. and Narendran, P. (1992). Complexity of unification problems with associative-commutative operators. Journal of Automated Reasoning 9 (2) 261288.CrossRefGoogle Scholar
Levy, J. and Villaret, M. (2010). An efficient nominal unification algorithm. In: Proceedings of the 21st International Conference on Rewriting Techniques and Applications (RTA), LIPIcs, vol. 6, 209226.Google Scholar
Muñoz, C. and Butler, R. (2003). Rapid prototyping in PVS. Technical Report NASA/CR-2003-212418, NIA-2003-03, NASA Langley Research Center (NIA).Google Scholar
Pitts, A. M. (2013). Nominal Sets , Cambridge Tracts in Theoretical Computer Science, vol. 57, Cambridge University Press.Google Scholar
Schmidt-Schauß, M., Kutsia, T., Levy, J. and Villaret, M. (2017). Nominal unification of higher order expressions with recursive let. In: Post-proceedings of the 26th International Symposium on Logic-Based Program Synthesis and Transformation (LOPSTR 2016), LNCS, vol. 10184, Springer, 328344.Google Scholar
Siekmann, J. H. (1979). Matching under commutativity. In: Proceedings of the International Symposium on Symbolic and Algebraic Manipulation (EUROSAM), LNCS, vol. 72, Springer, 531545.Google Scholar
Siekmann, J. H. (1989). Unification theory. Journal of Symbolic Computation 7 (3–4) 207274.CrossRefGoogle Scholar
Urban, C. (2010). Nominal unification revisited. In: Proceedings of the 24th International Workshop on Unification (UNIF), EPTCS, vol. 42, 111.Google Scholar
Urban, C., Pitts, A. M. and Gabbay, M. J. (2004). Nominal unification. Theoretical Computer Science 323 (1–3) 473497.CrossRefGoogle Scholar