From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: a07f3367d7,39579ad87542da0e X-Google-Attributes: gida07f3367d7,public,usenet X-Google-NewGroupId: yes X-Google-Language: ENGLISH,ASCII-7-bit X-Received: by 10.68.131.227 with SMTP id op3mr1237598pbb.2.1368583807409; Tue, 14 May 2013 19:10:07 -0700 (PDT) Path: bp1ni2274pbd.1!nntp.google.com!npeer03.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!border3.nntp.dca.giganews.com!border1.nntp.dca.giganews.com!border4.nntp.dca.giganews.com!border2.nntp.dca.giganews.com!nntp.giganews.com!newsfeed.news.ucla.edu!nrc-news.nrc.ca!News.Dal.Ca!news.litech.org!news.stack.nl!feeder.erje.net!eu.feeder.erje.net!newsfeed.datemas.de!uucp.gnuu.de!newsfeed.arcor.de!newsspool1.arcor-online.net!news.arcor.de.POSTED!not-for-mail User-Agent: NewsTap/3.5.5 (iPad) From: Georg Bauhaus Newsgroups: comp.lang.ada Mime-Version: 1.0 Message-ID: <357683977389964588.963651rm-host.bauhaus-maps.arcor.de@news.arcor.de> Subject: Re: Seeking for papers about tagged types vs access to subprograms References: <1msoad3apbkf.1optea1ujjydv.dlg@40tude.net> Date: 11 May 2013 11:49:12 GMT Organization: Arcor NNTP-Posting-Date: 11 May 2013 13:49:12 CEST NNTP-Posting-Host: 4cdbacf7.newsspool4.arcor-online.net X-Trace: DXC==5ZDYAXC:F5RadXUBHgFh34IUKejV8WkSnohXh_008eMol4@`h`< X-Complaints-To: usenet-abuse@arcor.de X-Received-Bytes: 2045 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Date: 2013-05-11T13:49:12+02:00 List-Id: "Dmitry A. Kazakov" wrote: > The condition is moved to the post-condition. E.g. > > # require X >= 0.0 > function sqrt (X : Float) return Float; > # ensure sqrt (X)**2 = X > > is replaced with > > # require true > function sqrt (X : Float) return Float; > # ensure sqrt (X)**2 = X or else Constraint_Error raised So sqrt tests X for being non-negative and raises C_E otherwise? Can the test be turned off? # require true procedure increase_pressure (P : in out Pot; X : Float); # ensure pressure (P) = X * pressure (P'old) or else Kaboom raised So where goes the precondition of the second kind mentioned earlier, for calls, the one that is needed for correctness of the program? I take it that the former kind of precondition prevents Kaboom in the system?