straight-line program

straight-line program

Definition 1

.

Given a set

S

, a

straight-line program

(SLP) is a family of

functions

F

=

{

f

i

:

1

≤

i

≤

m

}

f

i

:

S

n

+

i

→

S

for some fixed

n

∈

N

. An SLP is

evaluated

on a tuple

(

s

1

,

…

,

s

n

)

by

recursion

in the following way:

f

1

is evaluated
on

(

s

1

,

…

,

s

n

)

as a function. The remaining evaluations are

recursive

. So

f

2

⁢

(

s

1

,

…

,

s

n

)

denotes

f

2

⁢

(

s

1

,

…

,

s

n

)

:=

f

2

⁢

(

s

1

,

…

,

s

n

,

f

1

⁢

(

s

1

,

…

,

s

n

)

)

.

and in general

f

i

+

1

⁢

(

s

1

,

…

,

s

n

)

:=

f

i

+

1

⁢

(

s

1

,

…

,

s

n

,

f

1

⁢

(

s

1

,

…

,

s

n

)

,

…

,

f

i

⁢

(

s

1

,

…

,

s

n

)

)

.

The final output

f

m

⁢

(

s

1

,

…

,

s

n

)

is denoted

F

⁢

(

s

1

,

…

,

s

n

)

.
In this way we treat

F

as function from

S

n

→

S

.

SLPs arrise from the

multiple

meansings of expressions of the sort

a

n

in a some

algebraic structure

S

. First of all, one can formally treat

a

n

as the word

a

⁢

⋯

⁢

a

in

S

. Secondly this can be interpreted as the actual result of this mulitplication.

In the former meaning, actually storing a word of the form

a

n

as

a

⁢

⋯

⁢

a

is difficult hence it is abreviated. Other examples include
words such as

a

10

⁢

(

b

⁢

c

)

6

where the values of

a

,

b

,

c

are continually changing or even

unknown

. Here an SLP can encode this word in such a way
that if we replace

a

by

b

⁢

c

, then the resulting new word would result
simply by evaluation the SLP at the input

(

b

⁢

c

,

b

,

c

)

instead of

(

a

,

b

,

c

)

.

In the second treatment where we whish to actually evaluate

a

n

and the like,
we find the problem of understanding what

a

n

means as a

program

.
Certainly we may have

a

4

=

(

a

⁢

a

)

⁢

(

a

⁢

a

)

=

a

⁢

(

a

⁢

(

a

⁢

a

)

)

etc. However this equivalence
neglects the problem of selecting a method of computing the result. Usually
an efficient method is desired. An SLP developed from

simple functions

such as

f

⁢

(

x

)

=

x

2

and

f

⁢

(

x

,

y

)

=

x

+

y

formally address this problem.

The term

straight-line

reflects the fact that evaluating an SLP can
be achieved by a program which does not branch or loop so its execution is
a straight-line. It is common for SLPs to be built entirely from simple
functions such as

f

⁢

(

x

,

y

)

=

x

+

y

or

f

⁢

(

x

)

=

x

×

x

.

Because each

element

f

i

of an SLP is evaluated externally only on

s

1

,

…

,

s

n

and the remaining inputs come internally from previous

f

j

,

1

≤

j

≤

i

, it is convient to write definitions for

f

i

as taking
inputs only from

(

s

1

,

…

,

s

n

)

and implicitly allowing for the use of
the outputs of previous

f

j

’s.

SLPs can be defined in

contexts

other than

semigroups

including rings, modules, and

polynomials

. Although they arise naturally to compress

computations

, they are also useful in describing smaller bounds for many combinatorial

theorems

related to

algebraic

objects.

It is possible for a function

f

:

S

n

→

S

to be defined equivalently by multiple SLPs and so a notion of equality of SLPs is stronger than equivalence of final outputs.

Definition 2

.

Two SLPs

F

=

{

f

i

:

1

≤

i

≤

m

}

and

G

=

{

g

i

:

1

≤

i

≤

k

}

are

equivalent

if

F

and

G

can be evaluated
on the same inputs and for every input

(

s

1

,

…

,

s

n

)

,

F

⁢

(

s

1

,

…

,

s

n

)

=

G

⁢

(

s

1

,

…

,

s

n

)

.
When and SLP

F

is equivalent to a

trivial

SLP

{

f

:

S

n

→

S

}

we say that

F

is an

SLP representation

of

f

.

Every function

f

:

S

n

→

S

can be expressed as an SLP trivially by

ℱ

=

{

f

}

. However, this SLP is typically the least optimal for the actual evaluation of the output for a given input. This leads to a hierarchy imposed on equivalent SLPs based on their associated computational length.

Definition 3

.

If an SLP

represents

an algebraic expression (alternatively a word in the

generators

) in the semigroup

S

then the

computational length

or simply

length

of the SLP is the maximum number of

multiplications

in the semigroup performed to evaluate the expression
using the SLP.

It is evident that the trivial SLP of an algebraic expression has length equal to the length of the word.

Title

straight-line program

Canonical name

StraightlineProgram

Date of creation

2013-03-22 16:16:02

Last modified on

2013-03-22 16:16:02

Owner

Algeboy (12884)

Last modified by

Algeboy (12884)

Numerical id

10

Author

Algeboy (12884)

Entry type

Definition

Classification

msc 08A99

Classification

msc 20A05

Classification

msc 20-00

Related topic

word

Related topic

Word

Defines

straight-line program

Defines

SLP

Defines

SLP representation

Generated on Fri Feb 9 14:05:03 2018 by

LaTeXML