-
Notifications
You must be signed in to change notification settings - Fork 273
/
Copy pathREADME
94 lines (68 loc) · 1.52 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
//
// predefined expressions IDs
//
Constants
constant
Variables/Symbols
symbol
Operators for most Types
typecast
= (equality)
notequal
if
cond:
operands: alternating sequence of condition, expression
condition is of boolean type
expression of the type of the cond expression
the first match wins
case:
first operand: comparison element
remaining operands: alternating sequence of expression, expression
first expression is of type of comparison element
second expression of the type of the case expression
case-unique
as case, but cases are guaranteed to be unique
Operators for Numbers, Bitvectors
+
*
/
<
>
<=
>=
mod
unary-
Boolean Operators
=>
<=>
not
and
or
xor
Bitwise Operators
ashr // arithmetic, not cyclic
lshr // not arithmetic, not cyclic
shl // not cyclic
bitnot
bitand
bitor
bitxor
extractbit // two operands, first bv, second integer. result: bool
extractbits // three operands, first bv, second/third integer, result: bv
Model Checking
|=
Software
Hoare
Operators for structures
member // projection which gets
// a member of a structure (operand)
Pointer Operators
dereference
address_of
points_to_something
Misc
sequent (Gentzen sequent)
trans // Transition systems:
0: general constraints, other modules
1: initial state constraints
2: transition relation