for numTimes in 2 3 4 ; do \
	for N in 1 2 3 4 5 6 7 ; do \
	../CVT verify -noprint -confignumTimes=$numTimes -configN=$N -maxworkers=2 adderPar.chpl ; \
	done ; done
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 2; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 1; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 6 (parent: 3)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 7 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 8 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 9 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 23
 | | | location 23 (scope: 6)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 24
 | | | location 24 (scope: 6)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 26
 | | | location 25 (scope: 7)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork _CVT_tmp_0(me); goto location 27
 | | | location 26 (scope: 7)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 27
 | | | location 27 (scope: 7)
 | | | | when (true) ; goto location 28
 | | | location 28 (scope: 7)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 30
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 25
 | | | location 30 (scope: 7)
 | | | | when (true) join _CVT_process; goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) _CVT_iterator = fork _CVT_range_function(me, 0, N-1); goto location 32
 | | | location 32 (scope: 6)
 | | | | when (true) ; goto location 33
 | | | location 33 (scope: 6)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 34
 | | | location 34 (scope: 6)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 35
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 38
 | | | location 35 (scope: 6)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 36
 | | | location 36 (scope: 6)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 32
 | | | location 37 (scope: 8)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 39
 | | | location 38 (scope: 8)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) ; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 42
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 37
 | | | location 42 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 44
 | | | location 43 (scope: 9)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 45
 | | | location 44 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 45
 | | | location 45 (scope: 9)
 | | | | when (true) ; goto location 46
 | | | location 46 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 47
 | | | location 47 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 48
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 43
 | | | location 48 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 49
 | | | location 49 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 50 (scope: 0)
 | | | | when (true) return; goto location 51
 | | | location 51 (scope: 0)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 10 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 11 (parent: 10)
 | | locations (start=52)
 | | | location 52 (scope: 10)
 | | | | when (true) current = lower; goto location 53
 | | | location 54 (scope: 11)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 55
 | | | location 55 (scope: 11)
 | | | | when (true) current = current+1; goto location 53
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 56 (scope: 10)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 57
 | | | location 57 (scope: 10)
 | | | | when (true) return; goto location 58
 | | | location 58 (scope: 10)
 | function _CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 4 (parent: 3)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 5 (parent: 4)
 | | locations (start=16)
 | | | location 16 (scope: 4)
 | | | | when (true) ; goto location 17
 | | | location 19 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 20
 | | | location 20 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 16
 | | | location 17 (scope: 4)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 18
 | | | location 18 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 19
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 21
 | | | location 21 (scope: 4)
 | | | | when (true) return; goto location 22
 | | | location 22 (scope: 3)

STATS:
   maxProcs            :7
   statesSeen          : 514
   statesMatched       : 4
   transitionsExecuted : 517
   proverValidCalls    : 2262
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 0.675
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 2; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 2; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 6 (parent: 3)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 7 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 8 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 9 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 23
 | | | location 23 (scope: 6)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 24
 | | | location 24 (scope: 6)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 26
 | | | location 25 (scope: 7)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork _CVT_tmp_0(me); goto location 27
 | | | location 26 (scope: 7)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 27
 | | | location 27 (scope: 7)
 | | | | when (true) ; goto location 28
 | | | location 28 (scope: 7)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 30
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 25
 | | | location 30 (scope: 7)
 | | | | when (true) join _CVT_process; goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) _CVT_iterator = fork _CVT_range_function(me, 0, N-1); goto location 32
 | | | location 32 (scope: 6)
 | | | | when (true) ; goto location 33
 | | | location 33 (scope: 6)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 34
 | | | location 34 (scope: 6)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 35
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 38
 | | | location 35 (scope: 6)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 36
 | | | location 36 (scope: 6)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 32
 | | | location 37 (scope: 8)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 39
 | | | location 38 (scope: 8)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) ; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 42
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 37
 | | | location 42 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 44
 | | | location 43 (scope: 9)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 45
 | | | location 44 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 45
 | | | location 45 (scope: 9)
 | | | | when (true) ; goto location 46
 | | | location 46 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 47
 | | | location 47 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 48
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 43
 | | | location 48 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 49
 | | | location 49 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 50 (scope: 0)
 | | | | when (true) return; goto location 51
 | | | location 51 (scope: 0)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 10 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 11 (parent: 10)
 | | locations (start=52)
 | | | location 52 (scope: 10)
 | | | | when (true) current = lower; goto location 53
 | | | location 54 (scope: 11)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 55
 | | | location 55 (scope: 11)
 | | | | when (true) current = current+1; goto location 53
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 56 (scope: 10)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 57
 | | | location 57 (scope: 10)
 | | | | when (true) return; goto location 58
 | | | location 58 (scope: 10)
 | function _CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 4 (parent: 3)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 5 (parent: 4)
 | | locations (start=16)
 | | | location 16 (scope: 4)
 | | | | when (true) ; goto location 17
 | | | location 19 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 20
 | | | location 20 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 16
 | | | location 17 (scope: 4)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 18
 | | | location 18 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 19
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 21
 | | | location 21 (scope: 4)
 | | | | when (true) return; goto location 22
 | | | location 22 (scope: 3)

STATS:
   maxProcs            :7
   statesSeen          : 1363
   statesMatched       : 18
   transitionsExecuted : 1380
   proverValidCalls    : 6414
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 1.58
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 2; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 3; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 6 (parent: 3)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 8 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 9 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 7 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 23
 | | | location 23 (scope: 6)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 24
 | | | location 24 (scope: 6)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 26
 | | | location 25 (scope: 7)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork _CVT_tmp_0(me); goto location 27
 | | | location 26 (scope: 7)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 27
 | | | location 27 (scope: 7)
 | | | | when (true) ; goto location 28
 | | | location 28 (scope: 7)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 30
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 25
 | | | location 30 (scope: 7)
 | | | | when (true) join _CVT_process; goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) _CVT_iterator = fork _CVT_range_function(me, 0, N-1); goto location 32
 | | | location 32 (scope: 6)
 | | | | when (true) ; goto location 33
 | | | location 33 (scope: 6)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 34
 | | | location 34 (scope: 6)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 38
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 35
 | | | location 35 (scope: 6)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 36
 | | | location 36 (scope: 6)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 32
 | | | location 37 (scope: 8)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 39
 | | | location 38 (scope: 8)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) ; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 42
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 37
 | | | location 42 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 44
 | | | location 43 (scope: 9)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 45
 | | | location 44 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 45
 | | | location 45 (scope: 9)
 | | | | when (true) ; goto location 46
 | | | location 46 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 47
 | | | location 47 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 48
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 43
 | | | location 48 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 49
 | | | location 49 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 50 (scope: 0)
 | | | | when (true) return; goto location 51
 | | | location 51 (scope: 0)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 10 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 11 (parent: 10)
 | | locations (start=52)
 | | | location 52 (scope: 10)
 | | | | when (true) current = lower; goto location 53
 | | | location 54 (scope: 11)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 55
 | | | location 55 (scope: 11)
 | | | | when (true) current = current+1; goto location 53
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 56 (scope: 10)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 57
 | | | location 57 (scope: 10)
 | | | | when (true) return; goto location 58
 | | | location 58 (scope: 10)
 | function _CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 4 (parent: 3)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 5 (parent: 4)
 | | locations (start=16)
 | | | location 16 (scope: 4)
 | | | | when (true) ; goto location 17
 | | | location 19 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 20
 | | | location 20 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 16
 | | | location 17 (scope: 4)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 18
 | | | location 18 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 19
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 21
 | | | location 21 (scope: 4)
 | | | | when (true) return; goto location 22
 | | | location 22 (scope: 3)

STATS:
   maxProcs            :7
   statesSeen          : 3564
   statesMatched       : 72
   transitionsExecuted : 3635
   proverValidCalls    : 17553
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 3.361
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 2; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 4; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 6 (parent: 3)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 7 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 8 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 9 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 23
 | | | location 23 (scope: 6)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 24
 | | | location 24 (scope: 6)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 26
 | | | location 25 (scope: 7)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork _CVT_tmp_0(me); goto location 27
 | | | location 26 (scope: 7)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 27
 | | | location 27 (scope: 7)
 | | | | when (true) ; goto location 28
 | | | location 28 (scope: 7)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 30
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 25
 | | | location 30 (scope: 7)
 | | | | when (true) join _CVT_process; goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) _CVT_iterator = fork _CVT_range_function(me, 0, N-1); goto location 32
 | | | location 32 (scope: 6)
 | | | | when (true) ; goto location 33
 | | | location 33 (scope: 6)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 34
 | | | location 34 (scope: 6)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 35
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 38
 | | | location 35 (scope: 6)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 36
 | | | location 36 (scope: 6)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 32
 | | | location 37 (scope: 8)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 39
 | | | location 38 (scope: 8)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) ; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 42
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 37
 | | | location 42 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 44
 | | | location 43 (scope: 9)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 45
 | | | location 44 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 45
 | | | location 45 (scope: 9)
 | | | | when (true) ; goto location 46
 | | | location 46 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 47
 | | | location 47 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 48
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 43
 | | | location 48 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 49
 | | | location 49 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 50 (scope: 0)
 | | | | when (true) return; goto location 51
 | | | location 51 (scope: 0)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 10 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 11 (parent: 10)
 | | locations (start=52)
 | | | location 52 (scope: 10)
 | | | | when (true) current = lower; goto location 53
 | | | location 54 (scope: 11)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 55
 | | | location 55 (scope: 11)
 | | | | when (true) current = current+1; goto location 53
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 56 (scope: 10)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 57
 | | | location 57 (scope: 10)
 | | | | when (true) return; goto location 58
 | | | location 58 (scope: 10)
 | function _CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 4 (parent: 3)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 5 (parent: 4)
 | | locations (start=16)
 | | | location 16 (scope: 4)
 | | | | when (true) ; goto location 17
 | | | location 19 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 20
 | | | location 20 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 16
 | | | location 17 (scope: 4)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 18
 | | | location 18 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 19
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 21
 | | | location 21 (scope: 4)
 | | | | when (true) return; goto location 22
 | | | location 22 (scope: 3)

STATS:
   maxProcs            :7
   statesSeen          : 9211
   statesMatched       : 270
   transitionsExecuted : 9480
   proverValidCalls    : 46814
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 4.727
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 2; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 5; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 6 (parent: 3)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 7 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 8 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 9 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 23
 | | | location 23 (scope: 6)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 24
 | | | location 24 (scope: 6)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 26
 | | | location 25 (scope: 7)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork _CVT_tmp_0(me); goto location 27
 | | | location 26 (scope: 7)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 27
 | | | location 27 (scope: 7)
 | | | | when (true) ; goto location 28
 | | | location 28 (scope: 7)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 30
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 25
 | | | location 30 (scope: 7)
 | | | | when (true) join _CVT_process; goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) _CVT_iterator = fork _CVT_range_function(me, 0, N-1); goto location 32
 | | | location 32 (scope: 6)
 | | | | when (true) ; goto location 33
 | | | location 33 (scope: 6)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 34
 | | | location 34 (scope: 6)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 35
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 38
 | | | location 35 (scope: 6)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 36
 | | | location 36 (scope: 6)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 32
 | | | location 37 (scope: 8)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 39
 | | | location 38 (scope: 8)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) ; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 42
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 37
 | | | location 42 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 44
 | | | location 43 (scope: 9)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 45
 | | | location 44 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 45
 | | | location 45 (scope: 9)
 | | | | when (true) ; goto location 46
 | | | location 46 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 47
 | | | location 47 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 48
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 43
 | | | location 48 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 49
 | | | location 49 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 50 (scope: 0)
 | | | | when (true) return; goto location 51
 | | | location 51 (scope: 0)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 10 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 11 (parent: 10)
 | | locations (start=52)
 | | | location 52 (scope: 10)
 | | | | when (true) current = lower; goto location 53
 | | | location 54 (scope: 11)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 55
 | | | location 55 (scope: 11)
 | | | | when (true) current = current+1; goto location 53
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 56 (scope: 10)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 57
 | | | location 57 (scope: 10)
 | | | | when (true) return; goto location 58
 | | | location 58 (scope: 10)
 | function _CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 4 (parent: 3)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 5 (parent: 4)
 | | locations (start=16)
 | | | location 16 (scope: 4)
 | | | | when (true) ; goto location 17
 | | | location 19 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 20
 | | | location 20 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 16
 | | | location 17 (scope: 4)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 18
 | | | location 18 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 19
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 21
 | | | location 21 (scope: 4)
 | | | | when (true) return; goto location 22
 | | | location 22 (scope: 3)

STATS:
   maxProcs            :7
   statesSeen          : 23428
   statesMatched       : 924
   transitionsExecuted : 24351
   proverValidCalls    : 121788
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 10.659
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 2; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 6; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 6 (parent: 3)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 8 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 9 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 7 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 23
 | | | location 23 (scope: 6)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 24
 | | | location 24 (scope: 6)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 26
 | | | location 25 (scope: 7)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork _CVT_tmp_0(me); goto location 27
 | | | location 26 (scope: 7)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 27
 | | | location 27 (scope: 7)
 | | | | when (true) ; goto location 28
 | | | location 28 (scope: 7)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 30
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 25
 | | | location 30 (scope: 7)
 | | | | when (true) join _CVT_process; goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) _CVT_iterator = fork _CVT_range_function(me, 0, N-1); goto location 32
 | | | location 32 (scope: 6)
 | | | | when (true) ; goto location 33
 | | | location 33 (scope: 6)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 34
 | | | location 34 (scope: 6)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 38
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 35
 | | | location 35 (scope: 6)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 36
 | | | location 36 (scope: 6)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 32
 | | | location 37 (scope: 8)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 39
 | | | location 38 (scope: 8)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) ; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 42
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 37
 | | | location 42 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 44
 | | | location 43 (scope: 9)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 45
 | | | location 44 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 45
 | | | location 45 (scope: 9)
 | | | | when (true) ; goto location 46
 | | | location 46 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 47
 | | | location 47 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 48
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 43
 | | | location 48 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 49
 | | | location 49 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 50 (scope: 0)
 | | | | when (true) return; goto location 51
 | | | location 51 (scope: 0)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 10 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 11 (parent: 10)
 | | locations (start=52)
 | | | location 52 (scope: 10)
 | | | | when (true) current = lower; goto location 53
 | | | location 54 (scope: 11)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 55
 | | | location 55 (scope: 11)
 | | | | when (true) current = current+1; goto location 53
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 56 (scope: 10)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 57
 | | | location 57 (scope: 10)
 | | | | when (true) return; goto location 58
 | | | location 58 (scope: 10)
 | function _CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 4 (parent: 3)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 5 (parent: 4)
 | | locations (start=16)
 | | | location 16 (scope: 4)
 | | | | when (true) ; goto location 17
 | | | location 19 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 20
 | | | location 20 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 16
 | | | location 17 (scope: 4)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 18
 | | | location 18 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 19
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 21
 | | | location 21 (scope: 4)
 | | | | when (true) return; goto location 22
 | | | location 22 (scope: 3)

STATS:
   maxProcs            :7
   statesSeen          : 58571
   statesMatched       : 2898
   transitionsExecuted : 61468
   proverValidCalls    : 309509
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 19.241
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 2; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 7; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 6 (parent: 3)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 9 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 7 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 8 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 23
 | | | location 23 (scope: 6)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 24
 | | | location 24 (scope: 6)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 26
 | | | location 25 (scope: 7)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork _CVT_tmp_0(me); goto location 27
 | | | location 26 (scope: 7)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 27
 | | | location 27 (scope: 7)
 | | | | when (true) ; goto location 28
 | | | location 28 (scope: 7)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 25
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 30
 | | | location 30 (scope: 7)
 | | | | when (true) join _CVT_process; goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) _CVT_iterator = fork _CVT_range_function(me, 0, N-1); goto location 32
 | | | location 32 (scope: 6)
 | | | | when (true) ; goto location 33
 | | | location 33 (scope: 6)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 34
 | | | location 34 (scope: 6)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 38
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 35
 | | | location 35 (scope: 6)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 36
 | | | location 36 (scope: 6)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 32
 | | | location 37 (scope: 8)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 39
 | | | location 38 (scope: 8)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) ; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 42
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 37
 | | | location 42 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 44
 | | | location 43 (scope: 9)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 45
 | | | location 44 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 45
 | | | location 45 (scope: 9)
 | | | | when (true) ; goto location 46
 | | | location 46 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 47
 | | | location 47 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 48
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 43
 | | | location 48 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 49
 | | | location 49 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 50 (scope: 0)
 | | | | when (true) return; goto location 51
 | | | location 51 (scope: 0)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 10 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 11 (parent: 10)
 | | locations (start=52)
 | | | location 52 (scope: 10)
 | | | | when (true) current = lower; goto location 53
 | | | location 54 (scope: 11)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 55
 | | | location 55 (scope: 11)
 | | | | when (true) current = current+1; goto location 53
 | | | location 53 (scope: 10)
 | | | | when (!(current<=upper)) ; goto location 56
 | | | | when (current<=upper) ; goto location 54
 | | | location 53 (scope: 10)
 | | | | when (!(current<=upper)) ; goto location 56
 | | | | when (current<=upper) ; goto location 54
 | | | location 56 (scope: 10)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 57
 | | | location 57 (scope: 10)
 | | | | when (true) return; goto location 58
 | | | location 58 (scope: 10)
 | function _CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 4 (parent: 3)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 5 (parent: 4)
 | | locations (start=16)
 | | | location 16 (scope: 4)
 | | | | when (true) ; goto location 17
 | | | location 19 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 20
 | | | location 20 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 16
 | | | location 17 (scope: 4)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 18
 | | | location 18 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 19
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 21
 | | | location 21 (scope: 4)
 | | | | when (true) return; goto location 22
 | | | location 22 (scope: 3)

STATS:
   maxProcs            :7
   statesSeen          : 144024
   statesMatched       : 8464
   transitionsExecuted : 152487
   proverValidCalls    : 770158
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 53.467
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 3; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 1; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 6 (parent: 3)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 8 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 9 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 7 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 23
 | | | location 23 (scope: 6)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 24
 | | | location 24 (scope: 6)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 26
 | | | location 25 (scope: 7)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork _CVT_tmp_0(me); goto location 27
 | | | location 26 (scope: 7)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 27
 | | | location 27 (scope: 7)
 | | | | when (true) ; goto location 28
 | | | location 28 (scope: 7)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 30
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 25
 | | | location 30 (scope: 7)
 | | | | when (true) join _CVT_process; goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) _CVT_iterator = fork _CVT_range_function(me, 0, N-1); goto location 32
 | | | location 32 (scope: 6)
 | | | | when (true) ; goto location 33
 | | | location 33 (scope: 6)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 34
 | | | location 34 (scope: 6)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 38
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 35
 | | | location 35 (scope: 6)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 36
 | | | location 36 (scope: 6)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 32
 | | | location 37 (scope: 8)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 39
 | | | location 38 (scope: 8)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) ; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 42
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 37
 | | | location 42 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 44
 | | | location 43 (scope: 9)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 45
 | | | location 44 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 45
 | | | location 45 (scope: 9)
 | | | | when (true) ; goto location 46
 | | | location 46 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 47
 | | | location 47 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 48
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 43
 | | | location 48 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 49
 | | | location 49 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 50 (scope: 0)
 | | | | when (true) return; goto location 51
 | | | location 51 (scope: 0)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 10 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 11 (parent: 10)
 | | locations (start=52)
 | | | location 52 (scope: 10)
 | | | | when (true) current = lower; goto location 53
 | | | location 54 (scope: 11)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 55
 | | | location 55 (scope: 11)
 | | | | when (true) current = current+1; goto location 53
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 56 (scope: 10)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 57
 | | | location 57 (scope: 10)
 | | | | when (true) return; goto location 58
 | | | location 58 (scope: 10)
 | function _CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 4 (parent: 3)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 5 (parent: 4)
 | | locations (start=16)
 | | | location 16 (scope: 4)
 | | | | when (true) ; goto location 17
 | | | location 19 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 20
 | | | location 20 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 16
 | | | location 17 (scope: 4)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 18
 | | | location 18 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 19
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 21
 | | | location 21 (scope: 4)
 | | | | when (true) return; goto location 22
 | | | location 22 (scope: 3)

STATS:
   maxProcs            :8
   statesSeen          : 761
   statesMatched       : 6
   transitionsExecuted : 766
   proverValidCalls    : 3363
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 0.758
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 3; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 2; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 6 (parent: 3)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 7 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 8 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 9 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 23
 | | | location 23 (scope: 6)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 24
 | | | location 24 (scope: 6)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 26
 | | | location 25 (scope: 7)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork _CVT_tmp_0(me); goto location 27
 | | | location 26 (scope: 7)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 27
 | | | location 27 (scope: 7)
 | | | | when (true) ; goto location 28
 | | | location 28 (scope: 7)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 30
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 25
 | | | location 30 (scope: 7)
 | | | | when (true) join _CVT_process; goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) _CVT_iterator = fork _CVT_range_function(me, 0, N-1); goto location 32
 | | | location 32 (scope: 6)
 | | | | when (true) ; goto location 33
 | | | location 33 (scope: 6)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 34
 | | | location 34 (scope: 6)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 35
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 38
 | | | location 35 (scope: 6)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 36
 | | | location 36 (scope: 6)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 32
 | | | location 37 (scope: 8)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 39
 | | | location 38 (scope: 8)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) ; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 42
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 37
 | | | location 42 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 44
 | | | location 43 (scope: 9)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 45
 | | | location 44 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 45
 | | | location 45 (scope: 9)
 | | | | when (true) ; goto location 46
 | | | location 46 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 47
 | | | location 47 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 48
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 43
 | | | location 48 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 49
 | | | location 49 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 50 (scope: 0)
 | | | | when (true) return; goto location 51
 | | | location 51 (scope: 0)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 10 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 11 (parent: 10)
 | | locations (start=52)
 | | | location 52 (scope: 10)
 | | | | when (true) current = lower; goto location 53
 | | | location 54 (scope: 11)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 55
 | | | location 55 (scope: 11)
 | | | | when (true) current = current+1; goto location 53
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 56 (scope: 10)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 57
 | | | location 57 (scope: 10)
 | | | | when (true) return; goto location 58
 | | | location 58 (scope: 10)
 | function _CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 4 (parent: 3)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 5 (parent: 4)
 | | locations (start=16)
 | | | location 16 (scope: 4)
 | | | | when (true) ; goto location 17
 | | | location 19 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 20
 | | | location 20 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 16
 | | | location 17 (scope: 4)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 18
 | | | location 18 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 19
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 21
 | | | location 21 (scope: 4)
 | | | | when (true) return; goto location 22
 | | | location 22 (scope: 3)

STATS:
   maxProcs            :8
   statesSeen          : 2254
   statesMatched       : 30
   transitionsExecuted : 2283
   proverValidCalls    : 10644
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 1.939
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 3; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 3; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 6 (parent: 3)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 8 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 9 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 7 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 23
 | | | location 23 (scope: 6)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 24
 | | | location 24 (scope: 6)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 26
 | | | location 25 (scope: 7)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork _CVT_tmp_0(me); goto location 27
 | | | location 26 (scope: 7)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 27
 | | | location 27 (scope: 7)
 | | | | when (true) ; goto location 28
 | | | location 28 (scope: 7)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 30
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 25
 | | | location 30 (scope: 7)
 | | | | when (true) join _CVT_process; goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) _CVT_iterator = fork _CVT_range_function(me, 0, N-1); goto location 32
 | | | location 32 (scope: 6)
 | | | | when (true) ; goto location 33
 | | | location 33 (scope: 6)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 34
 | | | location 34 (scope: 6)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 38
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 35
 | | | location 35 (scope: 6)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 36
 | | | location 36 (scope: 6)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 32
 | | | location 37 (scope: 8)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 39
 | | | location 38 (scope: 8)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) ; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 42
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 37
 | | | location 42 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 44
 | | | location 43 (scope: 9)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 45
 | | | location 44 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 45
 | | | location 45 (scope: 9)
 | | | | when (true) ; goto location 46
 | | | location 46 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 47
 | | | location 47 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 48
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 43
 | | | location 48 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 49
 | | | location 49 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 50 (scope: 0)
 | | | | when (true) return; goto location 51
 | | | location 51 (scope: 0)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 10 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 11 (parent: 10)
 | | locations (start=52)
 | | | location 52 (scope: 10)
 | | | | when (true) current = lower; goto location 53
 | | | location 54 (scope: 11)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 55
 | | | location 55 (scope: 11)
 | | | | when (true) current = current+1; goto location 53
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 56 (scope: 10)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 57
 | | | location 57 (scope: 10)
 | | | | when (true) return; goto location 58
 | | | location 58 (scope: 10)
 | function _CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 4 (parent: 3)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 5 (parent: 4)
 | | locations (start=16)
 | | | location 16 (scope: 4)
 | | | | when (true) ; goto location 17
 | | | location 19 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 20
 | | | location 20 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 16
 | | | location 17 (scope: 4)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 18
 | | | location 18 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 19
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 21
 | | | location 21 (scope: 4)
 | | | | when (true) return; goto location 22
 | | | location 22 (scope: 3)

STATS:
   maxProcs            :8
   statesSeen          : 6213
   statesMatched       : 126
   transitionsExecuted : 6338
   proverValidCalls    : 30653
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 3.688
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 3; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 4; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 6 (parent: 3)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 8 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 9 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 7 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 23
 | | | location 23 (scope: 6)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 24
 | | | location 24 (scope: 6)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 26
 | | | location 25 (scope: 7)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork _CVT_tmp_0(me); goto location 27
 | | | location 26 (scope: 7)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 27
 | | | location 27 (scope: 7)
 | | | | when (true) ; goto location 28
 | | | location 28 (scope: 7)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 30
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 25
 | | | location 30 (scope: 7)
 | | | | when (true) join _CVT_process; goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) _CVT_iterator = fork _CVT_range_function(me, 0, N-1); goto location 32
 | | | location 32 (scope: 6)
 | | | | when (true) ; goto location 33
 | | | location 33 (scope: 6)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 34
 | | | location 34 (scope: 6)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 38
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 35
 | | | location 35 (scope: 6)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 36
 | | | location 36 (scope: 6)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 32
 | | | location 37 (scope: 8)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 39
 | | | location 38 (scope: 8)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) ; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 42
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 37
 | | | location 42 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 44
 | | | location 43 (scope: 9)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 45
 | | | location 44 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 45
 | | | location 45 (scope: 9)
 | | | | when (true) ; goto location 46
 | | | location 46 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 47
 | | | location 47 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 48
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 43
 | | | location 48 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 49
 | | | location 49 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 50 (scope: 0)
 | | | | when (true) return; goto location 51
 | | | location 51 (scope: 0)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 10 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 11 (parent: 10)
 | | locations (start=52)
 | | | location 52 (scope: 10)
 | | | | when (true) current = lower; goto location 53
 | | | location 54 (scope: 11)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 55
 | | | location 55 (scope: 11)
 | | | | when (true) current = current+1; goto location 53
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 56 (scope: 10)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 57
 | | | location 57 (scope: 10)
 | | | | when (true) return; goto location 58
 | | | location 58 (scope: 10)
 | function _CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 4 (parent: 3)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 5 (parent: 4)
 | | locations (start=16)
 | | | location 16 (scope: 4)
 | | | | when (true) ; goto location 17
 | | | location 19 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 20
 | | | location 20 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 16
 | | | location 17 (scope: 4)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 18
 | | | location 18 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 19
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 21
 | | | location 21 (scope: 4)
 | | | | when (true) return; goto location 22
 | | | location 22 (scope: 3)

STATS:
   maxProcs            :8
   statesSeen          : 16550
   statesMatched       : 486
   transitionsExecuted : 17035
   proverValidCalls    : 84201
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 6.178
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 3; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 5; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 6 (parent: 3)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 7 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 8 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 9 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 23
 | | | location 23 (scope: 6)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 24
 | | | location 24 (scope: 6)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 26
 | | | location 25 (scope: 7)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork _CVT_tmp_0(me); goto location 27
 | | | location 26 (scope: 7)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 27
 | | | location 27 (scope: 7)
 | | | | when (true) ; goto location 28
 | | | location 28 (scope: 7)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 30
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 25
 | | | location 30 (scope: 7)
 | | | | when (true) join _CVT_process; goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) _CVT_iterator = fork _CVT_range_function(me, 0, N-1); goto location 32
 | | | location 32 (scope: 6)
 | | | | when (true) ; goto location 33
 | | | location 33 (scope: 6)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 34
 | | | location 34 (scope: 6)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 35
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 38
 | | | location 35 (scope: 6)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 36
 | | | location 36 (scope: 6)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 32
 | | | location 37 (scope: 8)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 39
 | | | location 38 (scope: 8)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) ; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 42
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 37
 | | | location 42 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 44
 | | | location 43 (scope: 9)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 45
 | | | location 44 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 45
 | | | location 45 (scope: 9)
 | | | | when (true) ; goto location 46
 | | | location 46 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 47
 | | | location 47 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 48
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 43
 | | | location 48 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 49
 | | | location 49 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 50 (scope: 0)
 | | | | when (true) return; goto location 51
 | | | location 51 (scope: 0)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 10 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 11 (parent: 10)
 | | locations (start=52)
 | | | location 52 (scope: 10)
 | | | | when (true) current = lower; goto location 53
 | | | location 54 (scope: 11)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 55
 | | | location 55 (scope: 11)
 | | | | when (true) current = current+1; goto location 53
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 56 (scope: 10)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 57
 | | | location 57 (scope: 10)
 | | | | when (true) return; goto location 58
 | | | location 58 (scope: 10)
 | function _CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 4 (parent: 3)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 5 (parent: 4)
 | | locations (start=16)
 | | | location 16 (scope: 4)
 | | | | when (true) ; goto location 17
 | | | location 19 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 20
 | | | location 20 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 16
 | | | location 17 (scope: 4)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 18
 | | | location 18 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 19
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 21
 | | | location 21 (scope: 4)
 | | | | when (true) return; goto location 22
 | | | location 22 (scope: 3)

STATS:
   maxProcs            :8
   statesSeen          : 42916
   statesMatched       : 1694
   transitionsExecuted : 44609
   proverValidCalls    : 223187
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 12.69
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 3; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 6; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 6 (parent: 3)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 8 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 9 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 7 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 23
 | | | location 23 (scope: 6)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 24
 | | | location 24 (scope: 6)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 26
 | | | location 25 (scope: 7)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork _CVT_tmp_0(me); goto location 27
 | | | location 26 (scope: 7)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 27
 | | | location 27 (scope: 7)
 | | | | when (true) ; goto location 28
 | | | location 28 (scope: 7)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 30
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 25
 | | | location 30 (scope: 7)
 | | | | when (true) join _CVT_process; goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) _CVT_iterator = fork _CVT_range_function(me, 0, N-1); goto location 32
 | | | location 32 (scope: 6)
 | | | | when (true) ; goto location 33
 | | | location 33 (scope: 6)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 34
 | | | location 34 (scope: 6)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 38
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 35
 | | | location 35 (scope: 6)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 36
 | | | location 36 (scope: 6)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 32
 | | | location 37 (scope: 8)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 39
 | | | location 38 (scope: 8)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) ; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 42
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 37
 | | | location 42 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 44
 | | | location 43 (scope: 9)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 45
 | | | location 44 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 45
 | | | location 45 (scope: 9)
 | | | | when (true) ; goto location 46
 | | | location 46 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 47
 | | | location 47 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 48
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 43
 | | | location 48 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 49
 | | | location 49 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 50 (scope: 0)
 | | | | when (true) return; goto location 51
 | | | location 51 (scope: 0)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 10 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 11 (parent: 10)
 | | locations (start=52)
 | | | location 52 (scope: 10)
 | | | | when (true) current = lower; goto location 53
 | | | location 54 (scope: 11)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 55
 | | | location 55 (scope: 11)
 | | | | when (true) current = current+1; goto location 53
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 56 (scope: 10)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 57
 | | | location 57 (scope: 10)
 | | | | when (true) return; goto location 58
 | | | location 58 (scope: 10)
 | function _CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 4 (parent: 3)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 5 (parent: 4)
 | | locations (start=16)
 | | | location 16 (scope: 4)
 | | | | when (true) ; goto location 17
 | | | location 19 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 20
 | | | location 20 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 16
 | | | location 17 (scope: 4)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 18
 | | | location 18 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 19
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 21
 | | | location 21 (scope: 4)
 | | | | when (true) return; goto location 22
 | | | location 22 (scope: 3)

STATS:
   maxProcs            :8
   statesSeen          : 108734
   statesMatched       : 5382
   transitionsExecuted : 114115
   proverValidCalls    : 574693
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 35.464
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 3; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 7; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 6 (parent: 3)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 8 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 9 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 7 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 23
 | | | location 23 (scope: 6)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 24
 | | | location 24 (scope: 6)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 26
 | | | location 25 (scope: 7)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork _CVT_tmp_0(me); goto location 27
 | | | location 26 (scope: 7)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 27
 | | | location 27 (scope: 7)
 | | | | when (true) ; goto location 28
 | | | location 28 (scope: 7)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 30
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 25
 | | | location 30 (scope: 7)
 | | | | when (true) join _CVT_process; goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) _CVT_iterator = fork _CVT_range_function(me, 0, N-1); goto location 32
 | | | location 32 (scope: 6)
 | | | | when (true) ; goto location 33
 | | | location 33 (scope: 6)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 34
 | | | location 34 (scope: 6)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 38
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 35
 | | | location 35 (scope: 6)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 36
 | | | location 36 (scope: 6)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 32
 | | | location 37 (scope: 8)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 39
 | | | location 38 (scope: 8)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) ; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 42
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 37
 | | | location 42 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 44
 | | | location 43 (scope: 9)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 45
 | | | location 44 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 45
 | | | location 45 (scope: 9)
 | | | | when (true) ; goto location 46
 | | | location 46 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 47
 | | | location 47 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 48
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 43
 | | | location 48 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 49
 | | | location 49 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 50 (scope: 0)
 | | | | when (true) return; goto location 51
 | | | location 51 (scope: 0)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 10 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 11 (parent: 10)
 | | locations (start=52)
 | | | location 52 (scope: 10)
 | | | | when (true) current = lower; goto location 53
 | | | location 54 (scope: 11)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 55
 | | | location 55 (scope: 11)
 | | | | when (true) current = current+1; goto location 53
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 56 (scope: 10)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 57
 | | | location 57 (scope: 10)
 | | | | when (true) return; goto location 58
 | | | location 58 (scope: 10)
 | function _CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 4 (parent: 3)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 5 (parent: 4)
 | | locations (start=16)
 | | | location 16 (scope: 4)
 | | | | when (true) ; goto location 17
 | | | location 19 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 20
 | | | location 20 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 16
 | | | location 17 (scope: 4)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 18
 | | | location 18 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 19
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 21
 | | | location 21 (scope: 4)
 | | | | when (true) return; goto location 22
 | | | location 22 (scope: 3)

STATS:
   maxProcs            :8
   statesSeen          : 269999
   statesMatched       : 15870
   transitionsExecuted : 285868
   proverValidCalls    : 1443891
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 98.497
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 4; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 1; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 6 (parent: 3)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 8 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 9 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 7 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 23
 | | | location 23 (scope: 6)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 24
 | | | location 24 (scope: 6)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 26
 | | | location 25 (scope: 7)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork _CVT_tmp_0(me); goto location 27
 | | | location 26 (scope: 7)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 27
 | | | location 27 (scope: 7)
 | | | | when (true) ; goto location 28
 | | | location 28 (scope: 7)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 30
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 25
 | | | location 30 (scope: 7)
 | | | | when (true) join _CVT_process; goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) _CVT_iterator = fork _CVT_range_function(me, 0, N-1); goto location 32
 | | | location 32 (scope: 6)
 | | | | when (true) ; goto location 33
 | | | location 33 (scope: 6)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 34
 | | | location 34 (scope: 6)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 38
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 35
 | | | location 35 (scope: 6)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 36
 | | | location 36 (scope: 6)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 32
 | | | location 37 (scope: 8)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 39
 | | | location 38 (scope: 8)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) ; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 42
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 37
 | | | location 42 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 44
 | | | location 43 (scope: 9)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 45
 | | | location 44 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 45
 | | | location 45 (scope: 9)
 | | | | when (true) ; goto location 46
 | | | location 46 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 47
 | | | location 47 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 48
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 43
 | | | location 48 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 49
 | | | location 49 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 50 (scope: 0)
 | | | | when (true) return; goto location 51
 | | | location 51 (scope: 0)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 10 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 11 (parent: 10)
 | | locations (start=52)
 | | | location 52 (scope: 10)
 | | | | when (true) current = lower; goto location 53
 | | | location 54 (scope: 11)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 55
 | | | location 55 (scope: 11)
 | | | | when (true) current = current+1; goto location 53
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 56 (scope: 10)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 57
 | | | location 57 (scope: 10)
 | | | | when (true) return; goto location 58
 | | | location 58 (scope: 10)
 | function _CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 4 (parent: 3)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 5 (parent: 4)
 | | locations (start=16)
 | | | location 16 (scope: 4)
 | | | | when (true) ; goto location 17
 | | | location 19 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 20
 | | | location 20 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 16
 | | | location 17 (scope: 4)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 18
 | | | location 18 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 19
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 21
 | | | location 21 (scope: 4)
 | | | | when (true) return; goto location 22
 | | | location 22 (scope: 3)

STATS:
   maxProcs            :9
   statesSeen          : 1008
   statesMatched       : 8
   transitionsExecuted : 1015
   proverValidCalls    : 4467
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 0.893
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 4; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 2; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 6 (parent: 3)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 8 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 9 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 7 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 23
 | | | location 23 (scope: 6)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 24
 | | | location 24 (scope: 6)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 26
 | | | location 25 (scope: 7)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork _CVT_tmp_0(me); goto location 27
 | | | location 26 (scope: 7)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 27
 | | | location 27 (scope: 7)
 | | | | when (true) ; goto location 28
 | | | location 28 (scope: 7)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 30
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 25
 | | | location 30 (scope: 7)
 | | | | when (true) join _CVT_process; goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) _CVT_iterator = fork _CVT_range_function(me, 0, N-1); goto location 32
 | | | location 32 (scope: 6)
 | | | | when (true) ; goto location 33
 | | | location 33 (scope: 6)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 34
 | | | location 34 (scope: 6)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 38
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 35
 | | | location 35 (scope: 6)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 36
 | | | location 36 (scope: 6)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 32
 | | | location 37 (scope: 8)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 39
 | | | location 38 (scope: 8)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) ; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 42
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 37
 | | | location 42 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 44
 | | | location 43 (scope: 9)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 45
 | | | location 44 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 45
 | | | location 45 (scope: 9)
 | | | | when (true) ; goto location 46
 | | | location 46 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 47
 | | | location 47 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 48
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 43
 | | | location 48 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 49
 | | | location 49 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 50 (scope: 0)
 | | | | when (true) return; goto location 51
 | | | location 51 (scope: 0)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 10 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 11 (parent: 10)
 | | locations (start=52)
 | | | location 52 (scope: 10)
 | | | | when (true) current = lower; goto location 53
 | | | location 54 (scope: 11)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 55
 | | | location 55 (scope: 11)
 | | | | when (true) current = current+1; goto location 53
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 56 (scope: 10)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 57
 | | | location 57 (scope: 10)
 | | | | when (true) return; goto location 58
 | | | location 58 (scope: 10)
 | function _CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 4 (parent: 3)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 5 (parent: 4)
 | | locations (start=16)
 | | | location 16 (scope: 4)
 | | | | when (true) ; goto location 17
 | | | location 19 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 20
 | | | location 20 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 16
 | | | location 17 (scope: 4)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 18
 | | | location 18 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 19
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 21
 | | | location 21 (scope: 4)
 | | | | when (true) return; goto location 22
 | | | location 22 (scope: 3)

