The Artifact is currently a private link. Once we get the reviews for the paper and artefact, if accepted we will be happy to upload it to a website like Zenodo, which will give it a DOI and make it available openly. The OVA File is a 64-bit Ubuntu. USERNAME : artifact PASSWORD : artifact Once logged in to the VM, the desktop contains the folder 'SCTMC_Encoder-main' which contains all the scripts and other related files. The script is saved with the name 'SCTMC_Encoder.ipynb' which is written in python and is a jupyter notebook (both pre-isntalled). To build and verify the PRISM models generated by our code, PRISM model checker is already installed on the machine as well. PRISM is located at /Home/prism-4.6-linux64/bin where prism is the command line tool and xprism is the GUI based tool. The expected execution times vary from 5-45 seconds for all the case studies discussed in the paper. This execution time considers the time taken by the notebook to output the PRISM files, and then PRISM building these models. Model-checking times for default settings of PRISM was again less than 2 seconds for all the formulas discussed. For better convergence, one can tweak the settings for model-checking where it may consume a minute or two. Other details of the VM: Base Memory: 8192 MB Processors: 4 Video Memory 16 MB Reproducibility Instructions: For the case studies discussed in our paper, we have saved all the PEPA files under the subdirectory 'PEPA_Files' and the generated files for PRISM are in the subdirectory 'PRISM_files' for each case-study respectively. The ACSL properties discussed in the paper are embedded and the corresponding CSL properties are saved with the '.props' extension in the subdirectory 'PRISM_files' under each case study as well. For Running the Code: 1. For each case study, move to the corresponding subdirectory ('PEPA_Files') and copy the three files: .pepa, .statespace and .generator from the subdirectory to the main directory 'SCTMC_Encoder-main' which contains the scripts. Note that , all the three files will have the same names. 2. Next in the first group of Jupyter notebook, enter the name of the filename in the variable filename without any extension and then give your choice theta in the subsequent line in the variable theta which is by default chosen 99999. Note that, theta must not exceed the limits of PRISM. 3. Next, run all the cells. At the end, four files will be generated, three machine readable files (.sta,.tra,.lab) and one human readable file (.prism) with names 'ats' in the directory 'SCTMC_Encoder-main'. 4. Copy the output files to the subdirectory '/Home/prism/4.6-linux64/bin'. For Running the Output Model in PRISM: In order to use the GUI based PRISM tool, go to the PRISM directory. Open a terminal and reach the PRISM bin: ~/Home/prism-4.6-linux64/bin/ and type './xprism' on the terminal. Then, once the GUI opens, you can load the models required from the Desktop folder conatining the case studies (model files end with .prism) and load the properties file similarly as well (property files end with .props). Then, one can right click on each property and click verify to view the results. You can toggle to the 'options' window to change the settings like, maximum iterations, terminal epsilon and numerical solutions method. For the command line usage of PRISm, please refer to the PRISM website (https://www.prismmodelchecker.org/) for instructions on building your model, model-checking and making changes to settings. Here are a few for your reference: Command line option to build model: (a)human readable file <./prism ats.prism .props> (b)machine readable file. <./prism -importtrans ats.tra -importstates ats.sta -importlabels ats.lab -ctmc .props> In case you face parsing issues, one possible fix is to increase the java stack size: <./prism ats.prism .props -javastack 1g> In cases that the probabilities do NOT converge, you can increase the maximum iterations for it to converge by suffixing the query with: '-maxiter 100000' where 100000 can be replaced with any number. This number is 10000 in default for PRISM. If the probabilities still do not converge, you may need to change the numerical method used or increase the relative error threshold. They can be done in the GUI under the 'Options' section or through command-line as well details of which can be found at: https://www.prismmodelchecker.org/manual/ConfiguringPRISM/SolutionMethodsAndOptions Remember to click on 'Save options' before exitting. They can be done through terminal mode as well. All snippets above assumes that the model and the property are in the same directory (Step 4 was followed), i.e., the prism bin and the output result is also saved at the same directory. If that is not the case, this can be alternately done as follows: ./prism ~/path-to-directory/Court_room.prism ~/path-to-directory/property.props An example and some troubleshooting guidelines for PRISM in command line: To build the model and check for the i-th query: Step 1: Go to the PRISM directory. Open a terminal and reach the PRISM bin: ~/Home/prism-4.6-linux64/bin/ ----------------------------------------------------------------------------------------------------------------------- Step 2: Once you have reached the required directory, to check property k in file Query.props, you can: ./prism ~/Desktop/SCTMC_Encoder-main/PRISM_Files//.prism ~/Desktop/SCTMC_Encoder-main/PRISM_Files//.props -prop k -javastack 1g ------------------------------------------------------------------------------------------------------------------------ You can add a suffix of '-ex' (for Explicit model checking) or otherwise for different engines of PRISM. This in default is set as Hybrid. While running these queries as a whole or one at a time, there are some other types of properties discussed as well which involve the variable j. We refer to such properties as experiments and they need to be run slightly differently. Now, steps 1 and 2 work for all properties which do not include any variables. Use: ./prism ~/Desktop/SCTMC_Encoder-main/PRISM_Files//.prism ~/Desktop/SCTMC_Encoder-main/PRISM_Files//.props -prop k -const j=s:u:t -exportresults results.txt:csv -javastack 1g In the above command, the k-th property in the file Query_i will be run as an experiment where the variable j appearing in the formula will be varied in between s and t with an increment of u at each iteration and the results will be exported as a csv file with the name results.txt. Remove tuples and commands which are not required. All the above commands can be analogously updated for the machine readable files as well with change to the initial command segment to build the model as discussed before.