summaryrefslogtreecommitdiff
path: root/Test/test20/Prog2.bpl
blob: 43b9b28fa1dd0893d9ba11e7723f1ad9edacc600 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function union(<a> [a] bool, <a> [a] bool) returns (<a> [a] bool);

axiom (forall<alpha>             // error: alpha has to occur in dummy types
              x : <a> [a] bool, y : <a> [a] bool,
              z : int ::
              { union(x, y)[z] } 
              union(x, y)[z] == (x[z] || y[z]));

function poly<a>() returns (a);

axiom (forall<alpha>
              x : <a> [a] bool, y : <a> [a] bool,
              z : int ::
              { union(x, y)[z], poly() : alpha } 
              union(x, y)[z] == (x[z] || y[z]));