// RUN: %boogie -noVerify "%s" > "%t" // RUN: %diff "%s.expect" "%t" function union( [a] bool, [a] bool) returns ( [a] bool); axiom (forall // error: alpha has to occur in dummy types x : [a] bool, y : [a] bool, z : int :: { union(x, y)[z] } union(x, y)[z] == (x[z] || y[z])); function poly() returns (a); axiom (forall x : [a] bool, y : [a] bool, z : int :: { union(x, y)[z], poly() : alpha } union(x, y)[z] == (x[z] || y[z]));