Idea
The idea of an abstract data type(ADT) is fundamental to computer science.
The idea of Type is equally fundamental to modern mathematics.
A Type is a collection of objects with predefined operations, functions,
and properties.
An
important difference between mathematical types and ADTs
is that a computer can only work with elements of a
type that can be computed! So an ADT consists only of those elemements in
a type that can be generated by a finite process. Recently the word
'Object' seems to be applied to describe elements in ADTs, hence its use in
the section. The objects are not particularly 'Object Oriented'.
Polymorphism, inheritance and so on are part of the theory of types. Here
we abstract the idea of working with the constructable objects of a type.
Key property distinguishing a data type from a logical Type, is that the ADT can only have objects generated by applying operations to a set of basic elements. If the computer can not compute some data then it does not have to work with that data. Hence the theory of Generational Systems.
This theory can be used to define the meaning of a XBNF (BNF extended into other areas) dictionary which avoids certain paradoxes [/www/dick/papers/rjb96x.xbnf.html]
Here are some examples of the Generational Systems
[ GENESYS ]
Examples
Strings - generated by concatenating characters
or - generated by prefixing characters
Files - generated by inserting records at their end
Trees - generated from set of atoms by grafting
Lists - generated from NUL and atoms by a binary constructor.
Natural Numbers
- generated from 1 by adding 1.
Data Bases
- Entities and sets generated by 'PUT' and 'TAKE' operations
Natural Numbers
Peano
Strings
STRINGS are defined elsewhere
[ math_61_String_Theories.html] .
. . . . . . . . . ( end of section Examples) <<Contents | End>>
Nothing comes from nothing:
More comes from more:
Immortality of Objects:
Other examples
Relations, unary algebra, digraph, or dynamical system have maps in
Objects->Objects that extend naturally to 'generative systems' with maps
@Objects->@objects. In other systems new elements come from combining
elements together but where a single object generates nothing new by
itself.
. . . . . . . . . ( end of section examples 2) <<Contents | End>>
Each generative system has an associated monoid of mappings:
Novelty
In each generation novel objects can appear:
A set of Objects that generates nothing new is called an invariant set of objects:
A fixed set is one that does not grow:
The descendents of a set of objects is the smallest collection of objects that includes the set and is also invariant.
Basies
A basis is a set objects that can, ultimately, generate any object.
In most Generational Systems a particular basis is given:
Example A. Nat has only one basis = {1} because all i>1 are generatable from 1, and there are no numbers less than 1 to generate 1.
Example B. Every nonempty subset of Nat/n is a basis.
Generations
We assume we can attach a label to each object - its generation:
The following define various kinds of Generational Systems. Each property can be true or false.
In a 'loop_free' system operations can not regenerate earlier generations.
Example
By choosing one object in each generation in a loop free system, we get a one-one imbedding of the natural numbers into a subset of the objects(Nat0-->Objects), therefore
Often the objects in the system have some notion of size and the property that bigger objects are constructed from smaller ones.
Several common classes of generational systems occurs when there the size of the set of novel objects is limitted in some way. For example the set of strings is generated from a finite alphabet by prefixing members of the alphabet onto existing strings.
Similarly for the basis:
The coutabillity of finitely based generational systems means that no paradox arrises from assuming that an equation like X=generate(X).
Freedom
Often an object can only be generated in a unique way:
In a convergence free system there is no more than one way to generate an element. .Dangerous_bend Not convergence to a limit, but the meeting of two parallel families of generated objects.
In the most unrestricted generational systems - the free systems - there is no convergence or loops. This is freedom in the (oldfashioned) categorical sense. It can be shown that unfree systems are the image of a free system.
?? if free then unique ancestry for every element ?
?? if free then isomorphic to some set of tree structures ?
Beyond Finiteness
The following is a generalization of the work done on defining what it means for a process to converge - as used in languages, trees, etc.
The kind of iterative process modeled here, can often appear to be getting close to a kind of fixed point which - if it only existed, would be an "infinite" object. In some data structures for example a repeated process of adding a new element generates objects that start to behave very like a circular chain of objects... so in a sense one can claim that in LISP an equation like
Trying to reason with the infinite is fallacy prone. Luckily the topologists have developed a package of consistent ideas that we can use to define ideas like:
??... ?? @generations(Objects) in filterbases(Objects)?
Topology of Sets of Objects
One problem is defining a set of abstract objects recursively and not being sure whether the equations define a unique fixed point or not. The solution to this problem is a generalisation of the method used for languages and demotational semantics - define a metric space that measures how well two sets match - in particular. The trick is choose a metric so that the later a set is generated then the closer it is to an ideal (and unreachable) set of objects.
In the case of sets of abstract objects we can construct a metric which measures how far apart two sets are - in the sense that a difference that is "younger" is a bigger difference than one that is older.
Thus the later an object is generated, the "lighter" it becomes.
The set of Objects now has the structure of metric space with d
acting as the measure of the distances between sets of objects.
By assuming completeness we assert the existence of objects that can not be generated, but which can be approximated to by a convergent sequence of generated objects.
Note. abf stands for All but a finite number.
?? if @Objects in compact then ...?
[click here
if you can fill this hole]
?? if cauchy_complete then...unique fixed points for contracting definitions ?
[click here
if you can fill this hole]
?? product spaces and so mutual recursion...?
[click here
if you can fill this hole]
?? if loop then discrete ?
[click here
if you can fill this hole]
. . . . . . . . . ( end of section Abstract Generational System) <<Contents | End>>
Exercises
Work out the following generational systems:
GENESYS(Sets)
[click here
if you can fill this hole]
GENESYS(Bags)
[click here
if you can fill this hole]
GENESYS(Files)
[click here
if you can fill this hole]
GENESYS(Queues)
[click here
if you can fill this hole]
GENESYS(Stacks)
[click here
if you can fill this hole]
Term Paper
JWW Conway has developed a generation theory of great power and generallity. D. Knuth has written a short romantic novel featuring this system. Find a copy of the the novel, read it, and express JWW's system using 'GENESYS'.
Project
GENESYS(DataBase)
[click here
if you can fill this hole]
Use CODASYL, Relational model, or Object-oriented models.
Project - Probabalistic Generational Systems
Develop a variation of the GENESYS model that handle probabilistic
generational systems rather than non-deterministic ones.
In this each novel element has a number between 0 and 1 inclusive
indicating the probability of its occurence.
[click here
if you can fill this hole]
Project - Fuzzy Generational Systems
Develop a variation of the GENESYS model that handle Fuzzy
generational systems rather than non-deterministic ones.
In this each novel element has a number between 0 and 1 inclusive
indicating the the degree of its membership in the novel sets.
[click here
if you can fill this hole]
Project - Generational Subsystems
Construct an abstract model of a relationship between
generational systems such that one generates a subset of the
objects in the other one. The result should be able
to show that a grammar is a generational subsystem
of the set strings defined above.
[click here
if you can fill this hole]
. . . . . . . . . ( end of section Object Theory) <<Contents | End>>
Notes on MATHS Notation
Special characters are defined in
[ intro_characters.html ]
that also outlines the syntax of expressions and a document.
Proofs follow a natural deduction style that start with assumptions ("Let") and continue to a consequence ("Close Let") and then discard the assumptions and deduce a conclusion. Look here [ Block Structure in logic_25_Proofs ] for more on the structure and rules.
The notation also allows you to create a new network of variables and constraints. A "Net" has a number of variables (including none) and a number of properties (including none) that connect variables. You can give them a name and then reuse them. The schema, formal system, or an elementary piece of documentation starts with "Net" and finishes "End of Net". For more, see [ notn_13_Docn_Syntax.html ] for these ways of defining and reusing pieces of logic and algebra in your documents. A quick example: a circle = Net{radius:Positive Real, center:Point}.
For a complete listing of pages in this part of my site by topic see [ home.html ]
Notes on the Underlying Logic of MATHS
The notation used here is a formal language with syntax
and a semantics described using traditional formal logic
[ logic_0_Intro.html ]
plus sets, functions, relations, and other mathematical extensions.
For a more rigorous description of the standard notations see