source: CIVL/include/headers/loop_assigns_gen.cvh@ 1aaefd4

main test-branch
Last change on this file since 1aaefd4 was ea777aa, checked in by Alex Wilton <awilton@…>, 3 years ago

Moved examples, include, build_default.properties, common.xml, and README out from dev.civl.com into the root of the repo.

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@5704 fb995dde-84ed-4084-dfe6-e5aef3e2452c

  • Property mode set to 100644
File size: 1.6 KB
Line 
1/* This header file contains the data structure for managing write
2 * sets for loop invariants, as well as the interfaces for the data
3 * structure.
4 *
5 */
6
7#ifndef _LOOP_ASSIGNS_GEN_
8#define _LOOP_ASSIGNS_GEN_
9
10#include<mem.cvh>
11
12#pragma CIVL ACSL
13
14typedef struct _loop_write_set $loop_write_set;
15
16/*@ depends_on \nothing;
17 @ executes_when \true;
18 @*/
19$state_f $loop_write_set $loop_write_set_new();
20
21/* Description: Updates the argument of $loop_write_set type by doing
22 * union with a new write set--iter_mem, which is
23 * collected from the latest iteration. Return true if
24 * and only if the $loop_write_set has been widening.
25 */
26/*@ depends_on \access(&ws);
27 @ executes_when \true;
28 @*/
29$state_f $loop_write_set $loop_write_set_union($loop_write_set ws, $mem iter_mem);
30
31/* Description: Havoc all the memory location references in the given
32 * $loop_write_set object. The evaluation of all the
33 * referred memory objects is associated to the given
34 * pre_state. Returns a boolean value assumption which
35 * is part of the result of the havoc operation.
36 */
37/*@ depends_on \nothing;
38 @ executes_when \true;
39 @*/
40$atomic_f _Bool $loop_write_set_havoc($loop_write_set ws);
41
42/* Description: Attempt to widening all the memory location references in the
43 * given $loop_write_set object. Returns true if and only
44 * if the ws has been successfully widening.
45 */
46/*@ depends_on \nothing;
47 @ executes_when \true;
48 @*/
49$state_f $loop_write_set $loop_write_set_widening($loop_write_set ws);
50
51#endif
52
Note: See TracBrowser for help on using the repository browser.