« previous | Monday, October 17, 2011 | next »
Recursively Defined Sets
Basis step.
Inductive step. if
, then
.
Example property:
Proof by structural induction.


(1) Basis step.
Inductive step. Assume
for
. Then
and
for some
.
Hence
. THis proves the inductive step, and
followl by structural principle of mathematical induction.
(2) Basis step.
by definition of
Inductive step. Assume
for
, then
by recursive step definition of
. This proves the inductive step and thus the general result
follows by the principle of mathematical induction.
Properties of S
Basis step. 3 has a property
Recursive step. If
have the property
, then
has the property
This is an example of structural induction.
Strong Properties of S
Basis Step. Something has a certain property
Inductive Step. Any element which can be obtained either by the basis step or up to
iterations for some
of recursive step has property
. Show any such element that can be obtained by
iterations of recursive steps has property
.
Trees
Basis step. A root
is a tree
Inductive step. Let
be
disjoint rooted trees such that
with corresponding roots
. Draw edges connecting another distinct root
with each of the roots
.
, the resulting graph, is a rooted tree.
Example Structural Proof
This proof is for full binary trees in which each node is a leaf or has exactly two children.
Theorem.
, where
is the number of vertices and
is the height.
Proof by Structural Induction.
Basis step.
is a root alone:
,
.
true.
Recursive step. Assume
and
are full binary trees satisfying the theorem

Thus we have
for
Adding the two formulae together gives

This proves the inductive step, and the general result follows by the structural principle of mathematical induction.
Q.E.D.
And now for something completely different.
Recursive Algorithms
Solving a problem by reducing it to the same problem with a smaller input.
Simple definition for Factorial
Basis step.
Recursive step.
for
def factorial n
raise Exception.new("must be nonnegative") if n < 0
return 1 if n == 0
n * factorial(n-1)
end
Greatest Common Divisor
def gcd a, b
return b if a == 0
gcd(b % a, a)
end
Note: if
, then a and b are relatively prime.