From newshub.ccs.yorku.ca!ists!helios.physics.utoronto.ca!news-server.ecf!utgpu!csd.unb.ca!morgan.ucs.mun.ca!nstn.ns.ca!bonnie.concordia.ca!garrot.DMI.USherb.CA!uxa.ecn.bgu.edu!mp.cs.niu.edu!rickert Thu Apr 30 15:22:11 EDT 1992
Article 5208 of comp.ai.philosophy:
Path: newshub.ccs.yorku.ca!ists!helios.physics.utoronto.ca!news-server.ecf!utgpu!csd.unb.ca!morgan.ucs.mun.ca!nstn.ns.ca!bonnie.concordia.ca!garrot.DMI.USherb.CA!uxa.ecn.bgu.edu!mp.cs.niu.edu!rickert
>From: rickert@mp.cs.niu.edu (Neil Rickert)
Newsgroups: comp.ai.philosophy
Subject: Re: A rock implements every FSA
Message-ID: <1992Apr23.022619.23210@mp.cs.niu.edu>
Date: 23 Apr 92 02:26:19 GMT
References: <1992Apr21.154723.13237@oracorp.com>
Organization: Northern Illinois University
Lines: 48

In article <1992Apr21.154723.13237@oracorp.com> daryl@oracorp.com (Daryl McCullough) writes:
>In article <1992Apr14.153609.8539@mp.cs.niu.edu> rickert@mp.cs.niu.edu 
>(Neil Rickert) writes:
>>>As a matter of fact, in the the theory of processes,
>>>as developed by Robin Milner, quite a bit is done with a notion of
>>>"functional equivalence", and it is a theorem that any two processes
>>>that are (1) deterministic, and (2) behaviorally equivalent, are also
>>>functionally equivalent.
>>
>>  This claim seems quite preposterous.
>>...

>I have no problem with the claim that two programs can be very
>different, and yet do the same thing. However, I don't think these
>differences are *functional* differences.
>...

>Anyway, like I said, for at least one definition of functional
>equivalence, it is a theorem that two deterministic systems that
>are behaviorally equivalent are also functionally equivalent. The
>way to see this equivalence is to draw the transition tree diagram.
>Make a node at the top corresponding to the initial state. Then,
>for each possible next state, draw a new node, and an arc connecting
>it with the current node, labelled with the input (if any) associated
>with the transition. Continue. Finally, label each node with the output
>(if any) produced in the corresponding state.

 Sorry, but I'm not buying this argument.  Unless you are defining things
in such a way that it becomes totally meaningless, this argument is
fallacious, and my earlier example provided a counter example.

 The idea of tracing the transition tree at first sound reasonable.  But
it stops sounding reasonable as soon as you realize that the "transition
tree" is not a tree.  If you are very careful about how you define
everthing, you can probably say that the trace for a single set of
input is a tree.  But once you put all possible inputs into the
transition diagram, the best you could possible hope is that it be a
DAG (directed acyclic graph).  With a DAG, once you remove the direction
arrow the remaining graph can have loops.  In the example I gave earlier
of two functionally different ways of computing GCD, the DAGs are
topologically distinct, even though for a single set of input the two
automata trace equivalent trees.

>Therefore, if you want to say that two deterministic, behaviorally
>equivalent programs differ in functionality, then it must be in
>information that gets thrown away in constructing the transition tree.

  No.  The difference is in the topology of the transition graphs.


