comp.lang.ada
 help / color / mirror / Atom feed
From: "Alexandre E. Kopilovitch" <aek@vib.usr.pu.ru>
To: comp.lang.ada@ada-france.org
Subject: RE: Software Design
Date: Sun, 14 Dec 2003 00:22:22 +0300 (MSK)
Date: 2003-12-14T00:22:22+03:00	[thread overview]
Message-ID: <mailman.113.1071353125.31149.comp.lang.ada@ada-france.org> (raw)
In-Reply-To: <468D78E4EE5C6A4093A4C00F29DF513D04B82AFF@VS2.hdi.tvcabo>; from "amado.alves" at Sat, 13 Dec 2003 02:18:27 -0000

amado.alves wrote:

>I dream of complex programs
>being proved correct just like complex mathematical proofs: by revision.

There is a common misconception (among non-mathematicians) about the nature
and power of mathematical proofs: those proofs do not signify for a final
and eternal truth as many non-mathematicians believe; a proof just exposes
a logic which leads to the theorem's conclusion. So anyone who relies upon
a theorem is supposed to check and agree with that logic. Because of that,
too complex proofs have less value in mathematics then simple proofs (too
few people can actually inspect the logic of, say, 100-page highly demanding
mathematical text), and therefore inventing of a new, simple and
straightforward proof for already proven (but only by lengthy and complex
proof) theorem is always regarded as quite respectable mathematical result.

> Clearly
>one way to accomplish this is to write them in a rigourous and readable language
>and of course in very good style. Hence "100% Ada."

Obviuosly, the language, terminology and notation used in a proof greatly
influences reader's ability to inspect its logic. A clear language,
well-chosen and stable terminology and notation are if fact prerequisites
for wide and effective use of a mathematical result. In this sense Ada
language is certainly on right way - Ada strives to provide exactly that -
clear, well-chosen and stable notation as well as basic level of the language
for programs/software, and a good exposition of a logic and intentions is
a highly useful thing even if it is somehow incomplete and/or unpolished
regarding to mathematical standards.

But anyway, what should be never forgotten - equally in software engineering
and in mathematical applications - that both ends of a proved thing must be
checked every time: that actual prerequisites are strong enough for the proof
to be applicable and that the theorem's conclusion is enough to satisfy
actual requirements. And this is the most critical point in usage of "already
proved" things.



Alexander Kopilovitch                      aek@vib.usr.pu.ru
Saint-Petersburg
Russia




       reply	other threads:[~2003-12-13 21:22 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <468D78E4EE5C6A4093A4C00F29DF513D04B82AFF@VS2.hdi.tvcabo>
2003-12-13 21:22 ` Alexandre E. Kopilovitch [this message]
2003-12-13  2:18 Software Design amado.alves
2003-12-13 13:40 ` (see below)
2003-12-15 12:41   ` Peter Amey
  -- strict thread matches above, loose matches on Subject: below --
2003-12-12 14:43 Robert Spooner
2003-12-12 15:22 ` Peter Hermann
2003-12-12 15:55 ` (see below)
2003-12-12 19:49 ` Alexandre E. Kopilovitch
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox