region:us
This repo contains the dataset and the implementation of the NeuralState analysis paper.

Please read below to understand repo Organization:

In the paper, we use two benchmarks: 
  - The first benchmark we used from NeuraLint can be found under the director name Benchmark1/SOSamples
  - The second benchmark we used from Humbatova et al. can be found under the director name Benchmark2/SOSamples

To reproduce the results in the paper:
  - Download the NeuralStateAnalysis Zip file.
  - Extract the file and go to the NeuralStateAnlaysis directory.
  - ( Optional ) Install the requirements by running 'Pip install requirements.txt.' N.B: The requirements.txt file is already in this repo.
  - To run NeuralState on Benchmark1:
    - Go to Benchmark1/SOSamples directory,
    - Open any of the programs you want to run,
    - Set the path: Path-to-folder/NeuralStateAnalysis/
    - Then, do 'python program_id.' Since the 'NeuralStateAnalysis(model).debug()' call is already present in all programs, you'll be able to reproduce results.
  - To run NeuralState on Benchmark2:
    - Go to Benchmark1/SOSamples directory,
    - Open any of the programs you want to run,
    - Set the path: Path-to-folder/NeuralStateAnalysis/
    - Then, do 'python program_id.' Since the 'NeuralStateAnalysis(model).debug()' call is already present in all programs, you'll be able to reproduce results.
  - To reproduce RQ4:
    - Go to the RQ4 directory,
    - Open any of the programs you want to run,
    - Set the path: Path-to-folder/NeuralStateAnalysis/
    - Then, do 'python program_id.' Since the 'NeuralStateAnalysis(model).debug()' call is already present in all programs, you'll be able to reproduce results.
  - To reproduce Motivating Example results:
    - Go to the RQ4 directory,
    - Open MotivatingExample.py,
    - Set the path: Path-to-folder/NeuralStateAnalysis/
    - Then, do 'python program_id.' Since the 'NeuralStateAnalysis(model).debug()' call is already present in all programs, you'll be able to reproduce results.
  - To reproduce Motivating Example results:
    - Go to the program,
    - Add path to NeuralStateAnlaysis folder,
    - Add 'NeuralStateAnalysis(model_name).debug().'
    - Then, do 'python program_id.'

    
