Quantcast
Channel: Dafny: An Automatic Program Verifier for Functional Correctness
Viewing all articles
Browse latest Browse all 1106

Created Unassigned: Opened modules and top-level predicates [110]

$
0
0
In the example below, if you import the Io module as opened in Host, then you get three unresolved-identifier errors about AdvanceTime and MaxPacketSize. This only happens in the presence of the Main module (i.e., if you delete the Main module, then the errors go away), and it only happens when using "opened".

```
module Io {

predicate AdvanceTime(oldTime:int) { oldTime > 2 }
class Time
{
static method GetTime()
ensures AdvanceTime(1);
}

function MaxPacketSize() : int { 65507 }

class UdpClient
{
method Receive()
ensures AdvanceTime(3);

method Send() returns(ok:bool)
requires 0 <= MaxPacketSize();
}

}

abstract module Host {
//import opened Io // Doesn't work.
import Io // Works
}

abstract module Main {
import H as Host
}
```

Viewing all articles
Browse latest Browse all 1106

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>