STATS:
   maxProcs            :9
   statesSeen          : 3145
   statesMatched       : 42
   transitionsExecuted : 3186
   proverValidCalls    : 14869
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 2.057
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 4; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 3; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 6 (parent: 3)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 7 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 8 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 9 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 23
 | | | location 23 (scope: 6)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 24
 | | | location 24 (scope: 6)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 26
 | | | location 25 (scope: 7)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork _CVT_tmp_0(me); goto location 27
 | | | location 26 (scope: 7)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 27
 | | | location 27 (scope: 7)
 | | | | when (true) ; goto location 28
 | | | location 28 (scope: 7)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 30
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 25
 | | | location 30 (scope: 7)
 | | | | when (true) join _CVT_process; goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) _CVT_iterator = fork _CVT_range_function(me, 0, N-1); goto location 32
 | | | location 32 (scope: 6)
 | | | | when (true) ; goto location 33
 | | | location 33 (scope: 6)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 34
 | | | location 34 (scope: 6)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 35
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 38
 | | | location 35 (scope: 6)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 36
 | | | location 36 (scope: 6)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 32
 | | | location 37 (scope: 8)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 39
 | | | location 38 (scope: 8)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) ; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 42
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 37
 | | | location 42 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 44
 | | | location 43 (scope: 9)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 45
 | | | location 44 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 45
 | | | location 45 (scope: 9)
 | | | | when (true) ; goto location 46
 | | | location 46 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 47
 | | | location 47 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 48
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 43
 | | | location 48 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 49
 | | | location 49 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 50 (scope: 0)
 | | | | when (true) return; goto location 51
 | | | location 51 (scope: 0)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 10 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 11 (parent: 10)
 | | locations (start=52)
 | | | location 52 (scope: 10)
 | | | | when (true) current = lower; goto location 53
 | | | location 54 (scope: 11)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 55
 | | | location 55 (scope: 11)
 | | | | when (true) current = current+1; goto location 53
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 56 (scope: 10)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 57
 | | | location 57 (scope: 10)
 | | | | when (true) return; goto location 58
 | | | location 58 (scope: 10)
 | function _CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 4 (parent: 3)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 5 (parent: 4)
 | | locations (start=16)
 | | | location 16 (scope: 4)
 | | | | when (true) ; goto location 17
 | | | location 19 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 20
 | | | location 20 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 16
 | | | location 17 (scope: 4)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 18
 | | | location 18 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 19
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 21
 | | | location 21 (scope: 4)
 | | | | when (true) return; goto location 22
 | | | location 22 (scope: 3)

STATS:
   maxProcs            :9
   statesSeen          : 8862
   statesMatched       : 180
   transitionsExecuted : 9041
   proverValidCalls    : 43750
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 5.058
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 4; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 4; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 6 (parent: 3)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 9 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 7 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 8 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 23
 | | | location 23 (scope: 6)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 24
 | | | location 24 (scope: 6)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 26
 | | | location 25 (scope: 7)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork _CVT_tmp_0(me); goto location 27
 | | | location 26 (scope: 7)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 27
 | | | location 27 (scope: 7)
 | | | | when (true) ; goto location 28
 | | | location 28 (scope: 7)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 25
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 30
 | | | location 30 (scope: 7)
 | | | | when (true) join _CVT_process; goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) _CVT_iterator = fork _CVT_range_function(me, 0, N-1); goto location 32
 | | | location 32 (scope: 6)
 | | | | when (true) ; goto location 33
 | | | location 33 (scope: 6)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 34
 | | | location 34 (scope: 6)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 38
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 35
 | | | location 35 (scope: 6)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 36
 | | | location 36 (scope: 6)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 32
 | | | location 37 (scope: 8)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 39
 | | | location 38 (scope: 8)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) ; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 42
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 37
 | | | location 42 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 44
 | | | location 43 (scope: 9)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 45
 | | | location 44 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 45
 | | | location 45 (scope: 9)
 | | | | when (true) ; goto location 46
 | | | location 46 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 47
 | | | location 47 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 48
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 43
 | | | location 48 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 49
 | | | location 49 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 50 (scope: 0)
 | | | | when (true) return; goto location 51
 | | | location 51 (scope: 0)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 10 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 11 (parent: 10)
 | | locations (start=52)
 | | | location 52 (scope: 10)
 | | | | when (true) current = lower; goto location 53
 | | | location 54 (scope: 11)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 55
 | | | location 55 (scope: 11)
 | | | | when (true) current = current+1; goto location 53
 | | | location 53 (scope: 10)
 | | | | when (!(current<=upper)) ; goto location 56
 | | | | when (current<=upper) ; goto location 54
 | | | location 53 (scope: 10)
 | | | | when (!(current<=upper)) ; goto location 56
 | | | | when (current<=upper) ; goto location 54
 | | | location 56 (scope: 10)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 57
 | | | location 57 (scope: 10)
 | | | | when (true) return; goto location 58
 | | | location 58 (scope: 10)
 | function _CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 4 (parent: 3)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 5 (parent: 4)
 | | locations (start=16)
 | | | location 16 (scope: 4)
 | | | | when (true) ; goto location 17
 | | | location 19 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 20
 | | | location 20 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 16
 | | | location 17 (scope: 4)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 18
 | | | location 18 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 19
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 21
 | | | location 21 (scope: 4)
 | | | | when (true) return; goto location 22
 | | | location 22 (scope: 3)

STATS:
   maxProcs            :9
   statesSeen          : 23889
   statesMatched       : 702
   transitionsExecuted : 24590
   proverValidCalls    : 121606
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 7.917
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 4; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 5; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 6 (parent: 3)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 8 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 9 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 7 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 23
 | | | location 23 (scope: 6)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 24
 | | | location 24 (scope: 6)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 26
 | | | location 25 (scope: 7)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork _CVT_tmp_0(me); goto location 27
 | | | location 26 (scope: 7)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 27
 | | | location 27 (scope: 7)
 | | | | when (true) ; goto location 28
 | | | location 28 (scope: 7)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 30
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 25
 | | | location 30 (scope: 7)
 | | | | when (true) join _CVT_process; goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) _CVT_iterator = fork _CVT_range_function(me, 0, N-1); goto location 32
 | | | location 32 (scope: 6)
 | | | | when (true) ; goto location 33
 | | | location 33 (scope: 6)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 34
 | | | location 34 (scope: 6)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 38
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 35
 | | | location 35 (scope: 6)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 36
 | | | location 36 (scope: 6)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 32
 | | | location 37 (scope: 8)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 39
 | | | location 38 (scope: 8)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) ; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 42
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 37
 | | | location 42 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 44
 | | | location 43 (scope: 9)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 45
 | | | location 44 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 45
 | | | location 45 (scope: 9)
 | | | | when (true) ; goto location 46
 | | | location 46 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 47
 | | | location 47 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 48
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 43
 | | | location 48 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 49
 | | | location 49 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 50 (scope: 0)
 | | | | when (true) return; goto location 51
 | | | location 51 (scope: 0)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 10 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 11 (parent: 10)
 | | locations (start=52)
 | | | location 52 (scope: 10)
 | | | | when (true) current = lower; goto location 53
 | | | location 54 (scope: 11)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 55
 | | | location 55 (scope: 11)
 | | | | when (true) current = current+1; goto location 53
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 56 (scope: 10)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 57
 | | | location 57 (scope: 10)
 | | | | when (true) return; goto location 58
 | | | location 58 (scope: 10)
 | function _CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 4 (parent: 3)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 5 (parent: 4)
 | | locations (start=16)
 | | | location 16 (scope: 4)
 | | | | when (true) ; goto location 17
 | | | location 19 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 20
 | | | location 20 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 16
 | | | location 17 (scope: 4)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 18
 | | | location 18 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 19
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 21
 | | | location 21 (scope: 4)
 | | | | when (true) return; goto location 22
 | | | location 22 (scope: 3)

STATS:
   maxProcs            :9
   statesSeen          : 62404
   statesMatched       : 2464
   transitionsExecuted : 64867
   proverValidCalls    : 324623
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 19.298
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 4; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 6; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 6 (parent: 3)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 7 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 8 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 9 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 23
 | | | location 23 (scope: 6)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 24
 | | | location 24 (scope: 6)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 26
 | | | location 25 (scope: 7)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork _CVT_tmp_0(me); goto location 27
 | | | location 26 (scope: 7)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 27
 | | | location 27 (scope: 7)
 | | | | when (true) ; goto location 28
 | | | location 28 (scope: 7)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 30
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 25
 | | | location 30 (scope: 7)
 | | | | when (true) join _CVT_process; goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) _CVT_iterator = fork _CVT_range_function(me, 0, N-1); goto location 32
 | | | location 32 (scope: 6)
 | | | | when (true) ; goto location 33
 | | | location 33 (scope: 6)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 34
 | | | location 34 (scope: 6)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 35
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 38
 | | | location 35 (scope: 6)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 36
 | | | location 36 (scope: 6)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 32
 | | | location 37 (scope: 8)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 39
 | | | location 38 (scope: 8)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) ; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 42
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 37
 | | | location 42 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 44
 | | | location 43 (scope: 9)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 45
 | | | location 44 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 45
 | | | location 45 (scope: 9)
 | | | | when (true) ; goto location 46
 | | | location 46 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 47
 | | | location 47 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 48
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 43
 | | | location 48 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 49
 | | | location 49 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 50 (scope: 0)
 | | | | when (true) return; goto location 51
 | | | location 51 (scope: 0)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 10 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 11 (parent: 10)
 | | locations (start=52)
 | | | location 52 (scope: 10)
 | | | | when (true) current = lower; goto location 53
 | | | location 54 (scope: 11)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 55
 | | | location 55 (scope: 11)
 | | | | when (true) current = current+1; goto location 53
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 56 (scope: 10)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 57
 | | | location 57 (scope: 10)
 | | | | when (true) return; goto location 58
 | | | location 58 (scope: 10)
 | function _CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 4 (parent: 3)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 5 (parent: 4)
 | | locations (start=16)
 | | | location 16 (scope: 4)
 | | | | when (true) ; goto location 17
 | | | location 19 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 20
 | | | location 20 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 16
 | | | location 17 (scope: 4)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 18
 | | | location 18 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 19
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 21
 | | | location 21 (scope: 4)
 | | | | when (true) return; goto location 22
 | | | location 22 (scope: 3)

STATS:
   maxProcs            :9
   statesSeen          : 158897
   statesMatched       : 7866
   transitionsExecuted : 166762
   proverValidCalls    : 839814
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 56.872
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 4; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 7; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 6 (parent: 3)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 7 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 8 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 9 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 23
 | | | location 23 (scope: 6)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 24
 | | | location 24 (scope: 6)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 26
 | | | location 25 (scope: 7)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork _CVT_tmp_0(me); goto location 27
 | | | location 26 (scope: 7)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 27
 | | | location 27 (scope: 7)
 | | | | when (true) ; goto location 28
 | | | location 28 (scope: 7)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 30
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 25
 | | | location 30 (scope: 7)
 | | | | when (true) join _CVT_process; goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) _CVT_iterator = fork _CVT_range_function(me, 0, N-1); goto location 32
 | | | location 32 (scope: 6)
 | | | | when (true) ; goto location 33
 | | | location 33 (scope: 6)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 34
 | | | location 34 (scope: 6)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 35
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 38
 | | | location 35 (scope: 6)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 36
 | | | location 36 (scope: 6)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 32
 | | | location 37 (scope: 8)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 39
 | | | location 38 (scope: 8)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) ; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 42
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 37
 | | | location 42 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 44
 | | | location 43 (scope: 9)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 45
 | | | location 44 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 45
 | | | location 45 (scope: 9)
 | | | | when (true) ; goto location 46
 | | | location 46 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 47
 | | | location 47 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 48
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 43
 | | | location 48 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 49
 | | | location 49 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 50 (scope: 0)
 | | | | when (true) return; goto location 51
 | | | location 51 (scope: 0)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 10 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 11 (parent: 10)
 | | locations (start=52)
 | | | location 52 (scope: 10)
 | | | | when (true) current = lower; goto location 53
 | | | location 54 (scope: 11)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 55
 | | | location 55 (scope: 11)
 | | | | when (true) current = current+1; goto location 53
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 53 (scope: 10)
 | | | | when (current<=upper) ; goto location 54
 | | | | when (!(current<=upper)) ; goto location 56
 | | | location 56 (scope: 10)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 57
 | | | location 57 (scope: 10)
 | | | | when (true) return; goto location 58
 | | | location 58 (scope: 10)
 | function _CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 4 (parent: 3)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 5 (parent: 4)
 | | locations (start=16)
 | | | location 16 (scope: 4)
 | | | | when (true) ; goto location 17
 | | | location 19 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 20
 | | | location 20 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 16
 | | | location 17 (scope: 4)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 18
 | | | location 18 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 19
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 21
 | | | location 21 (scope: 4)
 | | | | when (true) return; goto location 22
 | | | location 22 (scope: 3)

STATS:
   maxProcs            :9
   statesSeen          : 395974
   statesMatched       : 23276
   transitionsExecuted : 419249
   proverValidCalls    : 2117546
   CVC3ValidCalls      : 0
   memory              : 102879232
   elapsedTime         : 157.6
The specified properties hold for all executions.
for numTimes in 1 2 3 ; do \
	for N in 1 2 3 4 5 ; do \
	../CVT compare -noprint -confignumTimes=$numTimes -configN=$N -maxworkers=3 adderSpec.chpl adderPar.chpl ; \
	done ; done
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 20 (parent: null)
 | | | m0_pid : process
 | | | m1_pid : process
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=92)
 | | | location 92 (scope: 20)
 | | | | when (true) m0_pid = fork m0_CVT_system(); goto location 93
 | | | location 93 (scope: 20)
 | | | | when (true) join m0_pid; goto location 94
 | | | location 94 (scope: 20)
 | | | | when (true) m1_pid = fork m1_CVT_system(); goto location 95
 | | | location 95 (scope: 20)
 | | | | when (true) join m1_pid; goto location 96
 | | | location 96 (scope: 20)
 | | | | when (true) return; goto location 97
 | | | location 97 (scope: 20)
 | function m0main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 4 (parent: 3)
 | | | | | | i : int
 | | | | | | _CVT_process : process
 | | | | | | _CVT_tag : int
 | | | | | | scope 5 (parent: 4)
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 16
 | | | location 16 (scope: 4)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 0, N-1); goto location 17
 | | | location 17 (scope: 4)
 | | | | when (true) ; goto location 18
 | | | location 18 (scope: 4)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 19
 | | | location 19 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 21
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 20
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 21 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 22
 | | | location 22 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 17
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 23 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 24 (scope: 0)
 | | | | when (true) return; goto location 25
 | | | location 25 (scope: 0)
 | function m0_CVT_system
 | | formal parameters
 | | scope 0 (parent: 20)
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 1; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 1; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) m0main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function m0_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 6 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 7 (parent: 6)
 | | locations (start=26)
 | | | location 26 (scope: 6)
 | | | | when (true) current = lower; goto location 27
 | | | location 28 (scope: 7)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (true) current = current+1; goto location 27
 | | | location 27 (scope: 6)
 | | | | when (!(current<=upper)) ; goto location 30
 | | | | when (current<=upper) ; goto location 28
 | | | location 27 (scope: 6)
 | | | | when (!(current<=upper)) ; goto location 30
 | | | | when (current<=upper) ; goto location 28
 | | | location 30 (scope: 6)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) return; goto location 32
 | | | location 32 (scope: 6)
 | function m1_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 18 (parent: 8)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 19 (parent: 18)
 | | locations (start=85)
 | | | location 85 (scope: 18)
 | | | | when (true) current = lower; goto location 86
 | | | location 87 (scope: 19)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 88
 | | | location 88 (scope: 19)
 | | | | when (true) current = current+1; goto location 86
 | | | location 86 (scope: 18)
 | | | | when (!(current<=upper)) ; goto location 89
 | | | | when (current<=upper) ; goto location 87
 | | | location 86 (scope: 18)
 | | | | when (!(current<=upper)) ; goto location 89
 | | | | when (current<=upper) ; goto location 87
 | | | location 89 (scope: 18)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 90
 | | | location 90 (scope: 18)
 | | | | when (true) return; goto location 91
 | | | location 91 (scope: 18)
 | function m1_CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 12 (parent: 11)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 13 (parent: 12)
 | | locations (start=49)
 | | | location 49 (scope: 12)
 | | | | when (true) ; goto location 50
 | | | location 52 (scope: 13)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 53
 | | | location 53 (scope: 13)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 49
 | | | location 50 (scope: 12)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 51
 | | | location 51 (scope: 12)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 54
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 52
 | | | location 54 (scope: 12)
 | | | | when (true) return; goto location 55
 | | | location 55 (scope: 11)
 | function m1_CVT_system
 | | formal parameters
 | | scope 8 (parent: 20)
 | | locations (start=33)
 | | | location 33 (scope: 8)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 34
 | | | location 34 (scope: 8)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 35
 | | | location 35 (scope: 8)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 36
 | | | location 36 (scope: 8)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 37
 | | | location 37 (scope: 8)
 | | | | when (true) numTimes = 1; goto location 38
 | | | location 38 (scope: 8)
 | | | | when (true) N = 1; goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) _CVT_sync_sum = false; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) m1main(); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (true) return; goto location 42
 | | | location 42 (scope: 8)
 | function m1main
 | | formal parameters
 | | scope 9 (parent: 8)
 | | | temp : int
 | | | scope 10 (parent: 9)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 11 (parent: 10)
 | | | | | scope 14 (parent: 11)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 17 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 16 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 15 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=43)
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 44 (scope: 10)
 | | | | when (true) ; goto location 45
 | | | location 45 (scope: 10)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 46
 | | | location 46 (scope: 10)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 47
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 48
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 48 (scope: 11)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 56
 | | | location 56 (scope: 14)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 57
 | | | location 57 (scope: 14)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 59
 | | | location 58 (scope: 15)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork m1_CVT_tmp_0(me); goto location 60
 | | | location 59 (scope: 15)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 60
 | | | location 60 (scope: 15)
 | | | | when (true) ; goto location 61
 | | | location 61 (scope: 15)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 62
 | | | location 62 (scope: 15)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 63
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 58
 | | | location 63 (scope: 15)
 | | | | when (true) join _CVT_process; goto location 64
 | | | location 64 (scope: 14)
 | | | | when (true) _CVT_iterator = fork m1_CVT_range_function(me, 0, N-1); goto location 65
 | | | location 65 (scope: 14)
 | | | | when (true) ; goto location 66
 | | | location 66 (scope: 14)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 67
 | | | location 67 (scope: 14)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 71
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 68
 | | | location 68 (scope: 14)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 69
 | | | location 69 (scope: 14)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 65
 | | | location 70 (scope: 16)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 72
 | | | location 71 (scope: 16)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 72
 | | | location 72 (scope: 16)
 | | | | when (true) ; goto location 73
 | | | location 73 (scope: 16)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 74
 | | | location 74 (scope: 16)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 75
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 70
 | | | location 75 (scope: 16)
 | | | | when (true) join _CVT_process; goto location 77
 | | | location 76 (scope: 17)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 78
 | | | location 77 (scope: 17)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 78
 | | | location 78 (scope: 17)
 | | | | when (true) ; goto location 79
 | | | location 79 (scope: 17)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 80
 | | | location 80 (scope: 17)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 81
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 76
 | | | location 81 (scope: 17)
 | | | | when (true) join _CVT_process; goto location 82
 | | | location 82 (scope: 11)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 44
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 83 (scope: 8)
 | | | | when (true) return; goto location 84
 | | | location 84 (scope: 8)

STATS:
   maxProcs            :8
   statesSeen          : 604
   statesMatched       : 5
   transitionsExecuted : 608
   proverValidCalls    : 3940
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 1.191
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 20 (parent: null)
 | | | m0_pid : process
 | | | m1_pid : process
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=92)
 | | | location 92 (scope: 20)
 | | | | when (true) m0_pid = fork m0_CVT_system(); goto location 93
 | | | location 93 (scope: 20)
 | | | | when (true) join m0_pid; goto location 94
 | | | location 94 (scope: 20)
 | | | | when (true) m1_pid = fork m1_CVT_system(); goto location 95
 | | | location 95 (scope: 20)
 | | | | when (true) join m1_pid; goto location 96
 | | | location 96 (scope: 20)
 | | | | when (true) return; goto location 97
 | | | location 97 (scope: 20)
 | function m0_CVT_system
 | | formal parameters
 | | scope 0 (parent: 20)
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 1; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 2; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) m0main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function m0_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 6 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 7 (parent: 6)
 | | locations (start=26)
 | | | location 26 (scope: 6)
 | | | | when (true) current = lower; goto location 27
 | | | location 28 (scope: 7)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (true) current = current+1; goto location 27
 | | | location 27 (scope: 6)
 | | | | when (current<=upper) ; goto location 28
 | | | | when (!(current<=upper)) ; goto location 30
 | | | location 27 (scope: 6)
 | | | | when (current<=upper) ; goto location 28
 | | | | when (!(current<=upper)) ; goto location 30
 | | | location 30 (scope: 6)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) return; goto location 32
 | | | location 32 (scope: 6)
 | function m0main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 4 (parent: 3)
 | | | | | | i : int
 | | | | | | _CVT_process : process
 | | | | | | _CVT_tag : int
 | | | | | | scope 5 (parent: 4)
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 16
 | | | location 16 (scope: 4)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 0, N-1); goto location 17
 | | | location 17 (scope: 4)
 | | | | when (true) ; goto location 18
 | | | location 18 (scope: 4)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 19
 | | | location 19 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 21
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 20
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 21 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 22
 | | | location 22 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 17
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 23 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 24 (scope: 0)
 | | | | when (true) return; goto location 25
 | | | location 25 (scope: 0)
 | function m1main
 | | formal parameters
 | | scope 9 (parent: 8)
 | | | temp : int
 | | | scope 10 (parent: 9)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 11 (parent: 10)
 | | | | | scope 14 (parent: 11)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 17 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 16 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 15 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=43)
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 44 (scope: 10)
 | | | | when (true) ; goto location 45
 | | | location 45 (scope: 10)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 46
 | | | location 46 (scope: 10)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 48
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 47
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 48 (scope: 11)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 56
 | | | location 56 (scope: 14)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 57
 | | | location 57 (scope: 14)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 59
 | | | location 58 (scope: 15)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork m1_CVT_tmp_0(me); goto location 60
 | | | location 59 (scope: 15)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 60
 | | | location 60 (scope: 15)
 | | | | when (true) ; goto location 61
 | | | location 61 (scope: 15)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 62
 | | | location 62 (scope: 15)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 63
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 58
 | | | location 63 (scope: 15)
 | | | | when (true) join _CVT_process; goto location 64
 | | | location 64 (scope: 14)
 | | | | when (true) _CVT_iterator = fork m1_CVT_range_function(me, 0, N-1); goto location 65
 | | | location 65 (scope: 14)
 | | | | when (true) ; goto location 66
 | | | location 66 (scope: 14)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 67
 | | | location 67 (scope: 14)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 68
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 71
 | | | location 68 (scope: 14)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 69
 | | | location 69 (scope: 14)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 65
 | | | location 70 (scope: 16)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 72
 | | | location 71 (scope: 16)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 72
 | | | location 72 (scope: 16)
 | | | | when (true) ; goto location 73
 | | | location 73 (scope: 16)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 74
 | | | location 74 (scope: 16)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 70
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 75
 | | | location 75 (scope: 16)
 | | | | when (true) join _CVT_process; goto location 77
 | | | location 76 (scope: 17)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 78
 | | | location 77 (scope: 17)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 78
 | | | location 78 (scope: 17)
 | | | | when (true) ; goto location 79
 | | | location 79 (scope: 17)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 80
 | | | location 80 (scope: 17)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 76
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 81
 | | | location 81 (scope: 17)
 | | | | when (true) join _CVT_process; goto location 82
 | | | location 82 (scope: 11)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 44
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 83 (scope: 8)
 | | | | when (true) return; goto location 84
 | | | location 84 (scope: 8)
 | function m1_CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 12 (parent: 11)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 13 (parent: 12)
 | | locations (start=49)
 | | | location 49 (scope: 12)
 | | | | when (true) ; goto location 50
 | | | location 52 (scope: 13)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 53
 | | | location 53 (scope: 13)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 49
 | | | location 50 (scope: 12)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 51
 | | | location 51 (scope: 12)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 52
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 54
 | | | location 54 (scope: 12)
 | | | | when (true) return; goto location 55
 | | | location 55 (scope: 11)
 | function m1_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 18 (parent: 8)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 19 (parent: 18)
 | | locations (start=85)
 | | | location 85 (scope: 18)
 | | | | when (true) current = lower; goto location 86
 | | | location 87 (scope: 19)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 88
 | | | location 88 (scope: 19)
 | | | | when (true) current = current+1; goto location 86
 | | | location 86 (scope: 18)
 | | | | when (!(current<=upper)) ; goto location 89
 | | | | when (current<=upper) ; goto location 87
 | | | location 86 (scope: 18)
 | | | | when (!(current<=upper)) ; goto location 89
 | | | | when (current<=upper) ; goto location 87
 | | | location 89 (scope: 18)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 90
 | | | location 90 (scope: 18)
 | | | | when (true) return; goto location 91
 | | | location 91 (scope: 18)
 | function m1_CVT_system
 | | formal parameters
 | | scope 8 (parent: 20)
 | | locations (start=33)
 | | | location 33 (scope: 8)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 34
 | | | location 34 (scope: 8)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 35
 | | | location 35 (scope: 8)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 36
 | | | location 36 (scope: 8)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 37
 | | | location 37 (scope: 8)
 | | | | when (true) numTimes = 1; goto location 38
 | | | location 38 (scope: 8)
 | | | | when (true) N = 2; goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) _CVT_sync_sum = false; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) m1main(); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (true) return; goto location 42
 | | | location 42 (scope: 8)

STATS:
   maxProcs            :8
   statesSeen          : 1464
   statesMatched       : 21
   transitionsExecuted : 1484
   proverValidCalls    : 10172
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 1.792
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 20 (parent: null)
 | | | m0_pid : process
 | | | m1_pid : process
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=92)
 | | | location 92 (scope: 20)
 | | | | when (true) m0_pid = fork m0_CVT_system(); goto location 93
 | | | location 93 (scope: 20)
 | | | | when (true) join m0_pid; goto location 94
 | | | location 94 (scope: 20)
 | | | | when (true) m1_pid = fork m1_CVT_system(); goto location 95
 | | | location 95 (scope: 20)
 | | | | when (true) join m1_pid; goto location 96
 | | | location 96 (scope: 20)
 | | | | when (true) return; goto location 97
 | | | location 97 (scope: 20)
 | function m0main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 4 (parent: 3)
 | | | | | | i : int
 | | | | | | _CVT_process : process
 | | | | | | _CVT_tag : int
 | | | | | | scope 5 (parent: 4)
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 16
 | | | location 16 (scope: 4)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 0, N-1); goto location 17
 | | | location 17 (scope: 4)
 | | | | when (true) ; goto location 18
 | | | location 18 (scope: 4)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 19
 | | | location 19 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 21
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 20
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 21 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 22
 | | | location 22 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 17
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 23 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 24 (scope: 0)
 | | | | when (true) return; goto location 25
 | | | location 25 (scope: 0)
 | function m0_CVT_system
 | | formal parameters
 | | scope 0 (parent: 20)
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 1; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 3; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) m0main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function m0_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 6 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 7 (parent: 6)
 | | locations (start=26)
 | | | location 26 (scope: 6)
 | | | | when (true) current = lower; goto location 27
 | | | location 28 (scope: 7)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (true) current = current+1; goto location 27
 | | | location 27 (scope: 6)
 | | | | when (!(current<=upper)) ; goto location 30
 | | | | when (current<=upper) ; goto location 28
 | | | location 27 (scope: 6)
 | | | | when (!(current<=upper)) ; goto location 30
 | | | | when (current<=upper) ; goto location 28
 | | | location 30 (scope: 6)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) return; goto location 32
 | | | location 32 (scope: 6)
 | function m1_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 18 (parent: 8)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 19 (parent: 18)
 | | locations (start=85)
 | | | location 85 (scope: 18)
 | | | | when (true) current = lower; goto location 86
 | | | location 87 (scope: 19)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 88
 | | | location 88 (scope: 19)
 | | | | when (true) current = current+1; goto location 86
 | | | location 86 (scope: 18)
 | | | | when (!(current<=upper)) ; goto location 89
 | | | | when (current<=upper) ; goto location 87
 | | | location 86 (scope: 18)
 | | | | when (!(current<=upper)) ; goto location 89
 | | | | when (current<=upper) ; goto location 87
 | | | location 89 (scope: 18)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 90
 | | | location 90 (scope: 18)
 | | | | when (true) return; goto location 91
 | | | location 91 (scope: 18)
 | function m1_CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 12 (parent: 11)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 13 (parent: 12)
 | | locations (start=49)
 | | | location 49 (scope: 12)
 | | | | when (true) ; goto location 50
 | | | location 52 (scope: 13)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 53
 | | | location 53 (scope: 13)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 49
 | | | location 50 (scope: 12)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 51
 | | | location 51 (scope: 12)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 54
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 52
 | | | location 54 (scope: 12)
 | | | | when (true) return; goto location 55
 | | | location 55 (scope: 11)
 | function m1_CVT_system
 | | formal parameters
 | | scope 8 (parent: 20)
 | | locations (start=33)
 | | | location 33 (scope: 8)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 34
 | | | location 34 (scope: 8)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 35
 | | | location 35 (scope: 8)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 36
 | | | location 36 (scope: 8)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 37
 | | | location 37 (scope: 8)
 | | | | when (true) numTimes = 1; goto location 38
 | | | location 38 (scope: 8)
 | | | | when (true) N = 3; goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) _CVT_sync_sum = false; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) m1main(); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (true) return; goto location 42
 | | | location 42 (scope: 8)
 | function m1main
 | | formal parameters
 | | scope 9 (parent: 8)
 | | | temp : int
 | | | scope 10 (parent: 9)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 11 (parent: 10)
 | | | | | scope 14 (parent: 11)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 17 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 16 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 15 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=43)
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 44 (scope: 10)
 | | | | when (true) ; goto location 45
 | | | location 45 (scope: 10)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 46
 | | | location 46 (scope: 10)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 47
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 48
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 48 (scope: 11)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 56
 | | | location 56 (scope: 14)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 57
 | | | location 57 (scope: 14)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 59
 | | | location 58 (scope: 15)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork m1_CVT_tmp_0(me); goto location 60
 | | | location 59 (scope: 15)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 60
 | | | location 60 (scope: 15)
 | | | | when (true) ; goto location 61
 | | | location 61 (scope: 15)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 62
 | | | location 62 (scope: 15)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 63
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 58
 | | | location 63 (scope: 15)
 | | | | when (true) join _CVT_process; goto location 64
 | | | location 64 (scope: 14)
 | | | | when (true) _CVT_iterator = fork m1_CVT_range_function(me, 0, N-1); goto location 65
 | | | location 65 (scope: 14)
 | | | | when (true) ; goto location 66
 | | | location 66 (scope: 14)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 67
 | | | location 67 (scope: 14)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 71
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 68
 | | | location 68 (scope: 14)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 69
 | | | location 69 (scope: 14)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 65
 | | | location 70 (scope: 16)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 72
 | | | location 71 (scope: 16)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 72
 | | | location 72 (scope: 16)
 | | | | when (true) ; goto location 73
 | | | location 73 (scope: 16)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 74
 | | | location 74 (scope: 16)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 75
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 70
 | | | location 75 (scope: 16)
 | | | | when (true) join _CVT_process; goto location 77
 | | | location 76 (scope: 17)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 78
 | | | location 77 (scope: 17)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 78
 | | | location 78 (scope: 17)
 | | | | when (true) ; goto location 79
 | | | location 79 (scope: 17)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 80
 | | | location 80 (scope: 17)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 81
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 76
 | | | location 81 (scope: 17)
 | | | | when (true) join _CVT_process; goto location 82
 | | | location 82 (scope: 11)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 44
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 83 (scope: 8)
 | | | | when (true) return; goto location 84
 | | | location 84 (scope: 8)

STATS:
   maxProcs            :8
   statesSeen          : 4298
   statesMatched       : 99
   transitionsExecuted : 4396
   proverValidCalls    : 31096
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 3.548
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 20 (parent: null)
 | | | m0_pid : process
 | | | m1_pid : process
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=92)
 | | | location 92 (scope: 20)
 | | | | when (true) m0_pid = fork m0_CVT_system(); goto location 93
 | | | location 93 (scope: 20)
 | | | | when (true) join m0_pid; goto location 94
 | | | location 94 (scope: 20)
 | | | | when (true) m1_pid = fork m1_CVT_system(); goto location 95
 | | | location 95 (scope: 20)
 | | | | when (true) join m1_pid; goto location 96
 | | | location 96 (scope: 20)
 | | | | when (true) return; goto location 97
 | | | location 97 (scope: 20)
 | function m0_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 6 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 7 (parent: 6)
 | | locations (start=26)
 | | | location 26 (scope: 6)
 | | | | when (true) current = lower; goto location 27
 | | | location 28 (scope: 7)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (true) current = current+1; goto location 27
 | | | location 27 (scope: 6)
 | | | | when (current<=upper) ; goto location 28
 | | | | when (!(current<=upper)) ; goto location 30
 | | | location 27 (scope: 6)
 | | | | when (current<=upper) ; goto location 28
 | | | | when (!(current<=upper)) ; goto location 30
 | | | location 30 (scope: 6)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) return; goto location 32
 | | | location 32 (scope: 6)
 | function m0main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 4 (parent: 3)
 | | | | | | i : int
 | | | | | | _CVT_process : process
 | | | | | | _CVT_tag : int
 | | | | | | scope 5 (parent: 4)
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 16
 | | | location 16 (scope: 4)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 0, N-1); goto location 17
 | | | location 17 (scope: 4)
 | | | | when (true) ; goto location 18
 | | | location 18 (scope: 4)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 19
 | | | location 19 (scope: 4)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 20
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 21
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 21 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 22
 | | | location 22 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 17
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 23 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 24 (scope: 0)
 | | | | when (true) return; goto location 25
 | | | location 25 (scope: 0)
 | function m0_CVT_system
 | | formal parameters
 | | scope 0 (parent: 20)
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 1; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 4; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) m0main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function m1main
 | | formal parameters
 | | scope 9 (parent: 8)
 | | | temp : int
 | | | scope 10 (parent: 9)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 11 (parent: 10)
 | | | | | scope 14 (parent: 11)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 15 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 17 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 16 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=43)
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 44 (scope: 10)
 | | | | when (true) ; goto location 45
 | | | location 45 (scope: 10)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 46
 | | | location 46 (scope: 10)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 47
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 48
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 48 (scope: 11)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 56
 | | | location 56 (scope: 14)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 57
 | | | location 57 (scope: 14)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 59
 | | | location 58 (scope: 15)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork m1_CVT_tmp_0(me); goto location 60
 | | | location 59 (scope: 15)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 60
 | | | location 60 (scope: 15)
 | | | | when (true) ; goto location 61
 | | | location 61 (scope: 15)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 62
 | | | location 62 (scope: 15)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 58
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 63
 | | | location 63 (scope: 15)
 | | | | when (true) join _CVT_process; goto location 64
 | | | location 64 (scope: 14)
 | | | | when (true) _CVT_iterator = fork m1_CVT_range_function(me, 0, N-1); goto location 65
 | | | location 65 (scope: 14)
 | | | | when (true) ; goto location 66
 | | | location 66 (scope: 14)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 67
 | | | location 67 (scope: 14)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 68
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 71
 | | | location 68 (scope: 14)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 69
 | | | location 69 (scope: 14)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 65
 | | | location 70 (scope: 16)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 72
 | | | location 71 (scope: 16)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 72
 | | | location 72 (scope: 16)
 | | | | when (true) ; goto location 73
 | | | location 73 (scope: 16)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 74
 | | | location 74 (scope: 16)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 70
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 75
 | | | location 75 (scope: 16)
 | | | | when (true) join _CVT_process; goto location 77
 | | | location 76 (scope: 17)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 78
 | | | location 77 (scope: 17)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 78
 | | | location 78 (scope: 17)
 | | | | when (true) ; goto location 79
 | | | location 79 (scope: 17)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 80
 | | | location 80 (scope: 17)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 76
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 81
 | | | location 81 (scope: 17)
 | | | | when (true) join _CVT_process; goto location 82
 | | | location 82 (scope: 11)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 44
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 83 (scope: 8)
 | | | | when (true) return; goto location 84
 | | | location 84 (scope: 8)
 | function m1_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 18 (parent: 8)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 19 (parent: 18)
 | | locations (start=85)
 | | | location 85 (scope: 18)
 | | | | when (true) current = lower; goto location 86
 | | | location 87 (scope: 19)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 88
 | | | location 88 (scope: 19)
 | | | | when (true) current = current+1; goto location 86
 | | | location 86 (scope: 18)
 | | | | when (current<=upper) ; goto location 87
 | | | | when (!(current<=upper)) ; goto location 89
 | | | location 86 (scope: 18)
 | | | | when (current<=upper) ; goto location 87
 | | | | when (!(current<=upper)) ; goto location 89
 | | | location 89 (scope: 18)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 90
 | | | location 90 (scope: 18)
 | | | | when (true) return; goto location 91
 | | | location 91 (scope: 18)
 | function m1_CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 12 (parent: 11)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 13 (parent: 12)
 | | locations (start=49)
 | | | location 49 (scope: 12)
 | | | | when (true) ; goto location 50
 | | | location 52 (scope: 13)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 53
 | | | location 53 (scope: 13)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 49
 | | | location 50 (scope: 12)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 51
 | | | location 51 (scope: 12)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 54
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 52
 | | | location 54 (scope: 12)
 | | | | when (true) return; goto location 55
 | | | location 55 (scope: 11)
 | function m1_CVT_system
 | | formal parameters
 | | scope 8 (parent: 20)
 | | locations (start=33)
 | | | location 33 (scope: 8)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 34
 | | | location 34 (scope: 8)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 35
 | | | location 35 (scope: 8)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 36
 | | | location 36 (scope: 8)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 37
 | | | location 37 (scope: 8)
 | | | | when (true) numTimes = 1; goto location 38
 | | | location 38 (scope: 8)
 | | | | when (true) N = 4; goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) _CVT_sync_sum = false; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) m1main(); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (true) return; goto location 42
 | | | location 42 (scope: 8)

