CBMC
cprover_builtin_headers.h
Go to the documentation of this file.
1 // clang-format off
2 void __CPROVER_assume(__CPROVER_bool assumption);
3 void __VERIFIER_assume(__CPROVER_bool assumption);
4 void __CPROVER_assert(__CPROVER_bool assertion, const char *description);
5 void __CPROVER_precondition(__CPROVER_bool precondition, const char *description);
6 void __CPROVER_postcondition(__CPROVER_bool assertion, const char *description);
7 void __CPROVER_havoc_object(void *);
8 void __CPROVER_havoc_slice(void *, __CPROVER_size_t);
9 __CPROVER_bool __CPROVER_equal();
10 __CPROVER_bool __CPROVER_same_object(const void *, const void *);
11 __CPROVER_bool __CPROVER_is_invalid_pointer(const void *);
12 _Bool __CPROVER_is_zero_string(const void *);
13 __CPROVER_size_t __CPROVER_zero_string_length(const void *);
14 __CPROVER_size_t __CPROVER_buffer_size(const void *);
15 __CPROVER_bool __CPROVER_r_ok();
16 __CPROVER_bool __CPROVER_w_ok();
17 __CPROVER_bool __CPROVER_rw_ok();
18 
19 // experimental features for CHC encodings -- do not use
20 __CPROVER_bool __CPROVER_is_list(); // a singly-linked null-terminated dynamically-allocated list
21 __CPROVER_bool __CPROVER_is_dll();
22 __CPROVER_bool __CPROVER_is_cyclic_dll();
23 __CPROVER_bool __CPROVER_is_sentinel_dll();
24 __CPROVER_bool __CPROVER_is_cstring(const char *);
25 __CPROVER_size_t __CPROVER_cstrlen(const char *);
26 
27 // bitvector analysis
28 __CPROVER_bool __CPROVER_get_flag(const void *, const char *);
29 void __CPROVER_set_must(const void *, const char *);
30 void __CPROVER_clear_must(const void *, const char *);
31 void __CPROVER_set_may(const void *, const char *);
32 void __CPROVER_clear_may(const void *, const char *);
33 void __CPROVER_cleanup(const void *, const void *);
34 __CPROVER_bool __CPROVER_get_must(const void *, const char *);
35 __CPROVER_bool __CPROVER_get_may(const void *, const char *);
36 
37 void __CPROVER_printf(const char *format, ...);
38 void __CPROVER_input(const char *id, ...);
39 void __CPROVER_output(const char *id, ...);
40 void __CPROVER_cover(__CPROVER_bool condition);
41 
42 // concurrency-related
45 void __CPROVER_fence(const char *kind, ...);
46 
47 // contract-related functions
48 __CPROVER_bool __CPROVER_is_fresh(const void *mem, __CPROVER_size_t size);
49 void __CPROVER_old(const void *);
50 void __CPROVER_loop_entry(const void *);
51 
52 // pointers
53 __CPROVER_bool __CPROVER_LIVE_OBJECT(const void *);
54 __CPROVER_bool __CPROVER_WRITEABLE_OBJECT(const void *);
55 __CPROVER_size_t __CPROVER_POINTER_OBJECT(const void *);
57 __CPROVER_size_t __CPROVER_OBJECT_SIZE(const void *);
58 __CPROVER_bool __CPROVER_DYNAMIC_OBJECT(const void *);
59 void __CPROVER_allocated_memory(__CPROVER_size_t address, __CPROVER_size_t extent);
60 
61 // float stuff
62 int __CPROVER_fpclassify(int, int, int, int, int, ...);
63 __CPROVER_bool __CPROVER_isnanf(float f);
64 __CPROVER_bool __CPROVER_isnand(double f);
65 __CPROVER_bool __CPROVER_isnanld(long double f);
66 __CPROVER_bool __CPROVER_isfinitef(float f);
67 __CPROVER_bool __CPROVER_isfinited(double f);
68 __CPROVER_bool __CPROVER_isfiniteld(long double f);
69 __CPROVER_bool __CPROVER_isinff(float f);
70 __CPROVER_bool __CPROVER_isinfd(double f);
71 __CPROVER_bool __CPROVER_isinfld(long double f);
72 __CPROVER_bool __CPROVER_isnormalf(float f);
73 __CPROVER_bool __CPROVER_isnormald(double f);
74 __CPROVER_bool __CPROVER_isnormalld(long double f);
75 __CPROVER_bool __CPROVER_signf(float f);
76 __CPROVER_bool __CPROVER_signd(double f);
77 __CPROVER_bool __CPROVER_signld(long double f);
78 double __CPROVER_inf(void);
79 float __CPROVER_inff(void);
80 long double __CPROVER_infl(void);
81 int __CPROVER_isgreaterf(float f, float g);
82 int __CPROVER_isgreaterd(double f, double g);
83 int __CPROVER_isgreaterequalf(float f, float g);
84 int __CPROVER_isgreaterequald(double f, double g);
85 int __CPROVER_islessf(float f, float g);
86 int __CPROVER_islessd(double f, double g);
87 int __CPROVER_islessequalf(float f, float g);
88 int __CPROVER_islessequald(double f, double g);
89 int __CPROVER_islessgreaterf(float f, float g);
90 int __CPROVER_islessgreaterd(double f, double g);
91 int __CPROVER_isunorderedf(float f, float g);
92 int __CPROVER_isunorderedd(double f, double g);
93 
94 // absolute value
95 int __CPROVER_abs(int x);
96 long int __CPROVER_labs(long int x);
97 long long int __CPROVER_llabs(long long int x);
98 double __CPROVER_fabs(double x);
99 long double __CPROVER_fabsl(long double x);
100 float __CPROVER_fabsf(float x);
101 
102 // modulo and remainder
103 double __CPROVER_fmod(double, double);
104 float __CPROVER_fmodf(float, float);
105 long double __CPROVER_fmodl(long double, long double);
106 double __CPROVER_remainder(double, double);
107 float __CPROVER_remainderf(float, float);
108 long double __CPROVER_remainderl(long double, long double);
109 
110 // arrays
111 __CPROVER_bool __CPROVER_array_equal(const void *array1, const void *array2);
112 // overwrite all of *dest (possibly using nondet values), even
113 // if *src is smaller
114 void __CPROVER_array_copy(const void *dest, const void *src);
115 // replace at most size-of-*src bytes in *dest
116 void __CPROVER_array_replace(const void *dest, const void *src);
117 void __CPROVER_array_set(const void *dest, ...);
118 
119 // k-induction
120 void __CPROVER_k_induction_hint(unsigned min, unsigned max,
121  unsigned step, unsigned loop_free);
122 
123 // format string-related
124 int __CPROVER_scanf(const char *, ...);
125 
126 // detect overflow
127 __CPROVER_bool __CPROVER_overflow_minus();
128 __CPROVER_bool __CPROVER_overflow_mult();
129 __CPROVER_bool __CPROVER_overflow_plus();
130 __CPROVER_bool __CPROVER_overflow_shl();
131 __CPROVER_bool __CPROVER_overflow_unary_minus();
132 
133 // enumerations
134 __CPROVER_bool __CPROVER_enum_is_in_range();
135 
136 // contracts
137 void __CPROVER_assignable(void *ptr, __CPROVER_size_t size,
138  __CPROVER_bool is_ptr_to_ptr);
139 void __CPROVER_object_whole(void *ptr);
140 void __CPROVER_object_from(void *ptr);
141 void __CPROVER_object_upto(void *ptr, __CPROVER_size_t size);
142 // clang-format on
__CPROVER_zero_string_length
__CPROVER_size_t __CPROVER_zero_string_length(const void *)
__CPROVER_isunorderedd
int __CPROVER_isunorderedd(double f, double g)
__CPROVER_assignable
void __CPROVER_assignable(void *ptr, __CPROVER_size_t size, __CPROVER_bool is_ptr_to_ptr)
__CPROVER_equal
__CPROVER_bool __CPROVER_equal()
format
static format_containert< T > format(const T &o)
Definition: format.h:37
__CPROVER_is_cstring
__CPROVER_bool __CPROVER_is_cstring(const char *)
__CPROVER_set_must
void __CPROVER_set_must(const void *, const char *)
__CPROVER_OBJECT_SIZE
__CPROVER_size_t __CPROVER_OBJECT_SIZE(const void *)
__CPROVER_is_zero_string
_Bool __CPROVER_is_zero_string(const void *)
__CPROVER_old
void __CPROVER_old(const void *)
__CPROVER_fabsl
long double __CPROVER_fabsl(long double x)
__CPROVER_islessequalf
int __CPROVER_islessequalf(float f, float g)
__CPROVER_is_invalid_pointer
__CPROVER_bool __CPROVER_is_invalid_pointer(const void *)
__CPROVER_isgreaterequalf
int __CPROVER_isgreaterequalf(float f, float g)
__CPROVER_islessf
int __CPROVER_islessf(float f, float g)
__CPROVER_object_upto
void __CPROVER_object_upto(void *ptr, __CPROVER_size_t size)
__CPROVER_array_replace
void __CPROVER_array_replace(const void *dest, const void *src)
__CPROVER_remainderf
float __CPROVER_remainderf(float, float)
__CPROVER_allocated_memory
void __CPROVER_allocated_memory(__CPROVER_size_t address, __CPROVER_size_t extent)
__CPROVER_scanf
int __CPROVER_scanf(const char *,...)
__CPROVER_enum_is_in_range
__CPROVER_bool __CPROVER_enum_is_in_range()
__CPROVER_input
void __CPROVER_input(const char *id,...)
__CPROVER_printf
void __CPROVER_printf(const char *format,...)
__CPROVER_inf
double __CPROVER_inf(void)
__CPROVER_object_whole
void __CPROVER_object_whole(void *ptr)
__CPROVER_fpclassify
int __CPROVER_fpclassify(int, int, int, int, int,...)
__CPROVER_is_fresh
__CPROVER_bool __CPROVER_is_fresh(const void *mem, __CPROVER_size_t size)
__CPROVER_remainderl
long double __CPROVER_remainderl(long double, long double)
__CPROVER_isgreaterd
int __CPROVER_isgreaterd(double f, double g)
__CPROVER_assume
void __CPROVER_assume(__CPROVER_bool assumption)
__CPROVER_clear_must
void __CPROVER_clear_must(const void *, const char *)
__CPROVER_isnormalf
__CPROVER_bool __CPROVER_isnormalf(float f)
__CPROVER_overflow_minus
__CPROVER_bool __CPROVER_overflow_minus()
__CPROVER_LIVE_OBJECT
__CPROVER_bool __CPROVER_LIVE_OBJECT(const void *)
__CPROVER_overflow_unary_minus
__CPROVER_bool __CPROVER_overflow_unary_minus()
__CPROVER_overflow_plus
__CPROVER_bool __CPROVER_overflow_plus()
__CPROVER_isnanld
__CPROVER_bool __CPROVER_isnanld(long double f)
__CPROVER_loop_entry
void __CPROVER_loop_entry(const void *)
__CPROVER_atomic_end
void __CPROVER_atomic_end()
__CPROVER_isinfld
__CPROVER_bool __CPROVER_isinfld(long double f)
__CPROVER_islessequald
int __CPROVER_islessequald(double f, double g)
__CPROVER_fmod
double __CPROVER_fmod(double, double)
__CPROVER_clear_may
void __CPROVER_clear_may(const void *, const char *)
__CPROVER_labs
long int __CPROVER_labs(long int x)
__CPROVER_isinfd
__CPROVER_bool __CPROVER_isinfd(double f)
__CPROVER_ssize_t
signed long long __CPROVER_ssize_t
Definition: cprover.h:19
__CPROVER_DYNAMIC_OBJECT
__CPROVER_bool __CPROVER_DYNAMIC_OBJECT(const void *)
__CPROVER_remainder
double __CPROVER_remainder(double, double)
__CPROVER_havoc_object
void __CPROVER_havoc_object(void *)
__CPROVER_w_ok
__CPROVER_bool __CPROVER_w_ok()
__CPROVER_buffer_size
__CPROVER_size_t __CPROVER_buffer_size(const void *)
__CPROVER_islessd
int __CPROVER_islessd(double f, double g)
__CPROVER_atomic_begin
void __CPROVER_atomic_begin()
__CPROVER_fabs
double __CPROVER_fabs(double x)
__CPROVER_isfiniteld
__CPROVER_bool __CPROVER_isfiniteld(long double f)
__CPROVER_isfinited
__CPROVER_bool __CPROVER_isfinited(double f)
__CPROVER_fabsf
float __CPROVER_fabsf(float x)
__CPROVER_array_set
void __CPROVER_array_set(const void *dest,...)
__CPROVER_output
void __CPROVER_output(const char *id,...)
__CPROVER_get_may
__CPROVER_bool __CPROVER_get_may(const void *, const char *)
__CPROVER_object_from
void __CPROVER_object_from(void *ptr)
__CPROVER_isinff
__CPROVER_bool __CPROVER_isinff(float f)
__CPROVER_fmodf
float __CPROVER_fmodf(float, float)
__CPROVER_is_list
__CPROVER_bool __CPROVER_is_list()
__CPROVER_havoc_slice
void __CPROVER_havoc_slice(void *, __CPROVER_size_t)
__CPROVER_rw_ok
__CPROVER_bool __CPROVER_rw_ok()
__CPROVER_set_may
void __CPROVER_set_may(const void *, const char *)
__CPROVER_isfinitef
__CPROVER_bool __CPROVER_isfinitef(float f)
__CPROVER_abs
int __CPROVER_abs(int x)
__CPROVER_k_induction_hint
void __CPROVER_k_induction_hint(unsigned min, unsigned max, unsigned step, unsigned loop_free)
__CPROVER_cstrlen
__CPROVER_size_t __CPROVER_cstrlen(const char *)
__CPROVER_POINTER_OFFSET
__CPROVER_ssize_t __CPROVER_POINTER_OFFSET(const void *)
__CPROVER_POINTER_OBJECT
__CPROVER_size_t __CPROVER_POINTER_OBJECT(const void *)
__CPROVER_cover
void __CPROVER_cover(__CPROVER_bool condition)
__CPROVER_isnormalld
__CPROVER_bool __CPROVER_isnormalld(long double f)
__CPROVER_postcondition
void __CPROVER_postcondition(__CPROVER_bool assertion, const char *description)
__CPROVER_islessgreaterd
int __CPROVER_islessgreaterd(double f, double g)
__CPROVER_isgreaterf
int __CPROVER_isgreaterf(float f, float g)
__CPROVER_is_sentinel_dll
__CPROVER_bool __CPROVER_is_sentinel_dll()
__CPROVER_signf
__CPROVER_bool __CPROVER_signf(float f)
__CPROVER_isnanf
__CPROVER_bool __CPROVER_isnanf(float f)
__CPROVER_overflow_shl
__CPROVER_bool __CPROVER_overflow_shl()
__CPROVER_same_object
__CPROVER_bool __CPROVER_same_object(const void *, const void *)
__CPROVER_is_dll
__CPROVER_bool __CPROVER_is_dll()
__CPROVER_isnand
__CPROVER_bool __CPROVER_isnand(double f)
__CPROVER_array_equal
__CPROVER_bool __CPROVER_array_equal(const void *array1, const void *array2)
__CPROVER_is_cyclic_dll
__CPROVER_bool __CPROVER_is_cyclic_dll()
__CPROVER_array_copy
void __CPROVER_array_copy(const void *dest, const void *src)
__CPROVER_assert
void __CPROVER_assert(__CPROVER_bool assertion, const char *description)
__CPROVER_overflow_mult
__CPROVER_bool __CPROVER_overflow_mult()
precondition
void precondition(const namespacet &ns, value_setst &value_sets, const goto_programt::const_targett target, const symex_target_equationt &equation, const goto_symex_statet &s, exprt &dest)
Definition: precondition.cpp:54
__CPROVER_WRITEABLE_OBJECT
__CPROVER_bool __CPROVER_WRITEABLE_OBJECT(const void *)
__CPROVER_llabs
long long int __CPROVER_llabs(long long int x)
__CPROVER_isnormald
__CPROVER_bool __CPROVER_isnormald(double f)
__VERIFIER_assume
void __VERIFIER_assume(__CPROVER_bool assumption)
__CPROVER_infl
long double __CPROVER_infl(void)
__CPROVER_signld
__CPROVER_bool __CPROVER_signld(long double f)
__CPROVER_precondition
void __CPROVER_precondition(__CPROVER_bool precondition, const char *description)
__CPROVER_fmodl
long double __CPROVER_fmodl(long double, long double)
__CPROVER_fence
void __CPROVER_fence(const char *kind,...)
__CPROVER_r_ok
__CPROVER_bool __CPROVER_r_ok()
__CPROVER_get_flag
__CPROVER_bool __CPROVER_get_flag(const void *, const char *)
__CPROVER_signd
__CPROVER_bool __CPROVER_signd(double f)
__CPROVER_inff
float __CPROVER_inff(void)
__CPROVER_get_must
__CPROVER_bool __CPROVER_get_must(const void *, const char *)
__CPROVER_isgreaterequald
int __CPROVER_isgreaterequald(double f, double g)
__CPROVER_cleanup
void __CPROVER_cleanup(const void *, const void *)
__CPROVER_isunorderedf
int __CPROVER_isunorderedf(float f, float g)
__CPROVER_islessgreaterf
int __CPROVER_islessgreaterf(float f, float g)