Project

General

Profile

sumth60.c

Sepideh Asadi, 29/08/2018 13:03

 
1
int func1(int a, int b)
2
{
3
    int m = 1;
4
    for (int i = 0; i < 3; i++)
5
    {
6
        m =  (a*a + b / a) + m;
7
    }
8
    if(m >= 1)
9
        return (m % 2);
10
    else return (m % 3);
11
}
12

    
13
int func2(int a, int b)
14
{
15
    int m = 1;
16
    for (int i = 0; i < 3; i++)
17
    {
18
        m= m + ((a * a) + (b / a));
19
    }
20
    return (m % 2);
21
}
22

    
23
int main()
24
{
25
    unsigned int a = nondet();
26
    unsigned int b = nondet();
27
    int c = a;
28
    int d = b;
29
    int p = func1( a, b)+func2(a, b);
30
    int q = func1(c, d)+func2(c, d);
31
    
32
    assert (p*p >= 0);       //claim 1 verified by prop
33
   
34
    assert(p == q);          //claim 2 expected to be verified by uf
35
    
36
    assert(p - q == 0);      //can LRA handle this?
37
    
38
    assert(p + q <= 10);
39
   
40
    return 0;
41
}