STATS:
   maxProcs            :8
   statesSeen          : 14207
   statesMatched       : 483
   transitionsExecuted : 14689
   proverValidCalls    : 104363
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 7.787
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 20 (parent: null)
 | | | m0_pid : process
 | | | m1_pid : process
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=92)
 | | | location 92 (scope: 20)
 | | | | when (true) m0_pid = fork m0_CVT_system(); goto location 93
 | | | location 93 (scope: 20)
 | | | | when (true) join m0_pid; goto location 94
 | | | location 94 (scope: 20)
 | | | | when (true) m1_pid = fork m1_CVT_system(); goto location 95
 | | | location 95 (scope: 20)
 | | | | when (true) join m1_pid; goto location 96
 | | | location 96 (scope: 20)
 | | | | when (true) return; goto location 97
 | | | location 97 (scope: 20)
 | function m0main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 4 (parent: 3)
 | | | | | | i : int
 | | | | | | _CVT_process : process
 | | | | | | _CVT_tag : int
 | | | | | | scope 5 (parent: 4)
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 16
 | | | location 16 (scope: 4)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 0, N-1); goto location 17
 | | | location 17 (scope: 4)
 | | | | when (true) ; goto location 18
 | | | location 18 (scope: 4)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 19
 | | | location 19 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 21
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 20
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 21 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 22
 | | | location 22 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 17
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 23 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 24 (scope: 0)
 | | | | when (true) return; goto location 25
 | | | location 25 (scope: 0)
 | function m0_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 6 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 7 (parent: 6)
 | | locations (start=26)
 | | | location 26 (scope: 6)
 | | | | when (true) current = lower; goto location 27
 | | | location 28 (scope: 7)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (true) current = current+1; goto location 27
 | | | location 27 (scope: 6)
 | | | | when (!(current<=upper)) ; goto location 30
 | | | | when (current<=upper) ; goto location 28
 | | | location 27 (scope: 6)
 | | | | when (!(current<=upper)) ; goto location 30
 | | | | when (current<=upper) ; goto location 28
 | | | location 30 (scope: 6)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) return; goto location 32
 | | | location 32 (scope: 6)
 | function m0_CVT_system
 | | formal parameters
 | | scope 0 (parent: 20)
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 1; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 5; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) m0main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function m1_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 18 (parent: 8)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 19 (parent: 18)
 | | locations (start=85)
 | | | location 85 (scope: 18)
 | | | | when (true) current = lower; goto location 86
 | | | location 87 (scope: 19)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 88
 | | | location 88 (scope: 19)
 | | | | when (true) current = current+1; goto location 86
 | | | location 86 (scope: 18)
 | | | | when (current<=upper) ; goto location 87
 | | | | when (!(current<=upper)) ; goto location 89
 | | | location 86 (scope: 18)
 | | | | when (current<=upper) ; goto location 87
 | | | | when (!(current<=upper)) ; goto location 89
 | | | location 89 (scope: 18)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 90
 | | | location 90 (scope: 18)
 | | | | when (true) return; goto location 91
 | | | location 91 (scope: 18)
 | function m1_CVT_system
 | | formal parameters
 | | scope 8 (parent: 20)
 | | locations (start=33)
 | | | location 33 (scope: 8)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 34
 | | | location 34 (scope: 8)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 35
 | | | location 35 (scope: 8)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 36
 | | | location 36 (scope: 8)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 37
 | | | location 37 (scope: 8)
 | | | | when (true) numTimes = 1; goto location 38
 | | | location 38 (scope: 8)
 | | | | when (true) N = 5; goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) _CVT_sync_sum = false; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) m1main(); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (true) return; goto location 42
 | | | location 42 (scope: 8)
 | function m1main
 | | formal parameters
 | | scope 9 (parent: 8)
 | | | temp : int
 | | | scope 10 (parent: 9)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 11 (parent: 10)
 | | | | | scope 14 (parent: 11)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 15 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 17 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 16 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=43)
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 44 (scope: 10)
 | | | | when (true) ; goto location 45
 | | | location 45 (scope: 10)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 46
 | | | location 46 (scope: 10)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 48
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 47
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 48 (scope: 11)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 56
 | | | location 56 (scope: 14)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 57
 | | | location 57 (scope: 14)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 59
 | | | location 58 (scope: 15)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork m1_CVT_tmp_0(me); goto location 60
 | | | location 59 (scope: 15)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 60
 | | | location 60 (scope: 15)
 | | | | when (true) ; goto location 61
 | | | location 61 (scope: 15)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 62
 | | | location 62 (scope: 15)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 58
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 63
 | | | location 63 (scope: 15)
 | | | | when (true) join _CVT_process; goto location 64
 | | | location 64 (scope: 14)
 | | | | when (true) _CVT_iterator = fork m1_CVT_range_function(me, 0, N-1); goto location 65
 | | | location 65 (scope: 14)
 | | | | when (true) ; goto location 66
 | | | location 66 (scope: 14)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 67
 | | | location 67 (scope: 14)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 71
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 68
 | | | location 68 (scope: 14)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 69
 | | | location 69 (scope: 14)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 65
 | | | location 70 (scope: 16)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 72
 | | | location 71 (scope: 16)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 72
 | | | location 72 (scope: 16)
 | | | | when (true) ; goto location 73
 | | | location 73 (scope: 16)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 74
 | | | location 74 (scope: 16)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 75
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 70
 | | | location 75 (scope: 16)
 | | | | when (true) join _CVT_process; goto location 77
 | | | location 76 (scope: 17)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 78
 | | | location 77 (scope: 17)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 78
 | | | location 78 (scope: 17)
 | | | | when (true) ; goto location 79
 | | | location 79 (scope: 17)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 80
 | | | location 80 (scope: 17)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 81
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 76
 | | | location 81 (scope: 17)
 | | | | when (true) join _CVT_process; goto location 82
 | | | location 82 (scope: 11)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 44
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 83 (scope: 8)
 | | | | when (true) return; goto location 84
 | | | location 84 (scope: 8)
 | function m1_CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 12 (parent: 11)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 13 (parent: 12)
 | | locations (start=49)
 | | | location 49 (scope: 12)
 | | | | when (true) ; goto location 50
 | | | location 52 (scope: 13)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 53
 | | | location 53 (scope: 13)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 49
 | | | location 50 (scope: 12)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 51
 | | | location 51 (scope: 12)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 52
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 54
 | | | location 54 (scope: 12)
 | | | | when (true) return; goto location 55
 | | | location 55 (scope: 11)

STATS:
   maxProcs            :8
   statesSeen          : 49468
   statesMatched       : 2271
   transitionsExecuted : 51738
   proverValidCalls    : 368632
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 23.714
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 20 (parent: null)
 | | | m0_pid : process
 | | | m1_pid : process
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=92)
 | | | location 92 (scope: 20)
 | | | | when (true) m0_pid = fork m0_CVT_system(); goto location 93
 | | | location 93 (scope: 20)
 | | | | when (true) join m0_pid; goto location 94
 | | | location 94 (scope: 20)
 | | | | when (true) m1_pid = fork m1_CVT_system(); goto location 95
 | | | location 95 (scope: 20)
 | | | | when (true) join m1_pid; goto location 96
 | | | location 96 (scope: 20)
 | | | | when (true) return; goto location 97
 | | | location 97 (scope: 20)
 | function m0main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 4 (parent: 3)
 | | | | | | i : int
 | | | | | | _CVT_process : process
 | | | | | | _CVT_tag : int
 | | | | | | scope 5 (parent: 4)
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 16
 | | | location 16 (scope: 4)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 0, N-1); goto location 17
 | | | location 17 (scope: 4)
 | | | | when (true) ; goto location 18
 | | | location 18 (scope: 4)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 19
 | | | location 19 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 21
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 20
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 21 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 22
 | | | location 22 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 17
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 23 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 24 (scope: 0)
 | | | | when (true) return; goto location 25
 | | | location 25 (scope: 0)
 | function m0_CVT_system
 | | formal parameters
 | | scope 0 (parent: 20)
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 2; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 1; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) m0main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function m0_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 6 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 7 (parent: 6)
 | | locations (start=26)
 | | | location 26 (scope: 6)
 | | | | when (true) current = lower; goto location 27
 | | | location 28 (scope: 7)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (true) current = current+1; goto location 27
 | | | location 27 (scope: 6)
 | | | | when (!(current<=upper)) ; goto location 30
 | | | | when (current<=upper) ; goto location 28
 | | | location 27 (scope: 6)
 | | | | when (!(current<=upper)) ; goto location 30
 | | | | when (current<=upper) ; goto location 28
 | | | location 30 (scope: 6)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) return; goto location 32
 | | | location 32 (scope: 6)
 | function m1_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 18 (parent: 8)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 19 (parent: 18)
 | | locations (start=85)
 | | | location 85 (scope: 18)
 | | | | when (true) current = lower; goto location 86
 | | | location 87 (scope: 19)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 88
 | | | location 88 (scope: 19)
 | | | | when (true) current = current+1; goto location 86
 | | | location 86 (scope: 18)
 | | | | when (!(current<=upper)) ; goto location 89
 | | | | when (current<=upper) ; goto location 87
 | | | location 86 (scope: 18)
 | | | | when (!(current<=upper)) ; goto location 89
 | | | | when (current<=upper) ; goto location 87
 | | | location 89 (scope: 18)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 90
 | | | location 90 (scope: 18)
 | | | | when (true) return; goto location 91
 | | | location 91 (scope: 18)
 | function m1_CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 12 (parent: 11)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 13 (parent: 12)
 | | locations (start=49)
 | | | location 49 (scope: 12)
 | | | | when (true) ; goto location 50
 | | | location 52 (scope: 13)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 53
 | | | location 53 (scope: 13)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 49
 | | | location 50 (scope: 12)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 51
 | | | location 51 (scope: 12)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 54
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 52
 | | | location 54 (scope: 12)
 | | | | when (true) return; goto location 55
 | | | location 55 (scope: 11)
 | function m1_CVT_system
 | | formal parameters
 | | scope 8 (parent: 20)
 | | locations (start=33)
 | | | location 33 (scope: 8)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 34
 | | | location 34 (scope: 8)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 35
 | | | location 35 (scope: 8)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 36
 | | | location 36 (scope: 8)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 37
 | | | location 37 (scope: 8)
 | | | | when (true) numTimes = 2; goto location 38
 | | | location 38 (scope: 8)
 | | | | when (true) N = 1; goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) _CVT_sync_sum = false; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) m1main(); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (true) return; goto location 42
 | | | location 42 (scope: 8)
 | function m1main
 | | formal parameters
 | | scope 9 (parent: 8)
 | | | temp : int
 | | | scope 10 (parent: 9)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 11 (parent: 10)
 | | | | | scope 14 (parent: 11)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 17 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 16 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 15 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=43)
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 44 (scope: 10)
 | | | | when (true) ; goto location 45
 | | | location 45 (scope: 10)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 46
 | | | location 46 (scope: 10)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 47
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 48
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 48 (scope: 11)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 56
 | | | location 56 (scope: 14)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 57
 | | | location 57 (scope: 14)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 59
 | | | location 58 (scope: 15)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork m1_CVT_tmp_0(me); goto location 60
 | | | location 59 (scope: 15)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 60
 | | | location 60 (scope: 15)
 | | | | when (true) ; goto location 61
 | | | location 61 (scope: 15)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 62
 | | | location 62 (scope: 15)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 63
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 58
 | | | location 63 (scope: 15)
 | | | | when (true) join _CVT_process; goto location 64
 | | | location 64 (scope: 14)
 | | | | when (true) _CVT_iterator = fork m1_CVT_range_function(me, 0, N-1); goto location 65
 | | | location 65 (scope: 14)
 | | | | when (true) ; goto location 66
 | | | location 66 (scope: 14)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 67
 | | | location 67 (scope: 14)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 71
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 68
 | | | location 68 (scope: 14)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 69
 | | | location 69 (scope: 14)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 65
 | | | location 70 (scope: 16)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 72
 | | | location 71 (scope: 16)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 72
 | | | location 72 (scope: 16)
 | | | | when (true) ; goto location 73
 | | | location 73 (scope: 16)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 74
 | | | location 74 (scope: 16)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 75
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 70
 | | | location 75 (scope: 16)
 | | | | when (true) join _CVT_process; goto location 77
 | | | location 76 (scope: 17)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 78
 | | | location 77 (scope: 17)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 78
 | | | location 78 (scope: 17)
 | | | | when (true) ; goto location 79
 | | | location 79 (scope: 17)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 80
 | | | location 80 (scope: 17)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 81
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 76
 | | | location 81 (scope: 17)
 | | | | when (true) join _CVT_process; goto location 82
 | | | location 82 (scope: 11)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 44
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 83 (scope: 8)
 | | | | when (true) return; goto location 84
 | | | location 84 (scope: 8)

STATS:
   maxProcs            :9
   statesSeen          : 1164
   statesMatched       : 10
   transitionsExecuted : 1173
   proverValidCalls    : 7691
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 1.74
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 20 (parent: null)
 | | | m0_pid : process
 | | | m1_pid : process
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=92)
 | | | location 92 (scope: 20)
 | | | | when (true) m0_pid = fork m0_CVT_system(); goto location 93
 | | | location 93 (scope: 20)
 | | | | when (true) join m0_pid; goto location 94
 | | | location 94 (scope: 20)
 | | | | when (true) m1_pid = fork m1_CVT_system(); goto location 95
 | | | location 95 (scope: 20)
 | | | | when (true) join m1_pid; goto location 96
 | | | location 96 (scope: 20)
 | | | | when (true) return; goto location 97
 | | | location 97 (scope: 20)
 | function m0main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 4 (parent: 3)
 | | | | | | i : int
 | | | | | | _CVT_process : process
 | | | | | | _CVT_tag : int
 | | | | | | scope 5 (parent: 4)
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 16
 | | | location 16 (scope: 4)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 0, N-1); goto location 17
 | | | location 17 (scope: 4)
 | | | | when (true) ; goto location 18
 | | | location 18 (scope: 4)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 19
 | | | location 19 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 21
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 20
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 21 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 22
 | | | location 22 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 17
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 23 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 24 (scope: 0)
 | | | | when (true) return; goto location 25
 | | | location 25 (scope: 0)
 | function m0_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 6 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 7 (parent: 6)
 | | locations (start=26)
 | | | location 26 (scope: 6)
 | | | | when (true) current = lower; goto location 27
 | | | location 28 (scope: 7)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (true) current = current+1; goto location 27
 | | | location 27 (scope: 6)
 | | | | when (!(current<=upper)) ; goto location 30
 | | | | when (current<=upper) ; goto location 28
 | | | location 27 (scope: 6)
 | | | | when (!(current<=upper)) ; goto location 30
 | | | | when (current<=upper) ; goto location 28
 | | | location 30 (scope: 6)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) return; goto location 32
 | | | location 32 (scope: 6)
 | function m0_CVT_system
 | | formal parameters
 | | scope 0 (parent: 20)
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 2; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 2; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) m0main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function m1_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 18 (parent: 8)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 19 (parent: 18)
 | | locations (start=85)
 | | | location 85 (scope: 18)
 | | | | when (true) current = lower; goto location 86
 | | | location 87 (scope: 19)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 88
 | | | location 88 (scope: 19)
 | | | | when (true) current = current+1; goto location 86
 | | | location 86 (scope: 18)
 | | | | when (current<=upper) ; goto location 87
 | | | | when (!(current<=upper)) ; goto location 89
 | | | location 86 (scope: 18)
 | | | | when (current<=upper) ; goto location 87
 | | | | when (!(current<=upper)) ; goto location 89
 | | | location 89 (scope: 18)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 90
 | | | location 90 (scope: 18)
 | | | | when (true) return; goto location 91
 | | | location 91 (scope: 18)
 | function m1_CVT_system
 | | formal parameters
 | | scope 8 (parent: 20)
 | | locations (start=33)
 | | | location 33 (scope: 8)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 34
 | | | location 34 (scope: 8)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 35
 | | | location 35 (scope: 8)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 36
 | | | location 36 (scope: 8)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 37
 | | | location 37 (scope: 8)
 | | | | when (true) numTimes = 2; goto location 38
 | | | location 38 (scope: 8)
 | | | | when (true) N = 2; goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) _CVT_sync_sum = false; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) m1main(); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (true) return; goto location 42
 | | | location 42 (scope: 8)
 | function m1main
 | | formal parameters
 | | scope 9 (parent: 8)
 | | | temp : int
 | | | scope 10 (parent: 9)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 11 (parent: 10)
 | | | | | scope 14 (parent: 11)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 15 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 17 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 16 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=43)
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 44 (scope: 10)
 | | | | when (true) ; goto location 45
 | | | location 45 (scope: 10)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 46
 | | | location 46 (scope: 10)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 48
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 47
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 48 (scope: 11)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 56
 | | | location 56 (scope: 14)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 57
 | | | location 57 (scope: 14)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 59
 | | | location 58 (scope: 15)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork m1_CVT_tmp_0(me); goto location 60
 | | | location 59 (scope: 15)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 60
 | | | location 60 (scope: 15)
 | | | | when (true) ; goto location 61
 | | | location 61 (scope: 15)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 62
 | | | location 62 (scope: 15)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 58
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 63
 | | | location 63 (scope: 15)
 | | | | when (true) join _CVT_process; goto location 64
 | | | location 64 (scope: 14)
 | | | | when (true) _CVT_iterator = fork m1_CVT_range_function(me, 0, N-1); goto location 65
 | | | location 65 (scope: 14)
 | | | | when (true) ; goto location 66
 | | | location 66 (scope: 14)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 67
 | | | location 67 (scope: 14)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 71
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 68
 | | | location 68 (scope: 14)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 69
 | | | location 69 (scope: 14)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 65
 | | | location 70 (scope: 16)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 72
 | | | location 71 (scope: 16)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 72
 | | | location 72 (scope: 16)
 | | | | when (true) ; goto location 73
 | | | location 73 (scope: 16)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 74
 | | | location 74 (scope: 16)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 75
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 70
 | | | location 75 (scope: 16)
 | | | | when (true) join _CVT_process; goto location 77
 | | | location 76 (scope: 17)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 78
 | | | location 77 (scope: 17)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 78
 | | | location 78 (scope: 17)
 | | | | when (true) ; goto location 79
 | | | location 79 (scope: 17)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 80
 | | | location 80 (scope: 17)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 81
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 76
 | | | location 81 (scope: 17)
 | | | | when (true) join _CVT_process; goto location 82
 | | | location 82 (scope: 11)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 44
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 83 (scope: 8)
 | | | | when (true) return; goto location 84
 | | | location 84 (scope: 8)
 | function m1_CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 12 (parent: 11)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 13 (parent: 12)
 | | locations (start=49)
 | | | location 49 (scope: 12)
 | | | | when (true) ; goto location 50
 | | | location 52 (scope: 13)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 53
 | | | location 53 (scope: 13)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 49
 | | | location 50 (scope: 12)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 51
 | | | location 51 (scope: 12)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 52
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 54
 | | | location 54 (scope: 12)
 | | | | when (true) return; goto location 55
 | | | location 55 (scope: 11)

STATS:
   maxProcs            :9
   statesSeen          : 4258
   statesMatched       : 63
   transitionsExecuted : 4320
   proverValidCalls    : 29992
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 4.146
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 20 (parent: null)
 | | | m0_pid : process
 | | | m1_pid : process
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=92)
 | | | location 92 (scope: 20)
 | | | | when (true) m0_pid = fork m0_CVT_system(); goto location 93
 | | | location 93 (scope: 20)
 | | | | when (true) join m0_pid; goto location 94
 | | | location 94 (scope: 20)
 | | | | when (true) m1_pid = fork m1_CVT_system(); goto location 95
 | | | location 95 (scope: 20)
 | | | | when (true) join m1_pid; goto location 96
 | | | location 96 (scope: 20)
 | | | | when (true) return; goto location 97
 | | | location 97 (scope: 20)
 | function m0_CVT_system
 | | formal parameters
 | | scope 0 (parent: 20)
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 2; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 3; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) m0main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function m0_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 6 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 7 (parent: 6)
 | | locations (start=26)
 | | | location 26 (scope: 6)
 | | | | when (true) current = lower; goto location 27
 | | | location 28 (scope: 7)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (true) current = current+1; goto location 27
 | | | location 27 (scope: 6)
 | | | | when (current<=upper) ; goto location 28
 | | | | when (!(current<=upper)) ; goto location 30
 | | | location 27 (scope: 6)
 | | | | when (current<=upper) ; goto location 28
 | | | | when (!(current<=upper)) ; goto location 30
 | | | location 30 (scope: 6)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) return; goto location 32
 | | | location 32 (scope: 6)
 | function m0main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 4 (parent: 3)
 | | | | | | i : int
 | | | | | | _CVT_process : process
 | | | | | | _CVT_tag : int
 | | | | | | scope 5 (parent: 4)
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 16
 | | | location 16 (scope: 4)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 0, N-1); goto location 17
 | | | location 17 (scope: 4)
 | | | | when (true) ; goto location 18
 | | | location 18 (scope: 4)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 19
 | | | location 19 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 21
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 20
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 21 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 22
 | | | location 22 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 17
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 23 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 24 (scope: 0)
 | | | | when (true) return; goto location 25
 | | | location 25 (scope: 0)
 | function m1main
 | | formal parameters
 | | scope 9 (parent: 8)
 | | | temp : int
 | | | scope 10 (parent: 9)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 11 (parent: 10)
 | | | | | scope 14 (parent: 11)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 17 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 16 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 15 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=43)
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 44 (scope: 10)
 | | | | when (true) ; goto location 45
 | | | location 45 (scope: 10)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 46
 | | | location 46 (scope: 10)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 48
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 47
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 48 (scope: 11)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 56
 | | | location 56 (scope: 14)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 57
 | | | location 57 (scope: 14)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 59
 | | | location 58 (scope: 15)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork m1_CVT_tmp_0(me); goto location 60
 | | | location 59 (scope: 15)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 60
 | | | location 60 (scope: 15)
 | | | | when (true) ; goto location 61
 | | | location 61 (scope: 15)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 62
 | | | location 62 (scope: 15)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 63
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 58
 | | | location 63 (scope: 15)
 | | | | when (true) join _CVT_process; goto location 64
 | | | location 64 (scope: 14)
 | | | | when (true) _CVT_iterator = fork m1_CVT_range_function(me, 0, N-1); goto location 65
 | | | location 65 (scope: 14)
 | | | | when (true) ; goto location 66
 | | | location 66 (scope: 14)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 67
 | | | location 67 (scope: 14)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 68
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 71
 | | | location 68 (scope: 14)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 69
 | | | location 69 (scope: 14)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 65
 | | | location 70 (scope: 16)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 72
 | | | location 71 (scope: 16)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 72
 | | | location 72 (scope: 16)
 | | | | when (true) ; goto location 73
 | | | location 73 (scope: 16)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 74
 | | | location 74 (scope: 16)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 70
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 75
 | | | location 75 (scope: 16)
 | | | | when (true) join _CVT_process; goto location 77
 | | | location 76 (scope: 17)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 78
 | | | location 77 (scope: 17)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 78
 | | | location 78 (scope: 17)
 | | | | when (true) ; goto location 79
 | | | location 79 (scope: 17)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 80
 | | | location 80 (scope: 17)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 76
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 81
 | | | location 81 (scope: 17)
 | | | | when (true) join _CVT_process; goto location 82
 | | | location 82 (scope: 11)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 44
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 83 (scope: 8)
 | | | | when (true) return; goto location 84
 | | | location 84 (scope: 8)
 | function m1_CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 12 (parent: 11)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 13 (parent: 12)
 | | locations (start=49)
 | | | location 49 (scope: 12)
 | | | | when (true) ; goto location 50
 | | | location 52 (scope: 13)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 53
 | | | location 53 (scope: 13)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 49
 | | | location 50 (scope: 12)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 51
 | | | location 51 (scope: 12)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 52
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 54
 | | | location 54 (scope: 12)
 | | | | when (true) return; goto location 55
 | | | location 55 (scope: 11)
 | function m1_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 18 (parent: 8)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 19 (parent: 18)
 | | locations (start=85)
 | | | location 85 (scope: 18)
 | | | | when (true) current = lower; goto location 86
 | | | location 87 (scope: 19)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 88
 | | | location 88 (scope: 19)
 | | | | when (true) current = current+1; goto location 86
 | | | location 86 (scope: 18)
 | | | | when (!(current<=upper)) ; goto location 89
 | | | | when (current<=upper) ; goto location 87
 | | | location 86 (scope: 18)
 | | | | when (!(current<=upper)) ; goto location 89
 | | | | when (current<=upper) ; goto location 87
 | | | location 89 (scope: 18)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 90
 | | | location 90 (scope: 18)
 | | | | when (true) return; goto location 91
 | | | location 91 (scope: 18)
 | function m1_CVT_system
 | | formal parameters
 | | scope 8 (parent: 20)
 | | locations (start=33)
 | | | location 33 (scope: 8)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 34
 | | | location 34 (scope: 8)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 35
 | | | location 35 (scope: 8)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 36
 | | | location 36 (scope: 8)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 37
 | | | location 37 (scope: 8)
 | | | | when (true) numTimes = 2; goto location 38
 | | | location 38 (scope: 8)
 | | | | when (true) N = 3; goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) _CVT_sync_sum = false; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) m1main(); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (true) return; goto location 42
 | | | location 42 (scope: 8)

STATS:
   maxProcs            :9
   statesSeen          : 16942
   statesMatched       : 396
   transitionsExecuted : 17337
   proverValidCalls    : 122954
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 8.231
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 20 (parent: null)
 | | | m0_pid : process
 | | | m1_pid : process
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=92)
 | | | location 92 (scope: 20)
 | | | | when (true) m0_pid = fork m0_CVT_system(); goto location 93
 | | | location 93 (scope: 20)
 | | | | when (true) join m0_pid; goto location 94
 | | | location 94 (scope: 20)
 | | | | when (true) m1_pid = fork m1_CVT_system(); goto location 95
 | | | location 95 (scope: 20)
 | | | | when (true) join m1_pid; goto location 96
 | | | location 96 (scope: 20)
 | | | | when (true) return; goto location 97
 | | | location 97 (scope: 20)
 | function m0main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 4 (parent: 3)
 | | | | | | i : int
 | | | | | | _CVT_process : process
 | | | | | | _CVT_tag : int
 | | | | | | scope 5 (parent: 4)
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 16
 | | | location 16 (scope: 4)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 0, N-1); goto location 17
 | | | location 17 (scope: 4)
 | | | | when (true) ; goto location 18
 | | | location 18 (scope: 4)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 19
 | | | location 19 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 21
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 20
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 21 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 22
 | | | location 22 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 17
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 23 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 24 (scope: 0)
 | | | | when (true) return; goto location 25
 | | | location 25 (scope: 0)
 | function m0_CVT_system
 | | formal parameters
 | | scope 0 (parent: 20)
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 2; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 4; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) m0main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function m0_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 6 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 7 (parent: 6)
 | | locations (start=26)
 | | | location 26 (scope: 6)
 | | | | when (true) current = lower; goto location 27
 | | | location 28 (scope: 7)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (true) current = current+1; goto location 27
 | | | location 27 (scope: 6)
 | | | | when (!(current<=upper)) ; goto location 30
 | | | | when (current<=upper) ; goto location 28
 | | | location 27 (scope: 6)
 | | | | when (!(current<=upper)) ; goto location 30
 | | | | when (current<=upper) ; goto location 28
 | | | location 30 (scope: 6)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) return; goto location 32
 | | | location 32 (scope: 6)
 | function m1_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 18 (parent: 8)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 19 (parent: 18)
 | | locations (start=85)
 | | | location 85 (scope: 18)
 | | | | when (true) current = lower; goto location 86
 | | | location 87 (scope: 19)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 88
 | | | location 88 (scope: 19)
 | | | | when (true) current = current+1; goto location 86
 | | | location 86 (scope: 18)
 | | | | when (!(current<=upper)) ; goto location 89
 | | | | when (current<=upper) ; goto location 87
 | | | location 86 (scope: 18)
 | | | | when (!(current<=upper)) ; goto location 89
 | | | | when (current<=upper) ; goto location 87
 | | | location 89 (scope: 18)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 90
 | | | location 90 (scope: 18)
 | | | | when (true) return; goto location 91
 | | | location 91 (scope: 18)
 | function m1_CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 12 (parent: 11)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 13 (parent: 12)
 | | locations (start=49)
 | | | location 49 (scope: 12)
 | | | | when (true) ; goto location 50
 | | | location 52 (scope: 13)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 53
 | | | location 53 (scope: 13)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 49
 | | | location 50 (scope: 12)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 51
 | | | location 51 (scope: 12)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 54
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 52
 | | | location 54 (scope: 12)
 | | | | when (true) return; goto location 55
 | | | location 55 (scope: 11)
 | function m1_CVT_system
 | | formal parameters
 | | scope 8 (parent: 20)
 | | locations (start=33)
 | | | location 33 (scope: 8)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 34
 | | | location 34 (scope: 8)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 35
 | | | location 35 (scope: 8)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 36
 | | | location 36 (scope: 8)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 37
 | | | location 37 (scope: 8)
 | | | | when (true) numTimes = 2; goto location 38
 | | | location 38 (scope: 8)
 | | | | when (true) N = 4; goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) _CVT_sync_sum = false; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) m1main(); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (true) return; goto location 42
 | | | location 42 (scope: 8)
 | function m1main
 | | formal parameters
 | | scope 9 (parent: 8)
 | | | temp : int
 | | | scope 10 (parent: 9)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 11 (parent: 10)
 | | | | | scope 14 (parent: 11)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 17 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 16 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 15 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=43)
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 44 (scope: 10)
 | | | | when (true) ; goto location 45
 | | | location 45 (scope: 10)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 46
 | | | location 46 (scope: 10)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 47
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 48
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 48 (scope: 11)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 56
 | | | location 56 (scope: 14)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 57
 | | | location 57 (scope: 14)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 59
 | | | location 58 (scope: 15)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork m1_CVT_tmp_0(me); goto location 60
 | | | location 59 (scope: 15)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 60
 | | | location 60 (scope: 15)
 | | | | when (true) ; goto location 61
 | | | location 61 (scope: 15)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 62
 | | | location 62 (scope: 15)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 63
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 58
 | | | location 63 (scope: 15)
 | | | | when (true) join _CVT_process; goto location 64
 | | | location 64 (scope: 14)
 | | | | when (true) _CVT_iterator = fork m1_CVT_range_function(me, 0, N-1); goto location 65
 | | | location 65 (scope: 14)
 | | | | when (true) ; goto location 66
 | | | location 66 (scope: 14)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 67
 | | | location 67 (scope: 14)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 71
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 68
 | | | location 68 (scope: 14)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 69
 | | | location 69 (scope: 14)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 65
 | | | location 70 (scope: 16)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 72
 | | | location 71 (scope: 16)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 72
 | | | location 72 (scope: 16)
 | | | | when (true) ; goto location 73
 | | | location 73 (scope: 16)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 74
 | | | location 74 (scope: 16)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 75
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 70
 | | | location 75 (scope: 16)
 | | | | when (true) join _CVT_process; goto location 77
 | | | location 76 (scope: 17)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 78
 | | | location 77 (scope: 17)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 78
 | | | location 78 (scope: 17)
 | | | | when (true) ; goto location 79
 | | | location 79 (scope: 17)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 80
 | | | location 80 (scope: 17)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 81
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 76
 | | | location 81 (scope: 17)
 | | | | when (true) join _CVT_process; goto location 82
 | | | location 82 (scope: 11)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 44
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 83 (scope: 8)
 | | | | when (true) return; goto location 84
 | | | location 84 (scope: 8)

STATS:
   maxProcs            :9
   statesSeen          : 70643
   statesMatched       : 2415
   transitionsExecuted : 73057
   proverValidCalls    : 521770
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 35.32
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 20 (parent: null)
 | | | m0_pid : process
 | | | m1_pid : process
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=92)
 | | | location 92 (scope: 20)
 | | | | when (true) m0_pid = fork m0_CVT_system(); goto location 93
 | | | location 93 (scope: 20)
 | | | | when (true) join m0_pid; goto location 94
 | | | location 94 (scope: 20)
 | | | | when (true) m1_pid = fork m1_CVT_system(); goto location 95
 | | | location 95 (scope: 20)
 | | | | when (true) join m1_pid; goto location 96
 | | | location 96 (scope: 20)
 | | | | when (true) return; goto location 97
 | | | location 97 (scope: 20)
 | function m0main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 4 (parent: 3)
 | | | | | | i : int
 | | | | | | _CVT_process : process
 | | | | | | _CVT_tag : int
 | | | | | | scope 5 (parent: 4)
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 16
 | | | location 16 (scope: 4)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 0, N-1); goto location 17
 | | | location 17 (scope: 4)
 | | | | when (true) ; goto location 18
 | | | location 18 (scope: 4)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 19
 | | | location 19 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 21
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 20
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 21 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 22
 | | | location 22 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 17
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 23 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 24 (scope: 0)
 | | | | when (true) return; goto location 25
 | | | location 25 (scope: 0)
 | function m0_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 6 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 7 (parent: 6)
 | | locations (start=26)
 | | | location 26 (scope: 6)
 | | | | when (true) current = lower; goto location 27
 | | | location 28 (scope: 7)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (true) current = current+1; goto location 27
 | | | location 27 (scope: 6)
 | | | | when (!(current<=upper)) ; goto location 30
 | | | | when (current<=upper) ; goto location 28
 | | | location 27 (scope: 6)
 | | | | when (!(current<=upper)) ; goto location 30
 | | | | when (current<=upper) ; goto location 28
 | | | location 30 (scope: 6)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) return; goto location 32
 | | | location 32 (scope: 6)
 | function m0_CVT_system
 | | formal parameters
 | | scope 0 (parent: 20)
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 2; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 5; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) m0main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function m1_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 18 (parent: 8)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 19 (parent: 18)
 | | locations (start=85)
 | | | location 85 (scope: 18)
 | | | | when (true) current = lower; goto location 86
 | | | location 87 (scope: 19)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 88
 | | | location 88 (scope: 19)
 | | | | when (true) current = current+1; goto location 86
 | | | location 86 (scope: 18)
 | | | | when (current<=upper) ; goto location 87
 | | | | when (!(current<=upper)) ; goto location 89
 | | | location 86 (scope: 18)
 | | | | when (current<=upper) ; goto location 87
 | | | | when (!(current<=upper)) ; goto location 89
 | | | location 89 (scope: 18)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 90
 | | | location 90 (scope: 18)
 | | | | when (true) return; goto location 91
 | | | location 91 (scope: 18)
 | function m1_CVT_system
 | | formal parameters
 | | scope 8 (parent: 20)
 | | locations (start=33)
 | | | location 33 (scope: 8)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 34
 | | | location 34 (scope: 8)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 35
 | | | location 35 (scope: 8)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 36
 | | | location 36 (scope: 8)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 37
 | | | location 37 (scope: 8)
 | | | | when (true) numTimes = 2; goto location 38
 | | | location 38 (scope: 8)
 | | | | when (true) N = 5; goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) _CVT_sync_sum = false; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) m1main(); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (true) return; goto location 42
 | | | location 42 (scope: 8)
 | function m1main
 | | formal parameters
 | | scope 9 (parent: 8)
 | | | temp : int
 | | | scope 10 (parent: 9)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 11 (parent: 10)
 | | | | | scope 14 (parent: 11)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 15 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 17 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 16 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=43)
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 44 (scope: 10)
 | | | | when (true) ; goto location 45
 | | | location 45 (scope: 10)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 46
 | | | location 46 (scope: 10)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 48
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 47
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 48 (scope: 11)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 56
 | | | location 56 (scope: 14)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 57
 | | | location 57 (scope: 14)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 59
 | | | location 58 (scope: 15)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork m1_CVT_tmp_0(me); goto location 60
 | | | location 59 (scope: 15)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 60
 | | | location 60 (scope: 15)
 | | | | when (true) ; goto location 61
 | | | location 61 (scope: 15)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 62
 | | | location 62 (scope: 15)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 58
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 63
 | | | location 63 (scope: 15)
 | | | | when (true) join _CVT_process; goto location 64
 | | | location 64 (scope: 14)
 | | | | when (true) _CVT_iterator = fork m1_CVT_range_function(me, 0, N-1); goto location 65
 | | | location 65 (scope: 14)
 | | | | when (true) ; goto location 66
 | | | location 66 (scope: 14)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 67
 | | | location 67 (scope: 14)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 71
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 68
 | | | location 68 (scope: 14)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 69
 | | | location 69 (scope: 14)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 65
 | | | location 70 (scope: 16)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 72
 | | | location 71 (scope: 16)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 72
 | | | location 72 (scope: 16)
 | | | | when (true) ; goto location 73
 | | | location 73 (scope: 16)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 74
 | | | location 74 (scope: 16)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 75
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 70
 | | | location 75 (scope: 16)
 | | | | when (true) join _CVT_process; goto location 77
 | | | location 76 (scope: 17)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 78
 | | | location 77 (scope: 17)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 78
 | | | location 78 (scope: 17)
 | | | | when (true) ; goto location 79
 | | | location 79 (scope: 17)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 80
 | | | location 80 (scope: 17)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 81
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 76
 | | | location 81 (scope: 17)
 | | | | when (true) join _CVT_process; goto location 82
 | | | location 82 (scope: 11)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 44
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 83 (scope: 8)
 | | | | when (true) return; goto location 84
 | | | location 84 (scope: 8)
 | function m1_CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 12 (parent: 11)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 13 (parent: 12)
 | | locations (start=49)
 | | | location 49 (scope: 12)
 | | | | when (true) ; goto location 50
 | | | location 52 (scope: 13)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 53
 | | | location 53 (scope: 13)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 49
 | | | location 50 (scope: 12)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 51
 | | | location 51 (scope: 12)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 52
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 54
 | | | location 54 (scope: 12)
 | | | | when (true) return; goto location 55
 | | | location 55 (scope: 11)

