In this paper we give a formal definition of the notion of nominative data with simple names and complex values [, , ] and formal definitions of the basic operations on such data, including naming, denaming and overlapping, following the work [].
The notion of nominative data plays an important role in the composition-nominative approach to program formalization [, ] which is a development of composition programming []. Both approaches are compared in [].
The composition-nominative approach considers mathematical models of computer software and data on various levels of abstraction and generality and provides mathematical tools for reasoning about their properties. In particular, nominative data are mathematical models of data which are stored and processed in computer systems. The composition-nominative approach considers different types [, ] of nominative data, but all of them are based on the name-value relation. One powerful type of nominative data, which is suitable for representing many kinds of data commonly used in programming like lists, multidimensional arrays, trees, tables, etc. is the type of nominative data with simple (abstract) names and complex (structured) values. The set of nominative data of given type together with a number of basic operations on them like naming, denaming and overlapping [] form an algebra which is called data algebra.
In the composition-nominative approach computer programs which process data are modeled as partial functions which map nominative data from the carrier of a given data algebra (input data) to nominative data (output data). Such functions are also called binominative functions. Programs which evaluate conditions are modeled as partial predicates on nominative data (nominative predicates). Programming language constructs like sequential execution, branching, cycle, etc. which construct programs from the existing programs are modeled as operations which take binominative functions and predicates and produce binominative functions. Such operations are called compositions. A set of binominative functions and a set of predicates together with appropriate compositions form an algebra which is called program algebra. This algebra serves as a semantic model of a programming language.
For functions over nominative data a special computability called abstract computability is introduces and complete classes of computable functions are specified [].
For reasoning about properties of programs modeled as binominative functions a Floyd-Hoare style logic [, ] is introduced and applied [, , , , , ]. One advantage of this approach to reasoning about programs is that it naturally handles programs which process complex data structures (which can be quite straightforwardly represented as nominative data). Also, unlike classical Floyd-Hoare logic, the mentioned logic allows reasoning about assertions which include partial pre- and post-conditions [].
Besides modeling data processed by programs, nominative data can be also applied to modeling data processed by signal processing systems in the context of the mathematical systems theory [, , , , ].
[1] R.W. Floyd. Assigning meanings to programs. Mathematical aspects of computer science, 19(19–32), 1967.
[2] C.A.R. Hoare. An axiomatic basis for computer programming. Commun. ACM, 12(10): 576–580, 1969.
[3] Ievgen Ivanov. On the underapproximation of reach sets of abstract continuous-time systems. In Erika Ábrahám and Sergiy Bogomolov, editors, Proceedings 3rd International Workshop on Symbolic and Numerical Methods for Reachability Analysis, SNR@ETAPS 2017, Uppsala, Sweden, 22nd April 2017, volume 247 of EPTCS, pages 46–51, 2017. doi:10.4204/EPTCS.247.4.
[4] Ievgen Ivanov. On representations of abstract systems with partial inputs and outputs. In T. V. Gopal, Manindra Agrawal, Angsheng Li, and S. Barry Cooper, editors, Theory and Applications of Models of Computation – 11th Annual Conference, TAMC 2014, Chennai, India, April 11–13, 2014. Proceedings, volume 8402 of Lecture Notes in Computer Science, pages 104–123. Springer, 2014. ISBN 978-3-319-06088-0. doi:10.1007/978-3-319-06089-7_8.
[5] Ievgen Ivanov. On local characterization of global timed bisimulation for abstract continuous-time systems. In Ichiro Hasuo, editor, Coalgebraic Methods in Computer Science – 13th IFIP WG 1.3 International Workshop, CMCS 2016, Colocated with ETAPS 2016, Eindhoven, The Netherlands, April 2–3, 2016, Revised Selected Papers, volume 9608 of Lecture Notes in Computer Science, pages 216–234. Springer, 2016. ISBN 978-3-319-40369-4. doi:10.1007/978-3-319-40370-0_13.
[6] Ievgen Ivanov, Mykola Nikitchenko, and Uri Abraham. On a decidable formal theory for abstract continuous-time dynamical systems. In Vadim Ermolayev, Heinrich C. Mayr, Mykola Nikitchenko, Aleksander Spivakovsky, and Grygoriy Zholtkevych, editors, Information and Communication Technologies in Education, Research, and Industrial Applications, volume 469 of Communications in Computer and Information Science, pages 78–99. Springer International Publishing, 2014. ISBN 978-3-319-13205-1. doi:10.1007/978-3-319-13206-8_4.
[7] Ievgen Ivanov, Mykola Nikitchenko, and Uri Abraham. Event-based proof of the mutual exclusion property of Peterson’s algorithm. Formalized Mathematics, 23(4):325–331, 2015. doi:10.1515/forma-2015-0026.
[8] Ievgen Ivanov, Mykola Nikitchenko, and Volodymyr G. Skobelev. Proving properties of programs on hierarchical nominative data. The Computer Science Journal of Moldova, 24(3):371–398, 2016.
[9] Artur Kornilowicz, Andrii Kryvolap, Mykola Nikitchenko, and Ievgen Ivanov. Formalization of the algebra of nominative data in Mizar. In Maria Ganzha, Leszek A. Maciaszek, and Marcin Paprzycki, editors, Proceedings of the 2017 Federated Conference on Computer Science and Information Systems, FedCSIS 2017, Prague, Czech Republic, September 3–6, 2017., pages 237–244, 2017. ISBN 978-83-946253-7-5. doi:10.15439/2017F301.
[10] Artur Kornilowicz, Andrii Kryvolap, Mykola Nikitchenko, and Ievgen Ivanov. Formalization of the nominative algorithmic algebra in Mizar. In Leszek Borzemski, Jerzy Świątek, and Zofia Wilimowska, editors, Information Systems Architecture and Technology: Proceedings of 38th International Conference on Information Systems Architecture and Technology – ISAT 2017 – Part II, Szklarska Poręba, Poland, September 17–19, 2017, volume 656 of Advances in Intelligent Systems and Computing, pages 176–186. Springer, 2017. ISBN 978-3-319-67228-1. doi:10.1007/978-3-319-67229-8_16.
[11] Artur Korniłowicz, Andrii Kryvolap, Mykola Nikitchenko, and Ievgen Ivanov. An approach to formalization of an extension of Floyd-Hoare logic. In Vadim Ermolayev, Nick Bassiliades, Hans-Georg Fill, Vitaliy Yakovyna, Heinrich C. Mayr, Vyacheslav Kharchenko, Vladimir Peschanenko, Mariya Shyshkina, Mykola Nikitchenko, and Aleksander Spivakovsky, editors, Proceedings of the 13th International Conference on ICT in Education, Research and Industrial Applications. Integration, Harmonization and Knowledge Transfer, Kyiv, Ukraine, May 15–18, 2017, volume 1844 of CEUR Workshop Proceedings, pages 504–523. CEUR-WS.org, 2017.
[12] Andrii Kryvolap, Mykola Nikitchenko, and Wolfgang Schreiner. Extending Floyd-Hoare Logic for Partial Pre- and Postconditions, pages 355–378. Springer International Publishing, 2013. ISBN 978-3-319-03998-5. doi:10.1007/978-3-319-03998-5_18.
[13] Mykola Nikitchenko and Andrii Kryvolap. Properties of inference systems for Floyd-Hoare logic with partial predicates. Acta Electrotechnica et Informatica, 13(4):70–78, 2013. doi:10.15546/aeei-2013-0052.
[14] Mykola S. Nikitchenko. Composition-nominative aspects of address programming. Cybernetics and Systems Analysis, 45(864), 2009. doi:10.1007/s10559-009-9159-4. (Translated from Kibernetika i Sistemnyi Analiz, No. 6, pp. 24–35, November–December 2009).
[15] Nikolaj S. Nikitchenko. A composition nominative approach to program semantics. Technical Report IT-TR 1998-020, Department of Information Technology, Technical University of Denmark, 1998.
[16] N.S. Nikitchenko. Abstract computability of non-deterministic programs over various data structures. In Zamulin A.V. Bjorner D., Broy M., editor, Perspectives of System Informatics: 4th International Andrei Ershov Memorial Conference, PSI 2001, volume 2244 of Lecture Notes in Computer Science, pages 468–481. Springer, Berlin, Heidelberg, 2001. doi:10.1007/3-540-45575-2_45.
[17] Robin Nittka. Conway’s games and some of their basic properties. Formalized Mathematics, 19(2):73–81, 2011. doi:10.2478/v10037-011-0013-6.
[18] V.N. Red’ko. Backgrounds of compositional programming. Programming [in Russian], (3):3–13, 1979.
[19] Volodymyr G. Skobelev, Mykola Nikitchenko, and Ievgen Ivanov. On algebraic properties of nominative data and functions. In Vadim Ermolayev, Heinrich C. Mayr, Mykola Nikitchenko, Aleksander Spivakovsky, and Grygoriy Zholtkevych, editors, Information and Communication Technologies in Education, Research, and Industrial Applications – 10th International Conference, ICTERI 2014, Kherson, Ukraine, June 9–12, 2014, Revised Selected Papers, volume 469 of Communications in Computer and Information Science, pages 117–138. Springer, 2014. ISBN 978-3-319-13205-1. doi:10.1007/978-3-319-13206-8_6.