From: Claude on
On Jun 12, 1:30 am, Phil Thornley <phil.jpthorn...(a)gmail.com> wrote:
> On 11 June, 21:32, Claude <claude.def...(a)orange.fr> wrote:
>
> > Ada is a formal language to software engineering.
>
> > What is SPARK about?
>
> SPARK is an annotated sublanguage of Ada, intended for use in high-
> integrity applications.

Annotations (Ada comments) and Ada source code compose the SPARK
semantic, which shall fly together on the SPARK tools in order to
determine and discharge any Verification Condition. (Static analysis
completeness is the SPARK programming goal).

(Ada’s generic and variant records are within static analysis’s
capabilities but still on the SPARK “road map”)

> An important property of the language is that it is unambiguous -
> every valid SPARK program, when compiled by a conforming Ada compiler,
> has one and only one meaning.

Ada source code (constrained to be unambiguous, from SPARK static
analysis) shall fly alone on the Ada compiler, like the Ada executable
will on the target system. (Functional behaviour compliance is the Ada
engineering goal, assisted by the SPARK guidelines).

> Therefore it becomes practicable to reason about the behaviour of a
> SPARK program based solely on the analysis of the program text.

Annotations are the static analysis directives to be established by
Software Engineers to increase the software product likelihood to
behave as intending, and reduce risks of error to an acceptable
level.

> > I means since SPARK is restricted to the best of Ada, is SPARK better
> > than Ada to resolving complex engineering applications, or SPARK a
> > better choice than C/C++ to address leaner systems?  (in terms of
> > compliance to early drafts of DO-178C - certification levels C to A).
>
> > Indeed, the successful applications of SPARK bring to results that are
> > rather difficult to compare.
>
> > “The formal design of Tokeneer ID Station (TIS) shows the TIS system
> > to be a purely sequential system.” -  (INFORMED design, at section
> > 2.2, Identification of the SPARK boundary)
>
> Support for concurrent programs (RavenSPARK) was added in 2003.
(Tokeneer was also on how to accede the administrator and user ID
station simultaneously).

Rather, “Purely sequential system” doesn't refer to single task, but
to the “sequential logic of a finite state machine”. That is what
Tokeneer is, and what the INFORMED design means. Therefore, Tokeneer
was fairly straight forward to prove, just a little was done and
everything worked!

> > “We believe part of the success of proof on SHOLIS is due to the
> > simple system architecture. …
> > Some large-scale SPARK reasoning are also needed, including support
> > for abstract proof, before the technology can be extensively used at
> > the highest level of large systems.” - (Is Proof More Cost Effective
> > Than Testing – Section 8, Summary).
>
> Support for abstract proof was added in 2000.
>
>
>
> > Beyond any theory or academic project, 10 years later, from all the
> > past SPARK projects’ experiences, does it happen that SPARK can
> > address “purely sequential systems” or that SPARK “can be extensively
> > used at the highest level of large systems”?
>
> An example of a large, concurrent SPARK program is iFACTS - described
> by the UK National Air Traffic Service as "the biggest change in air
> traffic control since radar".

Feb 2010, the ERCIM Working Group on Formal Methods for Industrial
Critical Systems stated: “There is a lack of precedents where formal
methods have been proven to be effective.”
http://www.inrialpes.fr/vasy/fmics/

Did the ECRIM overlook iFACTS?

Formal Methods (i.e., Z notation and SPARK) are best suited to the
development of data oriented, sequential systems. i.e., they are
generally sufficient to demonstrate data flow correctness and SPARK
can prove the absence of run time error. But on how to handle the
functional complexities of large systems, they had always led to dead
ends, almost.

> > Claude
>
> Cheers,
>
> Phil

iFACTS: What has been accomplished there?

Does the abstract proofs were able to consider and address all
functional validations?

Were traditional testing involved and did they do all the functional
verification: (over data flow correctness and proof of absence of run
time error)?

------------------------------------------------------
There are boundaries there, which need to be clarified.
------------------------------------------------------

Thanks Phil

Claude

From: Yannick Duchêne (Hibou57) on
Le Sat, 12 Jun 2010 20:09:48 +0200, Claude <claude.defour(a)orange.fr> a
écrit:
> Formal Methods (i.e., Z notation and SPARK) are best suited to the
> development of data oriented, sequential systems. i.e., they are
> generally sufficient to demonstrate data flow correctness and SPARK
> can prove the absence of run time error. But on how to handle the
> functional complexities of large systems, they had always led to dead
> ends, almost.
Sure there is way to... (it must be)

Sorry for being a bit out of topic, I would like to ask you a question, as
it seems you know about the sate of the art. Please, do you know if there
are accessible documents about balancing intuitionistic logic vs classical
logic in this area ?

--
There is even better than a pragma Assert: a SPARK --# check.
--# check C and WhoKnowWhat and YouKnowWho;
--# assert Ada;
-- i.e. forget about previous premises which leads to conclusion
-- and start with new conclusion as premise.
From: J-P. Rosen on
Claude a �crit :
> Feb 2010, the ERCIM Working Group on Formal Methods for Industrial
> Critical Systems stated: �There is a lack of precedents where formal
> methods have been proven to be effective.�
> http://www.inrialpes.fr/vasy/fmics/
>
> Did the ECRIM overlook iFACTS?
>
More surprisingly, did they overlook Meteor (100% automated line 14 of
the Parisian subway, in B+Ada) ?

--
---------------------------------------------------------
J-P. Rosen (rosen(a)adalog.fr)
Visit Adalog's web site at http://www.adalog.fr
From: Simon Wright on
"J-P. Rosen" <rosen(a)adalog.fr> writes:

> Claude a écrit :
>> Feb 2010, the ERCIM Working Group on Formal Methods for Industrial
>> Critical Systems stated: “There is a lack of precedents where formal
>> methods have been proven to be effective.”
>> http://www.inrialpes.fr/vasy/fmics/
>>
>> Did the ECRIM overlook iFACTS?
>>
> More surprisingly, did they overlook Meteor (100% automated line 14 of
> the Parisian subway, in B+Ada) ?

This is very relevant -- took a little googling (meteor paris metro ada
formal b):
http://rodin.cs.ncl.ac.uk/Publications/fm_sc_rs_v2.pdf
From: Robert A Duff on
"J-P. Rosen" <rosen(a)adalog.fr> writes:

> More surprisingly, did they overlook Meteor (100% automated line 14 of
> the Parisian subway, in B+Ada) ?

And nobody wants to see an error message, "Constraint_Error on line 14".

;-)

- Bob