STATS:
   maxProcs            :9
   statesSeen          : 296248
   statesMatched       : 13626
   transitionsExecuted : 309873
   proverValidCalls    : 2209075
   CVC3ValidCalls      : 0
   memory              : 114008064
   elapsedTime         : 248.649
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 20 (parent: null)
 | | | m0_pid : process
 | | | m1_pid : process
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=92)
 | | | location 92 (scope: 20)
 | | | | when (true) m0_pid = fork m0_CVT_system(); goto location 93
 | | | location 93 (scope: 20)
 | | | | when (true) join m0_pid; goto location 94
 | | | location 94 (scope: 20)
 | | | | when (true) m1_pid = fork m1_CVT_system(); goto location 95
 | | | location 95 (scope: 20)
 | | | | when (true) join m1_pid; goto location 96
 | | | location 96 (scope: 20)
 | | | | when (true) return; goto location 97
 | | | location 97 (scope: 20)
 | function m0main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 4 (parent: 3)
 | | | | | | i : int
 | | | | | | _CVT_process : process
 | | | | | | _CVT_tag : int
 | | | | | | scope 5 (parent: 4)
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 16
 | | | location 16 (scope: 4)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 0, N-1); goto location 17
 | | | location 17 (scope: 4)
 | | | | when (true) ; goto location 18
 | | | location 18 (scope: 4)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 19
 | | | location 19 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 21
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 20
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 21 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 22
 | | | location 22 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 17
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 23 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 24 (scope: 0)
 | | | | when (true) return; goto location 25
 | | | location 25 (scope: 0)
 | function m0_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 6 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 7 (parent: 6)
 | | locations (start=26)
 | | | location 26 (scope: 6)
 | | | | when (true) current = lower; goto location 27
 | | | location 28 (scope: 7)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (true) current = current+1; goto location 27
 | | | location 27 (scope: 6)
 | | | | when (!(current<=upper)) ; goto location 30
 | | | | when (current<=upper) ; goto location 28
 | | | location 27 (scope: 6)
 | | | | when (!(current<=upper)) ; goto location 30
 | | | | when (current<=upper) ; goto location 28
 | | | location 30 (scope: 6)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) return; goto location 32
 | | | location 32 (scope: 6)
 | function m0_CVT_system
 | | formal parameters
 | | scope 0 (parent: 20)
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 3; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 1; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) m0main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function m1_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 18 (parent: 8)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 19 (parent: 18)
 | | locations (start=85)
 | | | location 85 (scope: 18)
 | | | | when (true) current = lower; goto location 86
 | | | location 87 (scope: 19)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 88
 | | | location 88 (scope: 19)
 | | | | when (true) current = current+1; goto location 86
 | | | location 86 (scope: 18)
 | | | | when (current<=upper) ; goto location 87
 | | | | when (!(current<=upper)) ; goto location 89
 | | | location 86 (scope: 18)
 | | | | when (current<=upper) ; goto location 87
 | | | | when (!(current<=upper)) ; goto location 89
 | | | location 89 (scope: 18)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 90
 | | | location 90 (scope: 18)
 | | | | when (true) return; goto location 91
 | | | location 91 (scope: 18)
 | function m1_CVT_system
 | | formal parameters
 | | scope 8 (parent: 20)
 | | locations (start=33)
 | | | location 33 (scope: 8)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 34
 | | | location 34 (scope: 8)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 35
 | | | location 35 (scope: 8)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 36
 | | | location 36 (scope: 8)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 37
 | | | location 37 (scope: 8)
 | | | | when (true) numTimes = 3; goto location 38
 | | | location 38 (scope: 8)
 | | | | when (true) N = 1; goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) _CVT_sync_sum = false; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) m1main(); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (true) return; goto location 42
 | | | location 42 (scope: 8)
 | function m1main
 | | formal parameters
 | | scope 9 (parent: 8)
 | | | temp : int
 | | | scope 10 (parent: 9)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 11 (parent: 10)
 | | | | | scope 14 (parent: 11)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 15 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 17 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 16 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=43)
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 44 (scope: 10)
 | | | | when (true) ; goto location 45
 | | | location 45 (scope: 10)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 46
 | | | location 46 (scope: 10)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 48
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 47
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 48 (scope: 11)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 56
 | | | location 56 (scope: 14)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 57
 | | | location 57 (scope: 14)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 59
 | | | location 58 (scope: 15)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork m1_CVT_tmp_0(me); goto location 60
 | | | location 59 (scope: 15)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 60
 | | | location 60 (scope: 15)
 | | | | when (true) ; goto location 61
 | | | location 61 (scope: 15)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 62
 | | | location 62 (scope: 15)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 58
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 63
 | | | location 63 (scope: 15)
 | | | | when (true) join _CVT_process; goto location 64
 | | | location 64 (scope: 14)
 | | | | when (true) _CVT_iterator = fork m1_CVT_range_function(me, 0, N-1); goto location 65
 | | | location 65 (scope: 14)
 | | | | when (true) ; goto location 66
 | | | location 66 (scope: 14)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 67
 | | | location 67 (scope: 14)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 71
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 68
 | | | location 68 (scope: 14)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 69
 | | | location 69 (scope: 14)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 65
 | | | location 70 (scope: 16)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 72
 | | | location 71 (scope: 16)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 72
 | | | location 72 (scope: 16)
 | | | | when (true) ; goto location 73
 | | | location 73 (scope: 16)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 74
 | | | location 74 (scope: 16)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 75
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 70
 | | | location 75 (scope: 16)
 | | | | when (true) join _CVT_process; goto location 77
 | | | location 76 (scope: 17)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 78
 | | | location 77 (scope: 17)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 78
 | | | location 78 (scope: 17)
 | | | | when (true) ; goto location 79
 | | | location 79 (scope: 17)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 80
 | | | location 80 (scope: 17)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 81
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 76
 | | | location 81 (scope: 17)
 | | | | when (true) join _CVT_process; goto location 82
 | | | location 82 (scope: 11)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 44
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 83 (scope: 8)
 | | | | when (true) return; goto location 84
 | | | location 84 (scope: 8)
 | function m1_CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 12 (parent: 11)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 13 (parent: 12)
 | | locations (start=49)
 | | | location 49 (scope: 12)
 | | | | when (true) ; goto location 50
 | | | location 52 (scope: 13)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 53
 | | | location 53 (scope: 13)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 49
 | | | location 50 (scope: 12)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 51
 | | | location 51 (scope: 12)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 52
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 54
 | | | location 54 (scope: 12)
 | | | | when (true) return; goto location 55
 | | | location 55 (scope: 11)

STATS:
   maxProcs            :10
   statesSeen          : 1724
   statesMatched       : 15
   transitionsExecuted : 1738
   proverValidCalls    : 11424
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 1.691
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 20 (parent: null)
 | | | m0_pid : process
 | | | m1_pid : process
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=92)
 | | | location 92 (scope: 20)
 | | | | when (true) m0_pid = fork m0_CVT_system(); goto location 93
 | | | location 93 (scope: 20)
 | | | | when (true) join m0_pid; goto location 94
 | | | location 94 (scope: 20)
 | | | | when (true) m1_pid = fork m1_CVT_system(); goto location 95
 | | | location 95 (scope: 20)
 | | | | when (true) join m1_pid; goto location 96
 | | | location 96 (scope: 20)
 | | | | when (true) return; goto location 97
 | | | location 97 (scope: 20)
 | function m0_CVT_system
 | | formal parameters
 | | scope 0 (parent: 20)
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 3; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 2; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) m0main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function m0_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 6 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 7 (parent: 6)
 | | locations (start=26)
 | | | location 26 (scope: 6)
 | | | | when (true) current = lower; goto location 27
 | | | location 28 (scope: 7)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (true) current = current+1; goto location 27
 | | | location 27 (scope: 6)
 | | | | when (current<=upper) ; goto location 28
 | | | | when (!(current<=upper)) ; goto location 30
 | | | location 27 (scope: 6)
 | | | | when (current<=upper) ; goto location 28
 | | | | when (!(current<=upper)) ; goto location 30
 | | | location 30 (scope: 6)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) return; goto location 32
 | | | location 32 (scope: 6)
 | function m0main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 4 (parent: 3)
 | | | | | | i : int
 | | | | | | _CVT_process : process
 | | | | | | _CVT_tag : int
 | | | | | | scope 5 (parent: 4)
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 16
 | | | location 16 (scope: 4)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 0, N-1); goto location 17
 | | | location 17 (scope: 4)
 | | | | when (true) ; goto location 18
 | | | location 18 (scope: 4)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 19
 | | | location 19 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 21
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 20
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 21 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 22
 | | | location 22 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 17
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 23 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 24 (scope: 0)
 | | | | when (true) return; goto location 25
 | | | location 25 (scope: 0)
 | function m1main
 | | formal parameters
 | | scope 9 (parent: 8)
 | | | temp : int
 | | | scope 10 (parent: 9)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 11 (parent: 10)
 | | | | | scope 14 (parent: 11)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 17 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 16 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 15 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=43)
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 44 (scope: 10)
 | | | | when (true) ; goto location 45
 | | | location 45 (scope: 10)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 46
 | | | location 46 (scope: 10)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 48
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 47
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 48 (scope: 11)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 56
 | | | location 56 (scope: 14)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 57
 | | | location 57 (scope: 14)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 59
 | | | location 58 (scope: 15)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork m1_CVT_tmp_0(me); goto location 60
 | | | location 59 (scope: 15)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 60
 | | | location 60 (scope: 15)
 | | | | when (true) ; goto location 61
 | | | location 61 (scope: 15)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 62
 | | | location 62 (scope: 15)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 63
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 58
 | | | location 63 (scope: 15)
 | | | | when (true) join _CVT_process; goto location 64
 | | | location 64 (scope: 14)
 | | | | when (true) _CVT_iterator = fork m1_CVT_range_function(me, 0, N-1); goto location 65
 | | | location 65 (scope: 14)
 | | | | when (true) ; goto location 66
 | | | location 66 (scope: 14)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 67
 | | | location 67 (scope: 14)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 68
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 71
 | | | location 68 (scope: 14)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 69
 | | | location 69 (scope: 14)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 65
 | | | location 70 (scope: 16)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 72
 | | | location 71 (scope: 16)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 72
 | | | location 72 (scope: 16)
 | | | | when (true) ; goto location 73
 | | | location 73 (scope: 16)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 74
 | | | location 74 (scope: 16)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 70
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 75
 | | | location 75 (scope: 16)
 | | | | when (true) join _CVT_process; goto location 77
 | | | location 76 (scope: 17)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 78
 | | | location 77 (scope: 17)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 78
 | | | location 78 (scope: 17)
 | | | | when (true) ; goto location 79
 | | | location 79 (scope: 17)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 80
 | | | location 80 (scope: 17)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 76
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 81
 | | | location 81 (scope: 17)
 | | | | when (true) join _CVT_process; goto location 82
 | | | location 82 (scope: 11)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 44
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 83 (scope: 8)
 | | | | when (true) return; goto location 84
 | | | location 84 (scope: 8)
 | function m1_CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 12 (parent: 11)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 13 (parent: 12)
 | | locations (start=49)
 | | | location 49 (scope: 12)
 | | | | when (true) ; goto location 50
 | | | location 52 (scope: 13)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 53
 | | | location 53 (scope: 13)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 49
 | | | location 50 (scope: 12)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 51
 | | | location 51 (scope: 12)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 52
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 54
 | | | location 54 (scope: 12)
 | | | | when (true) return; goto location 55
 | | | location 55 (scope: 11)
 | function m1_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 18 (parent: 8)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 19 (parent: 18)
 | | locations (start=85)
 | | | location 85 (scope: 18)
 | | | | when (true) current = lower; goto location 86
 | | | location 87 (scope: 19)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 88
 | | | location 88 (scope: 19)
 | | | | when (true) current = current+1; goto location 86
 | | | location 86 (scope: 18)
 | | | | when (!(current<=upper)) ; goto location 89
 | | | | when (current<=upper) ; goto location 87
 | | | location 86 (scope: 18)
 | | | | when (!(current<=upper)) ; goto location 89
 | | | | when (current<=upper) ; goto location 87
 | | | location 89 (scope: 18)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 90
 | | | location 90 (scope: 18)
 | | | | when (true) return; goto location 91
 | | | location 91 (scope: 18)
 | function m1_CVT_system
 | | formal parameters
 | | scope 8 (parent: 20)
 | | locations (start=33)
 | | | location 33 (scope: 8)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 34
 | | | location 34 (scope: 8)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 35
 | | | location 35 (scope: 8)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 36
 | | | location 36 (scope: 8)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 37
 | | | location 37 (scope: 8)
 | | | | when (true) numTimes = 3; goto location 38
 | | | location 38 (scope: 8)
 | | | | when (true) N = 2; goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) _CVT_sync_sum = false; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) m1main(); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (true) return; goto location 42
 | | | location 42 (scope: 8)

STATS:
   maxProcs            :10
   statesSeen          : 7052
   statesMatched       : 105
   transitionsExecuted : 7156
   proverValidCalls    : 49618
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 3.904
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 20 (parent: null)
 | | | m0_pid : process
 | | | m1_pid : process
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=92)
 | | | location 92 (scope: 20)
 | | | | when (true) m0_pid = fork m0_CVT_system(); goto location 93
 | | | location 93 (scope: 20)
 | | | | when (true) join m0_pid; goto location 94
 | | | location 94 (scope: 20)
 | | | | when (true) m1_pid = fork m1_CVT_system(); goto location 95
 | | | location 95 (scope: 20)
 | | | | when (true) join m1_pid; goto location 96
 | | | location 96 (scope: 20)
 | | | | when (true) return; goto location 97
 | | | location 97 (scope: 20)
 | function m0_CVT_system
 | | formal parameters
 | | scope 0 (parent: 20)
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 3; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 3; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) m0main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function m0_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 6 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 7 (parent: 6)
 | | locations (start=26)
 | | | location 26 (scope: 6)
 | | | | when (true) current = lower; goto location 27
 | | | location 28 (scope: 7)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (true) current = current+1; goto location 27
 | | | location 27 (scope: 6)
 | | | | when (current<=upper) ; goto location 28
 | | | | when (!(current<=upper)) ; goto location 30
 | | | location 27 (scope: 6)
 | | | | when (current<=upper) ; goto location 28
 | | | | when (!(current<=upper)) ; goto location 30
 | | | location 30 (scope: 6)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) return; goto location 32
 | | | location 32 (scope: 6)
 | function m0main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 4 (parent: 3)
 | | | | | | i : int
 | | | | | | _CVT_process : process
 | | | | | | _CVT_tag : int
 | | | | | | scope 5 (parent: 4)
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 16
 | | | location 16 (scope: 4)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 0, N-1); goto location 17
 | | | location 17 (scope: 4)
 | | | | when (true) ; goto location 18
 | | | location 18 (scope: 4)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 19
 | | | location 19 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 21
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 20
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 21 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 22
 | | | location 22 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 17
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 23 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 24 (scope: 0)
 | | | | when (true) return; goto location 25
 | | | location 25 (scope: 0)
 | function m1main
 | | formal parameters
 | | scope 9 (parent: 8)
 | | | temp : int
 | | | scope 10 (parent: 9)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 11 (parent: 10)
 | | | | | scope 14 (parent: 11)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 17 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 16 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 15 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=43)
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 44 (scope: 10)
 | | | | when (true) ; goto location 45
 | | | location 45 (scope: 10)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 46
 | | | location 46 (scope: 10)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 48
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 47
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 48 (scope: 11)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 56
 | | | location 56 (scope: 14)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 57
 | | | location 57 (scope: 14)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 59
 | | | location 58 (scope: 15)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork m1_CVT_tmp_0(me); goto location 60
 | | | location 59 (scope: 15)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 60
 | | | location 60 (scope: 15)
 | | | | when (true) ; goto location 61
 | | | location 61 (scope: 15)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 62
 | | | location 62 (scope: 15)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 63
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 58
 | | | location 63 (scope: 15)
 | | | | when (true) join _CVT_process; goto location 64
 | | | location 64 (scope: 14)
 | | | | when (true) _CVT_iterator = fork m1_CVT_range_function(me, 0, N-1); goto location 65
 | | | location 65 (scope: 14)
 | | | | when (true) ; goto location 66
 | | | location 66 (scope: 14)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 67
 | | | location 67 (scope: 14)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 68
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 71
 | | | location 68 (scope: 14)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 69
 | | | location 69 (scope: 14)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 65
 | | | location 70 (scope: 16)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 72
 | | | location 71 (scope: 16)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 72
 | | | location 72 (scope: 16)
 | | | | when (true) ; goto location 73
 | | | location 73 (scope: 16)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 74
 | | | location 74 (scope: 16)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 70
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 75
 | | | location 75 (scope: 16)
 | | | | when (true) join _CVT_process; goto location 77
 | | | location 76 (scope: 17)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 78
 | | | location 77 (scope: 17)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 78
 | | | location 78 (scope: 17)
 | | | | when (true) ; goto location 79
 | | | location 79 (scope: 17)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 80
 | | | location 80 (scope: 17)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 76
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 81
 | | | location 81 (scope: 17)
 | | | | when (true) join _CVT_process; goto location 82
 | | | location 82 (scope: 11)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 44
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 83 (scope: 8)
 | | | | when (true) return; goto location 84
 | | | location 84 (scope: 8)
 | function m1_CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 12 (parent: 11)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 13 (parent: 12)
 | | locations (start=49)
 | | | location 49 (scope: 12)
 | | | | when (true) ; goto location 50
 | | | location 52 (scope: 13)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 53
 | | | location 53 (scope: 13)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 49
 | | | location 50 (scope: 12)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 51
 | | | location 51 (scope: 12)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 52
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 54
 | | | location 54 (scope: 12)
 | | | | when (true) return; goto location 55
 | | | location 55 (scope: 11)
 | function m1_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 18 (parent: 8)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 19 (parent: 18)
 | | locations (start=85)
 | | | location 85 (scope: 18)
 | | | | when (true) current = lower; goto location 86
 | | | location 87 (scope: 19)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 88
 | | | location 88 (scope: 19)
 | | | | when (true) current = current+1; goto location 86
 | | | location 86 (scope: 18)
 | | | | when (!(current<=upper)) ; goto location 89
 | | | | when (current<=upper) ; goto location 87
 | | | location 86 (scope: 18)
 | | | | when (!(current<=upper)) ; goto location 89
 | | | | when (current<=upper) ; goto location 87
 | | | location 89 (scope: 18)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 90
 | | | location 90 (scope: 18)
 | | | | when (true) return; goto location 91
 | | | location 91 (scope: 18)
 | function m1_CVT_system
 | | formal parameters
 | | scope 8 (parent: 20)
 | | locations (start=33)
 | | | location 33 (scope: 8)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 34
 | | | location 34 (scope: 8)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 35
 | | | location 35 (scope: 8)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 36
 | | | location 36 (scope: 8)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 37
 | | | location 37 (scope: 8)
 | | | | when (true) numTimes = 3; goto location 38
 | | | location 38 (scope: 8)
 | | | | when (true) N = 3; goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) _CVT_sync_sum = false; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) m1main(); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (true) return; goto location 42
 | | | location 42 (scope: 8)

STATS:
   maxProcs            :10
   statesSeen          : 29586
   statesMatched       : 693
   transitionsExecuted : 30278
   proverValidCalls    : 214873
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 11.071
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 20 (parent: null)
 | | | m0_pid : process
 | | | m1_pid : process
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=92)
 | | | location 92 (scope: 20)
 | | | | when (true) m0_pid = fork m0_CVT_system(); goto location 93
 | | | location 93 (scope: 20)
 | | | | when (true) join m0_pid; goto location 94
 | | | location 94 (scope: 20)
 | | | | when (true) m1_pid = fork m1_CVT_system(); goto location 95
 | | | location 95 (scope: 20)
 | | | | when (true) join m1_pid; goto location 96
 | | | location 96 (scope: 20)
 | | | | when (true) return; goto location 97
 | | | location 97 (scope: 20)
 | function m0main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 4 (parent: 3)
 | | | | | | i : int
 | | | | | | _CVT_process : process
 | | | | | | _CVT_tag : int
 | | | | | | scope 5 (parent: 4)
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 16
 | | | location 16 (scope: 4)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 0, N-1); goto location 17
 | | | location 17 (scope: 4)
 | | | | when (true) ; goto location 18
 | | | location 18 (scope: 4)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 19
 | | | location 19 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 21
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 20
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 21 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 22
 | | | location 22 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 17
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 23 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 24 (scope: 0)
 | | | | when (true) return; goto location 25
 | | | location 25 (scope: 0)
 | function m0_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 6 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 7 (parent: 6)
 | | locations (start=26)
 | | | location 26 (scope: 6)
 | | | | when (true) current = lower; goto location 27
 | | | location 28 (scope: 7)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (true) current = current+1; goto location 27
 | | | location 27 (scope: 6)
 | | | | when (!(current<=upper)) ; goto location 30
 | | | | when (current<=upper) ; goto location 28
 | | | location 27 (scope: 6)
 | | | | when (!(current<=upper)) ; goto location 30
 | | | | when (current<=upper) ; goto location 28
 | | | location 30 (scope: 6)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) return; goto location 32
 | | | location 32 (scope: 6)
 | function m0_CVT_system
 | | formal parameters
 | | scope 0 (parent: 20)
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 3; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 4; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) m0main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function m1_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 18 (parent: 8)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 19 (parent: 18)
 | | locations (start=85)
 | | | location 85 (scope: 18)
 | | | | when (true) current = lower; goto location 86
 | | | location 87 (scope: 19)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 88
 | | | location 88 (scope: 19)
 | | | | when (true) current = current+1; goto location 86
 | | | location 86 (scope: 18)
 | | | | when (current<=upper) ; goto location 87
 | | | | when (!(current<=upper)) ; goto location 89
 | | | location 86 (scope: 18)
 | | | | when (current<=upper) ; goto location 87
 | | | | when (!(current<=upper)) ; goto location 89
 | | | location 89 (scope: 18)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 90
 | | | location 90 (scope: 18)
 | | | | when (true) return; goto location 91
 | | | location 91 (scope: 18)
 | function m1_CVT_system
 | | formal parameters
 | | scope 8 (parent: 20)
 | | locations (start=33)
 | | | location 33 (scope: 8)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 34
 | | | location 34 (scope: 8)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 35
 | | | location 35 (scope: 8)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 36
 | | | location 36 (scope: 8)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 37
 | | | location 37 (scope: 8)
 | | | | when (true) numTimes = 3; goto location 38
 | | | location 38 (scope: 8)
 | | | | when (true) N = 4; goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) _CVT_sync_sum = false; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) m1main(); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (true) return; goto location 42
 | | | location 42 (scope: 8)
 | function m1main
 | | formal parameters
 | | scope 9 (parent: 8)
 | | | temp : int
 | | | scope 10 (parent: 9)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 11 (parent: 10)
 | | | | | scope 14 (parent: 11)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 15 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 17 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 16 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=43)
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 44 (scope: 10)
 | | | | when (true) ; goto location 45
 | | | location 45 (scope: 10)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 46
 | | | location 46 (scope: 10)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 48
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 47
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 48 (scope: 11)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 56
 | | | location 56 (scope: 14)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 57
 | | | location 57 (scope: 14)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 59
 | | | location 58 (scope: 15)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork m1_CVT_tmp_0(me); goto location 60
 | | | location 59 (scope: 15)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 60
 | | | location 60 (scope: 15)
 | | | | when (true) ; goto location 61
 | | | location 61 (scope: 15)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 62
 | | | location 62 (scope: 15)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 58
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 63
 | | | location 63 (scope: 15)
 | | | | when (true) join _CVT_process; goto location 64
 | | | location 64 (scope: 14)
 | | | | when (true) _CVT_iterator = fork m1_CVT_range_function(me, 0, N-1); goto location 65
 | | | location 65 (scope: 14)
 | | | | when (true) ; goto location 66
 | | | location 66 (scope: 14)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 67
 | | | location 67 (scope: 14)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 71
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 68
 | | | location 68 (scope: 14)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 69
 | | | location 69 (scope: 14)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 65
 | | | location 70 (scope: 16)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 72
 | | | location 71 (scope: 16)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 72
 | | | location 72 (scope: 16)
 | | | | when (true) ; goto location 73
 | | | location 73 (scope: 16)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 74
 | | | location 74 (scope: 16)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 75
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 70
 | | | location 75 (scope: 16)
 | | | | when (true) join _CVT_process; goto location 77
 | | | location 76 (scope: 17)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 78
 | | | location 77 (scope: 17)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 78
 | | | location 78 (scope: 17)
 | | | | when (true) ; goto location 79
 | | | location 79 (scope: 17)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 80
 | | | location 80 (scope: 17)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 81
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 76
 | | | location 81 (scope: 17)
 | | | | when (true) join _CVT_process; goto location 82
 | | | location 82 (scope: 11)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 44
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 83 (scope: 8)
 | | | | when (true) return; goto location 84
 | | | location 84 (scope: 8)
 | function m1_CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 12 (parent: 11)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 13 (parent: 12)
 | | locations (start=49)
 | | | location 49 (scope: 12)
 | | | | when (true) ; goto location 50
 | | | location 52 (scope: 13)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 53
 | | | location 53 (scope: 13)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 49
 | | | location 50 (scope: 12)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 51
 | | | location 51 (scope: 12)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 52
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 54
 | | | location 54 (scope: 12)
 | | | | when (true) return; goto location 55
 | | | location 55 (scope: 11)

STATS:
   maxProcs            :10
   statesSeen          : 127079
   statesMatched       : 4347
   transitionsExecuted : 131425
   proverValidCalls    : 940173
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 71.116
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 20 (parent: null)
 | | | m0_pid : process
 | | | m1_pid : process
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=92)
 | | | location 92 (scope: 20)
 | | | | when (true) m0_pid = fork m0_CVT_system(); goto location 93
 | | | location 93 (scope: 20)
 | | | | when (true) join m0_pid; goto location 94
 | | | location 94 (scope: 20)
 | | | | when (true) m1_pid = fork m1_CVT_system(); goto location 95
 | | | location 95 (scope: 20)
 | | | | when (true) join m1_pid; goto location 96
 | | | location 96 (scope: 20)
 | | | | when (true) return; goto location 97
 | | | location 97 (scope: 20)
 | function m0main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 4 (parent: 3)
 | | | | | | i : int
 | | | | | | _CVT_process : process
 | | | | | | _CVT_tag : int
 | | | | | | scope 5 (parent: 4)
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 16
 | | | location 16 (scope: 4)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 0, N-1); goto location 17
 | | | location 17 (scope: 4)
 | | | | when (true) ; goto location 18
 | | | location 18 (scope: 4)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 19
 | | | location 19 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 21
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 20
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 21 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 22
 | | | location 22 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 17
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 23 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 24 (scope: 0)
 | | | | when (true) return; goto location 25
 | | | location 25 (scope: 0)
 | function m0_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 6 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 7 (parent: 6)
 | | locations (start=26)
 | | | location 26 (scope: 6)
 | | | | when (true) current = lower; goto location 27
 | | | location 28 (scope: 7)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (true) current = current+1; goto location 27
 | | | location 27 (scope: 6)
 | | | | when (!(current<=upper)) ; goto location 30
 | | | | when (current<=upper) ; goto location 28
 | | | location 27 (scope: 6)
 | | | | when (!(current<=upper)) ; goto location 30
 | | | | when (current<=upper) ; goto location 28
 | | | location 30 (scope: 6)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) return; goto location 32
 | | | location 32 (scope: 6)
 | function m0_CVT_system
 | | formal parameters
 | | scope 0 (parent: 20)
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 3; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 5; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) m0main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function m1_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 18 (parent: 8)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 19 (parent: 18)
 | | locations (start=85)
 | | | location 85 (scope: 18)
 | | | | when (true) current = lower; goto location 86
 | | | location 87 (scope: 19)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 88
 | | | location 88 (scope: 19)
 | | | | when (true) current = current+1; goto location 86
 | | | location 86 (scope: 18)
 | | | | when (current<=upper) ; goto location 87
 | | | | when (!(current<=upper)) ; goto location 89
 | | | location 86 (scope: 18)
 | | | | when (current<=upper) ; goto location 87
 | | | | when (!(current<=upper)) ; goto location 89
 | | | location 89 (scope: 18)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 90
 | | | location 90 (scope: 18)
 | | | | when (true) return; goto location 91
 | | | location 91 (scope: 18)
 | function m1_CVT_system
 | | formal parameters
 | | scope 8 (parent: 20)
 | | locations (start=33)
 | | | location 33 (scope: 8)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 34
 | | | location 34 (scope: 8)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 35
 | | | location 35 (scope: 8)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 36
 | | | location 36 (scope: 8)
 | | | | when (true) _CVT_MAX_WORKERS = 3; goto location 37
 | | | location 37 (scope: 8)
 | | | | when (true) numTimes = 3; goto location 38
 | | | location 38 (scope: 8)
 | | | | when (true) N = 5; goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) _CVT_sync_sum = false; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) m1main(); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (true) return; goto location 42
 | | | location 42 (scope: 8)
 | function m1main
 | | formal parameters
 | | scope 9 (parent: 8)
 | | | temp : int
 | | | scope 10 (parent: 9)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 11 (parent: 10)
 | | | | | scope 14 (parent: 11)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 15 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 17 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 16 (parent: 14)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=43)
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 44 (scope: 10)
 | | | | when (true) ; goto location 45
 | | | location 45 (scope: 10)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 46
 | | | location 46 (scope: 10)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 48
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 47
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 48 (scope: 11)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 56
 | | | location 56 (scope: 14)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 57
 | | | location 57 (scope: 14)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 59
 | | | location 58 (scope: 15)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork m1_CVT_tmp_0(me); goto location 60
 | | | location 59 (scope: 15)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 60
 | | | location 60 (scope: 15)
 | | | | when (true) ; goto location 61
 | | | location 61 (scope: 15)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 62
 | | | location 62 (scope: 15)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 58
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 63
 | | | location 63 (scope: 15)
 | | | | when (true) join _CVT_process; goto location 64
 | | | location 64 (scope: 14)
 | | | | when (true) _CVT_iterator = fork m1_CVT_range_function(me, 0, N-1); goto location 65
 | | | location 65 (scope: 14)
 | | | | when (true) ; goto location 66
 | | | location 66 (scope: 14)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 67
 | | | location 67 (scope: 14)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 71
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 68
 | | | location 68 (scope: 14)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 69
 | | | location 69 (scope: 14)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 65
 | | | location 70 (scope: 16)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 72
 | | | location 71 (scope: 16)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 72
 | | | location 72 (scope: 16)
 | | | | when (true) ; goto location 73
 | | | location 73 (scope: 16)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 74
 | | | location 74 (scope: 16)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 75
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 70
 | | | location 75 (scope: 16)
 | | | | when (true) join _CVT_process; goto location 77
 | | | location 76 (scope: 17)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 78
 | | | location 77 (scope: 17)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 78
 | | | location 78 (scope: 17)
 | | | | when (true) ; goto location 79
 | | | location 79 (scope: 17)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 80
 | | | location 80 (scope: 17)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 81
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 76
 | | | location 81 (scope: 17)
 | | | | when (true) join _CVT_process; goto location 82
 | | | location 82 (scope: 11)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 44
 | | | location 47 (scope: 10)
 | | | | when (true) join _CVT_process; goto location 83
 | | | location 43 (scope: 10)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 44
 | | | location 83 (scope: 8)
 | | | | when (true) return; goto location 84
 | | | location 84 (scope: 8)
 | function m1_CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 12 (parent: 11)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 13 (parent: 12)
 | | locations (start=49)
 | | | location 49 (scope: 12)
 | | | | when (true) ; goto location 50
 | | | location 52 (scope: 13)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 53
 | | | location 53 (scope: 13)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 49
 | | | location 50 (scope: 12)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 51
 | | | location 51 (scope: 12)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 52
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 54
 | | | location 54 (scope: 12)
 | | | | when (true) return; goto location 55
 | | | location 55 (scope: 11)

STATS:
   maxProcs            :10
   statesSeen          : 543028
   statesMatched       : 24981
   transitionsExecuted : 568008
   proverValidCalls    : 4049518
   CVC3ValidCalls      : 0
   memory              : 151228416
   elapsedTime         : 660.549
The specified properties hold for all executions.
for numItems in 1 2 3 4 5 6 7 8 9 ; do \
	../CVT verify -noprint -configbuffersize=2 -confignumItems=$numItems prodCons.chpl ; \
	done
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const buffersize : int
 | | | const numItems : int
 | | | const verbose : int
 | | | sum : int
 | | | extern a : int[]
 | | | buff$ : sync int[]
 | | | _CVT_sync_buff$ : bool[]
 | | | scope 1 (parent: 0)
 | | | | _CVT_i : int
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) buffersize = 2; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) numItems = 1; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) verbose = false; goto location 7
 | | | location 9 (scope: 1)
 | | | | when (true) _CVT_i = _CVT_i+1; goto location 8
 | | | location 8 (scope: 1)
 | | | | when (!(_CVT_i<buffersize-1+1)) ; goto location 10
 | | | | when (_CVT_i<buffersize-1+1) _CVT_sync_buff$[_CVT_i] = false; goto location 9
 | | | location 7 (scope: 1)
 | | | | when (true) _CVT_i = 0; goto location 8
 | | | location 10 (scope: 0)
 | | | | when (true) main(); goto location 11
 | | | location 11 (scope: 0)
 | | | | when (true) return; goto location 12
 | | | location 12 (scope: 0)
 | function main
 | | formal parameters
 | | scope 2 (parent: 0)
 | | | scope 3 (parent: 2)
 | | | | _CVT_tmp_procs : process[]
 | | locations (start=19)
 | | | location 19 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[0] = fork _CVT_tmp_0(); goto location 20
 | | | location 20 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[1] = fork _CVT_tmp_1(); goto location 21
 | | | location 21 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[0]; goto location 22
 | | | location 22 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[1]; goto location 23
 | | | location 22 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[1]; goto location 23
 | | | location 19 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[0] = fork _CVT_tmp_0(); goto location 20
 | | | location 23 (scope: 0)
 | | | | when (true) return; goto location 24
 | | | location 24 (scope: 0)
 | function producer
 | | formal parameters
 | | scope 8 (parent: 0)
 | | | scope 9 (parent: 8)
 | | | | i : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 10 (parent: 9)
 | | | | | const buffInd : int
 | | locations (start=25)
 | | | location 25 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, numItems-1); goto location 26
 | | | location 26 (scope: 9)
 | | | | when (true) ; goto location 27
 | | | location 27 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 28
 | | | location 28 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 29
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 30
 | | | location 29 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 35
 | | | location 30 (scope: 10)
 | | | | when (true) buffInd = i%buffersize; goto location 31
 | | | location 31 (scope: 10)
 | | | | when (_CVT_sync_buff$[buffInd]==false) buff$[buffInd] = a[i]*a[i]; goto location 32
 | | | location 33 (scope: 10)
 | | | | when (true) write("producer wrote value #", a[i]); goto location 34
 | | | location 34 (scope: 10)
 | | | | when (true) ; goto location 26
 | | | location 29 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 35
 | | | location 35 (scope: 8)
 | | | | when (_CVT_sync_buff$[numItems%buffersize]==false) buff$[numItems%buffersize] = -(1); goto location 36
 | | | location 25 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, numItems-1); goto location 26
 | | | location 36 (scope: 0)
 | | | | when (true) return; goto location 37
 | | | location 37 (scope: 0)
 | function consumer
 | | formal parameters
 | | scope 11 (parent: 0)
 | | | localSum : int
 | | | scope 12 (parent: 11)
 | | | | buffVal : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 13 (parent: 12)
 | | locations (start=38)
 | | | location 38 (scope: 11)
 | | | | when (true) localSum = 0; goto location 39
 | | | location 39 (scope: 12)
 | | | | when (true) _CVT_process = fork readFromBuff(me); goto location 40
 | | | location 40 (scope: 12)
 | | | | when (true) ; goto location 41
 | | | location 41 (scope: 12)
 | | | | when (true) receive(_CVT_process, me, buffVal, any(_CVT_tag)); goto location 42
 | | | location 42 (scope: 12)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 43
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 44
 | | | location 43 (scope: 12)
 | | | | when (true) join _CVT_process; goto location 46
 | | | location 44 (scope: 13)
 | | | | when (true) localSum = localSum+buffVal; goto location 45
 | | | location 45 (scope: 13)
 | | | | when (true) write("Consumer got: ", buffVal); goto location 40
 | | | location 43 (scope: 12)
 | | | | when (true) join _CVT_process; goto location 46
 | | | location 46 (scope: 11)
 | | | | when (true) sum = localSum; goto location 47
 | | | location 47 (scope: 0)
 | | | | when (true) return; goto location 48
 | | | location 48 (scope: 0)
 | function readFromBuff
 | | formal parameters
 | | | _CVT_caller
 | | scope 14 (parent: 0)
 | | | _CVT_caller : process
 | | | ind : int
 | | | nextVal : int
 | | | scope 15 (parent: 14)
 | | locations (start=49)
 | | | location 49 (scope: 14)
 | | | | when (true) ind = 0; goto location 50
 | | | location 50 (scope: 14)
 | | | | when (_CVT_sync_buff$[0]==true) nextVal = buff$[0]; goto location 51
 | | | location 52 (scope: 15)
 | | | | when (true) send(me, _CVT_caller, nextVal, _CVT_NEXT_TAG); goto location 53
 | | | location 53 (scope: 15)
 | | | | when (true) ind = ind+1%buffersize; goto location 54
 | | | location 54 (scope: 15)
 | | | | when (_CVT_sync_buff$[ind]==true) nextVal = buff$[ind]; goto location 51
 | | | location 51 (scope: 14)
 | | | | when (nextVal!=-(1)) ; goto location 52
 | | | | when (!(nextVal!=-(1))) ; goto location 55
 | | | location 51 (scope: 14)
 | | | | when (nextVal!=-(1)) ; goto location 52
 | | | | when (!(nextVal!=-(1))) ; goto location 55
 | | | location 55 (scope: 14)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 56
 | | | location 56 (scope: 14)
 | | | | when (true) return; goto location 57
 | | | location 57 (scope: 14)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 16 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 17 (parent: 16)
 | | locations (start=58)
 | | | location 58 (scope: 16)
 | | | | when (true) current = lower; goto location 59
 | | | location 60 (scope: 17)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 61
 | | | location 61 (scope: 17)
 | | | | when (true) current = current+1; goto location 59
 | | | location 59 (scope: 16)
 | | | | when (!(current<=upper)) ; goto location 62
 | | | | when (current<=upper) ; goto location 60
 | | | location 59 (scope: 16)
 | | | | when (!(current<=upper)) ; goto location 62
 | | | | when (current<=upper) ; goto location 60
 | | | location 62 (scope: 16)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 63
 | | | location 63 (scope: 16)
 | | | | when (true) return; goto location 64
 | | | location 64 (scope: 16)
 | function _CVT_tmp_0
 | | formal parameters
 | | scope 5 (parent: 3)
 | | locations (start=13)
 | | | location 13 (scope: 5)
 | | | | when (true) producer(); goto location 14
 | | | location 14 (scope: 4)
 | | | | when (true) return; goto location 15
 | | | location 15 (scope: 4)
 | | | location 13 (scope: 5)
 | | | | when (true) producer(); goto location 14
 | function _CVT_tmp_1
 | | formal parameters
 | | scope 7 (parent: 3)
 | | locations (start=16)
 | | | location 16 (scope: 7)
 | | | | when (true) consumer(); goto location 17
 | | | location 17 (scope: 6)
 | | | | when (true) return; goto location 18
 | | | location 18 (scope: 6)
 | | | location 16 (scope: 7)
 | | | | when (true) consumer(); goto location 17

