@sew< workflow , 1.0 >:

// Symbolic Execution Workflow
// Diversity Tool Configuration
// CEA - LIST
workflow {
	workspace [
		root   = "C:/Users/bb222989/action/dev/TP/final/efm-diversity/workspace-training/Diversity"
		output = "Specification/output"
		log    = "log"
		debug  = "debug"
	] // end workspace
	director behavior#selection 'as main execution objective' {
		manifest [
			autoconf  = true
			autostart = true
		] // end manifest
		project 'path of input model' [
			source = "C:/Users/bb222989/action/dev/TP/final/efm-diversity/workspace-training/Diversity/Specification"
			model  = "thermostatSystem.xlia"
		] // end project
		supervisor {
			limit 'of graph exploration' [
				step = 1000
			] // end limit
			queue 'defining the exploration/search strategy' [
				strategy = 'WEIGHT#BREADTH_FIRST_SEARCH'
				heuristic = true
			] // end queue
			console [
				format = "\nstep:%1% , context:%2% , height:%3% , width:%4%"
				report = "\nstop:%1% , context:%2% , height:%3% , width:%4%"
			] // end console
		}
		worker [
			coverage#behavior behavior_coverage {
				property [
					stop  = true
					slice = true
					heuristic = true
					scope = 'GLOBALLY'
					scheduler = '|i|'
					hit#folding = true
					hit#lucky   = false
					hit#max     = false
					jump#slice  = false
				] // end property
				heuristic [
					jump#height = 6
					jump#trials#limit = -1
					hit#count  = 1
					jump#count = 1
				] // end heuristic
				trace [
					// Sequence of elements (separated by newline or semicolon) characterizing the desired behavior.
					// The elements of the sequence may be selected from:
					transition = "e22"
				] // end trace
				console [
					format = " , coverage: %1% / %2%"
				] // end console
			}
			serializer#symbex#graphviz symbex2graphiz {
				property [
					info#selection = 'ALL'
					data#selection = 'MODIFIED'
				] // end property
				format [
					path#condition = "PC: %1%"
					path#timed#condition = "PtC: %1%"
					node#condition = ""
					node#timed#condition = ""
					assign = "%3%=%4%"
					newfresh = "newfresh(%1%:%3%) <- %4%"
					input#env = "INPUT %3%(%4%)"
					input = "input %3%(%4%)"
					output#env = "OUTPUT %3%(%4%)"
					output = "output %3%(%4%)"
					routine = "invoke %2%:%3%"
					transition = "fired transition %3%"
					machine = "run %1%:%3%"
				] // end format
				trace [
					com = "[*]"
					variable = "[*]"
					// See full grammar of [Trace Specification] at the end of this generated file
				] // end trace
				vfs [
					file = "symbex_output.gv"
				] // end vfs
			}
			serializer#symbex#trace#basic basic_trace_generator {
				property [
					solver = 'CVC4'
					format = 'BASIC'
					info#selection = 'ALL'
					data#selection = 'MODIFIED'
					normalize = true
				] // end property
				format [
					comment = "\t// %1%\n"
					path#condition = "\tPC: %1%\n"
					path#timed#condition = "\tPtC: %1%\n"
					node#condition = ""
					node#timed#condition = ""
					time = "\tdelta = %4%\n"
					assign = "\t%3%=%4%\n"
					newfresh = "\tnewfresh(%2%:%3%) <- %4%\n"
					input#env = "\tINPUT %3%(%4%)\n"
					// input#rdv  = ""
					input = "\tINPUT %3%(%4%)\n"
					output#env = "\tOUTPUT %3%(%4%)\n"
					output = "\tOUTPUT %3%(%4%)\n"
					routine = "\tinvoke %2%:%3%\n"
					transition = "\tfired transition %2%:%3%\n"
					machine = "\trun %1%:%2%\n"
				] // end format
				trace [
					// See full grammar of [Trace Specification] at the end of this generated file
					time = "[*]"
					input#env = "[*]"
					output#env = "[*]"
					input = "[*]"
					output = "[*]"
					// See full grammar of [Trace Specification] at the end of this generated file
				] // end trace
				vfs [
					folder = "basic"
					file   = "testcases.txt"
				] // end vfs
			}
		] // end worker
	}
	symbex 'option' [
		separation_of_pc_disjunction = false
		check_pathcondition_satisfiability = true
		constraint_solver = 'CVC4'  // Z3
	] // end symbex
	console [
		verbose = 'MINIMUM'
	] // end console
	shell [
		// Stop stop the current execution if it detects the creation of the above file !
		stop = "symbex.stop"
	] // end shell
}

//EOF of @sew< workflow , 1.0 >:

/*
# Grammar Reference

## Trace Specification
- [*] , use for ANY element
- com_element_id ::= <port_name_id> | <signal_name_id>
- com = <com_element_id>
- input = <com_element_id>
- output = <com_element_id>
- input#env = <com_element_id>
- output#env = <com_element_id>

- variable = <variable_name_id>
- newfresh = <variable_name_id>
- state = <state_name_id>
- transition = <transition_name_id>
- statemachine = <statemachine_name_id>


## Trace Format Specification
- line#wrap#width = 80
- line#wrap#separator = "\n\	"

// %1% --> ec#id
// %2% --> ec#eval
// %3% --> ec#hight
// %4% --> ec#width
// %5% --> ec#weight
// %6% --> statemachine configuration i.e. control node
- context#ufid = "ctx< %1% > %6%"

// %1% --> trace number
// %2% --> execution context leaf identifier
- header = "TRACE NUMBER %1%"
- end    = ""
- init#begin = "\t// Initialization parameter values:"
- init#end   = "\n"

// %1% --> string message
// %2% --> execution context identifier
- comment   = "//%1%"
- separator = "%1%"
- newline   = "
%1%"

// %1% --> step identifier
// %2% --> execution context identifier
- step#begin = "\t#step#begin %1%"
- step#end   = "\t#step#end %1%"

// %1% --> condition
// %2% --> execution context identifier
- path#condition = "\tPC: %1%"
- path#timed#condition = "\tPtC: %1%"
- node#condition = "\tNC: %1%"
- node#timed#condition = "\tNtC: %1%"

// %1% --> machine runtime pid
// %2% --> machine container identifier
// %3% --> port | signal | variable | machine | transition | routine
// %4% --> value
- time   = "\t%4%"
- assign = "\t%2%:%3% = %4%"
- newfresh = "\tnewfresh %2%->%3%( %4% )"
- input  = "\tinput  %2%->%3%( %4% )"
- output = "\toutput %2%->%3%( %4% )"
- input#env  = "\tINPUT  %2%->%3%( %4% )"
- output#env = "\tOUTPUT %2%->%3%( %4% )"

*/
