5 research outputs found

    Gröbner bases and Standard bases

    Get PDF

    Computational aspects of singularity theory.

    Get PDF
    In this thesis we develop computational methods suitable for performing the symbolic calculations common to local singularity theory. For classification theory we employ the unipotent determinacy techniques of Bruce, du Plessis, Wall and complete transversal theorems of Bruce, du Plessis. The latter results are, as yet, unpublished and we spend some time reviewing these results, extending them to filtrations of the module m,,,.E (n, p) other than the standard filtration by degree. Weighted filtrations and filtrations induced by the action of a nilpotent Lie algebra are considered. A computer package called Transversal is developed. This is written in the mathematical language Maple and performs calculations such as those mentioned above and those central to unfolding theory. We discuss the package in detail and give examples of calculations performed in this thesis. Several classifications are obtained. The first is an extensive classification of map-germs (R2,0) -p (R4,0) under A-equivalence. We also consider the classification of function-germs (CP, O) -f (C, 0) under R(D)-equivalence: the restriction of R-equivalence to source coordinate changes which preserve a discriminant variety, D. We consider the cases where D is the discriminant of the A2 and A3 singularities, extending the results of Arnol'd. Several other simple singularities are discussed briefly; in particular, we consider the cases where D is the discriminant of the A4, D4, D5, D6, and Ek singularities. The geometry of the singularities (R2,0) -f (R4,0) is investigated by calculating the adjacencies and several geometrical invariants. For the given source and target dimensions, the invariants associated to the double point schemes and L-codimension of the germs are particularly significant. Finally we give an application of computer graphics to singularity theory. A program is written (in C) which calculates and draws the family of profiles of a surface rotating about a fixed axis in R3, the resulting envelope of profiles, and several other geometrical features. The program was used in recent research by Rycroft. We review some of the results and conclude with computer produced images which demonstrate certain transitions of the singularities on the envelope

    Algorithmic Resource Verification

    Get PDF
    Static estimation of resource utilisation of programs is a challenging and important problem with numerous applications. In this thesis, I present new algorithms that enable users to specify and verify their desired bounds on resource usage of functional programs. The resources considered are algorithmic resources such as the number of steps needed to evaluate a program (steps) and the number of objects allocated in the memory (alloc). These resources are agnostic to the runtimes on which the programs are executed yet provide a concrete estimate of the resource usage of an implementation. Our system is designed to handle sophisticated functional programs that use recursive functions, datatypes, closures, memoization and lazy evaluation. In our approach, users can specify in the contracts of functions an upper bound they expect to hold on the resource usages of the functions. The upper bounds can be expressed as templates with numerical holes. For example, a bound steps †?*size(inp)+? denotes that the number of evaluation steps is linear in the size of the input. The templates can be seamlessly combined with correctness invariants or preconditions necessary for establishing the bounds. Furthermore, the resource templates and invariants are allowed to use recursive and first-class functions as well as other features of the language. Our approach for verifying such resource templates operates in two phases. It first reduces the problem of resource inference to invariant inference by synthesizing an instrumented first-order program that accurately models the resource usage of the program components, the higher-order control flow and the effects of memoization, using algebraic datatypes, sets and mutual recursion. The approach solves the synthesized first-order program by producing verification conditions of the form exists-forall using a modular assume/guarantee reasoning. The verification conditions are solved using a novel counterexample-driven algorithm capable of discovering strongest resource bounds belonging to the given template. I present the results of using our system to verify upper bounds on the usage of algorithmic resources that correspond to sequential and parallel execution times, as well as heap and stack memory usage. The system was evaluated on several benchmarks that include advanced functional data structures and algorithms such as balanced trees, meldable heaps, Okasakiâs lazy data structures, dynamic programming algorithms, and also compiler phases like optimizers and parsers. The evaluations show that the system is able to infer hard, nonlinear resource bounds that are beyond the capability of the existing approaches. Furthermore, the evaluations presented in this dissertation show that, when averaged over many benchmarks, the resource consumption measured at runtime is 80% of the value inferred by the system statically when estimating the number of evaluation steps and is 88% when estimating the number of heap allocations
    corecore