STATS:
   maxProcs            :5
   statesSeen          : 692
   statesMatched       : 64
   transitionsExecuted : 755
   proverValidCalls    : 3268
   CVC3ValidCalls      : 56
   memory              : 85000192
   elapsedTime         : 1.027
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const buffersize : int
 | | | const numItems : int
 | | | const verbose : int
 | | | sum : int
 | | | extern a : int[]
 | | | buff$ : sync int[]
 | | | _CVT_sync_buff$ : bool[]
 | | | scope 1 (parent: 0)
 | | | | _CVT_i : int
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) buffersize = 2; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) numItems = 2; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) verbose = false; goto location 7
 | | | location 9 (scope: 1)
 | | | | when (true) _CVT_i = _CVT_i+1; goto location 8
 | | | location 8 (scope: 1)
 | | | | when (_CVT_i<buffersize-1+1) _CVT_sync_buff$[_CVT_i] = false; goto location 9
 | | | | when (!(_CVT_i<buffersize-1+1)) ; goto location 10
 | | | location 7 (scope: 1)
 | | | | when (true) _CVT_i = 0; goto location 8
 | | | location 10 (scope: 0)
 | | | | when (true) main(); goto location 11
 | | | location 11 (scope: 0)
 | | | | when (true) return; goto location 12
 | | | location 12 (scope: 0)
 | function main
 | | formal parameters
 | | scope 2 (parent: 0)
 | | | scope 3 (parent: 2)
 | | | | _CVT_tmp_procs : process[]
 | | locations (start=19)
 | | | location 19 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[0] = fork _CVT_tmp_0(); goto location 20
 | | | location 20 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[1] = fork _CVT_tmp_1(); goto location 21
 | | | location 21 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[0]; goto location 22
 | | | location 22 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[1]; goto location 23
 | | | location 22 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[1]; goto location 23
 | | | location 19 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[0] = fork _CVT_tmp_0(); goto location 20
 | | | location 23 (scope: 0)
 | | | | when (true) return; goto location 24
 | | | location 24 (scope: 0)
 | function producer
 | | formal parameters
 | | scope 8 (parent: 0)
 | | | scope 9 (parent: 8)
 | | | | i : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 10 (parent: 9)
 | | | | | const buffInd : int
 | | locations (start=25)
 | | | location 25 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, numItems-1); goto location 26
 | | | location 26 (scope: 9)
 | | | | when (true) ; goto location 27
 | | | location 27 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 28
 | | | location 28 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 29
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 30
 | | | location 29 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 35
 | | | location 30 (scope: 10)
 | | | | when (true) buffInd = i%buffersize; goto location 31
 | | | location 31 (scope: 10)
 | | | | when (_CVT_sync_buff$[buffInd]==false) buff$[buffInd] = a[i]*a[i]; goto location 32
 | | | location 33 (scope: 10)
 | | | | when (true) write("producer wrote value #", a[i]); goto location 34
 | | | location 34 (scope: 10)
 | | | | when (true) ; goto location 26
 | | | location 29 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 35
 | | | location 35 (scope: 8)
 | | | | when (_CVT_sync_buff$[numItems%buffersize]==false) buff$[numItems%buffersize] = -(1); goto location 36
 | | | location 25 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, numItems-1); goto location 26
 | | | location 36 (scope: 0)
 | | | | when (true) return; goto location 37
 | | | location 37 (scope: 0)
 | function consumer
 | | formal parameters
 | | scope 11 (parent: 0)
 | | | localSum : int
 | | | scope 12 (parent: 11)
 | | | | buffVal : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 13 (parent: 12)
 | | locations (start=38)
 | | | location 38 (scope: 11)
 | | | | when (true) localSum = 0; goto location 39
 | | | location 39 (scope: 12)
 | | | | when (true) _CVT_process = fork readFromBuff(me); goto location 40
 | | | location 40 (scope: 12)
 | | | | when (true) ; goto location 41
 | | | location 41 (scope: 12)
 | | | | when (true) receive(_CVT_process, me, buffVal, any(_CVT_tag)); goto location 42
 | | | location 42 (scope: 12)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 44
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 43
 | | | location 43 (scope: 12)
 | | | | when (true) join _CVT_process; goto location 46
 | | | location 44 (scope: 13)
 | | | | when (true) localSum = localSum+buffVal; goto location 45
 | | | location 45 (scope: 13)
 | | | | when (true) write("Consumer got: ", buffVal); goto location 40
 | | | location 43 (scope: 12)
 | | | | when (true) join _CVT_process; goto location 46
 | | | location 46 (scope: 11)
 | | | | when (true) sum = localSum; goto location 47
 | | | location 47 (scope: 0)
 | | | | when (true) return; goto location 48
 | | | location 48 (scope: 0)
 | function readFromBuff
 | | formal parameters
 | | | _CVT_caller
 | | scope 14 (parent: 0)
 | | | _CVT_caller : process
 | | | ind : int
 | | | nextVal : int
 | | | scope 15 (parent: 14)
 | | locations (start=49)
 | | | location 49 (scope: 14)
 | | | | when (true) ind = 0; goto location 50
 | | | location 50 (scope: 14)
 | | | | when (_CVT_sync_buff$[0]==true) nextVal = buff$[0]; goto location 51
 | | | location 52 (scope: 15)
 | | | | when (true) send(me, _CVT_caller, nextVal, _CVT_NEXT_TAG); goto location 53
 | | | location 53 (scope: 15)
 | | | | when (true) ind = ind+1%buffersize; goto location 54
 | | | location 54 (scope: 15)
 | | | | when (_CVT_sync_buff$[ind]==true) nextVal = buff$[ind]; goto location 51
 | | | location 51 (scope: 14)
 | | | | when (!(nextVal!=-(1))) ; goto location 55
 | | | | when (nextVal!=-(1)) ; goto location 52
 | | | location 51 (scope: 14)
 | | | | when (!(nextVal!=-(1))) ; goto location 55
 | | | | when (nextVal!=-(1)) ; goto location 52
 | | | location 55 (scope: 14)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 56
 | | | location 56 (scope: 14)
 | | | | when (true) return; goto location 57
 | | | location 57 (scope: 14)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 16 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 17 (parent: 16)
 | | locations (start=58)
 | | | location 58 (scope: 16)
 | | | | when (true) current = lower; goto location 59
 | | | location 60 (scope: 17)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 61
 | | | location 61 (scope: 17)
 | | | | when (true) current = current+1; goto location 59
 | | | location 59 (scope: 16)
 | | | | when (current<=upper) ; goto location 60
 | | | | when (!(current<=upper)) ; goto location 62
 | | | location 59 (scope: 16)
 | | | | when (current<=upper) ; goto location 60
 | | | | when (!(current<=upper)) ; goto location 62
 | | | location 62 (scope: 16)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 63
 | | | location 63 (scope: 16)
 | | | | when (true) return; goto location 64
 | | | location 64 (scope: 16)
 | function _CVT_tmp_0
 | | formal parameters
 | | scope 5 (parent: 3)
 | | locations (start=13)
 | | | location 13 (scope: 5)
 | | | | when (true) producer(); goto location 14
 | | | location 14 (scope: 4)
 | | | | when (true) return; goto location 15
 | | | location 15 (scope: 4)
 | | | location 13 (scope: 5)
 | | | | when (true) producer(); goto location 14
 | function _CVT_tmp_1
 | | formal parameters
 | | scope 7 (parent: 3)
 | | locations (start=16)
 | | | location 16 (scope: 7)
 | | | | when (true) consumer(); goto location 17
 | | | location 17 (scope: 6)
 | | | | when (true) return; goto location 18
 | | | location 18 (scope: 6)
 | | | location 16 (scope: 7)
 | | | | when (true) consumer(); goto location 17

STATS:
   maxProcs            :5
   statesSeen          : 1195
   statesMatched       : 114
   transitionsExecuted : 1308
   proverValidCalls    : 5817
   CVC3ValidCalls      : 110
   memory              : 85000192
   elapsedTime         : 2.289
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const buffersize : int
 | | | const numItems : int
 | | | const verbose : int
 | | | sum : int
 | | | extern a : int[]
 | | | buff$ : sync int[]
 | | | _CVT_sync_buff$ : bool[]
 | | | scope 1 (parent: 0)
 | | | | _CVT_i : int
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) buffersize = 2; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) numItems = 3; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) verbose = false; goto location 7
 | | | location 9 (scope: 1)
 | | | | when (true) _CVT_i = _CVT_i+1; goto location 8
 | | | location 8 (scope: 1)
 | | | | when (!(_CVT_i<buffersize-1+1)) ; goto location 10
 | | | | when (_CVT_i<buffersize-1+1) _CVT_sync_buff$[_CVT_i] = false; goto location 9
 | | | location 7 (scope: 1)
 | | | | when (true) _CVT_i = 0; goto location 8
 | | | location 10 (scope: 0)
 | | | | when (true) main(); goto location 11
 | | | location 11 (scope: 0)
 | | | | when (true) return; goto location 12
 | | | location 12 (scope: 0)
 | function main
 | | formal parameters
 | | scope 2 (parent: 0)
 | | | scope 3 (parent: 2)
 | | | | _CVT_tmp_procs : process[]
 | | locations (start=19)
 | | | location 19 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[0] = fork _CVT_tmp_0(); goto location 20
 | | | location 20 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[1] = fork _CVT_tmp_1(); goto location 21
 | | | location 21 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[0]; goto location 22
 | | | location 22 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[1]; goto location 23
 | | | location 22 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[1]; goto location 23
 | | | location 19 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[0] = fork _CVT_tmp_0(); goto location 20
 | | | location 23 (scope: 0)
 | | | | when (true) return; goto location 24
 | | | location 24 (scope: 0)
 | function producer
 | | formal parameters
 | | scope 8 (parent: 0)
 | | | scope 9 (parent: 8)
 | | | | i : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 10 (parent: 9)
 | | | | | const buffInd : int
 | | locations (start=25)
 | | | location 25 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, numItems-1); goto location 26
 | | | location 26 (scope: 9)
 | | | | when (true) ; goto location 27
 | | | location 27 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 28
 | | | location 28 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 29
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 30
 | | | location 29 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 35
 | | | location 30 (scope: 10)
 | | | | when (true) buffInd = i%buffersize; goto location 31
 | | | location 31 (scope: 10)
 | | | | when (_CVT_sync_buff$[buffInd]==false) buff$[buffInd] = a[i]*a[i]; goto location 32
 | | | location 33 (scope: 10)
 | | | | when (true) write("producer wrote value #", a[i]); goto location 34
 | | | location 34 (scope: 10)
 | | | | when (true) ; goto location 26
 | | | location 29 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 35
 | | | location 35 (scope: 8)
 | | | | when (_CVT_sync_buff$[numItems%buffersize]==false) buff$[numItems%buffersize] = -(1); goto location 36
 | | | location 25 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, numItems-1); goto location 26
 | | | location 36 (scope: 0)
 | | | | when (true) return; goto location 37
 | | | location 37 (scope: 0)
 | function consumer
 | | formal parameters
 | | scope 11 (parent: 0)
 | | | localSum : int
 | | | scope 12 (parent: 11)
 | | | | buffVal : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 13 (parent: 12)
 | | locations (start=38)
 | | | location 38 (scope: 11)
 | | | | when (true) localSum = 0; goto location 39
 | | | location 39 (scope: 12)
 | | | | when (true) _CVT_process = fork readFromBuff(me); goto location 40
 | | | location 40 (scope: 12)
 | | | | when (true) ; goto location 41
 | | | location 41 (scope: 12)
 | | | | when (true) receive(_CVT_process, me, buffVal, any(_CVT_tag)); goto location 42
 | | | location 42 (scope: 12)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 44
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 43
 | | | location 43 (scope: 12)
 | | | | when (true) join _CVT_process; goto location 46
 | | | location 44 (scope: 13)
 | | | | when (true) localSum = localSum+buffVal; goto location 45
 | | | location 45 (scope: 13)
 | | | | when (true) write("Consumer got: ", buffVal); goto location 40
 | | | location 43 (scope: 12)
 | | | | when (true) join _CVT_process; goto location 46
 | | | location 46 (scope: 11)
 | | | | when (true) sum = localSum; goto location 47
 | | | location 47 (scope: 0)
 | | | | when (true) return; goto location 48
 | | | location 48 (scope: 0)
 | function readFromBuff
 | | formal parameters
 | | | _CVT_caller
 | | scope 14 (parent: 0)
 | | | _CVT_caller : process
 | | | ind : int
 | | | nextVal : int
 | | | scope 15 (parent: 14)
 | | locations (start=49)
 | | | location 49 (scope: 14)
 | | | | when (true) ind = 0; goto location 50
 | | | location 50 (scope: 14)
 | | | | when (_CVT_sync_buff$[0]==true) nextVal = buff$[0]; goto location 51
 | | | location 52 (scope: 15)
 | | | | when (true) send(me, _CVT_caller, nextVal, _CVT_NEXT_TAG); goto location 53
 | | | location 53 (scope: 15)
 | | | | when (true) ind = ind+1%buffersize; goto location 54
 | | | location 54 (scope: 15)
 | | | | when (_CVT_sync_buff$[ind]==true) nextVal = buff$[ind]; goto location 51
 | | | location 51 (scope: 14)
 | | | | when (nextVal!=-(1)) ; goto location 52
 | | | | when (!(nextVal!=-(1))) ; goto location 55
 | | | location 51 (scope: 14)
 | | | | when (nextVal!=-(1)) ; goto location 52
 | | | | when (!(nextVal!=-(1))) ; goto location 55
 | | | location 55 (scope: 14)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 56
 | | | location 56 (scope: 14)
 | | | | when (true) return; goto location 57
 | | | location 57 (scope: 14)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 16 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 17 (parent: 16)
 | | locations (start=58)
 | | | location 58 (scope: 16)
 | | | | when (true) current = lower; goto location 59
 | | | location 60 (scope: 17)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 61
 | | | location 61 (scope: 17)
 | | | | when (true) current = current+1; goto location 59
 | | | location 59 (scope: 16)
 | | | | when (current<=upper) ; goto location 60
 | | | | when (!(current<=upper)) ; goto location 62
 | | | location 59 (scope: 16)
 | | | | when (current<=upper) ; goto location 60
 | | | | when (!(current<=upper)) ; goto location 62
 | | | location 62 (scope: 16)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 63
 | | | location 63 (scope: 16)
 | | | | when (true) return; goto location 64
 | | | location 64 (scope: 16)
 | function _CVT_tmp_0
 | | formal parameters
 | | scope 5 (parent: 3)
 | | locations (start=13)
 | | | location 13 (scope: 5)
 | | | | when (true) producer(); goto location 14
 | | | location 14 (scope: 4)
 | | | | when (true) return; goto location 15
 | | | location 15 (scope: 4)
 | | | location 13 (scope: 5)
 | | | | when (true) producer(); goto location 14
 | function _CVT_tmp_1
 | | formal parameters
 | | scope 7 (parent: 3)
 | | locations (start=16)
 | | | location 16 (scope: 7)
 | | | | when (true) consumer(); goto location 17
 | | | location 17 (scope: 6)
 | | | | when (true) return; goto location 18
 | | | location 18 (scope: 6)
 | | | location 16 (scope: 7)
 | | | | when (true) consumer(); goto location 17

STATS:
   maxProcs            :5
   statesSeen          : 2408
   statesMatched       : 229
   transitionsExecuted : 2636
   proverValidCalls    : 11871
   CVC3ValidCalls      : 230
   memory              : 85000192
   elapsedTime         : 3.847
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const buffersize : int
 | | | const numItems : int
 | | | const verbose : int
 | | | sum : int
 | | | extern a : int[]
 | | | buff$ : sync int[]
 | | | _CVT_sync_buff$ : bool[]
 | | | scope 1 (parent: 0)
 | | | | _CVT_i : int
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) buffersize = 2; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) numItems = 4; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) verbose = false; goto location 7
 | | | location 9 (scope: 1)
 | | | | when (true) _CVT_i = _CVT_i+1; goto location 8
 | | | location 8 (scope: 1)
 | | | | when (_CVT_i<buffersize-1+1) _CVT_sync_buff$[_CVT_i] = false; goto location 9
 | | | | when (!(_CVT_i<buffersize-1+1)) ; goto location 10
 | | | location 7 (scope: 1)
 | | | | when (true) _CVT_i = 0; goto location 8
 | | | location 10 (scope: 0)
 | | | | when (true) main(); goto location 11
 | | | location 11 (scope: 0)
 | | | | when (true) return; goto location 12
 | | | location 12 (scope: 0)
 | function main
 | | formal parameters
 | | scope 2 (parent: 0)
 | | | scope 3 (parent: 2)
 | | | | _CVT_tmp_procs : process[]
 | | locations (start=19)
 | | | location 19 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[0] = fork _CVT_tmp_0(); goto location 20
 | | | location 20 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[1] = fork _CVT_tmp_1(); goto location 21
 | | | location 21 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[0]; goto location 22
 | | | location 22 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[1]; goto location 23
 | | | location 22 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[1]; goto location 23
 | | | location 19 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[0] = fork _CVT_tmp_0(); goto location 20
 | | | location 23 (scope: 0)
 | | | | when (true) return; goto location 24
 | | | location 24 (scope: 0)
 | function producer
 | | formal parameters
 | | scope 8 (parent: 0)
 | | | scope 9 (parent: 8)
 | | | | i : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 10 (parent: 9)
 | | | | | const buffInd : int
 | | locations (start=25)
 | | | location 25 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, numItems-1); goto location 26
 | | | location 26 (scope: 9)
 | | | | when (true) ; goto location 27
 | | | location 27 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 28
 | | | location 28 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 29
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 30
 | | | location 29 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 35
 | | | location 30 (scope: 10)
 | | | | when (true) buffInd = i%buffersize; goto location 31
 | | | location 31 (scope: 10)
 | | | | when (_CVT_sync_buff$[buffInd]==false) buff$[buffInd] = a[i]*a[i]; goto location 32
 | | | location 33 (scope: 10)
 | | | | when (true) write("producer wrote value #", a[i]); goto location 34
 | | | location 34 (scope: 10)
 | | | | when (true) ; goto location 26
 | | | location 29 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 35
 | | | location 35 (scope: 8)
 | | | | when (_CVT_sync_buff$[numItems%buffersize]==false) buff$[numItems%buffersize] = -(1); goto location 36
 | | | location 25 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, numItems-1); goto location 26
 | | | location 36 (scope: 0)
 | | | | when (true) return; goto location 37
 | | | location 37 (scope: 0)
 | function consumer
 | | formal parameters
 | | scope 11 (parent: 0)
 | | | localSum : int
 | | | scope 12 (parent: 11)
 | | | | buffVal : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 13 (parent: 12)
 | | locations (start=38)
 | | | location 38 (scope: 11)
 | | | | when (true) localSum = 0; goto location 39
 | | | location 39 (scope: 12)
 | | | | when (true) _CVT_process = fork readFromBuff(me); goto location 40
 | | | location 40 (scope: 12)
 | | | | when (true) ; goto location 41
 | | | location 41 (scope: 12)
 | | | | when (true) receive(_CVT_process, me, buffVal, any(_CVT_tag)); goto location 42
 | | | location 42 (scope: 12)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 44
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 43
 | | | location 43 (scope: 12)
 | | | | when (true) join _CVT_process; goto location 46
 | | | location 44 (scope: 13)
 | | | | when (true) localSum = localSum+buffVal; goto location 45
 | | | location 45 (scope: 13)
 | | | | when (true) write("Consumer got: ", buffVal); goto location 40
 | | | location 43 (scope: 12)
 | | | | when (true) join _CVT_process; goto location 46
 | | | location 46 (scope: 11)
 | | | | when (true) sum = localSum; goto location 47
 | | | location 47 (scope: 0)
 | | | | when (true) return; goto location 48
 | | | location 48 (scope: 0)
 | function readFromBuff
 | | formal parameters
 | | | _CVT_caller
 | | scope 14 (parent: 0)
 | | | _CVT_caller : process
 | | | ind : int
 | | | nextVal : int
 | | | scope 15 (parent: 14)
 | | locations (start=49)
 | | | location 49 (scope: 14)
 | | | | when (true) ind = 0; goto location 50
 | | | location 50 (scope: 14)
 | | | | when (_CVT_sync_buff$[0]==true) nextVal = buff$[0]; goto location 51
 | | | location 52 (scope: 15)
 | | | | when (true) send(me, _CVT_caller, nextVal, _CVT_NEXT_TAG); goto location 53
 | | | location 53 (scope: 15)
 | | | | when (true) ind = ind+1%buffersize; goto location 54
 | | | location 54 (scope: 15)
 | | | | when (_CVT_sync_buff$[ind]==true) nextVal = buff$[ind]; goto location 51
 | | | location 51 (scope: 14)
 | | | | when (!(nextVal!=-(1))) ; goto location 55
 | | | | when (nextVal!=-(1)) ; goto location 52
 | | | location 51 (scope: 14)
 | | | | when (!(nextVal!=-(1))) ; goto location 55
 | | | | when (nextVal!=-(1)) ; goto location 52
 | | | location 55 (scope: 14)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 56
 | | | location 56 (scope: 14)
 | | | | when (true) return; goto location 57
 | | | location 57 (scope: 14)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 16 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 17 (parent: 16)
 | | locations (start=58)
 | | | location 58 (scope: 16)
 | | | | when (true) current = lower; goto location 59
 | | | location 60 (scope: 17)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 61
 | | | location 61 (scope: 17)
 | | | | when (true) current = current+1; goto location 59
 | | | location 59 (scope: 16)
 | | | | when (current<=upper) ; goto location 60
 | | | | when (!(current<=upper)) ; goto location 62
 | | | location 59 (scope: 16)
 | | | | when (current<=upper) ; goto location 60
 | | | | when (!(current<=upper)) ; goto location 62
 | | | location 62 (scope: 16)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 63
 | | | location 63 (scope: 16)
 | | | | when (true) return; goto location 64
 | | | location 64 (scope: 16)
 | function _CVT_tmp_0
 | | formal parameters
 | | scope 5 (parent: 3)
 | | locations (start=13)
 | | | location 13 (scope: 5)
 | | | | when (true) producer(); goto location 14
 | | | location 14 (scope: 4)
 | | | | when (true) return; goto location 15
 | | | location 15 (scope: 4)
 | | | location 13 (scope: 5)
 | | | | when (true) producer(); goto location 14
 | function _CVT_tmp_1
 | | formal parameters
 | | scope 7 (parent: 3)
 | | locations (start=16)
 | | | location 16 (scope: 7)
 | | | | when (true) consumer(); goto location 17
 | | | location 17 (scope: 6)
 | | | | when (true) return; goto location 18
 | | | location 18 (scope: 6)
 | | | location 16 (scope: 7)
 | | | | when (true) consumer(); goto location 17

STATS:
   maxProcs            :5
   statesSeen          : 4831
   statesMatched       : 459
   transitionsExecuted : 5289
   proverValidCalls    : 23915
   CVC3ValidCalls      : 500
   memory              : 85000192
   elapsedTime         : 5.933
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const buffersize : int
 | | | const numItems : int
 | | | const verbose : int
 | | | sum : int
 | | | extern a : int[]
 | | | buff$ : sync int[]
 | | | _CVT_sync_buff$ : bool[]
 | | | scope 1 (parent: 0)
 | | | | _CVT_i : int
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) buffersize = 2; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) numItems = 5; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) verbose = false; goto location 7
 | | | location 9 (scope: 1)
 | | | | when (true) _CVT_i = _CVT_i+1; goto location 8
 | | | location 8 (scope: 1)
 | | | | when (!(_CVT_i<buffersize-1+1)) ; goto location 10
 | | | | when (_CVT_i<buffersize-1+1) _CVT_sync_buff$[_CVT_i] = false; goto location 9
 | | | location 7 (scope: 1)
 | | | | when (true) _CVT_i = 0; goto location 8
 | | | location 10 (scope: 0)
 | | | | when (true) main(); goto location 11
 | | | location 11 (scope: 0)
 | | | | when (true) return; goto location 12
 | | | location 12 (scope: 0)
 | function main
 | | formal parameters
 | | scope 2 (parent: 0)
 | | | scope 3 (parent: 2)
 | | | | _CVT_tmp_procs : process[]
 | | locations (start=19)
 | | | location 19 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[0] = fork _CVT_tmp_0(); goto location 20
 | | | location 20 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[1] = fork _CVT_tmp_1(); goto location 21
 | | | location 21 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[0]; goto location 22
 | | | location 22 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[1]; goto location 23
 | | | location 22 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[1]; goto location 23
 | | | location 19 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[0] = fork _CVT_tmp_0(); goto location 20
 | | | location 23 (scope: 0)
 | | | | when (true) return; goto location 24
 | | | location 24 (scope: 0)
 | function producer
 | | formal parameters
 | | scope 8 (parent: 0)
 | | | scope 9 (parent: 8)
 | | | | i : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 10 (parent: 9)
 | | | | | const buffInd : int
 | | locations (start=25)
 | | | location 25 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, numItems-1); goto location 26
 | | | location 26 (scope: 9)
 | | | | when (true) ; goto location 27
 | | | location 27 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 28
 | | | location 28 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 29
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 30
 | | | location 29 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 35
 | | | location 30 (scope: 10)
 | | | | when (true) buffInd = i%buffersize; goto location 31
 | | | location 31 (scope: 10)
 | | | | when (_CVT_sync_buff$[buffInd]==false) buff$[buffInd] = a[i]*a[i]; goto location 32
 | | | location 33 (scope: 10)
 | | | | when (true) write("producer wrote value #", a[i]); goto location 34
 | | | location 34 (scope: 10)
 | | | | when (true) ; goto location 26
 | | | location 29 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 35
 | | | location 35 (scope: 8)
 | | | | when (_CVT_sync_buff$[numItems%buffersize]==false) buff$[numItems%buffersize] = -(1); goto location 36
 | | | location 25 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, numItems-1); goto location 26
 | | | location 36 (scope: 0)
 | | | | when (true) return; goto location 37
 | | | location 37 (scope: 0)
 | function consumer
 | | formal parameters
 | | scope 11 (parent: 0)
 | | | localSum : int
 | | | scope 12 (parent: 11)
 | | | | buffVal : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 13 (parent: 12)
 | | locations (start=38)
 | | | location 38 (scope: 11)
 | | | | when (true) localSum = 0; goto location 39
 | | | location 39 (scope: 12)
 | | | | when (true) _CVT_process = fork readFromBuff(me); goto location 40
 | | | location 40 (scope: 12)
 | | | | when (true) ; goto location 41
 | | | location 41 (scope: 12)
 | | | | when (true) receive(_CVT_process, me, buffVal, any(_CVT_tag)); goto location 42
 | | | location 42 (scope: 12)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 43
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 44
 | | | location 43 (scope: 12)
 | | | | when (true) join _CVT_process; goto location 46
 | | | location 44 (scope: 13)
 | | | | when (true) localSum = localSum+buffVal; goto location 45
 | | | location 45 (scope: 13)
 | | | | when (true) write("Consumer got: ", buffVal); goto location 40
 | | | location 43 (scope: 12)
 | | | | when (true) join _CVT_process; goto location 46
 | | | location 46 (scope: 11)
 | | | | when (true) sum = localSum; goto location 47
 | | | location 47 (scope: 0)
 | | | | when (true) return; goto location 48
 | | | location 48 (scope: 0)
 | function readFromBuff
 | | formal parameters
 | | | _CVT_caller
 | | scope 14 (parent: 0)
 | | | _CVT_caller : process
 | | | ind : int
 | | | nextVal : int
 | | | scope 15 (parent: 14)
 | | locations (start=49)
 | | | location 49 (scope: 14)
 | | | | when (true) ind = 0; goto location 50
 | | | location 50 (scope: 14)
 | | | | when (_CVT_sync_buff$[0]==true) nextVal = buff$[0]; goto location 51
 | | | location 52 (scope: 15)
 | | | | when (true) send(me, _CVT_caller, nextVal, _CVT_NEXT_TAG); goto location 53
 | | | location 53 (scope: 15)
 | | | | when (true) ind = ind+1%buffersize; goto location 54
 | | | location 54 (scope: 15)
 | | | | when (_CVT_sync_buff$[ind]==true) nextVal = buff$[ind]; goto location 51
 | | | location 51 (scope: 14)
 | | | | when (!(nextVal!=-(1))) ; goto location 55
 | | | | when (nextVal!=-(1)) ; goto location 52
 | | | location 51 (scope: 14)
 | | | | when (!(nextVal!=-(1))) ; goto location 55
 | | | | when (nextVal!=-(1)) ; goto location 52
 | | | location 55 (scope: 14)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 56
 | | | location 56 (scope: 14)
 | | | | when (true) return; goto location 57
 | | | location 57 (scope: 14)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 16 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 17 (parent: 16)
 | | locations (start=58)
 | | | location 58 (scope: 16)
 | | | | when (true) current = lower; goto location 59
 | | | location 60 (scope: 17)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 61
 | | | location 61 (scope: 17)
 | | | | when (true) current = current+1; goto location 59
 | | | location 59 (scope: 16)
 | | | | when (!(current<=upper)) ; goto location 62
 | | | | when (current<=upper) ; goto location 60
 | | | location 59 (scope: 16)
 | | | | when (!(current<=upper)) ; goto location 62
 | | | | when (current<=upper) ; goto location 60
 | | | location 62 (scope: 16)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 63
 | | | location 63 (scope: 16)
 | | | | when (true) return; goto location 64
 | | | location 64 (scope: 16)
 | function _CVT_tmp_0
 | | formal parameters
 | | scope 5 (parent: 3)
 | | locations (start=13)
 | | | location 13 (scope: 5)
 | | | | when (true) producer(); goto location 14
 | | | location 14 (scope: 4)
 | | | | when (true) return; goto location 15
 | | | location 15 (scope: 4)
 | | | location 13 (scope: 5)
 | | | | when (true) producer(); goto location 14
 | function _CVT_tmp_1
 | | formal parameters
 | | scope 7 (parent: 3)
 | | locations (start=16)
 | | | location 16 (scope: 7)
 | | | | when (true) consumer(); goto location 17
 | | | location 17 (scope: 6)
 | | | | when (true) return; goto location 18
 | | | location 18 (scope: 6)
 | | | location 16 (scope: 7)
 | | | | when (true) consumer(); goto location 17

STATS:
   maxProcs            :5
   statesSeen          : 9674
   statesMatched       : 919
   transitionsExecuted : 10592
   proverValidCalls    : 47821
   CVC3ValidCalls      : 1020
   memory              : 85000192
   elapsedTime         : 11.859
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const buffersize : int
 | | | const numItems : int
 | | | const verbose : int
 | | | sum : int
 | | | extern a : int[]
 | | | buff$ : sync int[]
 | | | _CVT_sync_buff$ : bool[]
 | | | scope 1 (parent: 0)
 | | | | _CVT_i : int
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) buffersize = 2; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) numItems = 6; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) verbose = false; goto location 7
 | | | location 9 (scope: 1)
 | | | | when (true) _CVT_i = _CVT_i+1; goto location 8
 | | | location 8 (scope: 1)
 | | | | when (!(_CVT_i<buffersize-1+1)) ; goto location 10
 | | | | when (_CVT_i<buffersize-1+1) _CVT_sync_buff$[_CVT_i] = false; goto location 9
 | | | location 7 (scope: 1)
 | | | | when (true) _CVT_i = 0; goto location 8
 | | | location 10 (scope: 0)
 | | | | when (true) main(); goto location 11
 | | | location 11 (scope: 0)
 | | | | when (true) return; goto location 12
 | | | location 12 (scope: 0)
 | function main
 | | formal parameters
 | | scope 2 (parent: 0)
 | | | scope 3 (parent: 2)
 | | | | _CVT_tmp_procs : process[]
 | | locations (start=19)
 | | | location 19 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[0] = fork _CVT_tmp_0(); goto location 20
 | | | location 20 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[1] = fork _CVT_tmp_1(); goto location 21
 | | | location 21 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[0]; goto location 22
 | | | location 22 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[1]; goto location 23
 | | | location 22 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[1]; goto location 23
 | | | location 19 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[0] = fork _CVT_tmp_0(); goto location 20
 | | | location 23 (scope: 0)
 | | | | when (true) return; goto location 24
 | | | location 24 (scope: 0)
 | function producer
 | | formal parameters
 | | scope 8 (parent: 0)
 | | | scope 9 (parent: 8)
 | | | | i : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 10 (parent: 9)
 | | | | | const buffInd : int
 | | locations (start=25)
 | | | location 25 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, numItems-1); goto location 26
 | | | location 26 (scope: 9)
 | | | | when (true) ; goto location 27
 | | | location 27 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 28
 | | | location 28 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 29
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 30
 | | | location 29 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 35
 | | | location 30 (scope: 10)
 | | | | when (true) buffInd = i%buffersize; goto location 31
 | | | location 31 (scope: 10)
 | | | | when (_CVT_sync_buff$[buffInd]==false) buff$[buffInd] = a[i]*a[i]; goto location 32
 | | | location 33 (scope: 10)
 | | | | when (true) write("producer wrote value #", a[i]); goto location 34
 | | | location 34 (scope: 10)
 | | | | when (true) ; goto location 26
 | | | location 29 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 35
 | | | location 35 (scope: 8)
 | | | | when (_CVT_sync_buff$[numItems%buffersize]==false) buff$[numItems%buffersize] = -(1); goto location 36
 | | | location 25 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, numItems-1); goto location 26
 | | | location 36 (scope: 0)
 | | | | when (true) return; goto location 37
 | | | location 37 (scope: 0)
 | function consumer
 | | formal parameters
 | | scope 11 (parent: 0)
 | | | localSum : int
 | | | scope 12 (parent: 11)
 | | | | buffVal : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 13 (parent: 12)
 | | locations (start=38)
 | | | location 38 (scope: 11)
 | | | | when (true) localSum = 0; goto location 39
 | | | location 39 (scope: 12)
 | | | | when (true) _CVT_process = fork readFromBuff(me); goto location 40
 | | | location 40 (scope: 12)
 | | | | when (true) ; goto location 41
 | | | location 41 (scope: 12)
 | | | | when (true) receive(_CVT_process, me, buffVal, any(_CVT_tag)); goto location 42
 | | | location 42 (scope: 12)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 43
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 44
 | | | location 43 (scope: 12)
 | | | | when (true) join _CVT_process; goto location 46
 | | | location 44 (scope: 13)
 | | | | when (true) localSum = localSum+buffVal; goto location 45
 | | | location 45 (scope: 13)
 | | | | when (true) write("Consumer got: ", buffVal); goto location 40
 | | | location 43 (scope: 12)
 | | | | when (true) join _CVT_process; goto location 46
 | | | location 46 (scope: 11)
 | | | | when (true) sum = localSum; goto location 47
 | | | location 47 (scope: 0)
 | | | | when (true) return; goto location 48
 | | | location 48 (scope: 0)
 | function readFromBuff
 | | formal parameters
 | | | _CVT_caller
 | | scope 14 (parent: 0)
 | | | _CVT_caller : process
 | | | ind : int
 | | | nextVal : int
 | | | scope 15 (parent: 14)
 | | locations (start=49)
 | | | location 49 (scope: 14)
 | | | | when (true) ind = 0; goto location 50
 | | | location 50 (scope: 14)
 | | | | when (_CVT_sync_buff$[0]==true) nextVal = buff$[0]; goto location 51
 | | | location 52 (scope: 15)
 | | | | when (true) send(me, _CVT_caller, nextVal, _CVT_NEXT_TAG); goto location 53
 | | | location 53 (scope: 15)
 | | | | when (true) ind = ind+1%buffersize; goto location 54
 | | | location 54 (scope: 15)
 | | | | when (_CVT_sync_buff$[ind]==true) nextVal = buff$[ind]; goto location 51
 | | | location 51 (scope: 14)
 | | | | when (!(nextVal!=-(1))) ; goto location 55
 | | | | when (nextVal!=-(1)) ; goto location 52
 | | | location 51 (scope: 14)
 | | | | when (!(nextVal!=-(1))) ; goto location 55
 | | | | when (nextVal!=-(1)) ; goto location 52
 | | | location 55 (scope: 14)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 56
 | | | location 56 (scope: 14)
 | | | | when (true) return; goto location 57
 | | | location 57 (scope: 14)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 16 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 17 (parent: 16)
 | | locations (start=58)
 | | | location 58 (scope: 16)
 | | | | when (true) current = lower; goto location 59
 | | | location 60 (scope: 17)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 61
 | | | location 61 (scope: 17)
 | | | | when (true) current = current+1; goto location 59
 | | | location 59 (scope: 16)
 | | | | when (!(current<=upper)) ; goto location 62
 | | | | when (current<=upper) ; goto location 60
 | | | location 59 (scope: 16)
 | | | | when (!(current<=upper)) ; goto location 62
 | | | | when (current<=upper) ; goto location 60
 | | | location 62 (scope: 16)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 63
 | | | location 63 (scope: 16)
 | | | | when (true) return; goto location 64
 | | | location 64 (scope: 16)
 | function _CVT_tmp_0
 | | formal parameters
 | | scope 5 (parent: 3)
 | | locations (start=13)
 | | | location 13 (scope: 5)
 | | | | when (true) producer(); goto location 14
 | | | location 14 (scope: 4)
 | | | | when (true) return; goto location 15
 | | | location 15 (scope: 4)
 | | | location 13 (scope: 5)
 | | | | when (true) producer(); goto location 14
 | function _CVT_tmp_1
 | | formal parameters
 | | scope 7 (parent: 3)
 | | locations (start=16)
 | | | location 16 (scope: 7)
 | | | | when (true) consumer(); goto location 17
 | | | location 17 (scope: 6)
 | | | | when (true) return; goto location 18
 | | | location 18 (scope: 6)
 | | | location 16 (scope: 7)
 | | | | when (true) consumer(); goto location 17

