blob: 4ffc5a5820afd930e9cddc732c8744818dcae5a1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
// RUN: %dafny /compile:0 "%s" > "%t"
// RUN: %diff "%s.expect" "%t"
function M1(f:map<int, bool>, i:int):bool
function M2(f:map<int, bool>, i:int):bool
{
M1(map j | j in f :: f[j], i)
}
lemma L(f:map<int, bool>, i:int)
requires i in f;
requires M2(f, i);
requires forall j:int, f:map<int, bool> :: M1(f, j) == (j in f && f[j]);
{
assert f[i];
}
|