From: Steven Zenith on

Charlie-Boo wrote:
> ...
> > No one is suggesting that not to use these techniques is corrupt.
>
> No, rather that "A quick and dirty solution today for which I can
> charge endless consulting fees to maintain" is corrupt.

Maybe. However, it is the business model of the software industry
today.

> ...
> > If you are rather looking for abstract principles of
> > computational theory, that seems to be less an engineering task as a
> > general task in logic and there is plenty on literature in that domain.
>
> Again you refer to articles being written, but not a single example of
> a result being formally produced.

I guess I am missing what exactly you are looking for. I have already
pointed to examples of specific results produced.

>
> > Formal methods very often deal with the obvious. In logic of course a
> > function terminates, that assumption cannot be made in computer science
> > since one needs to understand the implementation and the machine
> > architecture.
>
> A function that is undefined on a particular input is considered to be
> the result of a program that does not terminate on that input.

Apologies, I've noted elsewhere that I meant to say here "functions of
the kind you describe."

Your answer depends upon the specification of a function and the
implementation. Such a function "may" terminate immediately leaving the
result undefined or randomly defined.

>
> One can easily program side effect free functions in any language.

Where are the tools to formally verify this and where are the language
specifications so well formed as to allow this? Not C or C++, maybe
Java?

> But
> why would that prevent the application of formal methods anyway? These
> side effects are merely additional semantics.

The point is that most available programming languages are semantically
weak when related to both their intrinsic structure and the exceptions
allowed by their implementation. Few compilers or interpreters are
rigorously formal - and, surprisingly, neither are the optimizers.
Typing is not strictly enforced of changes range from implementation to
implementation.

Side effects can perhaps be viewed as additional semantics. But your
view is naive, rarely are side effects consistent with the programming
model specification and will lead to nondeterminism quickly - so the
best way to address them is to eliminate them from the language in the
first place.

I clearly have not pickup on the particular problem you are trying to
solve. Later I'll look back over what you have said.

With respect,
Steven

From: Jack Campin - bogus address on
> A function that computes the square root of 2 is a good example of a
> non-terminating function. In what formal computational sense can it be
> said to terminate? Logically, none.
>
> However, pragmatically, we know that implementations terminate by at
> some point producing an approximation of the function - these
> pragmatics will vary from implementation to implementation. Programs
> dependent on such results will vary in their behavior.

So you just add a second argument to the sqrt function saying how many
places of precision you want. That two-argument function does terminate,
and there's no implementation dependence about it.

There was also a fair bit of work on programs that acted as filters
on streams - it presumably suffered the same commercial fate as your
stuff, but it went a long way towards incorporating interactive
software like operating systems and user interfaces into the functional
model. (At one point in the 1990s, Microsoft hired a team of people
who knew the state of the art in that area - god knows what they did
with them, maybe somebody ought to dig up a few of the drains around
Redmond).

============== j-c ====== @ ====== purr . demon . co . uk ==============
Jack Campin: 11 Third St, Newtongrange EH22 4PU, Scotland | tel 0131 660 4760
<http://www.purr.demon.co.uk/jack/> for CD-ROMs and free | fax 0870 0554 975
stuff: Scottish music, food intolerance, & Mac logic fonts | mob 07800 739 557
From: Steven Zenith on

Jack Campin - bogus address wrote:
>...
> So you just add a second argument to the sqrt function saying how many
> places of precision you want. That two-argument function does terminate,
> and there's no implementation dependence about it.

Well, you have now placed the implementation dependence in the new
argument. It is better to explicitly express a pragmatic, I agree, but
these pragmatics will play hell with the formal system unless
differentiated from the algorithmic goals.

With respect,
Steven

From: Rupert on

Charlie-Boo wrote:
> Rupert wrote:
> > Charlie-Boo wrote:
> > > Rupert wrote:
> > > > Charlie-Boo wrote:
> > > > > Do we all agree that Computer Science definitely should be formalized?
> > > > >
> > > >
> > > > What's the merit in being completely formal, for any branch of
> > > > mathematics? Surely it's enough to convince ourselves that we could
> > > > formalize it.
> > >
> > > Why develop mathematics?
>
> > Because it's interesting.
>
> > > Why have people axiomatized branches of mathematics?
>
> > To clarify the foundations of the reasoning.
> >
> > > Is it better to have a single representation for a theorem rather than
> > > many equivalent representations?
>
> > Not clear to me why one should be better than the other.
>
> The merit in being completely formal is that it accomplishes the above.

It's not necessary in order to accomplish the above. It's extra work
that serves no particularly useful function.


>
> C-B

From: Charlie-Boo on
george wrote:
> Charlie-Boo wrote:
> > You have to tell in advance an exact algorithm that creates every
> > proof.
>
> That this is trivial is PRECISELY what Godel's proof proves.

Trivial? No man, it depends on what you're trying to formalize. And
trivial or not, who has ever come up with a formalization of any branch
of Computer Science - Program Synthesis, Theory of Computation,
Recursion Theory or Incompleteness in Logic? What book or article
describes a general system for generating the theorems in any of these?

> > You are saying that it can be formalized, but Godel didn't.
>
> Yes, he did -- didn't you read the other replies.

Which theorems does his system generate?

You don't get to claim success without showing that success. One
article with one proof "formalized" does not constitute a general
means of generating theorems in some area of study.

C-B

First  |  Prev  |  Next  |  Last
Pages: 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Prev: Simple yet Profound Metatheorem
Next: Modal Logic