Fractals/Mathematics/group/Binary adding machine

From testwiki
Jump to navigation Jump to search

"Adding machines have played an important role in dynamical systems, and in the theory of groups acting on trees. "[1]

Structure

Alphabet X is a set consisting of two symbols so it is called binary alphabet:

X={0,1}

Word c is a sequence of symbols ( string). It can be dsiplayed in two ways :[2]

  • a little-endian (least-significant-bit-first) : c=c0c1..cn1
  • a big-endian : c=cn1..c1c0

When :

  • c0 is on the right side it is easier to treat it as a binary number
  • c0 is on the leftt side it is easier for machine

Space of words Xω denote the set of all infinite strings over the alphabet.

Xω={0,1}ω

The strings (ϵ, 0, 1, 00, 01, 10, 11, 000, etc.) would all be in this space.

ϵ represents the empty string

Action

The binary representation of decimal 149, with the lsb highlighted. The msb in an 8-bit binary number represents a value of 128 decimal. The lsb represents a value of 1.

Here is only one transformation ( action ) a ona a input word c :

c=c0w

where :

  • c0 is a lsb,[3] first symbol ( here at the beginning, but for binary notation it will be at the end of sequence)
  • w is a rest of the word c

Transformation is defined by 2 recursion formulae :

  • if the first symbol c0 is zero then we change it to one and the rest of the word remains unchanged
  • if it is one :
    • we change it to zero
    • carry 1 to next column.[4]
    • aply action to the next column (symbol) until last column

Formally:

(c)a={(0w)a=1w(1w)a=0wa

or in other notation :

a(0w)=1w
a(1w)=0a(w)

"This transformation is known as the adding machine, or odometer, since it describes the process of adding one to a binary integer." [5]

(c)a=c+1

More explicitly :[6]

a(x1x2...xn)=y1y2...yn

if and only if

(x1+2*x2+4*x3+...+xn*2n1)+1=y1+y2*2+y3*4+...+yn*2n1(mod2n)

Both input and output are binary numbers least-significant bit first.

Examples

Word c is a sequence of n symbols ( from 0 to n-1) representing binary integer :

c=cn1..c1c0=i=0n1ci2i

where cn is an element of binary alphabet X ={0,1}

without carry because lsb c0=0:

  0 
+ 1 
---
  1

Here lsb c0=1 then c_0+1>1 so one has to carry 1 to next column

  1 
+ 1  
---
 10
  10 
+ 01
-----
  11

Carry in second column ( from right to left)

  011 
+ 001   
-----
  100
  100 
+ 001   
-----
  101
  101 
+ 001   
-----
  110
  0111 
+ 0001   
-----
  1000

Nucleus

The nucleus of group G is :[7]

N={1,a,a1}

where a is an action of group G

Tree

A point of the binary tree c = c0 c1 c2 . . .where corresponds to the diadic integer ξ

ξ=ci2i|i0

which translates to the n-ary addition

ξ=ξ+1

Visual representation

Diagram

Moore diagram of Binary Adding Machine

Here alphabet X is a set consisting of two symbols so it is called binary alphabet:

X={0,1}

Labels shows pairs of symbols : input/output

There are 2 vertices ( nodes, states of machine) : 1 and 0.

Vertices correspond to the states .

"The states of this machine will represent the value that is "carried" to the next bit position.

Initially 1 is "carried".

The carry is "propagated" as long as the input bits are 1.

When an input bit of 0 is encountered, the carry is "absorbed" and 1 is output.

After that point, the input is just replicated." [8]

Table

Table [9]

GAP/FR

BinaryAddingGroup	( global variable )

This function constructs the state-closed group generated by the adding machine on [1,2]. This group is isomorphic to the Integers.

BinaryAddingMachine	( global variable )

This function constructs the adding machine on the alphabet [1,2]. This machine has a trivial state 1, and a non-trivial state 2. It implements the operation "add 1 with carry" on sequences.

BinaryAddingElement	( global variable )

This function constructs the Mealy element on the adding machine, with initial state 2.

These functions are respectively the same as AddingGroup(2), AddingMachine(2) and AddingElement(2).

gap>LoadPackage("fr"); 
gap> Draw(NucleusMachine(BinaryAddingGroup));
gap>Draw(BinaryAddingMachine);

References

Template:BookCat