Results 1 
6 of
6
Fundamentals Of Deductive Program Synthesis
 IEEE Transactions on Software Engineering
, 1992
"... An informal tutorial is presented for program synthesis, with an emphasis on deductive methods. According to this approach, to construct a program meeting a given specification, we prove the existence of an object meeting the specified conditions. The proof is restricted to be sufficiently construct ..."
Abstract

Cited by 65 (1 self)
 Add to MetaCart
An informal tutorial is presented for program synthesis, with an emphasis on deductive methods. According to this approach, to construct a program meeting a given specification, we prove the existence of an object meeting the specified conditions. The proof is restricted to be sufficiently constructive, in the sense that, in establishing the existence of the desired output, the proof is forced to indicate a computational method for finding it. That method becomes the basis for a program that can be extracted from the proof. The exposition is based on the deductivetableau system, a theoremproving framework particularly suitable for program synthesis. The system includes a nonclausal resolution rule, facilities for reasoning about equality, and a wellfounded induction rule. INTRODUCTION This is an introduction to program synthesis, the derivation of a program to meet a given specification. It focuses on the deductive approach, in which the derivation task is regarded as a problem of ...
Heap Profiling of Lazy Functional Programs
, 1992
"... We describe the design, implementation and use of a new kind of profiling tool that yields valuable information about the memory use of lazy functional programs. The tool has two parts: a modified functional language implementation which generates profiling information during the execution of progra ..."
Abstract

Cited by 50 (11 self)
 Add to MetaCart
We describe the design, implementation and use of a new kind of profiling tool that yields valuable information about the memory use of lazy functional programs. The tool has two parts: a modified functional language implementation which generates profiling information during the execution of programs, and a separate program which converts this information to graphical form. With the aid of profile graphs, one can make alterations to a functional program which dramatically reduce its space consumption. We demonstrate this in the case of a genuine example the first to which the tool was applied for which the results are strikingly successful. Capsule review Profiling technology for lazy functional programs is long overdue. Runciman and Wakeling have produced a practical and useful tool, notably because it works in the context of a fullyfledged compiler. Their work highlights the lack of information we have about the dynamic behaviour of lazy functional programs and the potential performance improvements which may be possible given profiling tools to provide us with it. This paper opens up new areas of practical research designing and building such tools. Runciman and Wakeling have started this work with the design and implementation of a heap profiling tool. They place considerable emphasis on the design of an appropriate graphical presentation of the large quantity of profiling data produced. It is interesting that they profile space and not time; ideally one would like both. An upper bound on execution time improvements from improving space behaviour is the garbage collection and paging time. However, they found that the task of fixing space bugs does sometimes lead to beneficial algorithmic changes too. We await with interest the continued development of practical profiling tools for lazy functional programs. 1
Mathematics for Computer Science
, 1999
"... To give students a solid and rigorous background in computer science the requisite mathematical foundations are necessary. Mathematical logic (propositional and predicate logics), set theory, mappings, relations, and recursive and inductive definition of processes and properties of a system are very ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
To give students a solid and rigorous background in computer science the requisite mathematical foundations are necessary. Mathematical logic (propositional and predicate logics), set theory, mappings, relations, and recursive and inductive definition of processes and properties of a system are very important especially for courses such as "Software Specification", "Formal Methods for Software Development" and "Reasoning About Software". The use of programming languages which admit recursive routines requires precise understanding of recursion. We present detailed teaching materials for these subjects of mathematics. Yumbayar Namsrai was a UN Fellow at UNU/IIST from September 1996 to June 1997 and from May 1999 to August 1999. He studied mathematics at The National University of Mongolia in Ulaanbaatar, Mongolia, from 1967 to 1972, and worked at the Joint Institute for Nuclear Research (JINR), Dubna, USSR from 1972 to 1981 where he was awarded a Candidate of Science degree in Physics...
A machine checked model of MGU axioms: applications of finite maps and functional induction
, 2009
"... The most general unifier (MGU) of a pair of terms can be specified by four axioms. In this paper we generalize the standard presentation of the axioms to specify the MGU of a list of equational constraints and we formally verify that the unification algorithm satisfies the axioms. Our constraints ar ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
The most general unifier (MGU) of a pair of terms can be specified by four axioms. In this paper we generalize the standard presentation of the axioms to specify the MGU of a list of equational constraints and we formally verify that the unification algorithm satisfies the axioms. Our constraints are equalities between terms in a language of simple types. We model substitutions as finite maps from the Coq library Coq.FSets.FMapInterface. Since the unification algorithm is general recursive we show termination using a lexicographic ordering on lists of constraints. Coq’s method of functional induction is the main proof technique used in proving the axioms. 1
School Of Computer Studies Research Report Series
 UPMAIL, Uppsala University
, 1995
"... . The expressiveness of the declarative language Godel can be improved by adding to it bounded quantifications, i.e., quantifications over finite domains, and arrays. Many problems can be expressed more concisely using bounded quantifications than using recursion. Arrays are natural for many applica ..."
Abstract
 Add to MetaCart
. The expressiveness of the declarative language Godel can be improved by adding to it bounded quantifications, i.e., quantifications over finite domains, and arrays. Many problems can be expressed more concisely using bounded quantifications than using recursion. Arrays are natural for many applications, e.g., in scientific computing, and are conveniently used in bounded quantifications. Treating bounded quantifications differently from other quantifications also reduces floundering, allows efficient sequential execution and enables efficient parallel execution on various architectures. In extending Godel to allow bounded quantifications, the finiteness condition would be difficult to implement. Thus the extension defined in this paper allows restricted quantifications where the domain can be restricted, but not necessarily finite. 1 Introduction A bounded quantification is a quantification that ranges over a finite domain [11]. This form of quantification has been introduced to logi...
Mathematics of Multisets Apostolos Syropoulos
 In Multiset Processing
, 2001
"... This paper is an attempt to summarize most things that are related to multiset theory. We begin by describing multisets and the operations between them. Then we present hybrid sets and their operations. We continue with a categorical approach to multisets. Next, we present fuzzy multisets and their ..."
Abstract
 Add to MetaCart
This paper is an attempt to summarize most things that are related to multiset theory. We begin by describing multisets and the operations between them. Then we present hybrid sets and their operations. We continue with a categorical approach to multisets. Next, we present fuzzy multisets and their operations. Finally, we present partially ordered multisets. 1