Project

General

Profile

Download (602 Bytes) Statistics
| Branch: | Tag: | Revision:
1
--
2
-- Source: Koen Classen
3
--
4

    
5
-- given
6

    
7
node Sofar( X : bool ) returns ( Y : bool );
8
let
9
  Y = (true -> pre Y) and X;
10
tel
11

    
12
-- assignment other
13

    
14
node Store( Delta : int ) returns ( Total : int );
15
var Prev : int;
16
let
17
  Prev  = 0 -> pre Total;
18
  Total = if Delta < 0 and Prev > 0  then Prev+Delta
19
     else if Delta > 0 and Prev < 10 then Prev+Delta
20
     else Prev;
21
tel
22

    
23
--@ ensures OK;
24
node top( Delta : int ) returns ( OK : bool );
25
var Total : int;
26
let
27
  Total = Store( Delta );
28
  
29
  OK = Sofar( -1 <= Delta and Delta <= 1 ) => 0 <= Total and Total <= 20; 
30
--!k:2;
31
--!PROPERTY: OK=true;
32
  --%MAIN;
33
tel
(30-30/31)