https://gitlab.lrde.epita.fr/akheireddine/bmctool
Tip revision: a53e95a59b1df07faef315386eb33e6b91b6c499 authored by akheireddine on 20 August 2021, 15:52:30 UTC
Compute linear regression of LBD curve
Compute linear regression of LBD curve
Tip revision: a53e95a
generate_benchmark.sh
spotPath="~/spot-2.9.7/bin"
if [ "$#" -le 3 ]; then
echo "Need 4 parameters :\n <directory of .smv files> <LTLSPEC : safety, persistence,...> <Number of random LTL> <output directory>";
exit 1;
fi
DIRECTORY=$1"/"
ltlType=$2
number=$3
outputdir=$4
number=$((number+1))
echo "dirname "$DIRECTORY
for f in $DIRECTORY*.smv; do
echo $f"\n"
if [ ! -f "$f" ]; then
continue;
fi
f_no_extension=$(echo "$f" | sed -e 's/\.[^.]*$//');
SMVName=$(basename $f_no_extension)
SMVfile=$DIRECTORY"/"$SMVName
LTLfilename=$SMVfile"_LTLSPEC.txt"
modelNameUnparsed="varnames"$ltlType".txt"
modelNameParsed="modelNames"$ltlType".txt"
./bmctool -tool=c -conv=1 -k=40 -show-var $SMVfile > $modelNameUnparsed
python3 scripts/benchmark_preprocess.py $modelNameUnparsed > $modelNameParsed
if [ $ltlType = "reactivity" ]; then
~/spot-2.9.7/bin/randltl --ltl --simplify -p -n $number $(cat $modelNameParsed) | ~/spot-2.9.7/bin/ltlfilt -v -p -r --remove-wm --persistence --unabbreviate=R | ~/spot-2.9.7/bin/ltlfilt -v -p -r --remove-wm --recurrence --unabbreviate=R | sed '/1/d' | tr \" " " > $LTLfilename
elif [ $ltlType = "obligation" ]; then
~/spot-2.9.7/bin/randltl --ltl --simplify -p -n $number $(cat $modelNameParsed) | ~/spot-2.9.7/bin/ltlfilt -p -r --remove-wm --obligation --unabbreviate=R | ~/spot-2.9.7/bin/ltlfilt -v -p -r --remove-wm --safety --unabbreviate=R | ~/spot-2.9.7/bin/ltlfilt -v -p -r --remove-wm --guarantee --unabbreviate=R | sed '/1/d' | tr \" " " > $LTLfilename;
elif [ $ltlType = "recurrence" ]; then
~/spot-2.9.7/bin/randltl --ltl --simplify -p -n $number $(cat $modelNameParsed) | ~/spot-2.9.7/bin/ltlfilt -p -r --remove-wm --recurrence --unabbreviate=R | ~/spot-2.9.7/bin/ltlfilt -v -p -r --remove-wm --obligation --unabbreviate=R | sed '/1/d' | tr \" " " > $LTLfilename;
elif [ $ltlType = "safety" ]; then
~/spot-2.9.7/bin/randltl --ltl --simplify -p -n $number $(cat $modelNameParsed) | ~/spot-2.9.7/bin/ltlfilt -p -r --remove-wm --safety --unabbreviate=R | sed '/1/d' | tr \" " " > $LTLfilename;
elif [ $ltlType = "guarantee" ]; then
~/spot-2.9.7/bin/randltl --ltl --simplify -p -n $number $(cat $modelNameParsed) | ~/spot-2.9.7/bin/ltlfilt -p -r --remove-wm --guarantee --unabbreviate=R | sed '/1/d' | tr \" " " > $LTLfilename;
elif [ $ltlType = "persistence" ]; then
~/spot-2.9.7/bin/randltl --ltl --simplify -p -n $number $(cat $modelNameParsed) | ~/spot-2.9.7/bin/ltlfilt -p -r --remove-wm --persistence --unabbreviate=R | ~/spot-2.9.7/bin/ltlfilt -v -p -r --remove-wm --obligation --unabbreviate=R | sed '/1/d' | tr \" " " > $LTLfilename;
else
echo "Eroor ltl type "$ltlType
exit 1
fi;
rm $modelNameUnparsed $modelNameParsed
i=0
while read ltl; do
new_smv_file=$outputdir"/"$SMVName"_"$ltlType"_"$i".smv"
sed '/LTLSPEC/Q' $SMVfile".smv" > $new_smv_file
echo "\nLTLSPEC "$ltl"\n" >> $new_smv_file
i=$((i+1));
done < $LTLfilename
echo $SMVNAME" "$i": done.\n"
done;