Academia.edu no longer supports Internet Explorer.
To browse Academia.edu and the wider internet faster and more securely, please take a few seconds to upgrade your browser.
…
6 pages
1 file
Our purpose in this article is to elaborate on the relation between the mathematical and computational aspects of recursion, analyze some examples, and speculate on possible education benefits. This treatment, we hope, will shed some light on both aspects, and serve as a basis for further discussion. We consider three major uses of induction in mathematics - definition, proof and construction - and discuss their interconnections as well as their counterparts in computer languages. We illustrate these ideas with Logo procedures that give a computational view of some famous mathematical objects and processes.
Theoretical Computer Science, 1997
Several concise formulations of mathematical induction are presented and proved equivalent. The formulations are expressed in variable-free relation algebra and thus are in terms of relations only, without mentioning the related objects. It is shown that the induction principle in this form, when combined with the explicit use of Galois connections, lends itself very well for use in calculational proofs. Two non-trivial examples are presented. The first is a proof of Newman's lemma. The second is a calculation of a condition under which the union of two well-founded relations is well-founded.
ACM SIGCSE Bulletin, 2008
Recursion is an important topic in computer science curricula. It is related to the acquisition of competences regarding problem decomposition, functional abstraction and the concept of induction. In comparison with direct recursion, mutual recursion is considered to be more complex. Consequently, it is generally addressed superficially in CS1/2 programming courses and textbooks. We show that, when a problem is approached appropriately, not only can mutual recursion be a powerful tool, but it can also be easy to understand and fun. This paper provides several intuitive and attractive algorithms that rely on mutual recursion, and which have been designed to help strengthen students' ability to decompose problems and apply induction. Furthermore, we show that a solution based on mutual recursion may be easier to design, prove and comprehend than other solutions based on direct recursion. We have evaluated the use of these algorithms while teaching recursion concepts. Results suggest that mutual recursion, in comparison with other types of recursion, is not as hard as it seems when: (1) determining the result of a (mathematical) function call, and, most importantly, (2) designing algorithms for solving simple problems.
1999
Mathematical induction is required for reasoning about objects or events containing repetition, e.g. computer programs with recursion or iteration, electronic circuits with feedback loops or parameterized components. Thus mathematical induction is a key enabling technology for the use of formal methods in information technology. Failure to automate inductive reasoning is one of the major obstacles to the widespread use of formal methods in industrial hardware and software development. Recent developments in automatic theorem proving promise significant improvements in our ability to automate mathematical induction. As a result of these developments, the functionality of inductive theorem provers has begun to improve. Moreover, there are some promising signs that even more significant improvements are possible. This enlarges the applicability of automated induction for "real world" problems and research topics for application have been discussed on the seminar. Automated induction is a relatively small subfield of automated reasoning. Research is based on two competing paradigms each having its merits but also its shortcomings as compared with the other: • Implicit induction evolved from Knuth-Bendix-Completion and most of the work based on this paradigm was performed by researchers concerned with term rewriting systems in general. • Explicit induction has its roots in traditional automated theorem proving. It resembles the more familiar idea of theorem proving by induction where induction axioms are explicitly given and specific inference techniques are tailored for proving base and step formulas. This seminar brought together leading scientists from both areas to discuss recent advancements within both paradigms, to evaluate and compare the state of the art and to work for a synthesis of both approaches. It summarized the results of a series of workshops held on automated induction in conjunction with the CADE conferences 1992 (Saratoga Springs) and 1994 (Nancy) and the AAAI conference 1993 (Washington DC). The success of this meeting was due in no small part to the Dagstuhl Seminar Center and its staff for creating such a friendly and productive environment. The organizers and participants greatly appreciate their effort. The organizers also thank Jürgen Giesl and Martin Protzen for their support in many organizational details.
There are several different approaches to the theory of data types. At the simplest level, polynomials and containers give a theory of data types as free standing entities. At a second level of complexity, dependent polynomials and indexed containers handle more sophisticated data types in which the data have an associated indices which can be used to store important computational information. The crucial and salient feature of dependent polynomials and indexed containers is that the index types are defined in advance of the data. At the most sophisticated level, induction-recursion allows us to define data and indices simultaneously.
School Science and Mathematics, 1993
2009
It is considered both the recursion forms which exist for the functional languages, and the inductive methods with the goal of their verification. It is shown how the simple and double cycles of imperative languages may be presented by the recursive forms; the verification possibility is studied for each recursive forms.
Journal of Automated Reasoning, 1996
Zhang, Kapur, and Krishnamoorthy introduced a cover set method for designing induction schemes for automating proofs by induction from specifications expressed as equations and conditional equations. This method has been implemented in the theorem prover Rewrite Rule Laboratory (RRL) and a proof management system Tecton built on top of RRL, and it has been used to prove many nontrivial theorems and reason about sequential as well as parallel programs. The cover set method IS based on the assumption that a function symbol is defined by using a finite set of terminating (conditional or unconditional) rewrite rules. The termination ordering employed m orienting the rules is used to perform proofs by well-founded induction. The left sides of the rules are used to design different cases of an induction scheme, and recurslve calls to the function made m the right side can be used to design appropriate instantlations for generating induction hypotheses. A weakness of this method is that it relies on syntactic umficatlon for generating an induction scheme for a conjecture. This paper goes a step further by proposing semantic analysis for generating an induction scheme lot a conjecture from a cover set. We discuss the use of a decision procedure for Presburger arithmetic (quantifier-tree theory of numbers with the addition operation and relational predicates >, <, r =, ~>, ~<) for performing semantic analysis about numbers. The decision procedure is used to generate appropriate induction schemes for a conJecture by using cover sets of function taking numbers as arguments. This extension of the cover set method automates proofs of many theorems that otherwise require human guidance and hints. The effectiveness of the method is demonstrated by using some examples that commonly arise in reasoning about specifications and programs. It is also shown how semantic analysis using a Presburger arithmetic decision procedure can be used for checking the completeness of a cover set of a functxon defined by using operations such as + and -on numbers. With this check, many function definitions used in a proof of the prime factorization theorem stating that every number can be factored uniquely into prime factors, which had to be checked manually, can now be checked automatically in RRL. The use of the decision procedure for guiding generalization for generating conjectures and merging induction schemes is also illustrated.
2006
Developing correct software remains one of the most important subjects in computer science. Bugs can be costly and annoying. One of the most secure ways to eliminate errors in computer programs is by proving them to be correct in a mathematical context. Sparkle is a proof assistant that helps programmers with constructing mathematical proofs about algorithms written in Clean or any other functional language. Proofs on programs that use one of the most important programming techniques, called recursion, usually need proof principles called inductive and co-inductive reasoning. Support for these mathematical proof steps were limited within Sparkle. In order to support for reasoning about a larger class of programs we have extended the proof techniques in Sparkle. A method that supports mutually reasoning on mutually recursive types has been added. A new method has been devised that allows for the derivation of an induction scheme from function definitions. For co-inductive reasoning, ...
2015
The theory of recursive functions where the domain of a function is inductively defined at the same time as the function is called induction-recursion. This theory has been introduced in Martin-Löf type theory by Dybjer [37] and further explored in a series of papers by Dybjer and Setzer [38, 39, 40]. Important data types like universes closed under dependent type operators are instances of this theory. In this thesis we study the class of data types arising from inductive-recursive definitions, taking the seminal work of Dybjer and Setzer as our starting point. We show how the theories of inductive and indexed inductive types arise as sub-theories of induction-recursion, by revealing the role played by a notion of of size within the theory of induction-recursion. We then expand the expressive power of induction-recursion, showing how to extend the theory of induction-recursion in two different ways: in one direction we investigate the changes needed to obtain a more flexible semantics which gives rise to a more comprehensive elimination principle for inductive-recursive types. In another direction we generalize the theory of induction-recursion to a fibrational setting. In both extensions we provide a finite axiomatization of the theories introduced, we show applications and examples of these theories not previously covered by induction-recursion, and we justify the existence of data types built within these theories. v 7 Conclusion 7.
2008
This document presents the formalization of introductory material from recursion theory — definitions and basic properties of primitive recursive functions, Cantor pairing function and computably enumerable sets (including a proof of existence of a one-complete computably enumerable set and a proof of the Rice’s theorem).
Loading Preview
Sorry, preview is currently unavailable. You can download the paper by clicking the button above.
Research in Undergraduate Mathematics Education, 2024
AAAI Conference on Artificial Intelligence, 1987
ACM Sigcse Bulletin, 2000
Educational Studies in Mathematics, 1984
Automated Deduction — Cade-13, 1996
Studia Logica, 1990
Lecture Notes in Computer Science, 1999