STATS:
   maxProcs            :5
   statesSeen          : 19357
   statesMatched       : 1839
   transitionsExecuted : 21195
   proverValidCalls    : 95801
   CVC3ValidCalls      : 2060
   memory              : 85000192
   elapsedTime         : 17.812
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const buffersize : int
 | | | const numItems : int
 | | | const verbose : int
 | | | sum : int
 | | | extern a : int[]
 | | | buff$ : sync int[]
 | | | _CVT_sync_buff$ : bool[]
 | | | scope 1 (parent: 0)
 | | | | _CVT_i : int
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) buffersize = 2; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) numItems = 7; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) verbose = false; goto location 7
 | | | location 9 (scope: 1)
 | | | | when (true) _CVT_i = _CVT_i+1; goto location 8
 | | | location 8 (scope: 1)
 | | | | when (!(_CVT_i<buffersize-1+1)) ; goto location 10
 | | | | when (_CVT_i<buffersize-1+1) _CVT_sync_buff$[_CVT_i] = false; goto location 9
 | | | location 7 (scope: 1)
 | | | | when (true) _CVT_i = 0; goto location 8
 | | | location 10 (scope: 0)
 | | | | when (true) main(); goto location 11
 | | | location 11 (scope: 0)
 | | | | when (true) return; goto location 12
 | | | location 12 (scope: 0)
 | function main
 | | formal parameters
 | | scope 2 (parent: 0)
 | | | scope 3 (parent: 2)
 | | | | _CVT_tmp_procs : process[]
 | | locations (start=19)
 | | | location 19 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[0] = fork _CVT_tmp_0(); goto location 20
 | | | location 20 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[1] = fork _CVT_tmp_1(); goto location 21
 | | | location 21 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[0]; goto location 22
 | | | location 22 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[1]; goto location 23
 | | | location 22 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[1]; goto location 23
 | | | location 19 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[0] = fork _CVT_tmp_0(); goto location 20
 | | | location 23 (scope: 0)
 | | | | when (true) return; goto location 24
 | | | location 24 (scope: 0)
 | function producer
 | | formal parameters
 | | scope 8 (parent: 0)
 | | | scope 9 (parent: 8)
 | | | | i : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 10 (parent: 9)
 | | | | | const buffInd : int
 | | locations (start=25)
 | | | location 25 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, numItems-1); goto location 26
 | | | location 26 (scope: 9)
 | | | | when (true) ; goto location 27
 | | | location 27 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 28
 | | | location 28 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 29
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 30
 | | | location 29 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 35
 | | | location 30 (scope: 10)
 | | | | when (true) buffInd = i%buffersize; goto location 31
 | | | location 31 (scope: 10)
 | | | | when (_CVT_sync_buff$[buffInd]==false) buff$[buffInd] = a[i]*a[i]; goto location 32
 | | | location 33 (scope: 10)
 | | | | when (true) write("producer wrote value #", a[i]); goto location 34
 | | | location 34 (scope: 10)
 | | | | when (true) ; goto location 26
 | | | location 29 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 35
 | | | location 35 (scope: 8)
 | | | | when (_CVT_sync_buff$[numItems%buffersize]==false) buff$[numItems%buffersize] = -(1); goto location 36
 | | | location 25 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, numItems-1); goto location 26
 | | | location 36 (scope: 0)
 | | | | when (true) return; goto location 37
 | | | location 37 (scope: 0)
 | function consumer
 | | formal parameters
 | | scope 11 (parent: 0)
 | | | localSum : int
 | | | scope 12 (parent: 11)
 | | | | buffVal : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 13 (parent: 12)
 | | locations (start=38)
 | | | location 38 (scope: 11)
 | | | | when (true) localSum = 0; goto location 39
 | | | location 39 (scope: 12)
 | | | | when (true) _CVT_process = fork readFromBuff(me); goto location 40
 | | | location 40 (scope: 12)
 | | | | when (true) ; goto location 41
 | | | location 41 (scope: 12)
 | | | | when (true) receive(_CVT_process, me, buffVal, any(_CVT_tag)); goto location 42
 | | | location 42 (scope: 12)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 43
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 44
 | | | location 43 (scope: 12)
 | | | | when (true) join _CVT_process; goto location 46
 | | | location 44 (scope: 13)
 | | | | when (true) localSum = localSum+buffVal; goto location 45
 | | | location 45 (scope: 13)
 | | | | when (true) write("Consumer got: ", buffVal); goto location 40
 | | | location 43 (scope: 12)
 | | | | when (true) join _CVT_process; goto location 46
 | | | location 46 (scope: 11)
 | | | | when (true) sum = localSum; goto location 47
 | | | location 47 (scope: 0)
 | | | | when (true) return; goto location 48
 | | | location 48 (scope: 0)
 | function readFromBuff
 | | formal parameters
 | | | _CVT_caller
 | | scope 14 (parent: 0)
 | | | _CVT_caller : process
 | | | ind : int
 | | | nextVal : int
 | | | scope 15 (parent: 14)
 | | locations (start=49)
 | | | location 49 (scope: 14)
 | | | | when (true) ind = 0; goto location 50
 | | | location 50 (scope: 14)
 | | | | when (_CVT_sync_buff$[0]==true) nextVal = buff$[0]; goto location 51
 | | | location 52 (scope: 15)
 | | | | when (true) send(me, _CVT_caller, nextVal, _CVT_NEXT_TAG); goto location 53
 | | | location 53 (scope: 15)
 | | | | when (true) ind = ind+1%buffersize; goto location 54
 | | | location 54 (scope: 15)
 | | | | when (_CVT_sync_buff$[ind]==true) nextVal = buff$[ind]; goto location 51
 | | | location 51 (scope: 14)
 | | | | when (nextVal!=-(1)) ; goto location 52
 | | | | when (!(nextVal!=-(1))) ; goto location 55
 | | | location 51 (scope: 14)
 | | | | when (nextVal!=-(1)) ; goto location 52
 | | | | when (!(nextVal!=-(1))) ; goto location 55
 | | | location 55 (scope: 14)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 56
 | | | location 56 (scope: 14)
 | | | | when (true) return; goto location 57
 | | | location 57 (scope: 14)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 16 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 17 (parent: 16)
 | | locations (start=58)
 | | | location 58 (scope: 16)
 | | | | when (true) current = lower; goto location 59
 | | | location 60 (scope: 17)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 61
 | | | location 61 (scope: 17)
 | | | | when (true) current = current+1; goto location 59
 | | | location 59 (scope: 16)
 | | | | when (!(current<=upper)) ; goto location 62
 | | | | when (current<=upper) ; goto location 60
 | | | location 59 (scope: 16)
 | | | | when (!(current<=upper)) ; goto location 62
 | | | | when (current<=upper) ; goto location 60
 | | | location 62 (scope: 16)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 63
 | | | location 63 (scope: 16)
 | | | | when (true) return; goto location 64
 | | | location 64 (scope: 16)
 | function _CVT_tmp_0
 | | formal parameters
 | | scope 5 (parent: 3)
 | | locations (start=13)
 | | | location 13 (scope: 5)
 | | | | when (true) producer(); goto location 14
 | | | location 14 (scope: 4)
 | | | | when (true) return; goto location 15
 | | | location 15 (scope: 4)
 | | | location 13 (scope: 5)
 | | | | when (true) producer(); goto location 14
 | function _CVT_tmp_1
 | | formal parameters
 | | scope 7 (parent: 3)
 | | locations (start=16)
 | | | location 16 (scope: 7)
 | | | | when (true) consumer(); goto location 17
 | | | location 17 (scope: 6)
 | | | | when (true) return; goto location 18
 | | | location 18 (scope: 6)
 | | | location 16 (scope: 7)
 | | | | when (true) consumer(); goto location 17

STATS:
   maxProcs            :5
   statesSeen          : 38720
   statesMatched       : 3679
   transitionsExecuted : 42398
   proverValidCalls    : 192536
   CVC3ValidCalls      : 3980
   memory              : 85000192
   elapsedTime         : 40.949
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const buffersize : int
 | | | const numItems : int
 | | | const verbose : int
 | | | sum : int
 | | | extern a : int[]
 | | | buff$ : sync int[]
 | | | _CVT_sync_buff$ : bool[]
 | | | scope 1 (parent: 0)
 | | | | _CVT_i : int
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) buffersize = 2; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) numItems = 8; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) verbose = false; goto location 7
 | | | location 9 (scope: 1)
 | | | | when (true) _CVT_i = _CVT_i+1; goto location 8
 | | | location 8 (scope: 1)
 | | | | when (_CVT_i<buffersize-1+1) _CVT_sync_buff$[_CVT_i] = false; goto location 9
 | | | | when (!(_CVT_i<buffersize-1+1)) ; goto location 10
 | | | location 7 (scope: 1)
 | | | | when (true) _CVT_i = 0; goto location 8
 | | | location 10 (scope: 0)
 | | | | when (true) main(); goto location 11
 | | | location 11 (scope: 0)
 | | | | when (true) return; goto location 12
 | | | location 12 (scope: 0)
 | function main
 | | formal parameters
 | | scope 2 (parent: 0)
 | | | scope 3 (parent: 2)
 | | | | _CVT_tmp_procs : process[]
 | | locations (start=19)
 | | | location 19 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[0] = fork _CVT_tmp_0(); goto location 20
 | | | location 20 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[1] = fork _CVT_tmp_1(); goto location 21
 | | | location 21 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[0]; goto location 22
 | | | location 22 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[1]; goto location 23
 | | | location 22 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[1]; goto location 23
 | | | location 19 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[0] = fork _CVT_tmp_0(); goto location 20
 | | | location 23 (scope: 0)
 | | | | when (true) return; goto location 24
 | | | location 24 (scope: 0)
 | function producer
 | | formal parameters
 | | scope 8 (parent: 0)
 | | | scope 9 (parent: 8)
 | | | | i : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 10 (parent: 9)
 | | | | | const buffInd : int
 | | locations (start=25)
 | | | location 25 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, numItems-1); goto location 26
 | | | location 26 (scope: 9)
 | | | | when (true) ; goto location 27
 | | | location 27 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 28
 | | | location 28 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 29
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 30
 | | | location 29 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 35
 | | | location 30 (scope: 10)
 | | | | when (true) buffInd = i%buffersize; goto location 31
 | | | location 31 (scope: 10)
 | | | | when (_CVT_sync_buff$[buffInd]==false) buff$[buffInd] = a[i]*a[i]; goto location 32
 | | | location 33 (scope: 10)
 | | | | when (true) write("producer wrote value #", a[i]); goto location 34
 | | | location 34 (scope: 10)
 | | | | when (true) ; goto location 26
 | | | location 29 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 35
 | | | location 35 (scope: 8)
 | | | | when (_CVT_sync_buff$[numItems%buffersize]==false) buff$[numItems%buffersize] = -(1); goto location 36
 | | | location 25 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, numItems-1); goto location 26
 | | | location 36 (scope: 0)
 | | | | when (true) return; goto location 37
 | | | location 37 (scope: 0)
 | function consumer
 | | formal parameters
 | | scope 11 (parent: 0)
 | | | localSum : int
 | | | scope 12 (parent: 11)
 | | | | buffVal : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 13 (parent: 12)
 | | locations (start=38)
 | | | location 38 (scope: 11)
 | | | | when (true) localSum = 0; goto location 39
 | | | location 39 (scope: 12)
 | | | | when (true) _CVT_process = fork readFromBuff(me); goto location 40
 | | | location 40 (scope: 12)
 | | | | when (true) ; goto location 41
 | | | location 41 (scope: 12)
 | | | | when (true) receive(_CVT_process, me, buffVal, any(_CVT_tag)); goto location 42
 | | | location 42 (scope: 12)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 44
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 43
 | | | location 43 (scope: 12)
 | | | | when (true) join _CVT_process; goto location 46
 | | | location 44 (scope: 13)
 | | | | when (true) localSum = localSum+buffVal; goto location 45
 | | | location 45 (scope: 13)
 | | | | when (true) write("Consumer got: ", buffVal); goto location 40
 | | | location 43 (scope: 12)
 | | | | when (true) join _CVT_process; goto location 46
 | | | location 46 (scope: 11)
 | | | | when (true) sum = localSum; goto location 47
 | | | location 47 (scope: 0)
 | | | | when (true) return; goto location 48
 | | | location 48 (scope: 0)
 | function readFromBuff
 | | formal parameters
 | | | _CVT_caller
 | | scope 14 (parent: 0)
 | | | _CVT_caller : process
 | | | ind : int
 | | | nextVal : int
 | | | scope 15 (parent: 14)
 | | locations (start=49)
 | | | location 49 (scope: 14)
 | | | | when (true) ind = 0; goto location 50
 | | | location 50 (scope: 14)
 | | | | when (_CVT_sync_buff$[0]==true) nextVal = buff$[0]; goto location 51
 | | | location 52 (scope: 15)
 | | | | when (true) send(me, _CVT_caller, nextVal, _CVT_NEXT_TAG); goto location 53
 | | | location 53 (scope: 15)
 | | | | when (true) ind = ind+1%buffersize; goto location 54
 | | | location 54 (scope: 15)
 | | | | when (_CVT_sync_buff$[ind]==true) nextVal = buff$[ind]; goto location 51
 | | | location 51 (scope: 14)
 | | | | when (!(nextVal!=-(1))) ; goto location 55
 | | | | when (nextVal!=-(1)) ; goto location 52
 | | | location 51 (scope: 14)
 | | | | when (!(nextVal!=-(1))) ; goto location 55
 | | | | when (nextVal!=-(1)) ; goto location 52
 | | | location 55 (scope: 14)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 56
 | | | location 56 (scope: 14)
 | | | | when (true) return; goto location 57
 | | | location 57 (scope: 14)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 16 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 17 (parent: 16)
 | | locations (start=58)
 | | | location 58 (scope: 16)
 | | | | when (true) current = lower; goto location 59
 | | | location 60 (scope: 17)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 61
 | | | location 61 (scope: 17)
 | | | | when (true) current = current+1; goto location 59
 | | | location 59 (scope: 16)
 | | | | when (current<=upper) ; goto location 60
 | | | | when (!(current<=upper)) ; goto location 62
 | | | location 59 (scope: 16)
 | | | | when (current<=upper) ; goto location 60
 | | | | when (!(current<=upper)) ; goto location 62
 | | | location 62 (scope: 16)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 63
 | | | location 63 (scope: 16)
 | | | | when (true) return; goto location 64
 | | | location 64 (scope: 16)
 | function _CVT_tmp_0
 | | formal parameters
 | | scope 5 (parent: 3)
 | | locations (start=13)
 | | | location 13 (scope: 5)
 | | | | when (true) producer(); goto location 14
 | | | location 14 (scope: 4)
 | | | | when (true) return; goto location 15
 | | | location 15 (scope: 4)
 | | | location 13 (scope: 5)
 | | | | when (true) producer(); goto location 14
 | function _CVT_tmp_1
 | | formal parameters
 | | scope 7 (parent: 3)
 | | locations (start=16)
 | | | location 16 (scope: 7)
 | | | | when (true) consumer(); goto location 17
 | | | location 17 (scope: 6)
 | | | | when (true) return; goto location 18
 | | | location 18 (scope: 6)
 | | | location 16 (scope: 7)
 | | | | when (true) consumer(); goto location 17

STATS:
   maxProcs            :5
   statesSeen          : 77443
   statesMatched       : 7359
   transitionsExecuted : 84801
   proverValidCalls    : 385195
   CVC3ValidCalls      : 8300
   memory              : 85000192
   elapsedTime         : 111.842
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const buffersize : int
 | | | const numItems : int
 | | | const verbose : int
 | | | sum : int
 | | | extern a : int[]
 | | | buff$ : sync int[]
 | | | _CVT_sync_buff$ : bool[]
 | | | scope 1 (parent: 0)
 | | | | _CVT_i : int
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) buffersize = 2; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) numItems = 9; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) verbose = false; goto location 7
 | | | location 9 (scope: 1)
 | | | | when (true) _CVT_i = _CVT_i+1; goto location 8
 | | | location 8 (scope: 1)
 | | | | when (!(_CVT_i<buffersize-1+1)) ; goto location 10
 | | | | when (_CVT_i<buffersize-1+1) _CVT_sync_buff$[_CVT_i] = false; goto location 9
 | | | location 7 (scope: 1)
 | | | | when (true) _CVT_i = 0; goto location 8
 | | | location 10 (scope: 0)
 | | | | when (true) main(); goto location 11
 | | | location 11 (scope: 0)
 | | | | when (true) return; goto location 12
 | | | location 12 (scope: 0)
 | function main
 | | formal parameters
 | | scope 2 (parent: 0)
 | | | scope 3 (parent: 2)
 | | | | _CVT_tmp_procs : process[]
 | | locations (start=19)
 | | | location 19 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[0] = fork _CVT_tmp_0(); goto location 20
 | | | location 20 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[1] = fork _CVT_tmp_1(); goto location 21
 | | | location 21 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[0]; goto location 22
 | | | location 22 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[1]; goto location 23
 | | | location 22 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[1]; goto location 23
 | | | location 19 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[0] = fork _CVT_tmp_0(); goto location 20
 | | | location 23 (scope: 0)
 | | | | when (true) return; goto location 24
 | | | location 24 (scope: 0)
 | function producer
 | | formal parameters
 | | scope 8 (parent: 0)
 | | | scope 9 (parent: 8)
 | | | | i : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 10 (parent: 9)
 | | | | | const buffInd : int
 | | locations (start=25)
 | | | location 25 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, numItems-1); goto location 26
 | | | location 26 (scope: 9)
 | | | | when (true) ; goto location 27
 | | | location 27 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 28
 | | | location 28 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 29
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 30
 | | | location 29 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 35
 | | | location 30 (scope: 10)
 | | | | when (true) buffInd = i%buffersize; goto location 31
 | | | location 31 (scope: 10)
 | | | | when (_CVT_sync_buff$[buffInd]==false) buff$[buffInd] = a[i]*a[i]; goto location 32
 | | | location 33 (scope: 10)
 | | | | when (true) write("producer wrote value #", a[i]); goto location 34
 | | | location 34 (scope: 10)
 | | | | when (true) ; goto location 26
 | | | location 29 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 35
 | | | location 35 (scope: 8)
 | | | | when (_CVT_sync_buff$[numItems%buffersize]==false) buff$[numItems%buffersize] = -(1); goto location 36
 | | | location 25 (scope: 9)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, numItems-1); goto location 26
 | | | location 36 (scope: 0)
 | | | | when (true) return; goto location 37
 | | | location 37 (scope: 0)
 | function consumer
 | | formal parameters
 | | scope 11 (parent: 0)
 | | | localSum : int
 | | | scope 12 (parent: 11)
 | | | | buffVal : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 13 (parent: 12)
 | | locations (start=38)
 | | | location 38 (scope: 11)
 | | | | when (true) localSum = 0; goto location 39
 | | | location 39 (scope: 12)
 | | | | when (true) _CVT_process = fork readFromBuff(me); goto location 40
 | | | location 40 (scope: 12)
 | | | | when (true) ; goto location 41
 | | | location 41 (scope: 12)
 | | | | when (true) receive(_CVT_process, me, buffVal, any(_CVT_tag)); goto location 42
 | | | location 42 (scope: 12)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 43
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 44
 | | | location 43 (scope: 12)
 | | | | when (true) join _CVT_process; goto location 46
 | | | location 44 (scope: 13)
 | | | | when (true) localSum = localSum+buffVal; goto location 45
 | | | location 45 (scope: 13)
 | | | | when (true) write("Consumer got: ", buffVal); goto location 40
 | | | location 43 (scope: 12)
 | | | | when (true) join _CVT_process; goto location 46
 | | | location 46 (scope: 11)
 | | | | when (true) sum = localSum; goto location 47
 | | | location 47 (scope: 0)
 | | | | when (true) return; goto location 48
 | | | location 48 (scope: 0)
 | function readFromBuff
 | | formal parameters
 | | | _CVT_caller
 | | scope 14 (parent: 0)
 | | | _CVT_caller : process
 | | | ind : int
 | | | nextVal : int
 | | | scope 15 (parent: 14)
 | | locations (start=49)
 | | | location 49 (scope: 14)
 | | | | when (true) ind = 0; goto location 50
 | | | location 50 (scope: 14)
 | | | | when (_CVT_sync_buff$[0]==true) nextVal = buff$[0]; goto location 51
 | | | location 52 (scope: 15)
 | | | | when (true) send(me, _CVT_caller, nextVal, _CVT_NEXT_TAG); goto location 53
 | | | location 53 (scope: 15)
 | | | | when (true) ind = ind+1%buffersize; goto location 54
 | | | location 54 (scope: 15)
 | | | | when (_CVT_sync_buff$[ind]==true) nextVal = buff$[ind]; goto location 51
 | | | location 51 (scope: 14)
 | | | | when (!(nextVal!=-(1))) ; goto location 55
 | | | | when (nextVal!=-(1)) ; goto location 52
 | | | location 51 (scope: 14)
 | | | | when (!(nextVal!=-(1))) ; goto location 55
 | | | | when (nextVal!=-(1)) ; goto location 52
 | | | location 55 (scope: 14)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 56
 | | | location 56 (scope: 14)
 | | | | when (true) return; goto location 57
 | | | location 57 (scope: 14)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 16 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 17 (parent: 16)
 | | locations (start=58)
 | | | location 58 (scope: 16)
 | | | | when (true) current = lower; goto location 59
 | | | location 60 (scope: 17)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 61
 | | | location 61 (scope: 17)
 | | | | when (true) current = current+1; goto location 59
 | | | location 59 (scope: 16)
 | | | | when (!(current<=upper)) ; goto location 62
 | | | | when (current<=upper) ; goto location 60
 | | | location 59 (scope: 16)
 | | | | when (!(current<=upper)) ; goto location 62
 | | | | when (current<=upper) ; goto location 60
 | | | location 62 (scope: 16)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 63
 | | | location 63 (scope: 16)
 | | | | when (true) return; goto location 64
 | | | location 64 (scope: 16)
 | function _CVT_tmp_0
 | | formal parameters
 | | scope 5 (parent: 3)
 | | locations (start=13)
 | | | location 13 (scope: 5)
 | | | | when (true) producer(); goto location 14
 | | | location 14 (scope: 4)
 | | | | when (true) return; goto location 15
 | | | location 15 (scope: 4)
 | | | location 13 (scope: 5)
 | | | | when (true) producer(); goto location 14
 | function _CVT_tmp_1
 | | formal parameters
 | | scope 7 (parent: 3)
 | | locations (start=16)
 | | | location 16 (scope: 7)
 | | | | when (true) consumer(); goto location 17
 | | | location 17 (scope: 6)
 | | | | when (true) return; goto location 18
 | | | location 18 (scope: 6)
 | | | location 16 (scope: 7)
 | | | | when (true) consumer(); goto location 17

STATS:
   maxProcs            :5
   statesSeen          : 154886
   statesMatched       : 14719
   transitionsExecuted : 169604
   proverValidCalls    : 767301
   CVC3ValidCalls      : 16620
   memory              : 85000192
   elapsedTime         : 391.784
The specified properties hold for all executions.
for N in 1 2 3 4 ; do \
	../CVT verify -configN=$N -noprint cycleCF.chpl ; \
	done
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const N : int
 | | | a : sync int[]
 | | | _CVT_sync_a : bool[]
 | | | scope 1 (parent: 0)
 | | | | _CVT_i : int
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) N = 1; goto location 5
 | | | location 7 (scope: 1)
 | | | | when (true) _CVT_i = _CVT_i+1; goto location 6
 | | | location 6 (scope: 1)
 | | | | when (!(_CVT_i<N-1+1)) ; goto location 8
 | | | | when (_CVT_i<N-1+1) _CVT_sync_a[_CVT_i] = false; goto location 7
 | | | location 5 (scope: 1)
 | | | | when (true) _CVT_i = 0; goto location 6
 | | | location 8 (scope: 0)
 | | | | when (true) main(); goto location 9
 | | | location 9 (scope: 0)
 | | | | when (true) return; goto location 10
 | | | location 10 (scope: 0)
 | function main
 | | formal parameters
 | | scope 2 (parent: 0)
 | | | t : int
 | | | scope 5 (parent: 2)
 | | | | _CVT_num_workers : int
 | | | | _CVT_workers : process[]
 | | | | i : int
 | | | | _CVT_for_variable : int
 | | | | _CVT_iterator : process
 | | | | _CVT_tag : int
 | | | | _CVT_dest : int
 | | | | scope 7 (parent: 5)
 | | | | | _CVT_process : process
 | | | | | _CVT_tag : int
 | | | | scope 8 (parent: 5)
 | | | | | _CVT_process : process
 | | | | | _CVT_tag : int
 | | | | scope 6 (parent: 5)
 | | | | | _CVT_process : process
 | | | | | _CVT_tag : int
 | | locations (start=20)
 | | | location 20 (scope: 5)
 | | | | when (true) _CVT_num_workers = N-1; goto location 21
 | | | location 22 (scope: 5)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 24
 | | | location 23 (scope: 6)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork _CVT_tmp_0(me); goto location 25
 | | | location 24 (scope: 6)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, N-1); goto location 25
 | | | location 25 (scope: 6)
 | | | | when (true) ; goto location 26
 | | | location 26 (scope: 6)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 27
 | | | location 27 (scope: 6)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 28
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 23
 | | | location 28 (scope: 6)
 | | | | when (true) join _CVT_process; goto location 29
 | | | location 29 (scope: 5)
 | | | | when (true) _CVT_iterator = fork _CVT_range_function(me, 0, N-1); goto location 30
 | | | location 30 (scope: 5)
 | | | | when (true) ; goto location 31
 | | | location 31 (scope: 5)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 32
 | | | location 32 (scope: 5)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 36
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 33
 | | | location 33 (scope: 5)
 | | | | when (true) _CVT_dest = _CVT_dest+1; goto location 34
 | | | location 34 (scope: 5)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 30
 | | | location 35 (scope: 7)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 37
 | | | location 36 (scope: 7)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, N-1); goto location 37
 | | | location 37 (scope: 7)
 | | | | when (true) ; goto location 38
 | | | location 38 (scope: 7)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 39
 | | | location 39 (scope: 7)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 40
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 35
 | | | location 40 (scope: 7)
 | | | | when (true) join _CVT_process; goto location 42
 | | | location 41 (scope: 8)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 43
 | | | location 42 (scope: 8)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, N-1); goto location 43
 | | | location 43 (scope: 8)
 | | | | when (true) ; goto location 44
 | | | location 44 (scope: 8)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 45
 | | | location 45 (scope: 8)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 46
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 41
 | | | location 46 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 47
 | | | location 47 (scope: 0)
 | | | | when (true) return; goto location 48
 | | | location 48 (scope: 0)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 9 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 10 (parent: 9)
 | | locations (start=49)
 | | | location 49 (scope: 9)
 | | | | when (true) current = lower; goto location 50
 | | | location 51 (scope: 10)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 52
 | | | location 52 (scope: 10)
 | | | | when (true) current = current+1; goto location 50
 | | | location 50 (scope: 9)
 | | | | when (current<=upper) ; goto location 51
 | | | | when (!(current<=upper)) ; goto location 53
 | | | location 50 (scope: 9)
 | | | | when (current<=upper) ; goto location 51
 | | | | when (!(current<=upper)) ; goto location 53
 | | | location 53 (scope: 9)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 54
 | | | location 54 (scope: 9)
 | | | | when (true) return; goto location 55
 | | | location 55 (scope: 9)
 | function _CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 3 (parent: 2)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 4 (parent: 3)
 | | locations (start=11)
 | | | location 11 (scope: 3)
 | | | | when (true) ; goto location 12
 | | | location 14 (scope: 4)
 | | | | when (_CVT_sync_a[i+1%N]==false) a[i+1%N] = i; goto location 15
 | | | location 15 (scope: 4)
 | | | | when (true) write("Iter ", i, " wrote"); goto location 16
 | | | location 16 (scope: 4)
 | | | | when (_CVT_sync_a[i]==true) t = a[i]; goto location 17
 | | | location 17 (scope: 4)
 | | | | when (true) write("Iter ", i, " read"); goto location 11
 | | | location 12 (scope: 3)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 3)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 14
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 18
 | | | location 18 (scope: 3)
 | | | | when (true) return; goto location 19
 | | | location 19 (scope: 2)

STATS:
   maxProcs            :4
   statesSeen          : 91
   statesMatched       : 0
   transitionsExecuted : 90
   proverValidCalls    : 352
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 0.224
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const N : int
 | | | a : sync int[]
 | | | _CVT_sync_a : bool[]
 | | | scope 1 (parent: 0)
 | | | | _CVT_i : int
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) N = 2; goto location 5
 | | | location 7 (scope: 1)
 | | | | when (true) _CVT_i = _CVT_i+1; goto location 6
 | | | location 6 (scope: 1)
 | | | | when (!(_CVT_i<N-1+1)) ; goto location 8
 | | | | when (_CVT_i<N-1+1) _CVT_sync_a[_CVT_i] = false; goto location 7
 | | | location 5 (scope: 1)
 | | | | when (true) _CVT_i = 0; goto location 6
 | | | location 8 (scope: 0)
 | | | | when (true) main(); goto location 9
 | | | location 9 (scope: 0)
 | | | | when (true) return; goto location 10
 | | | location 10 (scope: 0)
 | function main
 | | formal parameters
 | | scope 2 (parent: 0)
 | | | t : int
 | | | scope 5 (parent: 2)
 | | | | _CVT_num_workers : int
 | | | | _CVT_workers : process[]
 | | | | i : int
 | | | | _CVT_for_variable : int
 | | | | _CVT_iterator : process
 | | | | _CVT_tag : int
 | | | | _CVT_dest : int
 | | | | scope 7 (parent: 5)
 | | | | | _CVT_process : process
 | | | | | _CVT_tag : int
 | | | | scope 8 (parent: 5)
 | | | | | _CVT_process : process
 | | | | | _CVT_tag : int
 | | | | scope 6 (parent: 5)
 | | | | | _CVT_process : process
 | | | | | _CVT_tag : int
 | | locations (start=20)
 | | | location 20 (scope: 5)
 | | | | when (true) _CVT_num_workers = N-1; goto location 21
 | | | location 22 (scope: 5)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 24
 | | | location 23 (scope: 6)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork _CVT_tmp_0(me); goto location 25
 | | | location 24 (scope: 6)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, N-1); goto location 25
 | | | location 25 (scope: 6)
 | | | | when (true) ; goto location 26
 | | | location 26 (scope: 6)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 27
 | | | location 27 (scope: 6)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 28
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 23
 | | | location 28 (scope: 6)
 | | | | when (true) join _CVT_process; goto location 29
 | | | location 29 (scope: 5)
 | | | | when (true) _CVT_iterator = fork _CVT_range_function(me, 0, N-1); goto location 30
 | | | location 30 (scope: 5)
 | | | | when (true) ; goto location 31
 | | | location 31 (scope: 5)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 32
 | | | location 32 (scope: 5)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 36
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 33
 | | | location 33 (scope: 5)
 | | | | when (true) _CVT_dest = _CVT_dest+1; goto location 34
 | | | location 34 (scope: 5)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 30
 | | | location 35 (scope: 7)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 37
 | | | location 36 (scope: 7)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, N-1); goto location 37
 | | | location 37 (scope: 7)
 | | | | when (true) ; goto location 38
 | | | location 38 (scope: 7)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 39
 | | | location 39 (scope: 7)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 40
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 35
 | | | location 40 (scope: 7)
 | | | | when (true) join _CVT_process; goto location 42
 | | | location 41 (scope: 8)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 43
 | | | location 42 (scope: 8)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, N-1); goto location 43
 | | | location 43 (scope: 8)
 | | | | when (true) ; goto location 44
 | | | location 44 (scope: 8)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 45
 | | | location 45 (scope: 8)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 46
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 41
 | | | location 46 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 47
 | | | location 47 (scope: 0)
 | | | | when (true) return; goto location 48
 | | | location 48 (scope: 0)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 9 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 10 (parent: 9)
 | | locations (start=49)
 | | | location 49 (scope: 9)
 | | | | when (true) current = lower; goto location 50
 | | | location 51 (scope: 10)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 52
 | | | location 52 (scope: 10)
 | | | | when (true) current = current+1; goto location 50
 | | | location 50 (scope: 9)
 | | | | when (current<=upper) ; goto location 51
 | | | | when (!(current<=upper)) ; goto location 53
 | | | location 50 (scope: 9)
 | | | | when (current<=upper) ; goto location 51
 | | | | when (!(current<=upper)) ; goto location 53
 | | | location 53 (scope: 9)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 54
 | | | location 54 (scope: 9)
 | | | | when (true) return; goto location 55
 | | | location 55 (scope: 9)
 | function _CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 3 (parent: 2)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 4 (parent: 3)
 | | locations (start=11)
 | | | location 11 (scope: 3)
 | | | | when (true) ; goto location 12
 | | | location 14 (scope: 4)
 | | | | when (_CVT_sync_a[i+1%N]==false) a[i+1%N] = i; goto location 15
 | | | location 15 (scope: 4)
 | | | | when (true) write("Iter ", i, " wrote"); goto location 16
 | | | location 16 (scope: 4)
 | | | | when (_CVT_sync_a[i]==true) t = a[i]; goto location 17
 | | | location 17 (scope: 4)
 | | | | when (true) write("Iter ", i, " read"); goto location 11
 | | | location 12 (scope: 3)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 3)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 14
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 18
 | | | location 18 (scope: 3)
 | | | | when (true) return; goto location 19
 | | | location 19 (scope: 2)

STATS:
   maxProcs            :5
   statesSeen          : 203
   statesMatched       : 3
   transitionsExecuted : 205
   proverValidCalls    : 881
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 0.416
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const N : int
 | | | a : sync int[]
 | | | _CVT_sync_a : bool[]
 | | | scope 1 (parent: 0)
 | | | | _CVT_i : int
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) N = 3; goto location 5
 | | | location 7 (scope: 1)
 | | | | when (true) _CVT_i = _CVT_i+1; goto location 6
 | | | location 6 (scope: 1)
 | | | | when (_CVT_i<N-1+1) _CVT_sync_a[_CVT_i] = false; goto location 7
 | | | | when (!(_CVT_i<N-1+1)) ; goto location 8
 | | | location 5 (scope: 1)
 | | | | when (true) _CVT_i = 0; goto location 6
 | | | location 8 (scope: 0)
 | | | | when (true) main(); goto location 9
 | | | location 9 (scope: 0)
 | | | | when (true) return; goto location 10
 | | | location 10 (scope: 0)
 | function main
 | | formal parameters
 | | scope 2 (parent: 0)
 | | | t : int
 | | | scope 5 (parent: 2)
 | | | | _CVT_num_workers : int
 | | | | _CVT_workers : process[]
 | | | | i : int
 | | | | _CVT_for_variable : int
 | | | | _CVT_iterator : process
 | | | | _CVT_tag : int
 | | | | _CVT_dest : int
 | | | | scope 6 (parent: 5)
 | | | | | _CVT_process : process
 | | | | | _CVT_tag : int
 | | | | scope 7 (parent: 5)
 | | | | | _CVT_process : process
 | | | | | _CVT_tag : int
 | | | | scope 8 (parent: 5)
 | | | | | _CVT_process : process
 | | | | | _CVT_tag : int
 | | locations (start=20)
 | | | location 20 (scope: 5)
 | | | | when (true) _CVT_num_workers = N-1; goto location 21
 | | | location 22 (scope: 5)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 24
 | | | location 23 (scope: 6)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork _CVT_tmp_0(me); goto location 25
 | | | location 24 (scope: 6)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, N-1); goto location 25
 | | | location 25 (scope: 6)
 | | | | when (true) ; goto location 26
 | | | location 26 (scope: 6)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 27
 | | | location 27 (scope: 6)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 28
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 23
 | | | location 28 (scope: 6)
 | | | | when (true) join _CVT_process; goto location 29
 | | | location 29 (scope: 5)
 | | | | when (true) _CVT_iterator = fork _CVT_range_function(me, 0, N-1); goto location 30
 | | | location 30 (scope: 5)
 | | | | when (true) ; goto location 31
 | | | location 31 (scope: 5)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 32
 | | | location 32 (scope: 5)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 33
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 36
 | | | location 33 (scope: 5)
 | | | | when (true) _CVT_dest = _CVT_dest+1; goto location 34
 | | | location 34 (scope: 5)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 30
 | | | location 35 (scope: 7)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 37
 | | | location 36 (scope: 7)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, N-1); goto location 37
 | | | location 37 (scope: 7)
 | | | | when (true) ; goto location 38
 | | | location 38 (scope: 7)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 39
 | | | location 39 (scope: 7)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 40
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 35
 | | | location 40 (scope: 7)
 | | | | when (true) join _CVT_process; goto location 42
 | | | location 41 (scope: 8)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 43
 | | | location 42 (scope: 8)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, N-1); goto location 43
 | | | location 43 (scope: 8)
 | | | | when (true) ; goto location 44
 | | | location 44 (scope: 8)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 45
 | | | location 45 (scope: 8)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 46
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 41
 | | | location 46 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 47
 | | | location 47 (scope: 0)
 | | | | when (true) return; goto location 48
 | | | location 48 (scope: 0)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 9 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 10 (parent: 9)
 | | locations (start=49)
 | | | location 49 (scope: 9)
 | | | | when (true) current = lower; goto location 50
 | | | location 51 (scope: 10)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 52
 | | | location 52 (scope: 10)
 | | | | when (true) current = current+1; goto location 50
 | | | location 50 (scope: 9)
 | | | | when (!(current<=upper)) ; goto location 53
 | | | | when (current<=upper) ; goto location 51
 | | | location 50 (scope: 9)
 | | | | when (!(current<=upper)) ; goto location 53
 | | | | when (current<=upper) ; goto location 51
 | | | location 53 (scope: 9)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 54
 | | | location 54 (scope: 9)
 | | | | when (true) return; goto location 55
 | | | location 55 (scope: 9)
 | function _CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 3 (parent: 2)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 4 (parent: 3)
 | | locations (start=11)
 | | | location 11 (scope: 3)
 | | | | when (true) ; goto location 12
 | | | location 14 (scope: 4)
 | | | | when (_CVT_sync_a[i+1%N]==false) a[i+1%N] = i; goto location 15
 | | | location 15 (scope: 4)
 | | | | when (true) write("Iter ", i, " wrote"); goto location 16
 | | | location 16 (scope: 4)
 | | | | when (_CVT_sync_a[i]==true) t = a[i]; goto location 17
 | | | location 17 (scope: 4)
 | | | | when (true) write("Iter ", i, " read"); goto location 11
 | | | location 12 (scope: 3)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 3)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 18
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 14
 | | | location 18 (scope: 3)
 | | | | when (true) return; goto location 19
 | | | location 19 (scope: 2)

