From: "Yannick Duchêne (Hibou57)" <yannick_duchene@yahoo.fr>
Subject: Re: SPARK again : for-loop vs single loop - a strange case
Date: Sat, 29 May 2010 00:41:31 +0200
Date: 2010-05-29T00:41:31+02:00 [thread overview]
Message-ID: <op.vdftbispule2fv@garhos> (raw)
In-Reply-To: eb1871bc-62d0-411c-b96e-97f8c8e148f6@f14g2000vbn.googlegroups.com
Le Fri, 28 May 2010 13:50:51 +0200, Phil Thornley
<phil.jpthornley@googlemail.com> a écrit:
> So the fact that adding L >= Length_Type'First allows the Simplifier
> to prove the check suggests that you are not getting these hypotheses
> - possibly for one of the above reasons.
OK, with the for-loop, L cannot goes outside of the range expression, so
the Examiner can always assume these hypotheses exist. However, there is
still the Length_Type and associated VC for RTC, which can turn into
hypotheses. I would understand I may had a trouble with a VC associated to
a RTC, I can't understand this one.
You suggested to look Generation of RTC, section 4.5.2.1.
It says:
> The default assertion states the subprogram’s precondition
> is satisfied
OK.
Then
> In the case of for loops, the invariant also states that theloop counter
> is in its subtype.
OK.
I could not see something about local variables here indeed.
Something about it is said in 4.2:
> Additionally, the Examiner exploits the benefit of data
> flow analysis by assuming that a local variable, anywhereit is
> referenced in an expression, must be validly in type.
providing there is no flow error, as explained later in 4.2
There was no flow error, so the Length_Type range should be enough as an
hypothesis, and it should be there (and that was my assumption, that is
why I did not understood what's happened).
> If you should be getting these hypotheses then post (or email) the
> complete SPARKable code.
Will see. I will try somethings else before.
--
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.
next prev parent reply other threads:[~2010-05-28 22:41 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-27 19:36 SPARK again : for-loop vs single loop - a strange case Yannick Duchêne (Hibou57)
2010-05-27 21:50 ` Brian Drummond
2010-05-27 23:21 ` Yannick Duchêne (Hibou57)
2010-05-28 8:14 ` Phil Thornley
2010-05-28 9:00 ` Yannick Duchêne (Hibou57)
2010-05-28 11:50 ` Phil Thornley
2010-05-28 15:13 ` Phil Thornley
2010-05-28 22:46 ` Yannick Duchêne (Hibou57)
2010-05-28 22:41 ` Yannick Duchêne (Hibou57) [this message]
2010-05-28 9:04 ` Yannick Duchêne (Hibou57)
2010-05-28 12:17 ` stefan-lucks
2010-05-28 22:52 ` Yannick Duchêne (Hibou57)
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox