Persistence in Algebraic Specifications

Total Page:16

File Type:pdf, Size:1020Kb

Persistence in Algebraic Specifications Persistence in Algebraic Specifications Freek Wiedijk Persistence in Algebraic Specifications Persistence in Algebraic Specifications Academisch Proefschrift ter verkrijging van de graad van doctor aan de Universiteit van Amsterdam, op gezag van de Rector Magnificus prof. dr. P.W.M. de Meijer, in het openbaar te verdedigen in de Aula der Universiteit (Oude Lutherse Kerk, ingang Singel 411, hoek Spui), op donderdag 12 december 1991 te 12.00 uur door Frederik Wiedijk geboren te Haarlem Promotores: prof. dr. P. Klint & prof. dr. J.A. Bergstra Faculteit Wiskunde en Informatica Het hier beschreven onderzoek werd mede mogelijk gemaakt door steun van de Ne- derlandse organisatie voor Wetenschappelijk Onderzoek (voorheen de nederlandse organisatie voor Zuiver-Wetenschappelijk Onderzoek) binnen project nummer 612- 317-013 getiteld Executeerbaar maken van algebraïsche specificaties. voor Jan Truijens Contents Contents Acknowledgements 1 Introduction 1 1.1 Motivation and general overview 2 1.2 Examples of erroneous specifications 13 1.3 Background and related work 22 2. Theory 25 2.1 Basic notions 27 2.1.1. Equational specifications 28 2.1.2 Term rewriting systems 29 2.2 Termination 30 2.2.1 Weak and strong termination 33 2.2.2 Path orderings 34 2.2.3 Decidability 40 2.3 Confluence 41 2.3.1 Weak and strong confluence 42 2.3.2 Overlapping 44 2.3.3 Decidability 45 2.4 Reduction strategies 46 2.5 Persistence 48 2.5.1 Weak and strong persistence 52 2.5.2 Term approximations and bases 54 2.5.3 Normal form analysis 56 2.5.4 Decidability 60 2.6 Primitive recursive algebras 62 3 Perspect 65 3.1 Language definition 65 3.1.1 Syntax 65 3.1.2 Elimination of abbreviations 68 3.1.3 Declarations and typing 70 3.1.4 Semantics 72 3.1.5 Restrictions on the specification 74 3.1.6 Five levels of Perspect 76 3.2 Properties 79 3.2.1 Decidability 79 3.2.2 Executability 80 3.2.3 Persistence 80 3.2.4 Expressiveness 81 3.2.5 Compositionality 81 3.3 Examples 83 3.3.1 Natural numbers and integers 85 3.3.2 Rational numbers 91 3.3.3 Primitive recursive functions 103 3.3.4 Stacks 108 3.3.5 Arrays 112 3.3.6 Text and pictures 117 3.3.7 Small text editor 123 3.4 Checker 128 3.4.1 Operation 128 3.4.2 Program 131 3.4.3 Deviation from the formal definition 134 4 Compilation 139 4.1 Prolog 139 4.1.1 Compilation scheme 140 4.1.2 Comparison with other schemes 145 4.1.3 Example 148 4.2 Modula-2 155 4.2.1 Compilation scheme 156 4.2.2 Example 163 5 Conclusion 171 Appendices 175 I Perspect syntax diagrams 175 II Error messages from the Perspect system 177 III Definition modules of the Perspect checker 181 References 187 Samenvatting (Summary in dutch) 193 Acknowledgements My greatest debt is to Paul Klint, my promotor. I admire his excellent taste, and I con- sider it a great honor that he allowed me to work under his supervision. I want to thank Jan Bergstra, my second promotor, for interesting and stimulating discussions. His ability to transform himself into an expert, whatever the subject may be, never ceases to amaze me. My friend Jesse de Does has been a great support from the start. Despite his un- familiarity with the field of algebraic specifications, he is one of the few people who read all my work and understood it, in spite of my hermetic style. I am indebted to him for numerous corrections. My roommate and friend Sjouke Mauw has been a great help on many occasions. He has always showed great interest in my work, and never failed to point out where my texts were less than clear. Of all people working near me I feel closest intellectually to my friend Hans Mulder. He is a mathematician as well as a real hacker. He has often shown me where to look for excitement. His knowledge of computer science, in particular its folklore, is unsur- passed. I finally would like to express my thanks to the following people, who made the four years that I worked at the University of Amsterdam an unforgettable experience. They are: Pum Walters, Jos Vrancken, Chris Verhoef, Gert Veltink, John Tromp, Leen Torenvliet, Dolf Starreveld, Joost Schraag, Piet Rodenburg, Karst Koymans, Wilco Koorn, Jan Willem Klop, Jan Hellings, Jan Heering, Linda van der Gaag, Peter van Emde Boas, Madelon Drolsbach, Casper Dik, Felix Croes, Richard Carels, Maarten Carels, Jacob Brunekreef, Jeroen Brouwer, Wiet Bouma, Jurjen Bos, Chris Borton and Jos Baeten. The picture on the cover shows two views on the one missing configuration (3L 2FB 3F) in Sol LeWitt’s All three-part variations on three different kind of cubes, an ink drawing from 1960 that I saw on the exhibition of LeWitt’s work held in the Stedelijk Museum in Amsterdam in 1984. The mottos in front of the chapters are taken from various articles and letters received from Usenet. Chapter 1 Introduction If it’s not correct, it’s worthless. I would even agree that if it does not have rigorous definitions, it’s worthless. This thesis investigates some aspects of the notion of persistence in the context of modular initial algebra specifications. A specification is called persistent when the sets of elements of the specified datatypes do not depend on the module in which they are referred to (for the precise definition of persistence, refer to section 2.5.1.2). The three main goals of this study are: • To argue that verification of the persistence of an algebraic specification can en- hance our confidence in the correctness of that specification, and to give an ap- proach for verifying a form of persistence automatically. • To show that a specification can be implemented using logic programming in such a way that the implementation consists of the natural definition of the semantics of that specification. • To show that a persistent specification can be implemented in a modular pro- cedural programming language in such a way that the modularity of the implemen- tation corresponds to the modularity of the specification. This thesis, then, consists of four parts. • Chapter 1 contains an introduction that motivates the use of modular initial algebra specifications and the study of persistence. • Chapter 2 gives a formal treatment of the theory of initial algebra specifications and techniques that can be used to verify the persistence of those specifications. • Chapter 3 gives a concrete framework for checking persistence in the form of the specification language Perspect. A number of examples in this language are pre- sented. • Chapter 4 shows that persistent specifications can be cleanly integrated with both a logic programming language and a modular procedural programming language. Algorithms for compiling Perspect specifications to both Prolog and Modula-2 programs are described. Two specification languages will be used for the expression of algebraic specifications. The first one is ASF, which is an acronym for ‘Algebraic Specification Formalism’. It was developed in Amsterdam as part of the specification language for the GIPE pro- ject. For the definition of ASF, see chapter 1 of [Bergstra, Heering, Klint, 1989]. The 2 Introduction second specification language that is used is Perspect, a dialect of ASF, which is the specification language introduced in this thesis. It will be the subject of chapter 3. 1.1. Motivation and general overview In this thesis we study the theory of initial algebra specifications. Specification lan- guages that use initial algebra semantics have both the characteristics of a formal spec- ification language as well as those of a programming language. This dualistic nature of a language that uses initial algebra semantics is both its weakness and its strength. 1.1.1. Simplicity of semantics. The main advantage of a language that uses initial algebra semantics, an advantage it shares with most other formal specification languages, is its clean semantics. Programming languages on the contrary, are almost always ridden with special cases in the definition of their semantics, and often contain aspects that are left unspecified or refer to system dependent parameters. Unfortunately this departure from an abstract model behind the semantics of the language is necessary when one defines a programming language: even the most formal of programming languages has to give some description of what should happen when there is, for instance, not enough storage in the computer to run the program. A specification language, of course, need not bother with such problems. For a rather extreme example of the undefinedness and system dependency of texts in conventional programming languages, consider the following program in the C programming language [Kernighan, Ritchie, 1988]. #include <stdio.h> int main() { long l; int i; short s; char c; i = 65537; l = i * i; for (s = 0; s < l; s++) ; c = 255; if (c == -1) (void) puts("0"); else (void) puts("1"); return 0; } Motivation and general overview 3 This text is a valid C program. However, when someone tries to compile this program and subsequently tries to run it, there are (at least) five possibilities: (i) The compiler refuses to compile the program. (ii) The program compiles, but crashes when it is run. (iii) The program compiles and does not crash, but will not terminate. (iv) The program compiles, does not crash, and terminates after printing ‘0’. (v) The program compiles, does not crash, and terminates after printing ‘1’. Furthermore, for all five cases, the compiler and runtime system can justify why they behave like they do. It all depends on how many bits there are in the various kinds of integer (which is a system dependency of the compiler), and what happens on integer overflow (which is an undefined aspect in the C programming language).
Recommended publications
  • Computations in Algebraic Geometry with Macaulay 2
    Computations in algebraic geometry with Macaulay 2 Editors: D. Eisenbud, D. Grayson, M. Stillman, and B. Sturmfels Preface Systems of polynomial equations arise throughout mathematics, science, and engineering. Algebraic geometry provides powerful theoretical techniques for studying the qualitative and quantitative features of their solution sets. Re- cently developed algorithms have made theoretical aspects of the subject accessible to a broad range of mathematicians and scientists. The algorith- mic approach to the subject has two principal aims: developing new tools for research within mathematics, and providing new tools for modeling and solv- ing problems that arise in the sciences and engineering. A healthy synergy emerges, as new theorems yield new algorithms and emerging applications lead to new theoretical questions. This book presents algorithmic tools for algebraic geometry and experi- mental applications of them. It also introduces a software system in which the tools have been implemented and with which the experiments can be carried out. Macaulay 2 is a computer algebra system devoted to supporting research in algebraic geometry, commutative algebra, and their applications. The reader of this book will encounter Macaulay 2 in the context of concrete applications and practical computations in algebraic geometry. The expositions of the algorithmic tools presented here are designed to serve as a useful guide for those wishing to bring such tools to bear on their own problems. A wide range of mathematical scientists should find these expositions valuable. This includes both the users of other programs similar to Macaulay 2 (for example, Singular and CoCoA) and those who are not interested in explicit machine computations at all.
    [Show full text]
  • PLS Toolbox 7.0 Pltternf - Plots a 3D Ternary Diagram with Frequency of Occurrence
    plotgui - Interactive data viewer. logdecay - Mean centers and variance scales a matrix using the log plttern - Plots a 2D ternary diagram. decay of the variable axis. PLS_Toolbox 7.0 pltternf - Plots a 3D ternary diagram with frequency of occurrence. lsq2top - Fits a polynomial to the top/(bottom) of data. querydb - Executes a query on a database defined by connection mdcheck - Missing Data Checker and infiller. Quick-Reference Card string. med2top - Fits a constant to top/(bottom) of data. Copyright © Eigenvector Research, 2012 reportwriter - Write a summary of the analysis including medcn - Median center scales matrix to median zero. associated figures to html/word/powerpoint. mncn - Scale matrix to mean zero. Help and Information rwb - Red white and blue color map. mscorr - Multiplicative scatter/signal correction (MSC). setpath - Modifies and saves current directory to the MATLAB normaliz - Normalize rows of matrix. helppls - Context related help on the PLS_Toolbox. search path. npreprocess - Preprocessing of multi-way arrays. readme - Release notes for Version 4.1 of PLS_Toolbox. snabsreadr - Reads Stellarnet ABS XY files. oscapp - Applies OSC model to new data. demos - Demo list for the PLS_Toolbox. spcreadr - Reads a Galactic SPC file. osccalc - Calculates orthogonal signal correction (OSC). evricompatibility - Tests for inter-product compatibility of trendtool - Univariate trend analysis tool. poissonscale - Perform Poisson scaling with scaling offset. Eigenvector toolboxes. vline - Adds vertical lines to figure at specified locations. polyinterp - Polynomial interpolation, smoothing, and evridebug - Checks the PLS_Toolbox installation for problems. writeasf - Writes AIT ASF files from a dataset object. differentiation. evridir - Locate and or create EVRI home directory. writecsv - Export a DataSet object to a comma-separated values preprocess - Selection and application of standard preprocessing evriinstall - Install Eigenvector Research Product.
    [Show full text]
  • What Can Computer Algebraic Geometry Do Today?
    What can computer Algebraic Geometry do today? Gregory G. Smith Wolfram Decker Mike Stillman 14 July 2015 Essential Questions ̭ What can be computed? ̭ What software is currently available? ̭ What would you like to compute? ̭ How should software advance your research? Basic Mathematical Types ̭ Polynomial Rings, Ideals, Modules, ̭ Varieties (affine, projective, toric, abstract), ̭ Sheaves, Divisors, Intersection Rings, ̭ Maps, Chain Complexes, Homology, ̭ Polyhedra, Graphs, Matroids, ̯ Established Geometric Tools ̭ Elimination, Blowups, Normalization, ̭ Rational maps, Working with divisors, ̭ Components, Parametrizing curves, ̭ Sheaf Cohomology, ঠ-modules, ̯ Emerging Geometric Tools ̭ Classification of singularities, ̭ Numerical algebraic geometry, ̭ ैक़௴Ь, Derived equivalences, ̭ Deformation theory,Positivity, ̯ Some Geometric Successes ̭ GEOGRAPHY OF SURFACES: exhibiting surfaces with given invariants ̭ BOIJ-SÖDERBERG: examples lead to new conjectures and theorems ̭ MODULI SPACES: computer aided proofs of unirationality Some Existing Software ̭ GAP,Macaulay2, SINGULAR, ̭ CoCoA, Magma, Sage, PARI, RISA/ASIR, ̭ Gfan, Polymake, Normaliz, 4ti2, ̭ Bertini, PHCpack, Schubert, Bergman, an idiosyncratic and incomplete list Effective Software ̭ USEABLE: documented examples ̭ MAINTAINABLE: includes tests, part of a larger distribution ̭ PUBLISHABLE: Journal of Software for Algebra and Geometry; www.j-sag.org ̭ CITATIONS: reference software Recent Developments in Singular Wolfram Decker Janko B¨ohm, Hans Sch¨onemann, Mathias Schulze Mohamed Barakat TU Kaiserslautern July 14, 2015 Wolfram Decker (TU-KL) Recent Developments in Singular July 14, 2015 1 / 24 commutative and non-commutative algebra, singularity theory, and with packages for convex and tropical geometry. It is free and open-source under the GNU General Public Licence.
    [Show full text]
  • The Power of Pyramid Decomposition in Normaliz
    Journal of Symbolic Computation 74 (2016) 513–536 Contents lists available at ScienceDirect Journal of Symbolic Computation www.elsevier.com/locate/jsc The power of pyramid decomposition in Normaliz Winfried Bruns a, Bogdan Ichim b, Christof Söger a a Universität Osnabrück, FB Mathematik/Informatik, 49069 Osnabrück, Germany b Simion Stoilow Institute of Mathematics of the Romanian Academy, Research Unit 5, C.P. 1-764, 010702 Bucharest, Romania a r t i c l e i n f o a b s t r a c t Article history: We describe the use of pyramid decomposition in Normaliz, a soft- Received 27 January 2014 ware tool for the computation of Hilbert bases and enumerative Accepted 26 August 2015 data of rational cones and affine monoids. Pyramid decomposition Available online 16 September 2015 in connection with efficient parallelization and streamlined evalua- tion of simplicial cones has enabled Normaliz to process triangula- MSC: ≈ · 11 52B20 tions of size 5 10 that arise in the computation of Ehrhart 13F20 series related to the theory of social choice. 14M25 © 2015 Elsevier Ltd. All rights reserved. 91B12 Keywords: Hilbert basis Ehrhart series Hilbert series Rational polytope Volume Triangulation Pyramid decomposition 1. Introduction Normaliz (Bruns et al., 2015)is a software tool for the computation of Hilbert bases and enumera- tive data of rational cones and affine monoids. In the 17 years of its existence it has found numerous applications; for example, in integer programming (Bogart et al., 2010), algebraic geometry (Craw et al., 2007), theoretical physics (Kappl et al., 2011), commutative algebra (Sturmfels and Welker, 2012) or elimination theory (Emiris et al., 2013).
    [Show full text]
  • Normaliz 3.2.0 Contents
    Normaliz 3.2.0 January 22, 2017 Winfried Bruns, Tim Römer, Richard Sieg and Christof Söger Normaliz 2 team member: Bogdan Ichim http://normaliz.uos.de https://github.com/Normaliz mailto:[email protected] Contents 1. Introduction 7 1.1. The objectives of Normaliz . .7 1.2. Platforms, implementation and access from other systems . .8 1.3. Major changes relative to version 3.1.1 . .9 1.4. Future extensions . .9 1.5. Download and installation . .9 2. Normaliz by examples 10 2.1. Terminology . 10 2.2. Practical preparations . 11 2.3. A cone in dimension 2 . 12 2.3.1. The Hilbert basis . 13 2.3.2. The cone by inequalities . 14 2.3.3. The interior . 15 2.4. A lattice polytope . 17 2.4.1. Only the lattice points . 20 2.5. A rational polytope . 20 2.5.1. The rational polytope by inequalities . 23 2.6. Magic squares . 24 2.6.1. With even corners . 27 2.6.2. The lattice as input . 30 1 2.7. Decomposition in a numerical semigroup . 30 2.8. A job for the dual algorithm . 31 2.9. A dull polyhedron . 32 2.9.1. Defining it by generators . 34 2.10. The Condorcet paradoxon . 35 2.10.1. Excluding ties . 36 2.10.2. At least one vote for every preference order . 37 2.11. Testing normality . 38 2.11.1. Computing just a witness . 39 2.12. Inhomogeneous congruences . 40 2.12.1. Lattice and offset . 41 2.12.2. Variation of the signs . 41 2.13.
    [Show full text]
  • Program Synthesis
    Program Synthesis Program Synthesis Sumit Gulwani Microsoft Research [email protected] Oleksandr Polozov University of Washington [email protected] Rishabh Singh Microsoft Research [email protected] Boston — Delft Foundations and Trends® in Programming Languages Published, sold and distributed by: now Publishers Inc. PO Box 1024 Hanover, MA 02339 United States Tel. +1-781-985-4510 www.nowpublishers.com [email protected] Outside North America: now Publishers Inc. PO Box 179 2600 AD Delft The Netherlands Tel. +31-6-51115274 The preferred citation for this publication is S. Gulwani, O. Polozov and R. Singh. Program Synthesis. Foundations and Trends® in Programming Languages, vol. 4, no. 1-2, pp. 1–119, 2017. ® This Foundations and Trends issue was typeset in LATEX using a class file designed by Neal Parikh. Printed on acid-free paper. ISBN: 978-1-68083-292-1 © 2017 S. Gulwani, O. Polozov and R. Singh All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, mechanical, photocopying, recording or otherwise, without prior written permission of the publishers. Photocopying. In the USA: This journal is registered at the Copyright Clearance Center, Inc., 222 Rosewood Drive, Danvers, MA 01923. Authorization to photocopy items for in- ternal or personal use, or the internal or personal use of specific clients, is granted by now Publishers Inc for users registered with the Copyright Clearance Center (CCC). The ‘services’ for users can be found on the internet at: www.copyright.com For those organizations that have been granted a photocopy license, a separate system of payment has been arranged.
    [Show full text]
  • Arxiv:2010.08903V1 [Math.AC]
    STANDARD PAIRS OF MONOMIAL IDEALS OVER NON-NORMAL AFFINE SEMIGROUPS IN SageMath BYEONGSU YU ABSTRACT. We present stdPairs.spyx,a SageMath library to compute standard pairs of a monomial ideal over a pointed (non-normal) affine semigroup ring. Moreover, stdPairs.spyx provides the associated prime ideals, the correspondingmultiplicities, and an irredundant irreducible primary decomposition of a monomial ideal. The library expands on the standardPairs func- tion on Macaulay2 over polynomial rings, and is based on algorithms from [6]. We also provide methods that allow the outputs from this library to be compatible with the Normaliz package of Macaulay2 and SageMath. 1. INTRODUCTION Affine semigroup rings are objects of many studies in combinatorial commutative algebra. The goal of this article is to present the SageMath library stdPairs.spyx, which systematizes computations for monomial ideals in affine semigroup rings. The algorithms implemented here are based on the notion of standard pairs, introduced for monomial ideals in polynomial rings by [8], and generalized to the semigroup ring case in [6]. Standard pairs are a combinatorial structure that contains information on primary and irreducible decompositions of monomial ideals, as well as multiplicities. One of the main contributions of [6] is that standard pairs and the associated algebraic concepts can be effectively computed over affine semigroup rings. The SageMath library stdPairs.spyx implements the algorithms of [6] to calculate standard pairs for monomial ideals in any pointed (non-normal) affine semigroup ring. This library can be regarded as a generalization of standardPairs function in Macaulay2 implemented by [4]. This library can be obtained via https://github.com/byeongsuyu/StdPairs.
    [Show full text]
  • Arxiv:2010.15331V2 [Math.AC] 19 Nov 2020 Rlqeto Nivratter.Ti Ril Ecie Significant a Describes R Article Action This Group Theory
    THE INVARIANTRING PACKAGE FOR MACAULAY2 LUIGI FERRARO, FEDERICO GALETTO, FRANCESCA GANDINI, HANG HUANG, MATTHEW MASTROENI, AND XIANGLONG NI Abstract. We describe a significant update to the existing InvariantRing package for Macaulay2. In addition to expanding and improving the methods of the existing package for actions of finite groups, the updated package adds func- tionality for computing invariants of diagonal actions of tori and finite abelian groups as well as invariants of arbitrary linearly reductive group actions. The implementation of the package has been completely overhauled with the aim of serving as a unified resource for invariant theory computations in Macaulay2. 1. Introduction Let G be a group acting linearly on an n-dimensional vector space V over a field K via v 7→ g · v for g ∈ G and v ∈ V . The action of G on V induces an action −1 of G on the polynomial ring K[V ]= K[x1,...,xn] by (g · f)(x)= f(g · x). By a classical result of Hilbert (see [DK15, 2.2.10]), the subring of invariant polynomials K[V ]G = {f ∈ K[V ] | g · f = f, ∀g ∈ G} is always a finitely generated K-algebra provided that G is linearly reductive and V is a rational representation of G.1 A linearly reductive group is a group that can be identified with a Zariski-closed subgroup of some general linear group GLn = GLn(K) and has good representation-theoretic properties while still being general enough to encompass all finite groups, all tori (K×)r, and all semisimple Lie groups (at least if char(K) = 0).
    [Show full text]
  • An Introduction to Zeta Tobias Rossmann National University of Ireland, Galway
    An introduction to Zeta Tobias Rossmann National University of Ireland, Galway Düsseldorf September 2018 Zeta (2014–) ... is a package for Sage (http://www.sagemath.org/) (which also relies on Singular, Normaliz, LattE, ...) ... provides methods for computing various types (ask, subobject, ...) of zeta functions in "fortunate cases" ... is freely available (http://www.maths.nuigalway.ie/~rossmann/Zeta/) ... implements techniques outlined here (https://doi.org/10.1007/978-3-319- 70566-8_25) Sage (2005–) is a free open-source mathematics software system licensed under the GPL. It builds on top of many existing open-source packages [...] Mission: Creating a viable free open source alternative to Magma, Maple, Mathematica and Matlab. Freely available (http://www.sagemath.org/) Based upon Python (https://www.python.org/) Includes GAP (https://www.gap-system.org/), Singular (http://www.singular.uni- kl.de/), ... Runs on Linux, Mac OS X, and Windows Command-line ("interactive shell") or browser-based ("notebook") interface Sage as a symbolic calculator −1 M (Z ) 1−p T Recall: the ask zeta function of 1 p is (1−T)2 . In [1]: var('p t') # create symbolic variables Z = (1-p^(-1)*t)/(1-t)^2 In [2]: Z.series(t,3) # power series expansion up to given order Out[2]: 1 + (-1/p + 2)*t + (-2/p + 3)*t^2 + Order(t^3) In [3]: Z(p=1) # substitution Out[3]: -1/(t - 1) In [4]: Z+1 # arithmetic Out[4]: -(t/p - 1)/(t - 1)^2 + 1 In [5]: _.simplify_full() Out[5]: (p*t^2 - (2*p + 1)*t + 2*p)/(p*t^2 - 2*p*t + p) In [6]: _.factor() Out[6]: (p*t^2 - 2*p*t + 2*p - t)/(p*(t - 1)^2) Installing Zeta Linux-only at the moment.
    [Show full text]
  • Normaliz 2013-2016
    NORMALIZ 2013–2016 WINFRIED BRUNS, RICHARD SIEG, AND CHRISTOF SOGER¨ ABSTRACT. In this article we describe mathematically relevant extensions to Normaliz that were added to it during the support by the DFG SPP “Algorithmische und Experi- mentelle Methoden in Algebra, Geometrie und Zahlentheorie”: nonpointed cones, ratio- nal polyhedra, homogeneous systems of parameters, bottom decomposition, class groups and systems of module generators of integral closures. 1. INTRODUCTION The software package Normaliz [12] has been developed by the algebra and discrete mathematics group at Osnabr¨uck since 1998. It is a tool for the computation of lattice points in rational polyhedra. Meanwhile it has been cited about 130 times in the literature FIGURE 1. Lattice points in a polyhedron (see [12]) with applications to algebraic geometry, commutative algebra, polytope theory, arXiv:1611.07965v2 [math.CO] 3 Mar 2017 integer programming, combinatorial topology, group theory, theoretical physics and other areas. There exist interfaces to the major computer algebra systems CoCoA [6], [2], GAP [20], Macaulay2 [19] and Singular [18] and to polymake [21], a comprehensive tool for the computation of polytopes. Normaliz is used by other packages, notably by Regina [17], a tool for the exploration of 3-manifolds, and by SecDec [7] in the computation of multiscale integrals. 2010 Mathematics Subject Classification. 52B20, 13F20, 14M25, 91B12. Key words and phrases. Hilbert basis, Hilbert series, rational cone, rational polyhedron, bottom decom- position, class group, triangulation, linear diophantine system. The second author was partially supported by the German Research Council DFG-GRK 1916 and a doctoral fellowship of the German Academic Exchange Service. 1 2 W.BRUNS,R.SIEG,ANDC.SOGER¨ During the second half of the SPP 1489 “Algorithmische und Experimentelle Metho- den in Algebra, Geometrie und Zahlentheorie” Normaliz was supported by the SPP.
    [Show full text]
  • Fast Prototyping and Flexible C++ Library for Computations in Commutative Algebra
    CoCoA and CoCoALib: Fast Prototyping and Flexible C++ Library for Computations in Commutative Algebra John Abbott Anna Maria Bigatti Institut fur¨ Mathematik Dipartimento di Matematica Universitat¨ Kassel Universita` degli Studi di Genova, Italy Kassel, Germany http://www.dima.unige.it/∼bigatti http://www.dima.unige.it/∼abbott Abstract—The CoCoA project began in 1987, and conducts (with two closely related applications being the interactive research into Computational Commutative Algebra (from which system and the compute server). This initial decision, together its name comes) with particular emphasis on Grobner¨ bases with the desire to help the software prosper, has many im- of ideals in multivariate polynomial rings, and related areas. A major output of the project is the CoCoA software, including the plications: e.g. designing a particularly clean interface for all CoCoA-5 interactive system and the CoCoALib C++ library. The functions with comprehensive documentation. This cleanliness software is open-source (GPL v.3), and under continual, active makes it easy to integrate CoCoALib into other software in a development. We give a summary of the features of the software trouble-free manner. likely to be relevant to the SC-Square community. Many computer algebra systems have a two-tier structure: I. INTRODUCTION a compiled kernel with interpreter, and an external library CoCoA-5 is a well-established Computer Algebra System of interpretable code for more advanced functions. Our aim specialized in operations on polynomial ideals, and a number with CoCoALib is different: we plan to have all functions of allied operations (e.g. factorization, and linear algebra). implemented directly in the C++ library so that all features It offers a dedicated, mathematician-friendly programming are available to programs which link to CoCoALib.
    [Show full text]
  • 67 SOFTWARE Michael Joswig and Benjamin Lorenz
    67 SOFTWARE Michael Joswig and Benjamin Lorenz INTRODUCTION This chapter is intended as a guide through the ever-growing jungle of geometry software. Software comes in many guises. There are the fully fledged systems consisting of a hundred thousand lines of code that meet professional standards in software design and user support. But there are also the tiny code fragments scattered over the Internet that can nonetheless be valuable for research purposes. And, of course, the very many individual programs and packages in between. Likewise today we find a wide group of users of geometry software. On the one hand, there are researchers in geometry, teachers, and their students. On the other hand, geometry software has found its way into numerous applications in the sciences as well as industry. Because it seems impossible to cover every possible aspect, we focus on software packages that are interesting from the researcher's point of view, and, to a lesser extent, from the student's. This bias has a few implications. Most of the packages listed are designed to run on UNIX/Linux1 machines. Moreover, the researcher's genuine desire to understand produces a natural inclination toward open source software. This is clearly reflected in the selections below. Major exceptions to these rules of thumb will be mentioned explicitly. In order to keep the (already long) list of references as short as possible, in most cases only the Web address of each software package is listed rather than manuals and printed descriptions, which can be found elsewhere. At least for the freely available packages, this allows one to access the software directly.
    [Show full text]