STATS:
   maxProcs            :6
   statesSeen          : 1539
   statesMatched       : 47
   transitionsExecuted : 1585
   proverValidCalls    : 6319
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 1.47
The specified properties hold for all executions.
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const N : int
 | | | a : sync int[]
 | | | _CVT_sync_a : bool[]
 | | | scope 1 (parent: 0)
 | | | | _CVT_i : int
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) N = 4; goto location 5
 | | | location 7 (scope: 1)
 | | | | when (true) _CVT_i = _CVT_i+1; goto location 6
 | | | location 6 (scope: 1)
 | | | | when (_CVT_i<N-1+1) _CVT_sync_a[_CVT_i] = false; goto location 7
 | | | | when (!(_CVT_i<N-1+1)) ; goto location 8
 | | | location 5 (scope: 1)
 | | | | when (true) _CVT_i = 0; goto location 6
 | | | location 8 (scope: 0)
 | | | | when (true) main(); goto location 9
 | | | location 9 (scope: 0)
 | | | | when (true) return; goto location 10
 | | | location 10 (scope: 0)
 | function main
 | | formal parameters
 | | scope 2 (parent: 0)
 | | | t : int
 | | | scope 5 (parent: 2)
 | | | | _CVT_num_workers : int
 | | | | _CVT_workers : process[]
 | | | | i : int
 | | | | _CVT_for_variable : int
 | | | | _CVT_iterator : process
 | | | | _CVT_tag : int
 | | | | _CVT_dest : int
 | | | | scope 6 (parent: 5)
 | | | | | _CVT_process : process
 | | | | | _CVT_tag : int
 | | | | scope 7 (parent: 5)
 | | | | | _CVT_process : process
 | | | | | _CVT_tag : int
 | | | | scope 8 (parent: 5)
 | | | | | _CVT_process : process
 | | | | | _CVT_tag : int
 | | locations (start=20)
 | | | location 20 (scope: 5)
 | | | | when (true) _CVT_num_workers = N-1; goto location 21
 | | | location 22 (scope: 5)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 24
 | | | location 23 (scope: 6)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork _CVT_tmp_0(me); goto location 25
 | | | location 24 (scope: 6)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, N-1); goto location 25
 | | | location 25 (scope: 6)
 | | | | when (true) ; goto location 26
 | | | location 26 (scope: 6)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 27
 | | | location 27 (scope: 6)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 28
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 23
 | | | location 28 (scope: 6)
 | | | | when (true) join _CVT_process; goto location 29
 | | | location 29 (scope: 5)
 | | | | when (true) _CVT_iterator = fork _CVT_range_function(me, 0, N-1); goto location 30
 | | | location 30 (scope: 5)
 | | | | when (true) ; goto location 31
 | | | location 31 (scope: 5)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 32
 | | | location 32 (scope: 5)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 33
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 36
 | | | location 33 (scope: 5)
 | | | | when (true) _CVT_dest = _CVT_dest+1; goto location 34
 | | | location 34 (scope: 5)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 30
 | | | location 35 (scope: 7)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 37
 | | | location 36 (scope: 7)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, N-1); goto location 37
 | | | location 37 (scope: 7)
 | | | | when (true) ; goto location 38
 | | | location 38 (scope: 7)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 39
 | | | location 39 (scope: 7)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 40
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 35
 | | | location 40 (scope: 7)
 | | | | when (true) join _CVT_process; goto location 42
 | | | location 41 (scope: 8)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 43
 | | | location 42 (scope: 8)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, N-1); goto location 43
 | | | location 43 (scope: 8)
 | | | | when (true) ; goto location 44
 | | | location 44 (scope: 8)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 45
 | | | location 45 (scope: 8)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 46
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 41
 | | | location 46 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 47
 | | | location 47 (scope: 0)
 | | | | when (true) return; goto location 48
 | | | location 48 (scope: 0)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 9 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 10 (parent: 9)
 | | locations (start=49)
 | | | location 49 (scope: 9)
 | | | | when (true) current = lower; goto location 50
 | | | location 51 (scope: 10)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 52
 | | | location 52 (scope: 10)
 | | | | when (true) current = current+1; goto location 50
 | | | location 50 (scope: 9)
 | | | | when (!(current<=upper)) ; goto location 53
 | | | | when (current<=upper) ; goto location 51
 | | | location 50 (scope: 9)
 | | | | when (!(current<=upper)) ; goto location 53
 | | | | when (current<=upper) ; goto location 51
 | | | location 53 (scope: 9)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 54
 | | | location 54 (scope: 9)
 | | | | when (true) return; goto location 55
 | | | location 55 (scope: 9)
 | function _CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 3 (parent: 2)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 4 (parent: 3)
 | | locations (start=11)
 | | | location 11 (scope: 3)
 | | | | when (true) ; goto location 12
 | | | location 14 (scope: 4)
 | | | | when (_CVT_sync_a[i+1%N]==false) a[i+1%N] = i; goto location 15
 | | | location 15 (scope: 4)
 | | | | when (true) write("Iter ", i, " wrote"); goto location 16
 | | | location 16 (scope: 4)
 | | | | when (_CVT_sync_a[i]==true) t = a[i]; goto location 17
 | | | location 17 (scope: 4)
 | | | | when (true) write("Iter ", i, " read"); goto location 11
 | | | location 12 (scope: 3)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 3)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 18
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 14
 | | | location 18 (scope: 3)
 | | | | when (true) return; goto location 19
 | | | location 19 (scope: 2)

STATS:
   maxProcs            :7
   statesSeen          : 35535
   statesMatched       : 1087
   transitionsExecuted : 36621
   proverValidCalls    : 140256
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 19.987
The specified properties hold for all executions.
../CVT compare -noprint -confignumTimes=3 -configN=100 -maxworkers=20 adderPar.chpl adderNoSync.chpl
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 24 (parent: null)
 | | | m0_pid : process
 | | | m1_pid : process
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | sum : int
 | | locations (start=117)
 | | | location 117 (scope: 24)
 | | | | when (true) m0_pid = fork m0_CVT_system(); goto location 118
 | | | location 118 (scope: 24)
 | | | | when (true) join m0_pid; goto location 119
 | | | location 119 (scope: 24)
 | | | | when (true) m1_pid = fork m1_CVT_system(); goto location 120
 | | | location 120 (scope: 24)
 | | | | when (true) join m1_pid; goto location 121
 | | | location 121 (scope: 24)
 | | | | when (true) return; goto location 122
 | | | location 122 (scope: 24)
 | function m0_CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 4 (parent: 3)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 5 (parent: 4)
 | | locations (start=16)
 | | | location 16 (scope: 4)
 | | | | when (true) ; goto location 17
 | | | location 19 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 20
 | | | location 20 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 16
 | | | location 17 (scope: 4)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 18
 | | | location 18 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 19
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 21
 | | | location 21 (scope: 4)
 | | | | when (true) return; goto location 22
 | | | location 22 (scope: 3)
 | function m0_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 10 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 11 (parent: 10)
 | | locations (start=52)
 | | | location 52 (scope: 10)
 | | | | when (true) current = lower; goto location 53
 | | | location 54 (scope: 11)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 55
 | | | location 55 (scope: 11)
 | | | | when (true) current = current+1; goto location 53
 | | | location 53 (scope: 10)
 | | | | when (!(current<=upper)) ; goto location 56
 | | | | when (current<=upper) ; goto location 54
 | | | location 53 (scope: 10)
 | | | | when (!(current<=upper)) ; goto location 56
 | | | | when (current<=upper) ; goto location 54
 | | | location 56 (scope: 10)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 57
 | | | location 57 (scope: 10)
 | | | | when (true) return; goto location 58
 | | | location 58 (scope: 10)
 | function m0main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 6 (parent: 3)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 9 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 7 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 8 (parent: 6)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 23
 | | | location 23 (scope: 6)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 24
 | | | location 24 (scope: 6)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 26
 | | | location 25 (scope: 7)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork m0_CVT_tmp_0(me); goto location 27
 | | | location 26 (scope: 7)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 27
 | | | location 27 (scope: 7)
 | | | | when (true) ; goto location 28
 | | | location 28 (scope: 7)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 25
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 30
 | | | location 30 (scope: 7)
 | | | | when (true) join _CVT_process; goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) _CVT_iterator = fork m0_CVT_range_function(me, 0, N-1); goto location 32
 | | | location 32 (scope: 6)
 | | | | when (true) ; goto location 33
 | | | location 33 (scope: 6)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 34
 | | | location 34 (scope: 6)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 38
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 35
 | | | location 35 (scope: 6)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 36
 | | | location 36 (scope: 6)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 32
 | | | location 37 (scope: 8)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 39
 | | | location 38 (scope: 8)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) ; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 42
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 37
 | | | location 42 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 44
 | | | location 43 (scope: 9)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 45
 | | | location 44 (scope: 9)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 45
 | | | location 45 (scope: 9)
 | | | | when (true) ; goto location 46
 | | | location 46 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 47
 | | | location 47 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 48
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 43
 | | | location 48 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 49
 | | | location 49 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 50
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 50 (scope: 0)
 | | | | when (true) return; goto location 51
 | | | location 51 (scope: 0)
 | function m0_CVT_system
 | | formal parameters
 | | scope 0 (parent: 24)
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 20; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 3; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 100; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) m0main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function m1main
 | | formal parameters
 | | scope 13 (parent: 12)
 | | | temp : int
 | | | scope 14 (parent: 13)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 15 (parent: 14)
 | | | | | scope 18 (parent: 15)
 | | | | | | _CVT_num_workers : int
 | | | | | | _CVT_workers : process[]
 | | | | | | i : int
 | | | | | | _CVT_for_variable : int
 | | | | | | _CVT_iterator : process
 | | | | | | _CVT_tag : int
 | | | | | | _CVT_dest : int
 | | | | | | scope 21 (parent: 18)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 19 (parent: 18)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | | | | | scope 20 (parent: 18)
 | | | | | | | _CVT_process : process
 | | | | | | | _CVT_tag : int
 | | locations (start=68)
 | | | location 68 (scope: 14)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 69
 | | | location 69 (scope: 14)
 | | | | when (true) ; goto location 70
 | | | location 70 (scope: 14)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 71
 | | | location 71 (scope: 14)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 72
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 73
 | | | location 72 (scope: 14)
 | | | | when (true) join _CVT_process; goto location 108
 | | | location 73 (scope: 15)
 | | | | when (true) sum = 0; goto location 81
 | | | location 81 (scope: 18)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 82
 | | | location 82 (scope: 18)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 84
 | | | location 83 (scope: 19)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork m1_CVT_tmp_0(me); goto location 85
 | | | location 84 (scope: 19)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 85
 | | | location 85 (scope: 19)
 | | | | when (true) ; goto location 86
 | | | location 86 (scope: 19)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 87
 | | | location 87 (scope: 19)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 88
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 83
 | | | location 88 (scope: 19)
 | | | | when (true) join _CVT_process; goto location 89
 | | | location 89 (scope: 18)
 | | | | when (true) _CVT_iterator = fork m1_CVT_range_function(me, 1, N); goto location 90
 | | | location 90 (scope: 18)
 | | | | when (true) ; goto location 91
 | | | location 91 (scope: 18)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 92
 | | | location 92 (scope: 18)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 93
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 96
 | | | location 93 (scope: 18)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 94
 | | | location 94 (scope: 18)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 90
 | | | location 95 (scope: 20)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 97
 | | | location 96 (scope: 20)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 97
 | | | location 97 (scope: 20)
 | | | | when (true) ; goto location 98
 | | | location 98 (scope: 20)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 99
 | | | location 99 (scope: 20)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 95
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 100
 | | | location 100 (scope: 20)
 | | | | when (true) join _CVT_process; goto location 102
 | | | location 101 (scope: 21)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 103
 | | | location 102 (scope: 21)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 103
 | | | location 103 (scope: 21)
 | | | | when (true) ; goto location 104
 | | | location 104 (scope: 21)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 105
 | | | location 105 (scope: 21)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 101
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 106
 | | | location 106 (scope: 21)
 | | | | when (true) join _CVT_process; goto location 107
 | | | location 107 (scope: 15)
 | | | | when (true) write(sum); goto location 69
 | | | location 72 (scope: 14)
 | | | | when (true) join _CVT_process; goto location 108
 | | | location 68 (scope: 14)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 1, numTimes); goto location 69
 | | | location 108 (scope: 12)
 | | | | when (true) return; goto location 109
 | | | location 109 (scope: 12)
 | function m1_CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 16 (parent: 15)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 17 (parent: 16)
 | | locations (start=74)
 | | | location 74 (scope: 16)
 | | | | when (true) ; goto location 75
 | | | location 77 (scope: 17)
 | | | | when (true) temp = sum; goto location 78
 | | | location 78 (scope: 17)
 | | | | when (true) sum = temp+a[i]; goto location 74
 | | | location 75 (scope: 16)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 76
 | | | location 76 (scope: 16)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 79
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 77
 | | | location 79 (scope: 16)
 | | | | when (true) return; goto location 80
 | | | location 80 (scope: 15)
 | function m1_CVT_system
 | | formal parameters
 | | scope 12 (parent: 24)
 | | locations (start=59)
 | | | location 59 (scope: 12)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 60
 | | | location 60 (scope: 12)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 61
 | | | location 61 (scope: 12)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 62
 | | | location 62 (scope: 12)
 | | | | when (true) _CVT_MAX_WORKERS = 20; goto location 63
 | | | location 63 (scope: 12)
 | | | | when (true) numTimes = 3; goto location 64
 | | | location 64 (scope: 12)
 | | | | when (true) N = 100; goto location 65
 | | | location 65 (scope: 12)
 | | | | when (true) m1main(); goto location 66
 | | | location 66 (scope: 12)
 | | | | when (true) return; goto location 67
 | | | location 67 (scope: 12)
 | function m1_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 22 (parent: 12)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 23 (parent: 22)
 | | locations (start=110)
 | | | location 110 (scope: 22)
 | | | | when (true) current = lower; goto location 111
 | | | location 112 (scope: 23)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 113
 | | | location 113 (scope: 23)
 | | | | when (true) current = current+1; goto location 111
 | | | location 111 (scope: 22)
 | | | | when (!(current<=upper)) ; goto location 114
 | | | | when (current<=upper) ; goto location 112
 | | | location 111 (scope: 22)
 | | | | when (!(current<=upper)) ; goto location 114
 | | | | when (current<=upper) ; goto location 112
 | | | location 114 (scope: 22)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 115
 | | | location 115 (scope: 22)
 | | | | when (true) return; goto location 116
 | | | location 116 (scope: 22)

*****************************************************************
  Cannot prove the outputs are equal. 
*****************************************************************

	Variable: sum    Spec value: A_s0v8[0] + A_s0v8[1] + A_s0v8[2] + A_s0v8[3] + A_s0v8[4] + A_s0v8[5] + A_s0v8[6] + A_s0v8[7] + A_s0v8[8] + A_s0v8[9] + A_s0v8[10] + A_s0v8[11] + A_s0v8[12] + A_s0v8[13] + A_s0v8[14] + A_s0v8[15] + A_s0v8[16] + A_s0v8[17] + A_s0v8[18] + A_s0v8[19] + A_s0v8[20] + A_s0v8[21] + A_s0v8[22] + A_s0v8[23] + A_s0v8[24] + A_s0v8[25] + A_s0v8[26] + A_s0v8[27] + A_s0v8[28] + A_s0v8[29] + A_s0v8[30] + A_s0v8[31] + A_s0v8[32] + A_s0v8[33] + A_s0v8[34] + A_s0v8[35] + A_s0v8[36] + A_s0v8[37] + A_s0v8[38] + A_s0v8[39] + A_s0v8[40] + A_s0v8[41] + A_s0v8[42] + A_s0v8[43] + A_s0v8[44] + A_s0v8[45] + A_s0v8[46] + A_s0v8[47] + A_s0v8[48] + A_s0v8[49] + A_s0v8[50] + A_s0v8[51] + A_s0v8[52] + A_s0v8[53] + A_s0v8[54] + A_s0v8[55] + A_s0v8[56] + A_s0v8[57] + A_s0v8[58] + A_s0v8[59] + A_s0v8[60] + A_s0v8[61] + A_s0v8[62] + A_s0v8[63] + A_s0v8[64] + A_s0v8[65] + A_s0v8[66] + A_s0v8[67] + A_s0v8[68] + A_s0v8[69] + A_s0v8[70] + A_s0v8[71] + A_s0v8[72] + A_s0v8[73] + A_s0v8[74] + A_s0v8[75] + A_s0v8[76] + A_s0v8[77] + A_s0v8[78] + A_s0v8[79] + A_s0v8[80] + A_s0v8[81] + A_s0v8[82] + A_s0v8[83] + A_s0v8[84] + A_s0v8[85] + A_s0v8[86] + A_s0v8[87] + A_s0v8[88] + A_s0v8[89] + A_s0v8[90] + A_s0v8[91] + A_s0v8[92] + A_s0v8[93] + A_s0v8[94] + A_s0v8[95] + A_s0v8[96] + A_s0v8[97] + A_s0v8[98] + A_s0v8[99]    Impl value: A_s0v8[1] + A_s0v8[2] + A_s0v8[3] + A_s0v8[4] + A_s0v8[5] + A_s0v8[6] + A_s0v8[7] + A_s0v8[8] + A_s0v8[9] + A_s0v8[10] + A_s0v8[11] + A_s0v8[12] + A_s0v8[13] + A_s0v8[14] + A_s0v8[15] + A_s0v8[16] + A_s0v8[17] + A_s0v8[18] + A_s0v8[19] + A_s0v8[20] + A_s0v8[21] + A_s0v8[22] + A_s0v8[23] + A_s0v8[24] + A_s0v8[25] + A_s0v8[26] + A_s0v8[27] + A_s0v8[28] + A_s0v8[29] + A_s0v8[30] + A_s0v8[31] + A_s0v8[32] + A_s0v8[33] + A_s0v8[34] + A_s0v8[35] + A_s0v8[36] + A_s0v8[37] + A_s0v8[38] + A_s0v8[39] + A_s0v8[40] + A_s0v8[41] + A_s0v8[42] + A_s0v8[43] + A_s0v8[44] + A_s0v8[45] + A_s0v8[46] + A_s0v8[47] + A_s0v8[48] + A_s0v8[49] + A_s0v8[50] + A_s0v8[51] + A_s0v8[52] + A_s0v8[53] + A_s0v8[54] + A_s0v8[55] + A_s0v8[56] + A_s0v8[57] + A_s0v8[58] + A_s0v8[59] + A_s0v8[60] + A_s0v8[61] + A_s0v8[62] + A_s0v8[63] + A_s0v8[64] + A_s0v8[65] + A_s0v8[66] + A_s0v8[67] + A_s0v8[68] + A_s0v8[69] + A_s0v8[70] + A_s0v8[71] + A_s0v8[72] + A_s0v8[73] + A_s0v8[74] + A_s0v8[75] + A_s0v8[76] + A_s0v8[77] + A_s0v8[78] + A_s0v8[79] + A_s0v8[80] + A_s0v8[81] + A_s0v8[82] + A_s0v8[83] + A_s0v8[84] + A_s0v8[85] + A_s0v8[86] + A_s0v8[87] + A_s0v8[88] + A_s0v8[89] + A_s0v8[90] + A_s0v8[91] + A_s0v8[92] + A_s0v8[93] + A_s0v8[94] + A_s0v8[95] + A_s0v8[96] + A_s0v8[97] + A_s0v8[98] + A_s0v8[99] + A_s0v8[100]

STATS:
   maxProcs            :11
   statesSeen          : 8262
   statesMatched       : 0
   transitionsExecuted : 8261
   proverValidCalls    : 52532
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 5.946
The program MAY NOT be correct.
../CVT compare -noprint -confignumTimes=5 -configN=50 -maxworkers=2 adderSpec.chpl adderND.chpl
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 24 (parent: null)
 | | | m0_pid : process
 | | | m1_pid : process
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | extern a : int[]
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const numTimes : int
 | | | const N : int
 | | | sum : sync int
 | | | _CVT_sync_sum : bool
 | | locations (start=118)
 | | | location 118 (scope: 24)
 | | | | when (true) m0_pid = fork m0_CVT_system(); goto location 119
 | | | location 119 (scope: 24)
 | | | | when (true) join m0_pid; goto location 120
 | | | location 120 (scope: 24)
 | | | | when (true) m1_pid = fork m1_CVT_system(); goto location 121
 | | | location 121 (scope: 24)
 | | | | when (true) join m1_pid; goto location 122
 | | | location 122 (scope: 24)
 | | | | when (true) return; goto location 123
 | | | location 123 (scope: 24)
 | function m0main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | temp : int
 | | | scope 2 (parent: 1)
 | | | | j : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 3 (parent: 2)
 | | | | | scope 4 (parent: 3)
 | | | | | | i : int
 | | | | | | _CVT_process : process
 | | | | | | _CVT_tag : int
 | | | | | | scope 5 (parent: 4)
 | | locations (start=10)
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 11 (scope: 2)
 | | | | when (true) ; goto location 12
 | | | location 12 (scope: 2)
 | | | | when (true) receive(_CVT_process, me, j, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 2)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 15
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 14
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 15 (scope: 3)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 16
 | | | location 16 (scope: 4)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 0, N-1); goto location 17
 | | | location 17 (scope: 4)
 | | | | when (true) ; goto location 18
 | | | location 18 (scope: 4)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 19
 | | | location 19 (scope: 4)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 21
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 20
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 21 (scope: 5)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 22
 | | | location 22 (scope: 5)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 17
 | | | location 20 (scope: 4)
 | | | | when (true) join _CVT_process; goto location 23
 | | | location 23 (scope: 3)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 11
 | | | location 14 (scope: 2)
 | | | | when (true) join _CVT_process; goto location 24
 | | | location 10 (scope: 2)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 1, numTimes); goto location 11
 | | | location 24 (scope: 0)
 | | | | when (true) return; goto location 25
 | | | location 25 (scope: 0)
 | function m0_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 6 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 7 (parent: 6)
 | | locations (start=26)
 | | | location 26 (scope: 6)
 | | | | when (true) current = lower; goto location 27
 | | | location 28 (scope: 7)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 29
 | | | location 29 (scope: 7)
 | | | | when (true) current = current+1; goto location 27
 | | | location 27 (scope: 6)
 | | | | when (!(current<=upper)) ; goto location 30
 | | | | when (current<=upper) ; goto location 28
 | | | location 27 (scope: 6)
 | | | | when (!(current<=upper)) ; goto location 30
 | | | | when (current<=upper) ; goto location 28
 | | | location 30 (scope: 6)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 31
 | | | location 31 (scope: 6)
 | | | | when (true) return; goto location 32
 | | | location 32 (scope: 6)
 | function m0_CVT_system
 | | formal parameters
 | | scope 0 (parent: 24)
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) numTimes = 5; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) N = 50; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_sum = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) m0main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function m1_CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 10 (parent: 9)
 | | | _CVT_manager : process
 | | | j : int
 | | | _CVT_tag : int
 | | | scope 11 (parent: 10)
 | | | | scope 14 (parent: 11)
 | | | | | _CVT_num_workers : int
 | | | | | _CVT_workers : process[]
 | | | | | i : int
 | | | | | _CVT_for_variable : int
 | | | | | _CVT_iterator : process
 | | | | | _CVT_tag : int
 | | | | | _CVT_dest : int
 | | | | | scope 17 (parent: 14)
 | | | | | | _CVT_process : process
 | | | | | | _CVT_tag : int
 | | | | | scope 16 (parent: 14)
 | | | | | | _CVT_process : process
 | | | | | | _CVT_tag : int
 | | | | | scope 15 (parent: 14)
 | | | | | | _CVT_process : process
 | | | | | | _CVT_tag : int
 | | locations (start=43)
 | | | location 43 (scope: 10)
 | | | | when (true) ; goto location 44
 | | | location 46 (scope: 11)
 | | | | when (_CVT_sync_sum==false) sum = 0; goto location 54
 | | | location 54 (scope: 14)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 55
 | | | location 55 (scope: 14)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 57
 | | | location 56 (scope: 15)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork m1_CVT_tmp_1(me); goto location 58
 | | | location 57 (scope: 15)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 58
 | | | location 58 (scope: 15)
 | | | | when (true) ; goto location 59
 | | | location 59 (scope: 15)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 60
 | | | location 60 (scope: 15)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 61
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 56
 | | | location 61 (scope: 15)
 | | | | when (true) join _CVT_process; goto location 62
 | | | location 62 (scope: 14)
 | | | | when (true) _CVT_iterator = fork m1_CVT_range_function(me, 1, N); goto location 63
 | | | location 63 (scope: 14)
 | | | | when (true) ; goto location 64
 | | | location 64 (scope: 14)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 65
 | | | location 65 (scope: 14)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 66
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 69
 | | | location 66 (scope: 14)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 67
 | | | location 67 (scope: 14)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 63
 | | | location 68 (scope: 16)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 70
 | | | location 69 (scope: 16)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 70
 | | | location 70 (scope: 16)
 | | | | when (true) ; goto location 71
 | | | location 71 (scope: 16)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 72
 | | | location 72 (scope: 16)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 68
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 73
 | | | location 73 (scope: 16)
 | | | | when (true) join _CVT_process; goto location 75
 | | | location 74 (scope: 17)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 76
 | | | location 75 (scope: 17)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 76
 | | | location 76 (scope: 17)
 | | | | when (true) ; goto location 77
 | | | location 77 (scope: 17)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 78
 | | | location 78 (scope: 17)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 74
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 79
 | | | location 79 (scope: 17)
 | | | | when (true) join _CVT_process; goto location 80
 | | | location 80 (scope: 11)
 | | | | when (true&&_CVT_sync_sum==true) write(sum); goto location 43
 | | | location 44 (scope: 10)
 | | | | when (true) receive(_CVT_manager, me, j, any(_CVT_tag)); goto location 45
 | | | location 45 (scope: 10)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 46
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 81
 | | | location 81 (scope: 10)
 | | | | when (true) return; goto location 82
 | | | location 82 (scope: 9)
 | function m1_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 22 (parent: 8)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 23 (parent: 22)
 | | locations (start=111)
 | | | location 111 (scope: 22)
 | | | | when (true) current = lower; goto location 112
 | | | location 113 (scope: 23)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 114
 | | | location 114 (scope: 23)
 | | | | when (true) current = current+1; goto location 112
 | | | location 112 (scope: 22)
 | | | | when (!(current<=upper)) ; goto location 115
 | | | | when (current<=upper) ; goto location 113
 | | | location 112 (scope: 22)
 | | | | when (!(current<=upper)) ; goto location 115
 | | | | when (current<=upper) ; goto location 113
 | | | location 115 (scope: 22)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 116
 | | | location 116 (scope: 22)
 | | | | when (true) return; goto location 117
 | | | location 117 (scope: 22)
 | function m1_CVT_system
 | | formal parameters
 | | scope 8 (parent: 24)
 | | locations (start=33)
 | | | location 33 (scope: 8)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 34
 | | | location 34 (scope: 8)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 35
 | | | location 35 (scope: 8)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 36
 | | | location 36 (scope: 8)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 37
 | | | location 37 (scope: 8)
 | | | | when (true) numTimes = 5; goto location 38
 | | | location 38 (scope: 8)
 | | | | when (true) N = 50; goto location 39
 | | | location 39 (scope: 8)
 | | | | when (true) _CVT_sync_sum = false; goto location 40
 | | | location 40 (scope: 8)
 | | | | when (true) m1main(); goto location 41
 | | | location 41 (scope: 8)
 | | | | when (true) return; goto location 42
 | | | location 42 (scope: 8)
 | function m1_CVT_tmp_1
 | | formal parameters
 | | | _CVT_manager
 | | scope 12 (parent: 11)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 13 (parent: 12)
 | | locations (start=47)
 | | | location 47 (scope: 12)
 | | | | when (true) ; goto location 48
 | | | location 50 (scope: 13)
 | | | | when (_CVT_sync_sum==true) temp = sum; goto location 51
 | | | location 51 (scope: 13)
 | | | | when (_CVT_sync_sum==false) sum = temp+a[i]; goto location 47
 | | | location 48 (scope: 12)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 49
 | | | location 49 (scope: 12)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 50
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 52
 | | | location 52 (scope: 12)
 | | | | when (true) return; goto location 53
 | | | location 53 (scope: 11)
 | function m1main
 | | formal parameters
 | | scope 9 (parent: 8)
 | | | temp : int
 | | | scope 18 (parent: 9)
 | | | | _CVT_num_workers : int
 | | | | _CVT_workers : process[]
 | | | | j : int
 | | | | _CVT_for_variable : int
 | | | | _CVT_iterator : process
 | | | | _CVT_tag : int
 | | | | _CVT_dest : int
 | | | | scope 20 (parent: 18)
 | | | | | _CVT_process : process
 | | | | | _CVT_tag : int
 | | | | scope 21 (parent: 18)
 | | | | | _CVT_process : process
 | | | | | _CVT_tag : int
 | | | | scope 19 (parent: 18)
 | | | | | _CVT_process : process
 | | | | | _CVT_tag : int
 | | locations (start=83)
 | | | location 83 (scope: 18)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 84
 | | | location 84 (scope: 18)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 86
 | | | location 85 (scope: 19)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork m1_CVT_tmp_0(me); goto location 87
 | | | location 86 (scope: 19)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 87
 | | | location 87 (scope: 19)
 | | | | when (true) ; goto location 88
 | | | location 88 (scope: 19)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 89
 | | | location 89 (scope: 19)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 90
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 85
 | | | location 90 (scope: 19)
 | | | | when (true) join _CVT_process; goto location 91
 | | | location 91 (scope: 18)
 | | | | when (true) _CVT_iterator = fork m1_CVT_range_function(me, 1, numTimes); goto location 92
 | | | location 92 (scope: 18)
 | | | | when (true) ; goto location 93
 | | | location 93 (scope: 18)
 | | | | when (true) receive(_CVT_iterator, me, j, any(_CVT_tag)); goto location 94
 | | | location 94 (scope: 18)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 95
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 98
 | | | location 95 (scope: 18)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 96
 | | | location 96 (scope: 18)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], j, _CVT_FORALL_TAG); goto location 92
 | | | location 97 (scope: 20)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 99
 | | | location 98 (scope: 20)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 99
 | | | location 99 (scope: 20)
 | | | | when (true) ; goto location 100
 | | | location 100 (scope: 20)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 101
 | | | location 101 (scope: 20)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 102
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 97
 | | | location 102 (scope: 20)
 | | | | when (true) join _CVT_process; goto location 104
 | | | location 103 (scope: 21)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 105
 | | | location 104 (scope: 21)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, _CVT_num_workers-1); goto location 105
 | | | location 105 (scope: 21)
 | | | | when (true) ; goto location 106
 | | | location 106 (scope: 21)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 107
 | | | location 107 (scope: 21)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 103
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 108
 | | | location 108 (scope: 21)
 | | | | when (true) join _CVT_process; goto location 109
 | | | location 109 (scope: 8)
 | | | | when (true) return; goto location 110
 | | | location 110 (scope: 8)

*****************************************************************
  Cannot prove the outputs are equal. 
*****************************************************************

	Variable: sum    Spec value: A_s0v8[0] + A_s0v8[1] + A_s0v8[2] + A_s0v8[3] + A_s0v8[4] + A_s0v8[5] + A_s0v8[6] + A_s0v8[7] + A_s0v8[8] + A_s0v8[9] + A_s0v8[10] + A_s0v8[11] + A_s0v8[12] + A_s0v8[13] + A_s0v8[14] + A_s0v8[15] + A_s0v8[16] + A_s0v8[17] + A_s0v8[18] + A_s0v8[19] + A_s0v8[20] + A_s0v8[21] + A_s0v8[22] + A_s0v8[23] + A_s0v8[24] + A_s0v8[25] + A_s0v8[26] + A_s0v8[27] + A_s0v8[28] + A_s0v8[29] + A_s0v8[30] + A_s0v8[31] + A_s0v8[32] + A_s0v8[33] + A_s0v8[34] + A_s0v8[35] + A_s0v8[36] + A_s0v8[37] + A_s0v8[38] + A_s0v8[39] + A_s0v8[40] + A_s0v8[41] + A_s0v8[42] + A_s0v8[43] + A_s0v8[44] + A_s0v8[45] + A_s0v8[46] + A_s0v8[47] + A_s0v8[48] + A_s0v8[49]    Impl value: A_s0v8[1] + A_s0v8[2] + A_s0v8[3] + A_s0v8[4] + A_s0v8[5] + A_s0v8[6] + A_s0v8[7] + A_s0v8[8] + A_s0v8[9] + A_s0v8[10] + A_s0v8[11] + A_s0v8[12] + A_s0v8[13] + A_s0v8[14] + A_s0v8[15] + A_s0v8[16] + A_s0v8[17] + A_s0v8[18] + A_s0v8[19] + A_s0v8[20] + A_s0v8[21] + A_s0v8[22] + A_s0v8[23] + A_s0v8[24] + A_s0v8[25] + A_s0v8[26] + A_s0v8[27] + A_s0v8[28] + A_s0v8[29] + A_s0v8[30] + A_s0v8[31] + A_s0v8[32] + A_s0v8[33] + A_s0v8[34] + A_s0v8[35] + A_s0v8[36] + A_s0v8[37] + A_s0v8[38] + A_s0v8[39] + A_s0v8[40] + A_s0v8[41] + A_s0v8[42] + A_s0v8[43] + A_s0v8[44] + A_s0v8[45] + A_s0v8[46] + A_s0v8[47] + A_s0v8[48] + A_s0v8[49] + A_s0v8[50]

STATS:
   maxProcs            :12
   statesSeen          : 5806
   statesMatched       : 0
   transitionsExecuted : 5805
   proverValidCalls    : 41677
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 6.29
The program MAY NOT be correct.
../CVT verify -noprint -configN=10 locks.chpl
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const N : int
 | | | lock1$ : sync int
 | | | _CVT_sync_lock1$ : bool
 | | | lock2$ : sync int
 | | | _CVT_sync_lock2$ : bool
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) N = 10; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) _CVT_sync_lock1$ = false; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) _CVT_sync_lock2$ = false; goto location 7
 | | | location 7 (scope: 0)
 | | | | when (true) main(); goto location 8
 | | | location 8 (scope: 0)
 | | | | when (true) return; goto location 9
 | | | location 9 (scope: 0)
 | function main
 | | formal parameters
 | | scope 1 (parent: 0)
 | | | scope 2 (parent: 1)
 | | | | _CVT_tmp_procs : process[]
 | | locations (start=16)
 | | | location 16 (scope: 2)
 | | | | when (true) _CVT_tmp_procs[0] = fork _CVT_tmp_0(); goto location 17
 | | | location 17 (scope: 2)
 | | | | when (true) _CVT_tmp_procs[1] = fork _CVT_tmp_1(); goto location 18
 | | | location 18 (scope: 2)
 | | | | when (true) join _CVT_tmp_procs[0]; goto location 19
 | | | location 19 (scope: 2)
 | | | | when (true) join _CVT_tmp_procs[1]; goto location 20
 | | | location 19 (scope: 2)
 | | | | when (true) join _CVT_tmp_procs[1]; goto location 20
 | | | location 16 (scope: 2)
 | | | | when (true) _CVT_tmp_procs[0] = fork _CVT_tmp_0(); goto location 17
 | | | location 20 (scope: 0)
 | | | | when (true) return; goto location 21
 | | | location 21 (scope: 0)
 | function worker1
 | | formal parameters
 | | scope 7 (parent: 0)
 | | | t : int
 | | | scope 8 (parent: 7)
 | | | | i : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 9 (parent: 8)
 | | locations (start=22)
 | | | location 22 (scope: 7)
 | | | | when (true) t = 0; goto location 23
 | | | location 23 (scope: 8)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, N); goto location 24
 | | | location 24 (scope: 8)
 | | | | when (true) ; goto location 25
 | | | location 25 (scope: 8)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 26
 | | | location 26 (scope: 8)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 28
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 27
 | | | location 27 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 36
 | | | location 28 (scope: 9)
 | | | | when (_CVT_sync_lock1$==false) lock1$ = 1; goto location 29
 | | | location 29 (scope: 9)
 | | | | when (true) write("Worker 1 has obtained lock1."); goto location 30
 | | | location 30 (scope: 9)
 | | | | when (_CVT_sync_lock2$==false) lock2$ = 1; goto location 31
 | | | location 31 (scope: 9)
 | | | | when (true) write("Worker 1 has obtained lock2."); goto location 32
 | | | location 32 (scope: 9)
 | | | | when (_CVT_sync_lock2$==true) t = lock2$; goto location 33
 | | | location 33 (scope: 9)
 | | | | when (true) write("Worker 1 has released lock2."); goto location 34
 | | | location 34 (scope: 9)
 | | | | when (_CVT_sync_lock1$==true) t = lock1$; goto location 35
 | | | location 35 (scope: 9)
 | | | | when (true) write("Worker 1 has released lock1."); goto location 24
 | | | location 27 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 36
 | | | location 36 (scope: 0)
 | | | | when (true) return; goto location 37
 | | | location 37 (scope: 0)
 | function worker2
 | | formal parameters
 | | scope 10 (parent: 0)
 | | | t : int
 | | | scope 11 (parent: 10)
 | | | | i : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 12 (parent: 11)
 | | locations (start=38)
 | | | location 38 (scope: 10)
 | | | | when (true) t = 0; goto location 39
 | | | location 39 (scope: 11)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 1, N); goto location 40
 | | | location 40 (scope: 11)
 | | | | when (true) ; goto location 41
 | | | location 41 (scope: 11)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 42
 | | | location 42 (scope: 11)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 43
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 44
 | | | location 43 (scope: 11)
 | | | | when (true) join _CVT_process; goto location 52
 | | | location 44 (scope: 12)
 | | | | when (_CVT_sync_lock2$==false) lock2$ = 1; goto location 45
 | | | location 45 (scope: 12)
 | | | | when (true) write("Worker 2 has obtained lock2."); goto location 46
 | | | location 46 (scope: 12)
 | | | | when (_CVT_sync_lock1$==false) lock1$ = 1; goto location 47
 | | | location 47 (scope: 12)
 | | | | when (true) write("Worker 2 has obtained lock1."); goto location 48
 | | | location 48 (scope: 12)
 | | | | when (_CVT_sync_lock1$==true) t = lock1$; goto location 49
 | | | location 49 (scope: 12)
 | | | | when (true) write("Worker 2 has released lock1."); goto location 50
 | | | location 50 (scope: 12)
 | | | | when (_CVT_sync_lock2$==true) t = lock2$; goto location 51
 | | | location 51 (scope: 12)
 | | | | when (true) write("Worker 2 has released lock2."); goto location 40
 | | | location 43 (scope: 11)
 | | | | when (true) join _CVT_process; goto location 52
 | | | location 52 (scope: 0)
 | | | | when (true) return; goto location 53
 | | | location 53 (scope: 0)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 13 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 14 (parent: 13)
 | | locations (start=54)
 | | | location 54 (scope: 13)
 | | | | when (true) current = lower; goto location 55
 | | | location 56 (scope: 14)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 57
 | | | location 57 (scope: 14)
 | | | | when (true) current = current+1; goto location 55
 | | | location 55 (scope: 13)
 | | | | when (!(current<=upper)) ; goto location 58
 | | | | when (current<=upper) ; goto location 56
 | | | location 55 (scope: 13)
 | | | | when (!(current<=upper)) ; goto location 58
 | | | | when (current<=upper) ; goto location 56
 | | | location 58 (scope: 13)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 59
 | | | location 59 (scope: 13)
 | | | | when (true) return; goto location 60
 | | | location 60 (scope: 13)
 | function _CVT_tmp_0
 | | formal parameters
 | | scope 4 (parent: 2)
 | | locations (start=10)
 | | | location 10 (scope: 4)
 | | | | when (true) worker1(); goto location 11
 | | | location 11 (scope: 3)
 | | | | when (true) return; goto location 12
 | | | location 12 (scope: 3)
 | | | location 10 (scope: 4)
 | | | | when (true) worker1(); goto location 11
 | function _CVT_tmp_1
 | | formal parameters
 | | scope 6 (parent: 2)
 | | locations (start=13)
 | | | location 13 (scope: 6)
 | | | | when (true) worker2(); goto location 14
 | | | location 14 (scope: 5)
 | | | | when (true) return; goto location 15
 | | | location 15 (scope: 5)
 | | | location 13 (scope: 6)
 | | | | when (true) worker2(); goto location 14
A deadlock is possible:
*****************************************************************
  Deadlock possible at State 5561(nprocs=5, nscopes=11)!
*****************************************************************
Process 0: at location 18. Target process has not terminated:
_CVT_tmp_procs[0]
Process 1: at location 30. Cannot prove enabling statement valid:
false
Process 2: terminated
Process 3: at location 46. Cannot prove enabling statement valid:
false
Process 4: terminated

State 5561
| Path condition
| | true
| Dynamic scopes
| | scope 0 (parent=-1, static=0)
| | | reachers: 0,1,3
| | | _CVT_FORALL_TAG = 1
| | | _CVT_TERM_TAG = -1
| | | _CVT_NEXT_TAG = 0
| | | _CVT_MAX_WORKERS = 2
| | | N = 10
| | | lock1$ = 1
| | | _CVT_sync_lock1$ = true
| | | lock2$ = 1
| | | _CVT_sync_lock2$ = true
| | scope 1 (parent=2, static=2)
| | | reachers: 0,1,3
| | | _CVT_tmp_procs = A_s2v0{1,3}
| | scope 2 (parent=0, static=1)
| | | reachers: 0,1,3
| | scope 3 (parent=1, static=4)
| | | reachers: 1
| | scope 4 (parent=5, static=9)
| | | reachers: 1
| | scope 5 (parent=6, static=8)
| | | reachers: 1
| | | i = 10
| | | _CVT_process = 2
| | | _CVT_tag = 0
| | scope 6 (parent=0, static=7)
| | | reachers: 1
| | | t = 1
| | scope 7 (parent=1, static=6)
| | | reachers: 3
| | scope 8 (parent=9, static=12)
| | | reachers: 3
| | scope 9 (parent=10, static=11)
| | | reachers: 3
| | | i = 1
| | | _CVT_process = 4
| | | _CVT_tag = 0
| | scope 10 (parent=0, static=10)
| | | reachers: 3
| | | t = 0
| Process states
| | process 0 call stack
| | | Frame[function=main, location=18, scope=1]
| | | Frame[function=_CVT_system, location=7, scope=0]
| | process 1 call stack
| | | Frame[function=worker1, location=30, scope=4]
| | | Frame[function=_CVT_tmp_0, location=10, scope=3]
| | process 2 call stack
| | process 3 call stack
| | | Frame[function=worker2, location=46, scope=8]
| | | Frame[function=_CVT_tmp_1, location=13, scope=7]
| | process 4 call stack
| Buffers
| | 2->1
| | | Message[tag=-1, data=null]
| | 4->3
| | | Message[tag=0, data=2]
| | | Message[tag=0, data=3]
| | | Message[tag=0, data=4]
| | | Message[tag=0, data=5]
| | | Message[tag=0, data=6]
| | | Message[tag=0, data=7]
| | | Message[tag=0, data=8]
| | | Message[tag=0, data=9]
| | | Message[tag=0, data=10]
| | | Message[tag=-1, data=null]

STATS:
   maxProcs            :5
   statesSeen          : 5562
   statesMatched       : 163
   transitionsExecuted : 5724
   proverValidCalls    : 24530
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 2.927
The program MAY NOT be correct.
../CVT verify -noprint -maxworkers=20 -configN=100 cycle.chpl
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 0 (parent: null)
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const N : int
 | | | a : sync int[]
 | | | _CVT_sync_a : bool[]
 | | | scope 1 (parent: 0)
 | | | | _CVT_i : int
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 20; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) N = 100; goto location 5
 | | | location 7 (scope: 1)
 | | | | when (true) _CVT_i = _CVT_i+1; goto location 6
 | | | location 6 (scope: 1)
 | | | | when (!(_CVT_i<N-1+1)) ; goto location 8
 | | | | when (_CVT_i<N-1+1) _CVT_sync_a[_CVT_i] = false; goto location 7
 | | | location 5 (scope: 1)
 | | | | when (true) _CVT_i = 0; goto location 6
 | | | location 8 (scope: 0)
 | | | | when (true) main(); goto location 9
 | | | location 9 (scope: 0)
 | | | | when (true) return; goto location 10
 | | | location 10 (scope: 0)
 | function main
 | | formal parameters
 | | scope 2 (parent: 0)
 | | | scope 5 (parent: 2)
 | | | | _CVT_num_workers : int
 | | | | _CVT_workers : process[]
 | | | | i : int
 | | | | _CVT_for_variable : int
 | | | | _CVT_iterator : process
 | | | | _CVT_tag : int
 | | | | _CVT_dest : int
 | | | | scope 6 (parent: 5)
 | | | | | _CVT_process : process
 | | | | | _CVT_tag : int
 | | | | scope 7 (parent: 5)
 | | | | | _CVT_process : process
 | | | | | _CVT_tag : int
 | | | | scope 8 (parent: 5)
 | | | | | _CVT_process : process
 | | | | | _CVT_tag : int
 | | locations (start=20)
 | | | location 20 (scope: 5)
 | | | | when (true) _CVT_num_workers = choose(_CVT_MAX_WORKERS); goto location 21
 | | | location 21 (scope: 5)
 | | | | when (true) _CVT_num_workers = 1+_CVT_num_workers; goto location 23
 | | | location 22 (scope: 6)
 | | | | when (true) _CVT_workers[_CVT_for_variable] = fork _CVT_tmp_0(me); goto location 24
 | | | location 23 (scope: 6)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 24
 | | | location 24 (scope: 6)
 | | | | when (true) ; goto location 25
 | | | location 25 (scope: 6)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 26
 | | | location 26 (scope: 6)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 22
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 27
 | | | location 27 (scope: 6)
 | | | | when (true) join _CVT_process; goto location 28
 | | | location 28 (scope: 5)
 | | | | when (true) _CVT_iterator = fork _CVT_range_function(me, 0, N-1); goto location 29
 | | | location 29 (scope: 5)
 | | | | when (true) ; goto location 30
 | | | location 30 (scope: 5)
 | | | | when (true) receive(_CVT_iterator, me, i, any(_CVT_tag)); goto location 31
 | | | location 31 (scope: 5)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 35
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 32
 | | | location 32 (scope: 5)
 | | | | when (true) _CVT_dest = choose(_CVT_num_workers); goto location 33
 | | | location 33 (scope: 5)
 | | | | when (true) send(me, _CVT_workers[_CVT_dest], i, _CVT_FORALL_TAG); goto location 29
 | | | location 34 (scope: 7)
 | | | | when (true) send(me, _CVT_workers[_CVT_for_variable], null, _CVT_TERM_TAG); goto location 36
 | | | location 35 (scope: 7)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 36
 | | | location 36 (scope: 7)
 | | | | when (true) ; goto location 37
 | | | location 37 (scope: 7)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 38
 | | | location 38 (scope: 7)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 39
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 34
 | | | location 39 (scope: 7)
 | | | | when (true) join _CVT_process; goto location 41
 | | | location 40 (scope: 8)
 | | | | when (true) join _CVT_workers[_CVT_for_variable]; goto location 42
 | | | location 41 (scope: 8)
 | | | | when (true) _CVT_process = fork _CVT_range_function(me, 0, _CVT_num_workers-1); goto location 42
 | | | location 42 (scope: 8)
 | | | | when (true) ; goto location 43
 | | | location 43 (scope: 8)
 | | | | when (true) receive(_CVT_process, me, _CVT_for_variable, any(_CVT_tag)); goto location 44
 | | | location 44 (scope: 8)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 40
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 45
 | | | location 45 (scope: 8)
 | | | | when (true) join _CVT_process; goto location 46
 | | | location 46 (scope: 0)
 | | | | when (true) return; goto location 47
 | | | location 47 (scope: 0)
 | function _CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 9 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 10 (parent: 9)
 | | locations (start=48)
 | | | location 48 (scope: 9)
 | | | | when (true) current = lower; goto location 49
 | | | location 50 (scope: 10)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 51
 | | | location 51 (scope: 10)
 | | | | when (true) current = current+1; goto location 49
 | | | location 49 (scope: 9)
 | | | | when (!(current<=upper)) ; goto location 52
 | | | | when (current<=upper) ; goto location 50
 | | | location 49 (scope: 9)
 | | | | when (!(current<=upper)) ; goto location 52
 | | | | when (current<=upper) ; goto location 50
 | | | location 52 (scope: 9)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 53
 | | | location 53 (scope: 9)
 | | | | when (true) return; goto location 54
 | | | location 54 (scope: 9)
 | function _CVT_tmp_0
 | | formal parameters
 | | | _CVT_manager
 | | scope 3 (parent: 2)
 | | | _CVT_manager : process
 | | | i : int
 | | | _CVT_tag : int
 | | | scope 4 (parent: 3)
 | | | | t : int
 | | locations (start=11)
 | | | location 11 (scope: 3)
 | | | | when (true) ; goto location 12
 | | | location 14 (scope: 4)
 | | | | when (_CVT_sync_a[i+1%N]==false) a[i+1%N] = i; goto location 15
 | | | location 15 (scope: 4)
 | | | | when (true) write("Iter ", i, " wrote"); goto location 16
 | | | location 16 (scope: 4)
 | | | | when (_CVT_sync_a[i]==true) t = a[i]; goto location 17
 | | | location 17 (scope: 4)
 | | | | when (true) write("Iter ", t, " read"); goto location 11
 | | | location 12 (scope: 3)
 | | | | when (true) receive(_CVT_manager, me, i, any(_CVT_tag)); goto location 13
 | | | location 13 (scope: 3)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 18
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 14
 | | | location 18 (scope: 3)
 | | | | when (true) return; goto location 19
 | | | location 19 (scope: 2)
A deadlock is possible:
*****************************************************************
  Deadlock possible at State 1066(nprocs=4, nscopes=6)!
*****************************************************************
Process 0: at location 40. Target process has not terminated:
_CVT_workers[_CVT_for_variable]
Process 1: at location 16. Cannot prove enabling statement valid:
false
Process 2: terminated
Process 3: terminated

State 1066
| Path condition
| | true
| Dynamic scopes
| | scope 0 (parent=-1, static=0)
| | | reachers: 0,1
| | | _CVT_FORALL_TAG = 1
| | | _CVT_TERM_TAG = -1
| | | _CVT_NEXT_TAG = 0
| | | _CVT_MAX_WORKERS = 20
| | | N = 100
| | | a = A_s0v5{null,0}
| | | _CVT_sync_a = A_s0v6{false,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false}
| | scope 1 (parent=2, static=8)
| | | reachers: 0
| | | _CVT_process = 3
| | | _CVT_tag = 0
| | scope 2 (parent=3, static=5)
| | | reachers: 0
| | | _CVT_num_workers = 1
| | | _CVT_workers = A_s2v1{1}
| | | i = null
| | | _CVT_for_variable = 0
| | | _CVT_iterator = 2
| | | _CVT_tag = -1
| | | _CVT_dest = 0
| | scope 3 (parent=0, static=2)
| | | reachers: 0,1
| | scope 4 (parent=5, static=4)
| | | reachers: 1
| | | t = null
| | scope 5 (parent=3, static=3)
| | | reachers: 1
| | | _CVT_manager = 0
| | | i = 0
| | | _CVT_tag = 1
| Process states
| | process 0 call stack
| | | Frame[function=main, location=40, scope=1]
| | | Frame[function=_CVT_system, location=8, scope=0]
| | process 1 call stack
| | | Frame[function=_CVT_tmp_0, location=16, scope=4]
| | process 2 call stack
| | process 3 call stack
| Buffers
| | 0->1
| | | Message[tag=1, data=1]
| | | Message[tag=1, data=2]
| | | Message[tag=1, data=3]
| | | Message[tag=1, data=4]
| | | Message[tag=1, data=5]
| | | Message[tag=1, data=6]
| | | Message[tag=1, data=7]
| | | Message[tag=1, data=8]
| | | Message[tag=1, data=9]
| | | Message[tag=1, data=10]
| | | Message[tag=1, data=11]
| | | Message[tag=1, data=12]
| | | Message[tag=1, data=13]
| | | Message[tag=1, data=14]
| | | Message[tag=1, data=15]
| | | Message[tag=1, data=16]
| | | Message[tag=1, data=17]
| | | Message[tag=1, data=18]
| | | Message[tag=1, data=19]
| | | Message[tag=1, data=20]
| | | Message[tag=1, data=21]
| | | Message[tag=1, data=22]
| | | Message[tag=1, data=23]
| | | Message[tag=1, data=24]
| | | Message[tag=1, data=25]
| | | Message[tag=1, data=26]
| | | Message[tag=1, data=27]
| | | Message[tag=1, data=28]
| | | Message[tag=1, data=29]
| | | Message[tag=1, data=30]
| | | Message[tag=1, data=31]
| | | Message[tag=1, data=32]
| | | Message[tag=1, data=33]
| | | Message[tag=1, data=34]
| | | Message[tag=1, data=35]
| | | Message[tag=1, data=36]
| | | Message[tag=1, data=37]
| | | Message[tag=1, data=38]
| | | Message[tag=1, data=39]
| | | Message[tag=1, data=40]
| | | Message[tag=1, data=41]
| | | Message[tag=1, data=42]
| | | Message[tag=1, data=43]
| | | Message[tag=1, data=44]
| | | Message[tag=1, data=45]
| | | Message[tag=1, data=46]
| | | Message[tag=1, data=47]
| | | Message[tag=1, data=48]
| | | Message[tag=1, data=49]
| | | Message[tag=1, data=50]
| | | Message[tag=1, data=51]
| | | Message[tag=1, data=52]
| | | Message[tag=1, data=53]
| | | Message[tag=1, data=54]
| | | Message[tag=1, data=55]
| | | Message[tag=1, data=56]
| | | Message[tag=1, data=57]
| | | Message[tag=1, data=58]
| | | Message[tag=1, data=59]
| | | Message[tag=1, data=60]
| | | Message[tag=1, data=61]
| | | Message[tag=1, data=62]
| | | Message[tag=1, data=63]
| | | Message[tag=1, data=64]
| | | Message[tag=1, data=65]
| | | Message[tag=1, data=66]
| | | Message[tag=1, data=67]
| | | Message[tag=1, data=68]
| | | Message[tag=1, data=69]
| | | Message[tag=1, data=70]
| | | Message[tag=1, data=71]
| | | Message[tag=1, data=72]
| | | Message[tag=1, data=73]
| | | Message[tag=1, data=74]
| | | Message[tag=1, data=75]
| | | Message[tag=1, data=76]
| | | Message[tag=1, data=77]
| | | Message[tag=1, data=78]
| | | Message[tag=1, data=79]
| | | Message[tag=1, data=80]
| | | Message[tag=1, data=81]
| | | Message[tag=1, data=82]
| | | Message[tag=1, data=83]
| | | Message[tag=1, data=84]
| | | Message[tag=1, data=85]
| | | Message[tag=1, data=86]
| | | Message[tag=1, data=87]
| | | Message[tag=1, data=88]
| | | Message[tag=1, data=89]
| | | Message[tag=1, data=90]
| | | Message[tag=1, data=91]
| | | Message[tag=1, data=92]
| | | Message[tag=1, data=93]
| | | Message[tag=1, data=94]
| | | Message[tag=1, data=95]
| | | Message[tag=1, data=96]
| | | Message[tag=1, data=97]
| | | Message[tag=1, data=98]
| | | Message[tag=1, data=99]
| | | Message[tag=-1, data=null]
| | 3->0
| | | Message[tag=-1, data=null]

STATS:
   maxProcs            :4
   statesSeen          : 1067
   statesMatched       : 0
   transitionsExecuted : 1066
   proverValidCalls    : 4372
   CVC3ValidCalls      : 0
   memory              : 85000192
   elapsedTime         : 2.056
The program MAY NOT be correct.
../CVT compare -noprint -configbuffersize=3 -confignumItems=100 prodCons.chpl prodConsNoSync.chpl
Model building complete.
Model
 | function _CVT_system
 | | formal parameters
 | | scope 35 (parent: null)
 | | | m0_pid : process
 | | | m1_pid : process
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const buffersize : int
 | | | const numItems : int
 | | | const verbose : int
 | | | sum : int
 | | | extern a : int[]
 | | | buff$ : sync int[]
 | | | _CVT_sync_buff$ : bool[]
 | | | const _CVT_FORALL_TAG : int
 | | | const _CVT_TERM_TAG : int
 | | | const _CVT_NEXT_TAG : int
 | | | const _CVT_MAX_WORKERS : int
 | | | const buffersize : int
 | | | const numItems : int
 | | | const verbose : int
 | | | sum : int
 | | | buff$ : int[]
 | | locations (start=127)
 | | | location 127 (scope: 35)
 | | | | when (true) m0_pid = fork m0_CVT_system(); goto location 128
 | | | location 128 (scope: 35)
 | | | | when (true) join m0_pid; goto location 129
 | | | location 129 (scope: 35)
 | | | | when (true) m1_pid = fork m1_CVT_system(); goto location 130
 | | | location 130 (scope: 35)
 | | | | when (true) join m1_pid; goto location 131
 | | | location 131 (scope: 35)
 | | | | when (true) return; goto location 132
 | | | location 132 (scope: 35)
 | function m0consumer
 | | formal parameters
 | | scope 11 (parent: 0)
 | | | localSum : int
 | | | scope 12 (parent: 11)
 | | | | buffVal : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 13 (parent: 12)
 | | locations (start=38)
 | | | location 38 (scope: 11)
 | | | | when (true) localSum = 0; goto location 39
 | | | location 39 (scope: 12)
 | | | | when (true) _CVT_process = fork m0readFromBuff(me); goto location 40
 | | | location 40 (scope: 12)
 | | | | when (true) ; goto location 41
 | | | location 41 (scope: 12)
 | | | | when (true) receive(_CVT_process, me, buffVal, any(_CVT_tag)); goto location 42
 | | | location 42 (scope: 12)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 44
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 43
 | | | location 43 (scope: 12)
 | | | | when (true) join _CVT_process; goto location 46
 | | | location 44 (scope: 13)
 | | | | when (true) localSum = localSum+buffVal; goto location 45
 | | | location 45 (scope: 13)
 | | | | when (true) write("Consumer got: ", buffVal); goto location 40
 | | | location 43 (scope: 12)
 | | | | when (true) join _CVT_process; goto location 46
 | | | location 46 (scope: 11)
 | | | | when (true) sum = localSum; goto location 47
 | | | location 47 (scope: 0)
 | | | | when (true) return; goto location 48
 | | | location 48 (scope: 0)
 | function m0_CVT_tmp_1
 | | formal parameters
 | | scope 7 (parent: 3)
 | | locations (start=16)
 | | | location 16 (scope: 7)
 | | | | when (true) m0consumer(); goto location 17
 | | | location 17 (scope: 6)
 | | | | when (true) return; goto location 18
 | | | location 18 (scope: 6)
 | | | location 16 (scope: 7)
 | | | | when (true) m0consumer(); goto location 17
 | function m0main
 | | formal parameters
 | | scope 2 (parent: 0)
 | | | scope 3 (parent: 2)
 | | | | _CVT_tmp_procs : process[]
 | | locations (start=19)
 | | | location 19 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[0] = fork m0_CVT_tmp_0(); goto location 20
 | | | location 20 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[1] = fork m0_CVT_tmp_1(); goto location 21
 | | | location 21 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[0]; goto location 22
 | | | location 22 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[1]; goto location 23
 | | | location 22 (scope: 3)
 | | | | when (true) join _CVT_tmp_procs[1]; goto location 23
 | | | location 19 (scope: 3)
 | | | | when (true) _CVT_tmp_procs[0] = fork m0_CVT_tmp_0(); goto location 20
 | | | location 23 (scope: 0)
 | | | | when (true) return; goto location 24
 | | | location 24 (scope: 0)
 | function m0_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 16 (parent: 0)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 17 (parent: 16)
 | | locations (start=58)
 | | | location 58 (scope: 16)
 | | | | when (true) current = lower; goto location 59
 | | | location 60 (scope: 17)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 61
 | | | location 61 (scope: 17)
 | | | | when (true) current = current+1; goto location 59
 | | | location 59 (scope: 16)
 | | | | when (current<=upper) ; goto location 60
 | | | | when (!(current<=upper)) ; goto location 62
 | | | location 59 (scope: 16)
 | | | | when (current<=upper) ; goto location 60
 | | | | when (!(current<=upper)) ; goto location 62
 | | | location 62 (scope: 16)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 63
 | | | location 63 (scope: 16)
 | | | | when (true) return; goto location 64
 | | | location 64 (scope: 16)
 | function m0readFromBuff
 | | formal parameters
 | | | _CVT_caller
 | | scope 14 (parent: 0)
 | | | _CVT_caller : process
 | | | ind : int
 | | | nextVal : int
 | | | scope 15 (parent: 14)
 | | locations (start=49)
 | | | location 49 (scope: 14)
 | | | | when (true) ind = 0; goto location 50
 | | | location 50 (scope: 14)
 | | | | when (_CVT_sync_buff$[0]==true) nextVal = buff$[0]; goto location 51
 | | | location 52 (scope: 15)
 | | | | when (true) send(me, _CVT_caller, nextVal, _CVT_NEXT_TAG); goto location 53
 | | | location 53 (scope: 15)
 | | | | when (true) ind = ind+1%buffersize; goto location 54
 | | | location 54 (scope: 15)
 | | | | when (_CVT_sync_buff$[ind]==true) nextVal = buff$[ind]; goto location 51
 | | | location 51 (scope: 14)
 | | | | when (nextVal!=-(1)) ; goto location 52
 | | | | when (!(nextVal!=-(1))) ; goto location 55
 | | | location 51 (scope: 14)
 | | | | when (nextVal!=-(1)) ; goto location 52
 | | | | when (!(nextVal!=-(1))) ; goto location 55
 | | | location 55 (scope: 14)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 56
 | | | location 56 (scope: 14)
 | | | | when (true) return; goto location 57
 | | | location 57 (scope: 14)
 | function m0_CVT_tmp_0
 | | formal parameters
 | | scope 5 (parent: 3)
 | | locations (start=13)
 | | | location 13 (scope: 5)
 | | | | when (true) m0producer(); goto location 14
 | | | location 14 (scope: 4)
 | | | | when (true) return; goto location 15
 | | | location 15 (scope: 4)
 | | | location 13 (scope: 5)
 | | | | when (true) m0producer(); goto location 14
 | function m0producer
 | | formal parameters
 | | scope 8 (parent: 0)
 | | | scope 9 (parent: 8)
 | | | | i : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 10 (parent: 9)
 | | | | | const buffInd : int
 | | locations (start=25)
 | | | location 25 (scope: 9)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 0, numItems-1); goto location 26
 | | | location 26 (scope: 9)
 | | | | when (true) ; goto location 27
 | | | location 27 (scope: 9)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 28
 | | | location 28 (scope: 9)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 29
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 30
 | | | location 29 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 35
 | | | location 30 (scope: 10)
 | | | | when (true) buffInd = i%buffersize; goto location 31
 | | | location 31 (scope: 10)
 | | | | when (_CVT_sync_buff$[buffInd]==false) buff$[buffInd] = a[i]*a[i]; goto location 32
 | | | location 33 (scope: 10)
 | | | | when (true) write("producer wrote value #", a[i]); goto location 34
 | | | location 34 (scope: 10)
 | | | | when (true) ; goto location 26
 | | | location 29 (scope: 9)
 | | | | when (true) join _CVT_process; goto location 35
 | | | location 35 (scope: 8)
 | | | | when (_CVT_sync_buff$[numItems%buffersize]==false) buff$[numItems%buffersize] = -(1); goto location 36
 | | | location 25 (scope: 9)
 | | | | when (true) _CVT_process = fork m0_CVT_range_function(me, 0, numItems-1); goto location 26
 | | | location 36 (scope: 0)
 | | | | when (true) return; goto location 37
 | | | location 37 (scope: 0)
 | function m0_CVT_system
 | | formal parameters
 | | scope 0 (parent: 35)
 | | | scope 1 (parent: 0)
 | | | | _CVT_i : int
 | | locations (start=0)
 | | | location 0 (scope: 0)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 1
 | | | location 1 (scope: 0)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 2
 | | | location 2 (scope: 0)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 3
 | | | location 3 (scope: 0)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 4
 | | | location 4 (scope: 0)
 | | | | when (true) buffersize = 3; goto location 5
 | | | location 5 (scope: 0)
 | | | | when (true) numItems = 100; goto location 6
 | | | location 6 (scope: 0)
 | | | | when (true) verbose = false; goto location 7
 | | | location 9 (scope: 1)
 | | | | when (true) _CVT_i = _CVT_i+1; goto location 8
 | | | location 8 (scope: 1)
 | | | | when (!(_CVT_i<buffersize-1+1)) ; goto location 10
 | | | | when (_CVT_i<buffersize-1+1) _CVT_sync_buff$[_CVT_i] = false; goto location 9
 | | | location 7 (scope: 1)
 | | | | when (true) _CVT_i = 0; goto location 8
 | | | location 10 (scope: 0)
 | | | | when (true) m0main(); goto location 11
 | | | location 11 (scope: 0)
 | | | | when (true) return; goto location 12
 | | | location 12 (scope: 0)
 | function m1main
 | | formal parameters
 | | scope 19 (parent: 18)
 | | | scope 20 (parent: 19)
 | | | | _CVT_tmp_procs : process[]
 | | locations (start=81)
 | | | location 81 (scope: 20)
 | | | | when (true) _CVT_tmp_procs[0] = fork m1_CVT_tmp_0(); goto location 82
 | | | location 82 (scope: 20)
 | | | | when (true) _CVT_tmp_procs[1] = fork m1_CVT_tmp_1(); goto location 83
 | | | location 83 (scope: 20)
 | | | | when (true) join _CVT_tmp_procs[0]; goto location 84
 | | | location 84 (scope: 20)
 | | | | when (true) join _CVT_tmp_procs[1]; goto location 85
 | | | location 84 (scope: 20)
 | | | | when (true) join _CVT_tmp_procs[1]; goto location 85
 | | | location 81 (scope: 20)
 | | | | when (true) _CVT_tmp_procs[0] = fork m1_CVT_tmp_0(); goto location 82
 | | | location 85 (scope: 18)
 | | | | when (true) return; goto location 86
 | | | location 86 (scope: 18)
 | function m1readFromBuff
 | | formal parameters
 | | | _CVT_caller
 | | scope 31 (parent: 18)
 | | | _CVT_caller : process
 | | | ind : int
 | | | nextVal : int
 | | | scope 32 (parent: 31)
 | | locations (start=111)
 | | | location 111 (scope: 31)
 | | | | when (true) ind = 0; goto location 112
 | | | location 112 (scope: 31)
 | | | | when (true) nextVal = buff$[0]; goto location 113
 | | | location 114 (scope: 32)
 | | | | when (true) send(me, _CVT_caller, nextVal, _CVT_NEXT_TAG); goto location 115
 | | | location 115 (scope: 32)
 | | | | when (true) ind = ind+1%buffersize; goto location 116
 | | | location 116 (scope: 32)
 | | | | when (true) nextVal = buff$[ind]; goto location 113
 | | | location 113 (scope: 31)
 | | | | when (nextVal!=-(1)) ; goto location 114
 | | | | when (!(nextVal!=-(1))) ; goto location 117
 | | | location 113 (scope: 31)
 | | | | when (nextVal!=-(1)) ; goto location 114
 | | | | when (!(nextVal!=-(1))) ; goto location 117
 | | | location 117 (scope: 31)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 118
 | | | location 118 (scope: 31)
 | | | | when (true) return; goto location 119
 | | | location 119 (scope: 31)
 | function m1consumer
 | | formal parameters
 | | scope 28 (parent: 18)
 | | | localSum : int
 | | | scope 29 (parent: 28)
 | | | | buffVal : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 30 (parent: 29)
 | | locations (start=100)
 | | | location 100 (scope: 28)
 | | | | when (true) localSum = 0; goto location 101
 | | | location 101 (scope: 29)
 | | | | when (true) _CVT_process = fork m1readFromBuff(me); goto location 102
 | | | location 102 (scope: 29)
 | | | | when (true) ; goto location 103
 | | | location 103 (scope: 29)
 | | | | when (true) receive(_CVT_process, me, buffVal, any(_CVT_tag)); goto location 104
 | | | location 104 (scope: 29)
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 105
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 106
 | | | location 105 (scope: 29)
 | | | | when (true) join _CVT_process; goto location 108
 | | | location 106 (scope: 30)
 | | | | when (true) localSum = localSum+buffVal; goto location 107
 | | | location 107 (scope: 30)
 | | | | when (true) write("Consumer got: ", buffVal); goto location 102
 | | | location 105 (scope: 29)
 | | | | when (true) join _CVT_process; goto location 108
 | | | location 108 (scope: 28)
 | | | | when (true) sum = localSum; goto location 109
 | | | location 109 (scope: 18)
 | | | | when (true) return; goto location 110
 | | | location 110 (scope: 18)
 | function m1producer
 | | formal parameters
 | | scope 25 (parent: 18)
 | | | scope 26 (parent: 25)
 | | | | i : int
 | | | | _CVT_process : process
 | | | | _CVT_tag : int
 | | | | scope 27 (parent: 26)
 | | | | | const buffInd : int
 | | locations (start=87)
 | | | location 87 (scope: 26)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, numItems-1); goto location 88
 | | | location 88 (scope: 26)
 | | | | when (true) ; goto location 89
 | | | location 89 (scope: 26)
 | | | | when (true) receive(_CVT_process, me, i, any(_CVT_tag)); goto location 90
 | | | location 90 (scope: 26)
 | | | | when (!(_CVT_tag==_CVT_TERM_TAG)) ; goto location 92
 | | | | when (_CVT_tag==_CVT_TERM_TAG) ; goto location 91
 | | | location 91 (scope: 26)
 | | | | when (true) join _CVT_process; goto location 97
 | | | location 92 (scope: 27)
 | | | | when (true) buffInd = i%buffersize; goto location 93
 | | | location 93 (scope: 27)
 | | | | when (true) buff$[buffInd] = a[i]*a[i]; goto location 94
 | | | location 95 (scope: 27)
 | | | | when (true) write("producer wrote value #", i); goto location 96
 | | | location 96 (scope: 27)
 | | | | when (true) ; goto location 88
 | | | location 91 (scope: 26)
 | | | | when (true) join _CVT_process; goto location 97
 | | | location 97 (scope: 25)
 | | | | when (true) buff$[numItems%buffersize] = -(1); goto location 98
 | | | location 87 (scope: 26)
 | | | | when (true) _CVT_process = fork m1_CVT_range_function(me, 0, numItems-1); goto location 88
 | | | location 98 (scope: 18)
 | | | | when (true) return; goto location 99
 | | | location 99 (scope: 18)
 | function m1_CVT_range_function
 | | formal parameters
 | | | _CVT_caller
 | | | lower
 | | | upper
 | | scope 33 (parent: 18)
 | | | _CVT_caller : process
 | | | lower : int
 | | | upper : int
 | | | current : int
 | | | scope 34 (parent: 33)
 | | locations (start=120)
 | | | location 120 (scope: 33)
 | | | | when (true) current = lower; goto location 121
 | | | location 122 (scope: 34)
 | | | | when (true) send(me, _CVT_caller, current, _CVT_NEXT_TAG); goto location 123
 | | | location 123 (scope: 34)
 | | | | when (true) current = current+1; goto location 121
 | | | location 121 (scope: 33)
 | | | | when (current<=upper) ; goto location 122
 | | | | when (!(current<=upper)) ; goto location 124
 | | | location 121 (scope: 33)
 | | | | when (current<=upper) ; goto location 122
 | | | | when (!(current<=upper)) ; goto location 124
 | | | location 124 (scope: 33)
 | | | | when (true) send(me, _CVT_caller, null, _CVT_TERM_TAG); goto location 125
 | | | location 125 (scope: 33)
 | | | | when (true) return; goto location 126
 | | | location 126 (scope: 33)
 | function m1_CVT_tmp_1
 | | formal parameters
 | | scope 24 (parent: 20)
 | | locations (start=78)
 | | | location 78 (scope: 24)
 | | | | when (true) m1consumer(); goto location 79
 | | | location 79 (scope: 23)
 | | | | when (true) return; goto location 80
 | | | location 80 (scope: 23)
 | | | location 78 (scope: 24)
 | | | | when (true) m1consumer(); goto location 79
 | function m1_CVT_tmp_0
 | | formal parameters
 | | scope 22 (parent: 20)
 | | locations (start=75)
 | | | location 75 (scope: 22)
 | | | | when (true) m1producer(); goto location 76
 | | | location 76 (scope: 21)
 | | | | when (true) return; goto location 77
 | | | location 77 (scope: 21)
 | | | location 75 (scope: 22)
 | | | | when (true) m1producer(); goto location 76
 | function m1_CVT_system
 | | formal parameters
 | | scope 18 (parent: 35)
 | | locations (start=65)
 | | | location 65 (scope: 18)
 | | | | when (true) _CVT_TERM_TAG = -1; goto location 66
 | | | location 66 (scope: 18)
 | | | | when (true) _CVT_NEXT_TAG = 0; goto location 67
 | | | location 67 (scope: 18)
 | | | | when (true) _CVT_FORALL_TAG = 1; goto location 68
 | | | location 68 (scope: 18)
 | | | | when (true) _CVT_MAX_WORKERS = 2; goto location 69
 | | | location 69 (scope: 18)
 | | | | when (true) buffersize = 3; goto location 70
 | | | location 70 (scope: 18)
 | | | | when (true) numItems = 100; goto location 71
 | | | location 71 (scope: 18)
 | | | | when (true) verbose = false; goto location 72
 | | | location 72 (scope: 18)
 | | | | when (true) m1main(); goto location 73
 | | | location 73 (scope: 18)
 | | | | when (true) return; goto location 74
 | | | location 74 (scope: 18)

*****************************************************************
  Cannot prove the outputs are equal. 
*****************************************************************

	Variable: sum    Spec value: A_s0v10[0]^2 + A_s0v10[1]^2 + A_s0v10[2]^2 + A_s0v10[3]^2 + A_s0v10[4]^2 + A_s0v10[5]^2 + A_s0v10[6]^2 + A_s0v10[7]^2 + A_s0v10[8]^2 + A_s0v10[9]^2 + A_s0v10[10]^2 + A_s0v10[11]^2 + A_s0v10[12]^2 + A_s0v10[13]^2 + A_s0v10[14]^2 + A_s0v10[15]^2 + A_s0v10[16]^2 + A_s0v10[17]^2 + A_s0v10[18]^2 + A_s0v10[19]^2 + A_s0v10[20]^2 + A_s0v10[21]^2 + A_s0v10[22]^2 + A_s0v10[23]^2 + A_s0v10[24]^2 + A_s0v10[25]^2 + A_s0v10[26]^2 + A_s0v10[27]^2 + A_s0v10[28]^2 + A_s0v10[29]^2 + A_s0v10[30]^2 + A_s0v10[31]^2 + A_s0v10[32]^2 + A_s0v10[33]^2 + A_s0v10[34]^2 + A_s0v10[35]^2 + A_s0v10[36]^2 + A_s0v10[37]^2 + A_s0v10[38]^2 + A_s0v10[39]^2 + A_s0v10[40]^2 + A_s0v10[41]^2 + A_s0v10[42]^2 + A_s0v10[43]^2 + A_s0v10[44]^2 + A_s0v10[45]^2 + A_s0v10[46]^2 + A_s0v10[47]^2 + A_s0v10[48]^2 + A_s0v10[49]^2 + A_s0v10[50]^2 + A_s0v10[51]^2 + A_s0v10[52]^2 + A_s0v10[53]^2 + A_s0v10[54]^2 + A_s0v10[55]^2 + A_s0v10[56]^2 + A_s0v10[57]^2 + A_s0v10[58]^2 + A_s0v10[59]^2 + A_s0v10[60]^2 + A_s0v10[61]^2 + A_s0v10[62]^2 + A_s0v10[63]^2 + A_s0v10[64]^2 + A_s0v10[65]^2 + A_s0v10[66]^2 + A_s0v10[67]^2 + A_s0v10[68]^2 + A_s0v10[69]^2 + A_s0v10[70]^2 + A_s0v10[71]^2 + A_s0v10[72]^2 + A_s0v10[73]^2 + A_s0v10[74]^2 + A_s0v10[75]^2 + A_s0v10[76]^2 + A_s0v10[77]^2 + A_s0v10[78]^2 + A_s0v10[79]^2 + A_s0v10[80]^2 + A_s0v10[81]^2 + A_s0v10[82]^2 + A_s0v10[83]^2 + A_s0v10[84]^2 + A_s0v10[85]^2 + A_s0v10[86]^2 + A_s0v10[87]^2 + A_s0v10[88]^2 + A_s0v10[89]^2 + A_s0v10[90]^2 + A_s0v10[91]^2 + A_s0v10[92]^2 + A_s0v10[93]^2 + A_s0v10[94]^2 + A_s0v10[95]^2 + A_s0v10[96]^2 + A_s0v10[97]^2 + A_s0v10[98]^2 + A_s0v10[99]^2    Impl value: A_s0v10[99]^2

STATS:
   maxProcs            :6
   statesSeen          : 3006
   statesMatched       : 0
   transitionsExecuted : 3005
   proverValidCalls    : 24737
   CVC3ValidCalls      : 407
   memory              : 85000192
   elapsedTime         : 4.761
The program MAY NOT be correct.
