summaryrefslogtreecommitdiff
path: root/Test/floats/float13.bpl
blob: 4fe25140206f6f78828200a718afd61af1dbed30 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// RUN: %boogie -proverWarnings:1 "%s" > "%t"
// RUN: %diff "%s.expect" "%t"

function {:builtin "(_ to_fp 11 53) RNE"} TO_FLOAT64_INT(int) returns (float64);
function {:builtin "(_ to_fp 11 53) RNE"} TO_FLOAT64_REAL(real) returns (float64);

procedure main() returns () {
	var x : float64;
	var y : float64;

	havoc x;
	assume(x >= TO_FLOAT64_INT(0) && x <= TO_FLOAT64_INT(10));

	y := x*x - x;
	if (y >= TO_FLOAT64_INT(0)) {
		y := x / TO_FLOAT64_INT(10);
	}
	else {
		y := x*x + TO_FLOAT64_INT(2);
	}
	
	assert(y >= TO_FLOAT64_INT(0) && y <= TO_FLOAT64_INT(105));
}