diff options
author | anwu1219 <haozewu@stanford.edu> | 2018-09-21 10:08:10 -0700 |
---|---|---|
committer | anwu1219 <haozewu@stanford.edu> | 2018-09-21 10:08:10 -0700 |
commit | 5cfc2d1c7a3bd6acaa26a0a8e7dda12b6bbf17b4 (patch) | |
tree | 78ad136c8d152b881fc96bf268c8cfa1e006e00c /cryptominisat5/cryptominisat-5.6.3/scripts | |
parent | 397f4d53dd99aec8e7333cb19987cc1445e3988a (diff) |
change solve to simp, and fix format
Diffstat (limited to 'cryptominisat5/cryptominisat-5.6.3/scripts')
59 files changed, 10492 insertions, 0 deletions
diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/appveyor.ps1 b/cryptominisat5/cryptominisat-5.6.3/scripts/appveyor.ps1 new file mode 100644 index 000000000..0be04c24d --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/appveyor.ps1 @@ -0,0 +1,13 @@ +Add-Type -AssemblyName System.IO.Compression.FileSystem + +function Unzip +{ + param([string]$zipfile, [string]$outpath) + + [System.IO.Compression.ZipFile]::ExtractToDirectory($zipfile, $outpath) +} + +$wc = New-Object System.Net.WebClient +$wc.DownloadFile("http://bit.ly/1JPHkL3", "C:\projects\cryptominisat\boost_1_59_0.zip") + +Unzip "C:\projects\cryptominisat\boost_1_59_0.zip" "C:\projects\cryptominisat" diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/README.markdown b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/README.markdown new file mode 100644 index 000000000..a46aa0852 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/README.markdown @@ -0,0 +1,14 @@ +Testing in AWS +=========================================== + +Only use + +``` +./launch_server.py --help +``` + +The other scripts are all used by this script. Lists of files to be solved are in files: + +* satcomp14 +* satcomp091113 +* satcomp16 diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/RequestSpotClient.py b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/RequestSpotClient.py new file mode 100644 index 000000000..01b30ea6f --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/RequestSpotClient.py @@ -0,0 +1,172 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (C) 2018 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +from __future__ import print_function +import sys +import configparser +from boto.ec2.connection import EC2Connection +from common_aws import * +import logging + + +class RequestSpotClient: + def __init__(self, revision, test, noshutdown=False, count=1): + self.conf = configparser.ConfigParser() + self.count = count + if test: + self.conf.read('ec2-spot-instance-test.cfg') + self.limit_create = 1 + else: + self.conf.read('ec2-spot-instance.cfg') + self.limit_create = 8 + + if self.count is None: + self.count = int(self.conf.get('ec2', 'count')) + + self.ec2conn = self.__create_ec2conn() + if self.ec2conn is None: + print('Unable to create EC2 ec2conn') + sys.exit(0) + + self.user_data = self.__get_user_data(revision, noshutdown) + self.our_ids = [] + + def __get_user_data(self, revision, noshutdown): + extra_args = "" + if noshutdown: + extra_args = " --noshutdown" + user_data = """#!/bin/bash +set -e + +apt-get update -y +apt-get install -y python +apt-get -y install git python-pip +pip install --force-reinstall --upgrade awscli +pip install --force-reinstall --upgrade boto +pip install configparser +apt-get -y install cmake make g++ libboost-all-dev +apt-get -y install libsqlite3-dev awscli unzip +apt-get install zlib1g-dev +# apt-get -y install linux-cloud-tools-generic linux-tools-generic +# apt-get -y install linux-cloud-tools-3.13.0-53-generic linux-tools-3.13.0-53-generic + +# Get AWS log agent +cd /home/ubuntu/ + +cat > "aws-logs-client.conf" << EOF +[general] +state_file = /home/ubuntu/cloudwatch.state + +[logstream1] +log_group_name = cyrptominisat-perftest +log_stream_name = client +file = /home/ubuntu/*.log + +[messages] +log_group_name = cyrptominisat-perftest +log_stream_name = client +file = /var/log/messages +EOF + +curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O +python ./awslogs-agent-setup.py --region {region} -c aws-logs-client.conf -n + +# Get CMS +sudo -H -u ubuntu bash -c 'ssh-keyscan github.com >> ~/.ssh/known_hosts' +sudo -H -u ubuntu bash -c 'git clone --no-single-branch --depth 50 https://github.com/msoos/cryptominisat.git' +cd /home/ubuntu/cryptominisat +sudo -H -u ubuntu bash -c 'git checkout {revision}' +sudo -H -u ubuntu bash -c 'git submodule init' +sudo -H -u ubuntu bash -c 'git submodule update' +cd /home/ubuntu/ +# sudo -H -u ubuntu bash -c 'aws s3 cp s3://msoos-solve-data/solvers/features_to_reconf.cpp /home/ubuntu/cryptominisat/src/ --region={region}' + +# Get credentials +cd /home/ubuntu/ +sudo -H -u ubuntu bash -c 'aws s3 cp s3://msoos-solve-data/solvers/email.conf . --region={region}' + +# build solvers +sudo -H -u ubuntu bash -c '/home/ubuntu/cryptominisat/scripts/aws/build_maplecomsps_drup.sh >> /home/ubuntu/build.log' +sudo -H -u ubuntu bash -c '/home/ubuntu/cryptominisat/scripts/aws/build_swdia5by.sh >> /home/ubuntu/build.log' +sudo -H -u ubuntu bash -c '/home/ubuntu/cryptominisat/scripts/aws/build_swdia5by_old.sh >> /home/ubuntu/build.log' +sudo -H -u ubuntu bash -c '/home/ubuntu/cryptominisat/scripts/aws/build_lingeling_ayv.sh >> /home/ubuntu/build.log' +sudo -H -u ubuntu bash -c '/home/ubuntu/cryptominisat/scripts/aws/build_drat-trim2.sh >> /home/ubuntu/build.log' +sudo -H -u ubuntu bash -c '/home/ubuntu/cryptominisat/scripts/aws/build_glucose2016.sh >> /home/ubuntu/build.log' +sudo -H -u ubuntu bash -c '/home/ubuntu/cryptominisat/scripts/aws/build_cmsat_satcomp16.sh >> /home/ubuntu/build.log' +sudo -H -u ubuntu bash -c '/home/ubuntu/cryptominisat/scripts/aws/build_lingeling_bbc.sh >> /home/ubuntu/build.log' +sudo -H -u ubuntu bash -c '/home/ubuntu/cryptominisat/scripts/aws/build_Maple_LCM_Dist.sh >> /home/ubuntu/build.log' + +# Start client +cd /home/ubuntu/cryptominisat +sudo -H -u ubuntu bash -c 'nohup /home/ubuntu/cryptominisat/scripts/aws/client.py {extra_args} > /home/ubuntu/python_log.log 2>&1' & + +DATA="{ip}" +""".format(revision=revision, extra_args=extra_args, ip=get_ip_address("eth0"), region=self.conf.get("ec2", "region")) + + return user_data + + def __create_ec2conn(self): + ec2conn = EC2Connection() + regions = ec2conn.get_all_regions() + for r in regions: + if r.name == self.conf.get('ec2', 'region'): + ec2conn = EC2Connection(region=r) + return ec2conn + return None + + def __provision_instances(self): + reqs = self.ec2conn.request_spot_instances( + price=self.conf.get('ec2', 'max_bid'), + count=self.count, + image_id=self.conf.get('ec2', 'ami_id'), + subnet_id=self.conf.get('ec2', 'subnet_id'), + instance_type=self.conf.get('ec2', 'type'), + instance_profile_arn=self.conf.get('ec2', 'instance_profile_arn'), + user_data=self.user_data, + key_name=self.conf.get('ec2', 'key_name'), + security_group_ids=[self.conf.get('ec2', 'security_group_client')]) + + logging.info("Request created, got back IDs %s" % [r.id for r in reqs]) + return reqs + + def create_spots_if_needed(self): + # Valid values: open | active | closed | cancelled | failed + run_wait_spots = self.ec2conn.get_all_spot_instance_requests(filters={'state': 'open'}) + run_wait_spots.extend(self.ec2conn.get_all_spot_instance_requests(filters={'state': 'active'})) + + for spot in run_wait_spots: + if spot.id in self.our_ids: + logging.info("ID %s is either waiting or running, not requesting a new one" % spot.id) + return + + if len(self.our_ids) >= self.limit_create: + logging.error("Something really wrong has happened, we have reqested 4 spots aready! Not requesting more.") + return + + self.create_spots() + + def create_spots(self): + reqs = self.__provision_instances() + + for req in reqs: + logging.info('New req state: %s ID: %s' % (req.state, req.id)) + self.our_ids.append(req.id) + + return self.our_ids diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_Maple_LCM_Dist.sh b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_Maple_LCM_Dist.sh new file mode 100755 index 000000000..7d22ad4d9 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_Maple_LCM_Dist.sh @@ -0,0 +1,29 @@ +#!/bin/bash +set -e + +# Copyright (C) 2018 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +cd /home/ubuntu +git clone https://github.com/msoos/Maple_LCM_Dist +cd Maple_LCM_Dist +./starexec_build.sh + +#binary is now at: +# Maple_LCM_Dist/Maple_LCM_Dist + +cd /home/ubuntu diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_cmsat_satcomp16.sh b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_cmsat_satcomp16.sh new file mode 100755 index 000000000..b3227e1d7 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_cmsat_satcomp16.sh @@ -0,0 +1,30 @@ +#!/bin/bash +set -e + +# Copyright (C) 2018 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +cd /home/ubuntu/ +aws s3 cp s3://msoos-solve-data/solvers/cmsat-satcomp16.tar.gz . --region=us-west-2 +tar xzvf cmsat-satcomp16.tar.gz +cd cmsat-satcomp16 +./starexec_build + +# binary is now at: +# --solver cmsat-satcomp16/bin/cryptominisat4_simple + +cd /home/ubuntu/ diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_cryptominisat.sh b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_cryptominisat.sh new file mode 100755 index 000000000..43e241f60 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_cryptominisat.sh @@ -0,0 +1,42 @@ +#!/bin/bash +set -e + +# Copyright (C) 2018 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +cd /home/ubuntu/ +rm -rf m4ri-20140914* +aws s3 cp s3://msoos-solve-data/solvers/m4ri-20140914.tar.gz . --region us-west-2 +tar xzvf m4ri-20140914.tar.gz +cd m4ri-20140914/ +./configure +make "-j$2" +sudo make install +echo "built and installed M4RI" + +cd /home/ubuntu/cryptominisat +rm -rf build +mkdir -p build +cd build +rm -rf C* c* +cmake ${3} .. +make "-j${2}" VERBOSE=1 +echo "built CMS" + +# solver is now in cryptominisat/build/cryptominisat5 + +exit 0 diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_drat-trim2.sh b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_drat-trim2.sh new file mode 100755 index 000000000..1b1b524b1 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_drat-trim2.sh @@ -0,0 +1,30 @@ +#!/bin/bash +set -e + +# Copyright (C) 2018 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +cd /home/ubuntu +git clone https://github.com/msoos/drat-trim.git +cd drat-trim +cmake . +make + +#binary is now at: +# drat-trim/drat-trim + +cd /home/ubuntu diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_glucose2016.sh b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_glucose2016.sh new file mode 100755 index 000000000..2ff499b5e --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_glucose2016.sh @@ -0,0 +1,31 @@ +#!/bin/bash +set -e + +# Copyright (C) 2018 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +cd /home/ubuntu +git clone https://github.com/msoos/glucose2016.git +cd glucose2016 +cd simp +make rs + +mv /home/ubuntu/glucose2016/simp/glucose_static /home/ubuntu/glucose2016/simp/glucose_static_2016 +#binary is now at: +# --solver glucose2016/simp/glucose_static_2016 + +cd /home/ubuntu diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_lingeling_ayv.sh b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_lingeling_ayv.sh new file mode 100755 index 000000000..92f8015e6 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_lingeling_ayv.sh @@ -0,0 +1,32 @@ +#!/bin/bash +set -e + +# Copyright (C) 2018 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +cd /home/ubuntu +mkdir -p lingeling_ayv +cd lingeling_ayv +aws s3 cp s3://msoos-solve-data/solvers/lingeling-ayv-86bf266-140429.zip . --region=us-west-2 +unzip lingeling-ayv-86bf266-140429.zip +./build.sh + +mv /home/ubuntu/lingeling_ayv/binary/lingeling /home/ubuntu/lingeling_ayv/binary/lingeling_ayv +#binary is now at: +# --solver lingeling_ayv/binary/lingeling_ayv + +cd /home/ubuntu diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_lingeling_bbc.sh b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_lingeling_bbc.sh new file mode 100755 index 000000000..240cb75af --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_lingeling_bbc.sh @@ -0,0 +1,32 @@ +#!/bin/bash +set -e + +# Copyright (C) 2018 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +cd /home/ubuntu/ + +aws s3 cp s3://msoos-solve-data/solvers/lingeling-bbc.tar.gz . --region=us-west-2 +tar xzvf lingeling-bbc.tar.gz +cd lingeling-bbc/build +sh build.sh +mv lingeling/lingeling lingeling/lingeling_bbc + +# lingeling is now in +# --solver lingeling-bbc/build/lingeling/lingeling_bbc + +cd /home/ubuntu/ diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_maplecomsps_drup.sh b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_maplecomsps_drup.sh new file mode 100755 index 000000000..128f3472b --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_maplecomsps_drup.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -e + +# Copyright (C) 2018 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +cd /home/ubuntu/ +mkdir -p MapleCOMSPS +cd MapleCOMSPS/ +aws s3 cp s3://msoos-solve-data/solvers/MapleCOMSPS.tar.gz . --region=us-west-2 +tar xzvf MapleCOMSPS.tar.gz +cd simp +MROOT=.. make clean rs +mv minisat_static maplecomsps_static + +# binary is now at: +# --solver MapleCOMSPS/simp/maplecomsps_static + +cd /home/ubuntu/ diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_swdia5by.sh b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_swdia5by.sh new file mode 100755 index 000000000..6138997e2 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_swdia5by.sh @@ -0,0 +1,31 @@ +#!/bin/bash +set -e + +# Copyright (C) 2018 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +cd /home/ubuntu/ +aws s3 cp s3://msoos-solve-data/solvers/SWDiA5BY.alt.vd.res.va2.15000.looseres.3tierC5.tar.gz . --region=us-west-2 +tar xzvf SWDiA5BY.alt.vd.res.va2.15000.looseres.3tierC5.tar.gz +cd SWDiA5BY.alt.vd.res.va2.15000.looseres.3tierC5 +./build.sh + +mv /home/ubuntu/SWDiA5BY.alt.vd.res.va2.15000.looseres.3tierC5/binary/SWDiA5BY_static /home/ubuntu/SWDiA5BY.alt.vd.res.va2.15000.looseres.3tierC5/binary/SWDiA5BY_static.alt.vd +# binary is now at: +# --solver SWDiA5BY.alt.vd.res.va2.15000.looseres.3tierC5/binary/SWDiA5BY_static.alt.vd + +cd /home/ubuntu/ diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_swdia5by_old.sh b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_swdia5by_old.sh new file mode 100755 index 000000000..f9de76fc5 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/build_swdia5by_old.sh @@ -0,0 +1,32 @@ +#!/bin/bash +set -e + +# Copyright (C) 2018 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +cd /home/ubuntu/ +mkdir -p SWDiA5BY_A26 +cd SWDiA5BY_A26 +aws s3 cp s3://msoos-solve-data/solvers/SWDiA5BY_A26.zip . --region=us-west-2 +unzip SWDiA5BY_A26.zip +./build.sh + +mv /home/ubuntu/SWDiA5BY_A26/binary/SWDiA5BY_static /home/ubuntu/SWDiA5BY_A26/binary/SWDiA5BY_static_A26 +# binary is now at: +# --solver SWDiA5BY_A26/binary/SWDiA5BY_static_A26 + +cd /home/ubuntu/ diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/client.py b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/client.py new file mode 100755 index 000000000..fcdc632ab --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/client.py @@ -0,0 +1,821 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (C) 2018 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +from __future__ import print_function +import os +import socket +import sys +import optparse +import struct +import pickle +import threading +import random +import time +import subprocess +import resource +import pprint +import traceback +import boto +import boto.utils +import boto.ec2 +import logging +import functools +import string + +# for importing in systems where "." is not in the PATH +sys.path.append(os.getcwd()+"/scripts/learn/") +from common_aws import * +import add_lemma_ind as addlemm + +pp = pprint.PrettyPrinter(depth=6) + + +class PlainHelpFormatter(optparse.IndentedHelpFormatter): + + def format_description(self, description): + if description: + return description + "\n" + else: + return "" + + +def uptime(): + with open('/proc/uptime', 'r') as f: + return float(f.readline().split()[0]) + + return None + + +def get_n_bytes_from_connection(sock, MSGLEN): + chunks = [] + bytes_recd = 0 + while bytes_recd < MSGLEN: + chunk = sock.recv(min(MSGLEN - bytes_recd, 2048)) + if chunk == '': + raise RuntimeError("socket connection broken") + chunks.append(chunk) + bytes_recd = bytes_recd + len(chunk) + + return ''.join(chunks) + + +def connect_client(threadID): + # Create a socket object + sock = socket.socket() + + # Get local machine name + if options.host is None: + print("You must supply the host to connect to as a client") + exit(-1) + + logging.info("Getting host by name %s", options.host, + extra={"threadid": threadID}) + host = socket.gethostbyname_ex(options.host) + logging.info("Connecting to host %s", host, + extra={"threadid": threadID}) + sock.connect((host[2][0], options.port)) + + return sock + + +def send_command(sock, command, tosend=None): + # can't set tosend={} because of Python weirdness + tosend = tosend or {} + + tosend["command"] = command + tosend = pickle.dumps(tosend) + tosend = struct.pack('!q', len(tosend)) + tosend + sock.sendall(tosend) + + +def ask_for_data(sock, command, threadID): + logging.info("Asking for %s", command, extra={"threadid": threadID}) + tosend = {} + tosend["uptime"] = uptime() + send_command(sock, command, tosend) + + # get stuff to solve + data = get_n_bytes_from_connection(sock, 8) + length = struct.unpack('!q', data)[0] + data = get_n_bytes_from_connection(sock, length) + indata = pickle.loads(data) + return indata + + +def signal_error_to_master(): + sock = connect_client(100) + send_command(sock, "error") + sock.close() + + +def setlimits(time_limit, mem_limit): + #logging.info( + #"Setting resource limit in child (pid %d). Time %d s" + #"Mem %d MB\n", os.getpid(), time_limit, + #mem_limit, + #extra=self.logextra) + + resource.setrlimit(resource.RLIMIT_CPU, ( + time_limit, + time_limit)) + + resource.setrlimit(resource.RLIMIT_DATA, ( + mem_limit * 1024 * 1024, + mem_limit * 1024 * 1024)) + + +class solverThread (threading.Thread): + + def __init__(self, threadID): + threading.Thread.__init__(self) + self.threadID = threadID + self.logextra = {'threadid': self.threadID} + self.temp_space = self.create_temp_space() + logging.info("Initializing thread", extra=self.logextra) + + def create_temp_space(self): + newdir = options.temp_space + "/thread-%s" % self.threadID + try: + os.system("sudo mkdir %s" % newdir) + os.system("sudo chown ubuntu:ubuntu %s" % newdir) + except: + exc_type, exc_value, exc_traceback = sys.exc_info() + the_trace = traceback.format_exc().rstrip().replace("\n", " || ") + logging.warning("Error creating directory: %s", + the_trace, extra={"threadid": -1}) + + return newdir + + def get_fname_no_dir(self): + fname = self.indata["cnf_filename"] + slash_at = fname.find("/") + return fname[slash_at+1:] + + def get_tmp_cnf_fname(self): + return "%s/%s" % ( + self.temp_space, + self.get_fname_no_dir() + ) + + def get_stdout_fname(self): + return self.get_tmp_cnf_fname() + "-" + self.indata["uniq_cnt"] + ".stdout" + + def get_stderr_fname(self): + return self.get_tmp_cnf_fname() + "-" + self.indata["uniq_cnt"] + ".stderr" + + def get_sqlite_fname(self): + return self.get_tmp_cnf_fname() + "-" + self.indata["uniq_cnt"] + ".sqlite" + + def get_lemmas_fname(self): + return "%s/lemmas" % self.temp_space + + def get_drat_fname(self): + return "%s/drat" % self.temp_space + + def get_toexec(self): + logging.info("Getting file to solve {cnf}".format(cnf=self.indata["cnf_filename"]), + extra=self.logextra) + + key = boto.connect_s3().get_bucket("msoos-solve-data").get_key(self.indata["cnf_filename"]) + key.get_contents_to_filename(self.get_tmp_cnf_fname()) + + toexec = [] + toexec.append("%s/%s" % (options.base_dir, self.indata["solver"])) + toexec.append(self.indata["extra_opts"].replace(",", " ")) + if "cryptominisat5" in self.indata["solver"]: + toexec.append("--printsol 0") + if self.indata["stats"]: + toexec.append("--sql 2") + toexec.append("--sqlitedb %s" % self.get_sqlite_fname()) + + toexec.append(self.get_tmp_cnf_fname()) + if self.indata["drat"]: + if "Maple" in self.indata["solver"]: + toexec.extend(["-drup-file=%s" % self.get_drat_fname()]) + if "cryptominisat5" in self.indata["solver"]: + toexec.extend(["--drat", self.get_drat_fname()]) + # never stop search() to simplify anything + # toexec.append("-n 1") + # toexec.append("--ml 0") + # toexec.append("--gluecut0 100") + # toexec.append("--otfsubsume 0") + if self.indata["stats"]: + toexec.append("--clid") + else: + if "cryptominisat5" in self.indata["solver"] and self.indata["stats"]: + toexec.append("--sqlfull 0") + + return " ".join(toexec) + + def execute_solver(self): + toexec = self.get_toexec() + stdout_file = open(self.get_stdout_fname(), "w") + stderr_file = open(self.get_stderr_fname(), "w") + + # limit time + limits_printed = "Thread %d executing '%s' with timeout %d s and memout %d MB" % ( + self.threadID, + toexec, + self.indata["timeout_in_secs"], + self.indata["mem_limit_in_mb"] + ) + logging.info(limits_printed, extra=self.logextra) + stderr_file.write(limits_printed + "\n") + stderr_file.flush() + stdout_file.write(limits_printed + "\n") + stdout_file.flush() + + tstart = time.time() + p = subprocess.Popen( + toexec.rsplit(), stderr=stderr_file, stdout=stdout_file, + preexec_fn=functools.partial( + setlimits, + self.indata["timeout_in_secs"], + self.indata["mem_limit_in_mb"])) + p.wait() + tend = time.time() + + towrite = "Finished in %f seconds by thread %s return code: %d\n" % ( + tend - tstart, self.threadID, p.returncode) + stderr_file.write(towrite) + stdout_file.write(towrite) + stderr_file.close() + stdout_file.close() + logging.info(towrite.strip(), extra=self.logextra) + + return p.returncode, toexec + + def run_drat_trim(self): + toexec = "%s/drat-trim/drat-trim %s %s -x %s" % ( + options.base_dir, + self.get_tmp_cnf_fname(), + self.get_drat_fname(), + self.get_lemmas_fname()) + logging.info("Current working dir: %s", os.getcwd(), extra=self.logextra) + logging.info("Executing %s", toexec, extra=self.logextra) + + stdout_file = open(self.get_stdout_fname(), "a") + stderr_file = open(self.get_stderr_fname(), "a") + tstart = time.time() + p = subprocess.Popen( + toexec.rsplit(), stderr=stderr_file, stdout=stdout_file, + preexec_fn=functools.partial( + setlimits, + 10*self.indata["timeout_in_secs"], + 2*self.indata["mem_limit_in_mb"])) + p.wait() + tend = time.time() + + towrite = "Finished DRAT-TRIM2 in %f seconds by thread %s return code: %d\n" % ( + tend - tstart, self.threadID, p.returncode) + stderr_file.write(towrite) + stdout_file.write(towrite) + stderr_file.close() + stdout_file.close() + + return p.returncode + + def add_lemma_idx_to_sqlite(self, lemmafname, dbfname): + logging.info("Updating sqlite with DRAT info." + "Using sqlite3db file %s. Using lemma file %s", + dbfname, lemmafname, extra=self.logextra) + + useful_lemma_ids = [] + with addlemm.Query(dbfname) as q: + useful_lemma_ids = addlemm.parse_lemmas(lemmafname, q.runID) + q.add_goods(useful_lemma_ids) + + logging.info("Num good IDs: %d", + len(useful_lemma_ids), extra=self.logextra) + + os.unlink(self.get_lemmas_fname()) + + def create_url(self, bucket, folder, key): + return 'https://%s.s3.amazonaws.com/%s/%s' % (bucket, folder, key) + + def rnd_id(self): + return ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(5)) + + def copy_solution_to_s3(self): + exists = boto_conn.lookup(self.indata["s3_bucket"]) + if not exists: + boto_conn.create_bucket(self.indata["s3_bucket"]) + boto_bucket = boto_conn.get_bucket(self.indata["s3_bucket"]) + k = boto.s3.key.Key(boto_bucket) + + s3_folder = get_s3_folder(self.indata["given_folder"], + self.indata["git_rev"], + self.indata["solver"], + self.indata["timeout_in_secs"], + self.indata["mem_limit_in_mb"]) + + s3_folder_and_fname = s3_folder + "/" + self.get_fname_no_dir() + "-" + self.indata["uniq_cnt"] + s3_folder_and_fname_clean = s3_folder + "/" + self.get_fname_no_dir() + + toreturn = [] + + # stdout + ret = os.system("gzip -f %s" % self.get_stdout_fname()) + logging.info("Return from gzip '%s': %s", self.get_stdout_fname(), + ret, extra=self.logextra) + fname = s3_folder_and_fname + ".stdout.gz-tmp" + self.rnd_id() + fname_clean = s3_folder_and_fname_clean + ".stdout.gz" + k.key = fname + boto_bucket.delete_key(k) + ret = k.set_contents_from_filename(self.get_stdout_fname() + ".gz") + logging.info("Return from S3 writing file '%s': %s", + fname, ret, extra=self.logextra) + toreturn.append([fname, fname_clean]) + + # stderr + ret = os.system("gzip -f %s" % self.get_stderr_fname()) + logging.info("Return from gzip '%s': %s", self.get_stderr_fname(), + ret, extra=self.logextra) + fname = s3_folder_and_fname + ".stderr.gz-tmp" + self.rnd_id() + fname_clean = s3_folder_and_fname_clean + ".stderr.gz" + k.key = fname + boto_bucket.delete_key(k) + ret = k.set_contents_from_filename(self.get_stderr_fname() + ".gz") + logging.info("Return from S3 writing file '%s': %s", + fname, ret, extra=self.logextra) + toreturn.append([fname, fname_clean]) + + # sqlite + if "cryptominisat5" in self.indata["solver"] and self.indata["stats"]: + ret = os.system("gzip -f %s" % self.get_sqlite_fname()) + logging.info("Return from gzip '%s': %s", self.get_sqlite_fname(), + ret, extra=self.logextra) + fname = s3_folder_and_fname + ".sqlite.gz-tmp" + self.rnd_id() + fname_clean = s3_folder_and_fname_clean + ".sqlite.gz" + k.key = fname + boto_bucket.delete_key(k) + ret = k.set_contents_from_filename(self.get_sqlite_fname() + ".gz") + logging.info("Return from S3 writing file '%s': %s", + fname, ret, extra=self.logextra) + toreturn.append([fname, fname_clean]) + + logging.info("Uploaded stdout+stderr+sqlite files: %s", + toreturn, extra=self.logextra) + + os.unlink(self.get_stdout_fname() + ".gz") + os.unlink(self.get_stderr_fname() + ".gz") + if "cryptominisat5" in self.indata["solver"] and self.indata["stats"]: + os.unlink(self.get_sqlite_fname() + ".gz") + + return toreturn + + def run_loop(self): + global exitapp + num_connect_problems = 0 + while not exitapp: + if (num_connect_problems >= 20): + logging.error("Too many connection problems, exiting.", + extra=self.logextra) + exitapp = True + return + + time.sleep(random.randint(0, 100) / 20.0) + try: + sock = connect_client(self.threadID) + except: + exc_type, exc_value, exc_traceback = sys.exc_info() + the_trace = traceback.format_exc().rstrip().replace("\n", " || ") + logging.warn("Problem trying to connect" + "waiting and re-connecting." + " Trace: %s", the_trace, + extra=self.logextra) + time.sleep(3) + num_connect_problems += 1 + continue + + self.indata = ask_for_data(sock, "need", self.threadID) + sock.close() + + logging.info("Got data from server %s", + pprint.pformat(self.indata, indent=4).replace("\n", " || "), + extra=self.logextra) + options.noshutdown |= self.indata["noshutdown"] + + # handle 'finish' + if self.indata["command"] == "finish": + logging.warn("Client received that there is nothing more" + " to solve, exiting this thread", + extra=self.logextra) + return + + # handle 'wait' + if self.indata["command"] == "wait": + time.sleep(20) + continue + + # handle 'solve' + if self.indata["command"] == "solve": + returncode, executed = self.execute_solver() + if returncode == 20 and self.indata["drat"] and self.indata["stats"]: + if self.run_drat_trim() == 0: + self.add_lemma_idx_to_sqlite( + self.get_lemmas_fname(), + self.get_sqlite_fname()) + os.unlink(self.get_tmp_cnf_fname()) + if self.indata["drat"]: + os.unlink(self.get_drat_fname()) + files = self.copy_solution_to_s3() + self.send_back_that_we_solved(returncode, files) + continue + + logging.error("Data unrecognised by client: %s, exiting", + self.logextra) + return + + logging.info("Exit asked for by another thread. Exiting", + extra=self.logextra) + + def send_back_that_we_solved(self, returncode, files): + logging.info("Trying to send to server that we are done", + extra=self.logextra) + fail_connect = 0 + while True: + if fail_connect > 5: + logging.error("Too many errors connecting to server to" + " send results. Shutting down", + extra=self.logextra) + shutdown(-1) + try: + sock = connect_client(self.threadID) + break + except: + exc_type, exc_value, exc_traceback = sys.exc_info() + the_trace = traceback.format_exc().rstrip().replace("\n", " || ") + + logging.warn("Problem, waiting and re-connecting." + " Trace: %s", the_trace, + extra=self.logextra) + time.sleep(random.randint(0, 5) / 10.0) + fail_connect += 1 + + tosend = {} + tosend["file_num"] = self.indata["file_num"] + tosend["returncode"] = returncode + tosend["files"] = files + send_command(sock, "done", tosend) + logging.info("Sent that we finished %s with retcode %d", + self.indata["file_num"], returncode, extra=self.logextra) + + sock.close() + + def run(self): + logging.info("Starting thread", extra=self.logextra) + global exitapp + + try: + self.run_loop() + except KeyboardInterrupt: + exitapp = True + raise + except: + exc_type, exc_value, exc_traceback = sys.exc_info() + the_trace = traceback.format_exc().rstrip().replace("\n", " || ") + + exitapp = True + logging.error("Unexpected error in thread: %s", the_trace, + extra=self.logextra) + shutdown(-1) + raise + + +def build_cryptominisat(indata): + opts = [] + opts.append(indata["git_rev"]) + opts.append(str(options.num_threads)) + if indata["stats"]: + opts.append("-DSTATS=ON") + + if indata["gauss"]: + opts.append("-DUSE_GAUSS=ON") + + ret = os.system('%s/cryptominisat/scripts/aws/build_cryptominisat.sh %s >> %s/build.log 2>&1' % + (options.base_dir, + " ".join(opts), + options.base_dir)) + global s3_folder + s3_folder = get_s3_folder(indata["given_folder"], + indata["git_rev"], + indata["solver"], + indata["timeout_in_secs"], + indata["mem_limit_in_mb"] + ) + global s3_bucket + s3_bucket = indata["s3_bucket"] + logging.info("s3 bucket: %, s3 folder: %", s3_bucket, s3_folder, extra={"threadid": "-1"}) + if ret != 0: + logging.error("Error building cryptominisat, shutting down!", + extra={"threadid": -1} + ) + shutdown(-1) + + +def build_system(): + built_system = False + logging.info("Building system", extra={"threadid": -1}) + tries = 0 + while not built_system and tries < 10: + try: + tries += 1 + sock = connect_client(-1) + except Exception: + exc_type, exc_value, exc_traceback = sys.exc_info() + the_trace = traceback.format_exc().rstrip().replace("\n", " || ") + logging.warning("Problem, waiting and re-connecting. Error: %s", + the_trace, + extra={"threadid": -1}) + time.sleep(3) + continue + + indata = ask_for_data(sock, "build", -1) + options.noshutdown |= indata["noshutdown"] + sock.close() + + if "cryptominisat5" in indata["solver"]: + build_cryptominisat(indata) + + built_system = True + + if not built_system: + shutdown(-1) + + +def num_cpus(): + num_cpu = 0 + cpuinfo = open("/proc/cpuinfo", "r") + for line in cpuinfo: + if "processor" in line: + num_cpu += 1 + + cpuinfo.close() + return num_cpu + + +def shutdown(exitval=0): + toexec = "sudo shutdown -h now" + logging.info("SHUTTING DOWN", extra={"threadid": -1}) + + # signal error to master + if exitval != 0: + try: + signal_error_to_master() + except: + pass + + # send email + if exitval == 0: + reason = "OK" + else: + reason = "FAIL" + + try: + send_email("Client shutting down %s" % reason, + "Client finished.", options.logfile_name) + except: + exc_type, exc_value, exc_traceback = sys.exc_info() + the_trace = traceback.format_exc().rstrip().replace("\n", " || ") + logging.error("Cannot send email! Traceback: %s", the_trace, + extra={"threadid": -1}) + + if not options.noshutdown: + os.system(toexec) + + exit(exitval) + + +def set_up_logging(): + form = '[ %(asctime)-15s thread %(threadid)s ' + form += get_ip_address(options.network_device) + form += " %(levelname)s %(message)s ]" + + logformatter = logging.Formatter(form) + + consoleHandler = logging.StreamHandler() + consoleHandler.setFormatter(logformatter) + logging.getLogger().addHandler(consoleHandler) + + try: + os.unlink(options.logfile_name) + except: + pass + fileHandler = logging.FileHandler(options.logfile_name) + fileHandler.setFormatter(logformatter) + logging.getLogger().addHandler(fileHandler) + + logging.getLogger().setLevel(logging.INFO) + + +def update_num_threads(): + if options.num_threads is None: + options.num_threads = num_cpus()/2 + options.num_threads = max(options.num_threads, 1) + + logging.info("Running with %d threads", options.num_threads, + extra={"threadid": -1}) + + +def build_system_full(): + try: + build_system() + except: + exc_type, exc_value, exc_traceback = sys.exc_info() + the_trace = traceback.format_exc().rstrip().replace("\n", " || ") + logging.error("Error getting data for building system: %s", + the_trace, extra={"threadid": -1}) + shutdown(-1) + + +def start_threads(): + threads = [] + # we should test at least 2 threads, it's only used during testing anyway + options.num_threads = max(options.num_threads, 2) + for i in range(options.num_threads): + threads.append(solverThread(i)) + + for t in threads: + t.setDaemon(True) + t.start() + + +def print_to_log_local_setup(): + data = boto.utils.get_instance_metadata() + for a, b in data.items(): + logging.info("%s -- %s", a, b, extra={"threadid": -1}) + + +class VolumeAdderMount(): + def __init__(self): + pass + + def add_volume(self): + os.system("sudo mkfs.ext3 /dev/xvdb") + os.system("sudo mkdir %s" % options.temp_space) + os.system("sudo mount /dev/xvdb %s" % options.temp_space) + + def delete_volume(self): + pass + + +class VolumeAdder(): + def __init__(self): + self.conn = boto.ec2.connect_to_region(self._get_region()) + + def _get_instance_id(self): + instance_id = boto.utils.get_instance_metadata() + return instance_id['instance-id'] + + def _get_availability_zone(self): + dat = boto.utils.get_instance_metadata() + return dat["placement"]["availability-zone"] + + def _get_region(self): + region = boto.utils.get_instance_metadata() + return region['local-hostname'].split('.')[1] + + def add_volume(self): + self.vol = self.conn.create_volume(50, self._get_availability_zone()) + while self.vol.status != 'available': + print('Vol state: ', self.vol.status) + time.sleep(5) + self.vol.update() + + dev = "xvdc" + logging.info("Created volume, attaching... %s", self.vol, + extra={"threadid": -1}) + self.conn.attach_volume(self.vol.id, self._get_instance_id(), dev) + logging.info("Waiting for volume to show up...", extra={"threadid": -1}) + time.sleep(10) + + logging.info("Trying to mkfs, mkdir and mount", extra={"threadid": -1}) + os.system("sudo mkfs.ext3 /dev/%s" % dev) + os.system("sudo mkdir %s" % options.temp_space) + os.system("sudo chown ubuntu:ubuntu %s" % options.temp_space) + os.system("sudo mount /dev/%s %s" % (dev, options.temp_space)) + + return self.vol.id + + def delete_volume(self): + try: + os.system("sudo umount /mnt2") + time.sleep(2) + except: + logging.error("Issue with unmounting, but ignored", + extra={"threadid": -1}) + + self.conn.detach_volume(self.vol.id, force=True) + time.sleep(1) + self.conn.delete_volume(self.vol.id) + + +def parse_command_line(): + usage = "usage: %prog" + parser = optparse.OptionParser(usage=usage, formatter=PlainHelpFormatter()) + parser.add_option("--verbose", "-v", action="store_true", default=False, + dest="verbose", help="Be more verbose" + ) + + parser.add_option("--host", dest="host", + help="Host to connect to as a client") + parser.add_option("--port", "-p", default=10000, dest="port", + type="int", help="Port to use" + " [default: %default]", + ) + + parser.add_option("--temp", default="/mnt2", dest="temp_space", type=str, + help="Temporary space to use" + " [default: %default]", + ) + + parser.add_option("--noshutdown", "-n", default=False, dest="noshutdown", + action="store_true", help="Do not shut down" + ) + + parser.add_option("--dir", default="/home/ubuntu/", dest="base_dir", type=str, + help="The home dir of cryptominisat" + " [default: %default]", + ) + parser.add_option("--net", default="ens3", dest="network_device", type=str, + help="The network device we will be using" + " [default: %default]", + ) + + parser.add_option("--threads", dest="num_threads", type=int, + help="Force using this many threads") + + parser.add_option("--dev", dest="dev", type=str, default="xvdc", + help="Device name") + + parser.add_option("--logfile", dest="logfile_name", type=str, + default="python_log.log", help="Name of LOG file") + + (options, args) = parser.parse_args() + + return options, args + + +if __name__ == "__main__": + global s3_bucket + global s3_folder + s3_bucket = "msoos-no-bucket" + s3_folder = "no_s3_folder" + options, args = parse_command_line() + + exitapp = False + options.logfile_name = options.base_dir + options.logfile_name + + # get host + if options.host is None: + for line in boto.utils.get_instance_userdata().split("\n"): + if "DATA" in line: + options.host = line.split("=")[1].strip().strip('"') + + print("HOST has beeen set to %s" % options.host) + + try: + set_up_logging() + logging.info("Client called with parameters: %s", + pprint.pformat(options, indent=4).replace("\n", " || "), + extra={"threadid": -1}) + print_to_log_local_setup() + v = VolumeAdderMount() + v.add_volume() + + boto_conn = boto.connect_s3() + update_num_threads() + build_system_full() + start_threads() + while threading.active_count() > 1: + time.sleep(0.1) + + # finish up + logging.info("Exiting Main Thread, shutting down", extra={"threadid": -1}) + v.delete_volume() + except: + exc_type, exc_value, exc_traceback = sys.exc_info() + the_trace = traceback.format_exc().rstrip().replace("\n", " || ") + logging.error("Problem in __main__" + "Trace: %s", the_trace, extra={"threadid": -1}) + shutdown(-1) + + shutdown() diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/common_aws.py b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/common_aws.py new file mode 100644 index 000000000..4af1cfb0b --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/common_aws.py @@ -0,0 +1,86 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (C) 2018 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +from __future__ import print_function +import boto +import traceback +import sys +import subprocess +import socket +import fcntl +import struct +from email.mime.text import MIMEText +from email.mime.application import MIMEApplication +from email.mime.multipart import MIMEMultipart +import smtplib +import ConfigParser +config = ConfigParser.ConfigParser() +config.read("/home/ubuntu/email.conf") + + +def send_email(subject, text, fname=None): + msg = MIMEMultipart() + msg['Subject'] = 'Email from solver: %s' % subject + msg['From'] = 'msoos@msoos.org' + msg['To'] = 'soos.mate@gmail.com' + + # That is what you see if you have no email client: + msg.preamble = 'Multipart massage.\n' + + # Text part + part = MIMEText(text) + msg.attach(part) + + # Attachment(s) + if fname: + part = MIMEApplication(open(fname, "rb").read()) + part.add_header('Content-Disposition', 'attachment', filename="attachment.txt") + msg.attach(part) + + # Connect to STMP server + email_login = config.get("email", "login") + email_pass = config.get("email", "pass") + + smtp = smtplib.SMTP_SSL("email-smtp.us-west-2.amazonaws.com") + smtp.login(email_login, email_pass) + + # Send email + smtp.sendmail(msg['From'], msg['To'], msg.as_string()) + + +def get_ip_address(ifname): + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + return socket.inet_ntoa(fcntl.ioctl( + s.fileno(), + 0x8915, # SIOCGIFADDR + struct.pack('256s', ifname[:15]) + )[20:24]) + + +def get_revision(full_solver_path, base_dir): + revision = subprocess.check_output(['git', 'rev-parse', 'HEAD']) + return revision.strip() + + +def get_s3_folder(folder, rev, solver, timeout, memout): + print("folder: %s rev: %s tout: %s memout %s" % (folder, rev, timeout, memout)) + solver_exe = solver[solver.rfind("/")+1:] + return folder + "-{rev}-{solver}-tout-{tout}-mout-{mout}".format( + rev=rev[:9], solver=solver_exe, tout=timeout, mout=memout) diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/config/satcomp11_updated b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/config/satcomp11_updated new file mode 100644 index 000000000..2854d28ac --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/config/satcomp11_updated @@ -0,0 +1,300 @@ +satcomp11/11pipe_11_ooo.cnf.gz +satcomp11/11pipe_k.cnf.gz +satcomp11/12pipe_bug4_q0.used-as.sat04-723.cnf.gz +satcomp11/12pipe_bug6_q0.used-as.sat04-725.cnf.gz +satcomp11/1dlx_c_iq57_a.cnf.gz +satcomp11/1dlx_c_iq60_a.cnf.gz +satcomp11/2dlx_ca_bp_f_liveness.cnf.gz +satcomp11/6pipe_6_ooo.shuffled-as.sat03-413.cnf.gz +satcomp11/9dlx_vliw_at_b_iq6.used-as.sat04-347.cnf.gz +satcomp11/9dlx_vliw_at_b_iq7.cnf.gz +satcomp11/9dlx_vliw_at_b_iq8.used-as.sat04-718.cnf.gz +satcomp11/9dlx_vliw_at_b_iq9.used-as.sat04-719.cnf.gz +satcomp11/9vliw_m_9stages_iq3_C1_bug5.cnf.gz +satcomp11/9vliw_m_9stages_iq3_C1_bug6.cnf.gz +satcomp11/ACG-10-10p0.cnf.gz +satcomp11/ACG-15-5p1.cnf.gz +satcomp11/AProVE07-01.cnf.gz +satcomp11/AProVE07-03.cnf.gz +satcomp11/AProVE07-21.cnf.gz +satcomp11/AProVE11-02.cnf.gz +satcomp11/AProVE11-06.cnf.gz +satcomp11/AProVE11-07.cnf.gz +satcomp11/AProVE11-09.cnf.gz +satcomp11/AProVE11-10.cnf.gz +satcomp11/AProVE11-11.cnf.gz +satcomp11/AProVE11-12.cnf.gz +satcomp11/AProVE11-13.cnf.gz +satcomp11/AProVE11-15.cnf.gz +satcomp11/AProVE11-16.cnf.gz +satcomp11/E00N23.cnf.gz +satcomp11/E00X23.cnf.gz +satcomp11/E02F17.cnf.gz +satcomp11/E02F20.cnf.gz +satcomp11/E02F22.cnf.gz +satcomp11/E03N17.cnf.gz +satcomp11/E04F19.cnf.gz +satcomp11/E04F20.cnf.gz +satcomp11/E04N18.cnf.gz +satcomp11/E05F18.cnf.gz +satcomp11/E05F20.cnf.gz +satcomp11/E05X15.cnf.gz +satcomp11/E07N15.cnf.gz +satcomp11/E15N15.cnf.gz +satcomp11/IBM_FV_2004_rule_batch_30_SAT_dat.k55.cnf.gz +satcomp11/IBM_FV_2004_rule_batch_30_SAT_dat.k80.cnf.gz +satcomp11/SAT_dat.k100.cnf.gz +satcomp11/SAT_dat.k20.cnf.gz +satcomp11/SAT_dat.k45.cnf.gz +satcomp11/SAT_dat.k80.cnf.gz +satcomp11/SAT_dat.k80_04.cnf.gz +satcomp11/SAT_dat.k85.cnf.gz +satcomp11/UCG-15-10p0.cnf.gz +satcomp11/UCG-15-10p1.cnf.gz +satcomp11/UCG-15-5p0.cnf.gz +satcomp11/UCG-20-5p1.cnf.gz +satcomp11/UR-10-10p1.cnf.gz +satcomp11/UR-20-10p0.cnf.gz +satcomp11/UR-20-10p1.cnf.gz +satcomp11/UTI-10-5t1.cnf.gz +satcomp11/UTI-20-10p0.cnf.gz +satcomp11/UTI-20-10p1.cnf.gz +satcomp11/UTI-20-10t0.cnf.gz +satcomp11/UTI-20-10t1.cnf.gz +satcomp11/aaai10-planning-ipc5-TPP-21-step11.cnf.gz +satcomp11/aaai10-planning-ipc5-TPP-30-step11.cnf.gz +satcomp11/aaai10-planning-ipc5-pathways-13-step17.cnf.gz +satcomp11/aaai10-planning-ipc5-pathways-17-step20.cnf.gz +satcomp11/aaai10-planning-ipc5-pathways-17-step21.cnf.gz +satcomp11/aaai10-planning-ipc5-pipesworld-12-step15.cnf.gz +satcomp11/aaai10-planning-ipc5-pipesworld-12-step16.cnf.gz +satcomp11/aaai10-planning-ipc5-pipesworld-18-step15.cnf.gz +satcomp11/aaai10-planning-ipc5-pipesworld-18-step16.cnf.gz +satcomp11/aaai10-planning-ipc5-pipesworld-27-step13.cnf.gz +satcomp11/aaai10-planning-ipc5-pipesworld-27-step14.cnf.gz +satcomp11/aaai10-planning-ipc5-rovers-18-step11.cnf.gz +satcomp11/aaai10-planning-ipc5-rovers-18-step12.cnf.gz +satcomp11/abb313GPIA-9-c.used-as.sat04-317.cnf.gz +satcomp11/abb313GPIA-9-tr.used-as.sat04-321.cnf.gz +satcomp11/aes_128_10_keyfind_1.cnf.gz +satcomp11/aes_128_1_keyfind_1.cnf.gz +satcomp11/aes_128_2_keyfind_1.cnf.gz +satcomp11/aes_128_3_keyfind_1.cnf.gz +satcomp11/aes_32_1_keyfind_1.cnf.gz +satcomp11/aes_32_2_keyfind_1.cnf.gz +satcomp11/aes_32_3_keyfind_1.cnf.gz +satcomp11/aes_32_4_keyfind_1.cnf.gz +satcomp11/aes_32_5_keyfind_1.cnf.gz +satcomp11/aes_64_1_keyfind_1.cnf.gz +satcomp11/aes_64_2_keyfind_1.cnf.gz +satcomp11/aes_64_3_keyfind_1.cnf.gz +satcomp11/aes_64_4_keyfind_1.cnf.gz +satcomp11/all.used-as.sat04-986.cnf.gz +satcomp11/am_7_7.shuffled-as.sat03-363.cnf.gz +satcomp11/bart17.shuffled.cnf.gz +satcomp11/bc57-sensors-1-k303-unsat.shuffled-as.sat03-406.cnf.gz +satcomp11/blocks-4-ipc5-h21-unknown.cnf.gz +satcomp11/blocks-blocks-36-0.120-NOTKNOWN.cnf.gz +satcomp11/blocks-blocks-36-0.160-NOTKNOWN.cnf.gz +satcomp11/blocks-blocks-36-0.170-NOTKNOWN.cnf.gz +satcomp11/blocks-blocks-36-0.180-SAT.cnf.gz +satcomp11/blocks-blocks-37-1.120-NOTKNOWN.cnf.gz +satcomp11/blocks-blocks-37-1.130-NOTKNOWN.cnf.gz +satcomp11/blocks-blocks-37-1.150-SAT.cnf.gz +satcomp11/c10idw_i.cnf.gz +satcomp11/c6288mul.miter.shuffled-as.sat03-346.cnf.gz +satcomp11/clauses-8.renamed-as.sat05-1964.cnf.gz +satcomp11/comb1.shuffled.cnf.gz +satcomp11/countbitsarray04_32.cnf.gz +satcomp11/countbitsrotate032.cnf.gz +satcomp11/countbitssrl064.cnf.gz +satcomp11/countbitswegner128.cnf.gz +satcomp11/cube-11-h14-sat.cnf.gz +satcomp11/dated-10-17-u.cnf.gz +satcomp11/dated-5-11-u.cnf.gz +satcomp11/dated-5-13-u.cnf.gz +satcomp11/dekker.used-as.sat04-989.cnf.gz +satcomp11/dme-03-1-k247-unsat.shuffled-as.sat03-407.cnf.gz +satcomp11/dp04s04.shuffled.cnf.gz +satcomp11/dp04u03.shuffled.cnf.gz +satcomp11/dp10s10.shuffled.cnf.gz +satcomp11/driverlog1_ks99i.renamed-as.sat05-3951.cnf.gz +satcomp11/driverlog3_v01a.renamed-as.sat05-3963.cnf.gz +satcomp11/dspam_dump_vc949.cnf.gz +satcomp11/eq.atree.braun.11.unsat.cnf.gz +satcomp11/eq.atree.braun.12.unsat.cnf.gz +satcomp11/ferry5_ks99i.renamed-as.sat05-3994.cnf.gz +satcomp11/grid-strips-grid-y-3.035-NOTKNOWN.cnf.gz +satcomp11/grid-strips-grid-y-4.025-NOTKNOWN.cnf.gz +satcomp11/gripper13u.shuffled-as.sat03-395.cnf.gz +satcomp11/gss-14-s100.cnf.gz +satcomp11/gss-16-s100.cnf.gz +satcomp11/gss-19-s100.cnf.gz +satcomp11/gss-21-s100.cnf.gz +satcomp11/gss-22-s100.cnf.gz +satcomp11/gss-27-s100.cnf.gz +satcomp11/gus-md5-11.cnf.gz +satcomp11/gus-md5-12.cnf.gz +satcomp11/hard-18-U-10652.cnf.gz +satcomp11/hard-25-U-7061.cnf.gz +satcomp11/hard-6-U-7061.cnf.gz +satcomp11/homer14.shuffled.cnf.gz +satcomp11/homer16.shuffled.cnf.gz +satcomp11/homer17.shuffled.cnf.gz +satcomp11/hsat_vc12062.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k45-bc57sensorsp1-tseitin.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k45-bobsm5378d2-tseitin.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k45-bobsmhdlc2-tseitin.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k45-pdtpmsgoodbakery-tseitin.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k45-pdtpmspalu-tseitin.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k45-pdtswvqis8x8p2-tseitin.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k45-pdtswvrod6x8p1-tseitin.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k45-pdtswvtms14x8p1-tseitin.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k45-pdtviseisenberg1-tseitin.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k45-pdtvisns3p02-tseitin.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k45-pdtvissoap1-tseitin.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k50-bc57sensorsp2-tseitin.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k50-bc57sensorsp3-tseitin.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k50-bjrb07amba2andenv-tseitin.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k50-eijkbs6669-tseitin.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k50-nusmvreactorp4-tseitin.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k50-pdtpmsns2-tseitin.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k50-pdtswvsam6x8p3-tseitin.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k50-pdtviseisenberg2-tseitin.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k50-pdtvisns2p3-tseitin.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k50-pdtvisns3p00-tseitin.cnf.gz +satcomp11/ibm-2002-21r-k95.cnf.gz +satcomp11/ibm-2002-30r-k85.cnf.gz +satcomp11/ibm-2004-01-k90.cnf.gz +satcomp11/ibm-2004-23-k100.cnf.gz +satcomp11/k2fix_gr_rcs_w8.shuffled.cnf.gz +satcomp11/k2fix_gr_rcs_w9.shuffled.cnf.gz +satcomp11/k2mul.miter.shuffled-as.sat03-355.cnf.gz +satcomp11/korf-15.cnf.gz +satcomp11/korf-17.cnf.gz +satcomp11/korf-18.cnf.gz +satcomp11/li-exam-61.shuffled-as.sat03-366.cnf.gz +satcomp11/li-test4-100.shuffled-as.sat03-370.cnf.gz +satcomp11/manol-pipe-c10nidw.cnf.gz +satcomp11/manol-pipe-c6bidw_i.cnf.gz +satcomp11/manol-pipe-f7idw.cnf.gz +satcomp11/manol-pipe-f7nidw.cnf.gz +satcomp11/maxor128.cnf.gz +satcomp11/maxxor032.cnf.gz +satcomp11/maxxor064.cnf.gz +satcomp11/maxxor128.cnf.gz +satcomp11/maxxororand064.cnf.gz +satcomp11/md5_48_3.cnf.gz +satcomp11/minandmaxor016.cnf.gz +satcomp11/minandmaxor128.cnf.gz +satcomp11/minxorminand128.cnf.gz +satcomp11/mizh-sha0-36-2.cnf.gz +satcomp11/mizh-sha0-36-4.cnf.gz +satcomp11/mulhs016.cnf.gz +satcomp11/myciel6-tr.used-as.sat04-320.cnf.gz +satcomp11/ndhf_xits_19_UNKNOWN.cnf.gz +satcomp11/openstacks-sequencedstrips-nonadl-nonnegated-os-sequencedstrips-p30_1.025-NOTKNOWN.cnf.gz +satcomp11/openstacks-sequencedstrips-nonadl-nonnegated-os-sequencedstrips-p30_1.035-NOTKNOWN.cnf.gz +satcomp11/openstacks-sequencedstrips-nonadl-nonnegated-os-sequencedstrips-p30_1.045-NOTKNOWN.cnf.gz +satcomp11/openstacks-sequencedstrips-nonadl-nonnegated-os-sequencedstrips-p30_3.025-NOTKNOWN.cnf.gz +satcomp11/openstacks-sequencedstrips-nonadl-nonnegated-os-sequencedstrips-p30_3.035-NOTKNOWN.cnf.gz +satcomp11/openstacks-sequencedstrips-nonadl-nonnegated-os-sequencedstrips-p30_3.045-NOTKNOWN.cnf.gz +satcomp11/openstacks-sequencedstrips-nonadl-nonnegated-os-sequencedstrips-p30_3.085-SAT.cnf.gz +satcomp11/partial-10-13-s.cnf.gz +satcomp11/partial-10-15-s.cnf.gz +satcomp11/partial-10-17-s.cnf.gz +satcomp11/partial-5-11-u.cnf.gz +satcomp11/post-c32s-gcdm16-23.cnf.gz +satcomp11/post-cbmc-zfcp-2.8-u2-noholes.cnf.gz +satcomp11/q_query_3_L150_coli.sat.cnf.gz +satcomp11/q_query_3_L70_coli.sat.cnf.gz +satcomp11/q_query_3_l46_lambda.cnf.gz +satcomp11/rand_net60-25-10.shuffled.cnf.gz +satcomp11/rand_net60-30-1.shuffled.cnf.gz +satcomp11/rand_net60-40-10.shuffled.cnf.gz +satcomp11/rand_net70-60-10.shuffled.cnf.gz +satcomp11/rbcl_xits_08_UNSAT.cnf.gz +satcomp11/rbcl_xits_09_UNKNOWN.cnf.gz +satcomp11/rbcl_xits_15_SAT.cnf.gz +satcomp11/rbcl_xits_18_SAT.cnf.gz +satcomp11/rovers1_ks99i.renamed-as.sat05-3971.cnf.gz +satcomp11/rpoc_xits_09_UNSAT.cnf.gz +satcomp11/sha0_36_5.cnf.gz +satcomp11/slp-synthesis-aes-bottom12.cnf.gz +satcomp11/slp-synthesis-aes-bottom13.cnf.gz +satcomp11/slp-synthesis-aes-bottom14.cnf.gz +satcomp11/slp-synthesis-aes-bottom15.cnf.gz +satcomp11/slp-synthesis-aes-bottom16.cnf.gz +satcomp11/slp-synthesis-aes-bottom17.cnf.gz +satcomp11/slp-synthesis-aes-bottom18.cnf.gz +satcomp11/slp-synthesis-aes-bottom19.cnf.gz +satcomp11/slp-synthesis-aes-bottom20.cnf.gz +satcomp11/slp-synthesis-aes-bottom21.cnf.gz +satcomp11/slp-synthesis-aes-bottom22.cnf.gz +satcomp11/slp-synthesis-aes-bottom23.cnf.gz +satcomp11/slp-synthesis-aes-bottom24.cnf.gz +satcomp11/slp-synthesis-aes-bottom25.cnf.gz +satcomp11/slp-synthesis-aes-bottom26.cnf.gz +satcomp11/slp-synthesis-aes-top21.cnf.gz +satcomp11/slp-synthesis-aes-top22.cnf.gz +satcomp11/slp-synthesis-aes-top23.cnf.gz +satcomp11/slp-synthesis-aes-top24.cnf.gz +satcomp11/slp-synthesis-aes-top25.cnf.gz +satcomp11/slp-synthesis-aes-top26.cnf.gz +satcomp11/slp-synthesis-aes-top28.cnf.gz +satcomp11/slp-synthesis-aes-top29.cnf.gz +satcomp11/slp-synthesis-aes-top30.cnf.gz +satcomp11/smtlib-qfbv-aigs-VS3-benchmark-S2-tseitin.cnf.gz +satcomp11/smtlib-qfbv-aigs-bin_libmsrpc_vc1225336-tseitin.cnf.gz +satcomp11/smtlib-qfbv-aigs-bin_libsmbclient_vc1228502-tseitin.cnf.gz +satcomp11/smtlib-qfbv-aigs-bin_libsmbsharemodes_vc5759-tseitin.cnf.gz +satcomp11/smtlib-qfbv-aigs-countbits128-tseitin.cnf.gz +satcomp11/smtlib-qfbv-aigs-ext_con_032_008_0256-tseitin.cnf.gz +satcomp11/smtlib-qfbv-aigs-lfsr_004_127_112-tseitin.cnf.gz +satcomp11/smtlib-qfbv-aigs-lfsr_008_063_080-tseitin.cnf.gz +satcomp11/smtlib-qfbv-aigs-lfsr_008_079_112-tseitin.cnf.gz +satcomp11/smtlib-qfbv-aigs-nlzbe256-tseitin.cnf.gz +satcomp11/smtlib-qfbv-aigs-rfunit_flat-64-tseitin.cnf.gz +satcomp11/smtlib-qfbv-aigs-servers_slapd_a_vc149789-tseitin.cnf.gz +satcomp11/smtlib-qfbv-aigs-src_wget_vc18517-tseitin.cnf.gz +satcomp11/smulo064.cnf.gz +satcomp11/sokoban-sequential-p145-microban-sequential.030-NOTKNOWN.cnf.gz +satcomp11/sokoban-sequential-p145-microban-sequential.040-NOTKNOWN.cnf.gz +satcomp11/sokoban-sequential-p145-microban-sequential.050-NOTKNOWN.cnf.gz +satcomp11/sokoban-sequential-p145-microban-sequential.060-NOTKNOWN.cnf.gz +satcomp11/sokoban-sequential-p145-microban-sequential.070-NOTKNOWN.cnf.gz +satcomp11/sokoban-sequential-p145-microban-sequential.080-SAT.cnf.gz +satcomp11/sortnet-7-ipc5-h15-unsat.cnf.gz +satcomp11/sortnet-8-ipc5-h19-sat.cnf.gz +satcomp11/total-10-17-u.cnf.gz +satcomp11/traffic_3_uc_sat.cnf.gz +satcomp11/traffic_3b_unknown.cnf.gz +satcomp11/traffic_b_unsat.cnf.gz +satcomp11/traffic_f_unknown.cnf.gz +satcomp11/traffic_fb_unknown.cnf.gz +satcomp11/traffic_kkb_unknown.cnf.gz +satcomp11/traffic_pcb_unknown.cnf.gz +satcomp11/traffic_r_sat.cnf.gz +satcomp11/traffic_r_uc_sat.cnf.gz +satcomp11/transport-transport-city-sequential-25nodes-1000size-3degree-100mindistance-3trucks-10packages-2008seed.060-SAT.cnf.gz +satcomp11/transport-transport-city-sequential-35nodes-1000size-4degree-100mindistance-4trucks-14packages-2008seed.030-NOTKNOWN.cnf.gz +satcomp11/transport-transport-city-sequential-35nodes-1000size-4degree-100mindistance-4trucks-14packages-2008seed.040-NOTKNOWN.cnf.gz +satcomp11/transport-transport-city-sequential-35nodes-1000size-4degree-100mindistance-4trucks-14packages-2008seed.050-SAT.cnf.gz +satcomp11/transport-transport-three-cities-sequential-14nodes-1000size-4degree-100mindistance-4trucks-14packages-2008seed.020-NOTKNOWN.cnf.gz +satcomp11/transport-transport-three-cities-sequential-14nodes-1000size-4degree-100mindistance-4trucks-14packages-2008seed.030-NOTKNOWN.cnf.gz +satcomp11/transport-transport-three-cities-sequential-14nodes-1000size-4degree-100mindistance-4trucks-14packages-2008seed.040-NOTKNOWN.cnf.gz +satcomp11/transport-transport-two-cities-sequential-15nodes-1000size-3degree-100mindistance-3trucks-10packages-2008seed.040-SAT.cnf.gz +satcomp11/valves-gates-1-k617-unsat.shuffled-as.sat03-412.cnf.gz +satcomp11/vda_gr_rcs_w9.shuffled.cnf.gz +satcomp11/velev-npe-1.0-9dlx-b71.cnf.gz +satcomp11/velev-pipe-o-uns-1.0-7.cnf.gz +satcomp11/velev-pipe-o-uns-1.1-6.cnf.gz +satcomp11/velev-pipe-sat-1.0-b9.cnf.gz +satcomp11/velev-vliw-uns-4.0-9-i1.cnf.gz +satcomp11/vmpc_25.renamed-as.sat05-1913.cnf.gz +satcomp11/vmpc_29.renamed-as.sat05-1916.cnf.gz +satcomp11/vmpc_32.renamed-as.sat05-1919.cnf.gz +satcomp11/vmpc_34.renamed-as.sat05-1926.cnf.gz +satcomp11/vmpc_35.renamed-as.sat05-1921.cnf.gz +satcomp11/vmpc_36.renamed-as.sat05-1922.cnf.gz +satcomp11/x1mul.miter.shuffled-as.sat03-359.cnf.gz diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/config/satcomp13_updated b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/config/satcomp13_updated new file mode 100644 index 000000000..07c46e919 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/config/satcomp13_updated @@ -0,0 +1,300 @@ +satcomp13/11pipe_11_ooo.cnf.gz +satcomp13/11pipe_k.cnf.gz +satcomp13/12pipe_bug4_q0.used-as.sat04-723.cnf.gz +satcomp13/12pipe_bug6_q0.used-as.sat04-725.cnf.gz +satcomp13/1dlx_c_iq57_a.cnf.gz +satcomp13/1dlx_c_iq60_a.cnf.gz +satcomp13/2dlx_ca_bp_f_liveness.cnf.gz +satcomp13/6pipe_6_ooo.shuffled-as.sat03-413.cnf.gz +satcomp13/9dlx_vliw_at_b_iq6.used-as.sat04-347.cnf.gz +satcomp13/9dlx_vliw_at_b_iq7.cnf.gz +satcomp13/9dlx_vliw_at_b_iq8.used-as.sat04-718.cnf.gz +satcomp13/9dlx_vliw_at_b_iq9.used-as.sat04-719.cnf.gz +satcomp13/9vliw_m_9stages_iq3_C1_bug5.cnf.gz +satcomp13/9vliw_m_9stages_iq3_C1_bug6.cnf.gz +satcomp13/ACG-10-10p0.cnf.gz +satcomp13/ACG-15-5p1.cnf.gz +satcomp13/AProVE07-01.cnf.gz +satcomp13/AProVE07-03.cnf.gz +satcomp13/AProVE07-21.cnf.gz +satcomp13/AProVE11-02.cnf.gz +satcomp13/AProVE11-06.cnf.gz +satcomp13/AProVE11-07.cnf.gz +satcomp13/AProVE11-09.cnf.gz +satcomp13/AProVE11-10.cnf.gz +satcomp13/AProVE11-11.cnf.gz +satcomp13/AProVE11-12.cnf.gz +satcomp13/AProVE11-13.cnf.gz +satcomp13/AProVE11-15.cnf.gz +satcomp13/AProVE11-16.cnf.gz +satcomp13/E00N23.cnf.gz +satcomp13/E00X23.cnf.gz +satcomp13/E02F17.cnf.gz +satcomp13/E02F20.cnf.gz +satcomp13/E02F22.cnf.gz +satcomp13/E03N17.cnf.gz +satcomp13/E04F19.cnf.gz +satcomp13/E04F20.cnf.gz +satcomp13/E04N18.cnf.gz +satcomp13/E05F18.cnf.gz +satcomp13/E05F20.cnf.gz +satcomp13/E05X15.cnf.gz +satcomp13/E07N15.cnf.gz +satcomp13/E15N15.cnf.gz +satcomp13/IBM_FV_2004_rule_batch_30_SAT_dat.k55.cnf.gz +satcomp13/IBM_FV_2004_rule_batch_30_SAT_dat.k80.cnf.gz +satcomp13/SAT_dat.k100.cnf.gz +satcomp13/SAT_dat.k20.cnf.gz +satcomp13/SAT_dat.k45.cnf.gz +satcomp13/SAT_dat.k80.cnf.gz +satcomp13/SAT_dat.k80_04.cnf.gz +satcomp13/SAT_dat.k85.cnf.gz +satcomp13/UCG-15-10p0.cnf.gz +satcomp13/UCG-15-10p1.cnf.gz +satcomp13/UCG-15-5p0.cnf.gz +satcomp13/UCG-20-5p1.cnf.gz +satcomp13/UR-10-10p1.cnf.gz +satcomp13/UR-20-10p0.cnf.gz +satcomp13/UR-20-10p1.cnf.gz +satcomp13/UTI-10-5t1.cnf.gz +satcomp13/UTI-20-10p0.cnf.gz +satcomp13/UTI-20-10p1.cnf.gz +satcomp13/UTI-20-10t0.cnf.gz +satcomp13/UTI-20-10t1.cnf.gz +satcomp13/aaai10-planning-ipc5-TPP-21-step11.cnf.gz +satcomp13/aaai10-planning-ipc5-TPP-30-step11.cnf.gz +satcomp13/aaai10-planning-ipc5-pathways-13-step17.cnf.gz +satcomp13/aaai10-planning-ipc5-pathways-17-step20.cnf.gz +satcomp13/aaai10-planning-ipc5-pathways-17-step21.cnf.gz +satcomp13/aaai10-planning-ipc5-pipesworld-12-step15.cnf.gz +satcomp13/aaai10-planning-ipc5-pipesworld-12-step16.cnf.gz +satcomp13/aaai10-planning-ipc5-pipesworld-18-step15.cnf.gz +satcomp13/aaai10-planning-ipc5-pipesworld-18-step16.cnf.gz +satcomp13/aaai10-planning-ipc5-pipesworld-27-step13.cnf.gz +satcomp13/aaai10-planning-ipc5-pipesworld-27-step14.cnf.gz +satcomp13/aaai10-planning-ipc5-rovers-18-step11.cnf.gz +satcomp13/aaai10-planning-ipc5-rovers-18-step12.cnf.gz +satcomp13/abb313GPIA-9-c.used-as.sat04-317.cnf.gz +satcomp13/abb313GPIA-9-tr.used-as.sat04-321.cnf.gz +satcomp13/aes_128_10_keyfind_1.cnf.gz +satcomp13/aes_128_1_keyfind_1.cnf.gz +satcomp13/aes_128_2_keyfind_1.cnf.gz +satcomp13/aes_128_3_keyfind_1.cnf.gz +satcomp13/aes_32_1_keyfind_1.cnf.gz +satcomp13/aes_32_2_keyfind_1.cnf.gz +satcomp13/aes_32_3_keyfind_1.cnf.gz +satcomp13/aes_32_4_keyfind_1.cnf.gz +satcomp13/aes_32_5_keyfind_1.cnf.gz +satcomp13/aes_64_1_keyfind_1.cnf.gz +satcomp13/aes_64_2_keyfind_1.cnf.gz +satcomp13/aes_64_3_keyfind_1.cnf.gz +satcomp13/aes_64_4_keyfind_1.cnf.gz +satcomp13/all.used-as.sat04-986.cnf.gz +satcomp13/am_7_7.shuffled-as.sat03-363.cnf.gz +satcomp13/bart17.shuffled.cnf.gz +satcomp13/bc57-sensors-1-k303-unsat.shuffled-as.sat03-406.cnf.gz +satcomp13/blocks-4-ipc5-h21-unknown.cnf.gz +satcomp13/blocks-blocks-36-0.120-NOTKNOWN.cnf.gz +satcomp13/blocks-blocks-36-0.160-NOTKNOWN.cnf.gz +satcomp13/blocks-blocks-36-0.170-NOTKNOWN.cnf.gz +satcomp13/blocks-blocks-36-0.180-SAT.cnf.gz +satcomp13/blocks-blocks-37-1.120-NOTKNOWN.cnf.gz +satcomp13/blocks-blocks-37-1.130-NOTKNOWN.cnf.gz +satcomp13/blocks-blocks-37-1.150-SAT.cnf.gz +satcomp13/c10idw_i.cnf.gz +satcomp13/c6288mul.miter.shuffled-as.sat03-346.cnf.gz +satcomp13/clauses-8.renamed-as.sat05-1964.cnf.gz +satcomp13/comb1.shuffled.cnf.gz +satcomp13/countbitsarray04_32.cnf.gz +satcomp13/countbitsrotate032.cnf.gz +satcomp13/countbitssrl064.cnf.gz +satcomp13/countbitswegner128.cnf.gz +satcomp13/cube-11-h14-sat.cnf.gz +satcomp13/dated-10-17-u.cnf.gz +satcomp13/dated-5-11-u.cnf.gz +satcomp13/dated-5-13-u.cnf.gz +satcomp13/dekker.used-as.sat04-989.cnf.gz +satcomp13/dme-03-1-k247-unsat.shuffled-as.sat03-407.cnf.gz +satcomp13/dp04s04.shuffled.cnf.gz +satcomp13/dp04u03.shuffled.cnf.gz +satcomp13/dp10s10.shuffled.cnf.gz +satcomp13/driverlog1_ks99i.renamed-as.sat05-3951.cnf.gz +satcomp13/driverlog3_v01a.renamed-as.sat05-3963.cnf.gz +satcomp13/dspam_dump_vc949.cnf.gz +satcomp13/eq.atree.braun.11.unsat.cnf.gz +satcomp13/eq.atree.braun.12.unsat.cnf.gz +satcomp13/ferry5_ks99i.renamed-as.sat05-3994.cnf.gz +satcomp13/grid-strips-grid-y-3.035-NOTKNOWN.cnf.gz +satcomp13/grid-strips-grid-y-4.025-NOTKNOWN.cnf.gz +satcomp13/gripper13u.shuffled-as.sat03-395.cnf.gz +satcomp13/gss-14-s100.cnf.gz +satcomp13/gss-16-s100.cnf.gz +satcomp13/gss-19-s100.cnf.gz +satcomp13/gss-21-s100.cnf.gz +satcomp13/gss-22-s100.cnf.gz +satcomp13/gss-27-s100.cnf.gz +satcomp13/gus-md5-11.cnf.gz +satcomp13/gus-md5-12.cnf.gz +satcomp13/hard-18-U-10652.cnf.gz +satcomp13/hard-25-U-7061.cnf.gz +satcomp13/hard-6-U-7061.cnf.gz +satcomp13/homer14.shuffled.cnf.gz +satcomp13/homer16.shuffled.cnf.gz +satcomp13/homer17.shuffled.cnf.gz +satcomp13/hsat_vc12062.cnf.gz +satcomp13/hwmcc10-timeframe-expansion-k45-bc57sensorsp1-tseitin.cnf.gz +satcomp13/hwmcc10-timeframe-expansion-k45-bobsm5378d2-tseitin.cnf.gz +satcomp13/hwmcc10-timeframe-expansion-k45-bobsmhdlc2-tseitin.cnf.gz +satcomp13/hwmcc10-timeframe-expansion-k45-pdtpmsgoodbakery-tseitin.cnf.gz +satcomp13/hwmcc10-timeframe-expansion-k45-pdtpmspalu-tseitin.cnf.gz +satcomp13/hwmcc10-timeframe-expansion-k45-pdtswvqis8x8p2-tseitin.cnf.gz +satcomp13/hwmcc10-timeframe-expansion-k45-pdtswvrod6x8p1-tseitin.cnf.gz +satcomp13/hwmcc10-timeframe-expansion-k45-pdtswvtms14x8p1-tseitin.cnf.gz +satcomp13/hwmcc10-timeframe-expansion-k45-pdtviseisenberg1-tseitin.cnf.gz +satcomp13/hwmcc10-timeframe-expansion-k45-pdtvisns3p02-tseitin.cnf.gz +satcomp13/hwmcc10-timeframe-expansion-k45-pdtvissoap1-tseitin.cnf.gz +satcomp13/hwmcc10-timeframe-expansion-k50-bc57sensorsp2-tseitin.cnf.gz +satcomp13/hwmcc10-timeframe-expansion-k50-bc57sensorsp3-tseitin.cnf.gz +satcomp13/hwmcc10-timeframe-expansion-k50-bjrb07amba2andenv-tseitin.cnf.gz +satcomp13/hwmcc10-timeframe-expansion-k50-eijkbs6669-tseitin.cnf.gz +satcomp13/hwmcc10-timeframe-expansion-k50-nusmvreactorp4-tseitin.cnf.gz +satcomp13/hwmcc10-timeframe-expansion-k50-pdtpmsns2-tseitin.cnf.gz +satcomp13/hwmcc10-timeframe-expansion-k50-pdtswvsam6x8p3-tseitin.cnf.gz +satcomp13/hwmcc10-timeframe-expansion-k50-pdtviseisenberg2-tseitin.cnf.gz +satcomp13/hwmcc10-timeframe-expansion-k50-pdtvisns2p3-tseitin.cnf.gz +satcomp13/hwmcc10-timeframe-expansion-k50-pdtvisns3p00-tseitin.cnf.gz +satcomp13/ibm-2002-21r-k95.cnf.gz +satcomp13/ibm-2002-30r-k85.cnf.gz +satcomp13/ibm-2004-01-k90.cnf.gz +satcomp13/ibm-2004-23-k100.cnf.gz +satcomp13/k2fix_gr_rcs_w8.shuffled.cnf.gz +satcomp13/k2fix_gr_rcs_w9.shuffled.cnf.gz +satcomp13/k2mul.miter.shuffled-as.sat03-355.cnf.gz +satcomp13/korf-15.cnf.gz +satcomp13/korf-17.cnf.gz +satcomp13/korf-18.cnf.gz +satcomp13/li-exam-61.shuffled-as.sat03-366.cnf.gz +satcomp13/li-test4-100.shuffled-as.sat03-370.cnf.gz +satcomp13/manol-pipe-c10nidw.cnf.gz +satcomp13/manol-pipe-c6bidw_i.cnf.gz +satcomp13/manol-pipe-f7idw.cnf.gz +satcomp13/manol-pipe-f7nidw.cnf.gz +satcomp13/maxor128.cnf.gz +satcomp13/maxxor032.cnf.gz +satcomp13/maxxor064.cnf.gz +satcomp13/maxxor128.cnf.gz +satcomp13/maxxororand064.cnf.gz +satcomp13/md5_48_3.cnf.gz +satcomp13/minandmaxor016.cnf.gz +satcomp13/minandmaxor128.cnf.gz +satcomp13/minxorminand128.cnf.gz +satcomp13/mizh-sha0-36-2.cnf.gz +satcomp13/mizh-sha0-36-4.cnf.gz +satcomp13/mulhs016.cnf.gz +satcomp13/myciel6-tr.used-as.sat04-320.cnf.gz +satcomp13/ndhf_xits_19_UNKNOWN.cnf.gz +satcomp13/openstacks-sequencedstrips-nonadl-nonnegated-os-sequencedstrips-p30_1.025-NOTKNOWN.cnf.gz +satcomp13/openstacks-sequencedstrips-nonadl-nonnegated-os-sequencedstrips-p30_1.035-NOTKNOWN.cnf.gz +satcomp13/openstacks-sequencedstrips-nonadl-nonnegated-os-sequencedstrips-p30_1.045-NOTKNOWN.cnf.gz +satcomp13/openstacks-sequencedstrips-nonadl-nonnegated-os-sequencedstrips-p30_3.025-NOTKNOWN.cnf.gz +satcomp13/openstacks-sequencedstrips-nonadl-nonnegated-os-sequencedstrips-p30_3.035-NOTKNOWN.cnf.gz +satcomp13/openstacks-sequencedstrips-nonadl-nonnegated-os-sequencedstrips-p30_3.045-NOTKNOWN.cnf.gz +satcomp13/openstacks-sequencedstrips-nonadl-nonnegated-os-sequencedstrips-p30_3.085-SAT.cnf.gz +satcomp13/partial-10-13-s.cnf.gz +satcomp13/partial-10-15-s.cnf.gz +satcomp13/partial-10-17-s.cnf.gz +satcomp13/partial-5-11-u.cnf.gz +satcomp13/post-c32s-gcdm16-23.cnf.gz +satcomp13/post-cbmc-zfcp-2.8-u2-noholes.cnf.gz +satcomp13/q_query_3_L150_coli.sat.cnf.gz +satcomp13/q_query_3_L70_coli.sat.cnf.gz +satcomp13/q_query_3_l46_lambda.cnf.gz +satcomp13/rand_net60-25-10.shuffled.cnf.gz +satcomp13/rand_net60-30-1.shuffled.cnf.gz +satcomp13/rand_net60-40-10.shuffled.cnf.gz +satcomp13/rand_net70-60-10.shuffled.cnf.gz +satcomp13/rbcl_xits_08_UNSAT.cnf.gz +satcomp13/rbcl_xits_09_UNKNOWN.cnf.gz +satcomp13/rbcl_xits_15_SAT.cnf.gz +satcomp13/rbcl_xits_18_SAT.cnf.gz +satcomp13/rovers1_ks99i.renamed-as.sat05-3971.cnf.gz +satcomp13/rpoc_xits_09_UNSAT.cnf.gz +satcomp13/sha0_36_5.cnf.gz +satcomp13/slp-synthesis-aes-bottom12.cnf.gz +satcomp13/slp-synthesis-aes-bottom13.cnf.gz +satcomp13/slp-synthesis-aes-bottom14.cnf.gz +satcomp13/slp-synthesis-aes-bottom15.cnf.gz +satcomp13/slp-synthesis-aes-bottom16.cnf.gz +satcomp13/slp-synthesis-aes-bottom17.cnf.gz +satcomp13/slp-synthesis-aes-bottom18.cnf.gz +satcomp13/slp-synthesis-aes-bottom19.cnf.gz +satcomp13/slp-synthesis-aes-bottom20.cnf.gz +satcomp13/slp-synthesis-aes-bottom21.cnf.gz +satcomp13/slp-synthesis-aes-bottom22.cnf.gz +satcomp13/slp-synthesis-aes-bottom23.cnf.gz +satcomp13/slp-synthesis-aes-bottom24.cnf.gz +satcomp13/slp-synthesis-aes-bottom25.cnf.gz +satcomp13/slp-synthesis-aes-bottom26.cnf.gz +satcomp13/slp-synthesis-aes-top21.cnf.gz +satcomp13/slp-synthesis-aes-top22.cnf.gz +satcomp13/slp-synthesis-aes-top23.cnf.gz +satcomp13/slp-synthesis-aes-top24.cnf.gz +satcomp13/slp-synthesis-aes-top25.cnf.gz +satcomp13/slp-synthesis-aes-top26.cnf.gz +satcomp13/slp-synthesis-aes-top28.cnf.gz +satcomp13/slp-synthesis-aes-top29.cnf.gz +satcomp13/slp-synthesis-aes-top30.cnf.gz +satcomp13/smtlib-qfbv-aigs-VS3-benchmark-S2-tseitin.cnf.gz +satcomp13/smtlib-qfbv-aigs-bin_libmsrpc_vc1225336-tseitin.cnf.gz +satcomp13/smtlib-qfbv-aigs-bin_libsmbclient_vc1228502-tseitin.cnf.gz +satcomp13/smtlib-qfbv-aigs-bin_libsmbsharemodes_vc5759-tseitin.cnf.gz +satcomp13/smtlib-qfbv-aigs-countbits128-tseitin.cnf.gz +satcomp13/smtlib-qfbv-aigs-ext_con_032_008_0256-tseitin.cnf.gz +satcomp13/smtlib-qfbv-aigs-lfsr_004_127_112-tseitin.cnf.gz +satcomp13/smtlib-qfbv-aigs-lfsr_008_063_080-tseitin.cnf.gz +satcomp13/smtlib-qfbv-aigs-lfsr_008_079_112-tseitin.cnf.gz +satcomp13/smtlib-qfbv-aigs-nlzbe256-tseitin.cnf.gz +satcomp13/smtlib-qfbv-aigs-rfunit_flat-64-tseitin.cnf.gz +satcomp13/smtlib-qfbv-aigs-servers_slapd_a_vc149789-tseitin.cnf.gz +satcomp13/smtlib-qfbv-aigs-src_wget_vc18517-tseitin.cnf.gz +satcomp13/smulo064.cnf.gz +satcomp13/sokoban-sequential-p145-microban-sequential.030-NOTKNOWN.cnf.gz +satcomp13/sokoban-sequential-p145-microban-sequential.040-NOTKNOWN.cnf.gz +satcomp13/sokoban-sequential-p145-microban-sequential.050-NOTKNOWN.cnf.gz +satcomp13/sokoban-sequential-p145-microban-sequential.060-NOTKNOWN.cnf.gz +satcomp13/sokoban-sequential-p145-microban-sequential.070-NOTKNOWN.cnf.gz +satcomp13/sokoban-sequential-p145-microban-sequential.080-SAT.cnf.gz +satcomp13/sortnet-7-ipc5-h15-unsat.cnf.gz +satcomp13/sortnet-8-ipc5-h19-sat.cnf.gz +satcomp13/total-10-17-u.cnf.gz +satcomp13/traffic_3_uc_sat.cnf.gz +satcomp13/traffic_3b_unknown.cnf.gz +satcomp13/traffic_b_unsat.cnf.gz +satcomp13/traffic_f_unknown.cnf.gz +satcomp13/traffic_fb_unknown.cnf.gz +satcomp13/traffic_kkb_unknown.cnf.gz +satcomp13/traffic_pcb_unknown.cnf.gz +satcomp13/traffic_r_sat.cnf.gz +satcomp13/traffic_r_uc_sat.cnf.gz +satcomp13/transport-transport-city-sequential-25nodes-1000size-3degree-100mindistance-3trucks-10packages-2008seed.060-SAT.cnf.gz +satcomp13/transport-transport-city-sequential-35nodes-1000size-4degree-100mindistance-4trucks-14packages-2008seed.030-NOTKNOWN.cnf.gz +satcomp13/transport-transport-city-sequential-35nodes-1000size-4degree-100mindistance-4trucks-14packages-2008seed.040-NOTKNOWN.cnf.gz +satcomp13/transport-transport-city-sequential-35nodes-1000size-4degree-100mindistance-4trucks-14packages-2008seed.050-SAT.cnf.gz +satcomp13/transport-transport-three-cities-sequential-14nodes-1000size-4degree-100mindistance-4trucks-14packages-2008seed.020-NOTKNOWN.cnf.gz +satcomp13/transport-transport-three-cities-sequential-14nodes-1000size-4degree-100mindistance-4trucks-14packages-2008seed.030-NOTKNOWN.cnf.gz +satcomp13/transport-transport-three-cities-sequential-14nodes-1000size-4degree-100mindistance-4trucks-14packages-2008seed.040-NOTKNOWN.cnf.gz +satcomp13/transport-transport-two-cities-sequential-15nodes-1000size-3degree-100mindistance-3trucks-10packages-2008seed.040-SAT.cnf.gz +satcomp13/valves-gates-1-k617-unsat.shuffled-as.sat03-412.cnf.gz +satcomp13/vda_gr_rcs_w9.shuffled.cnf.gz +satcomp13/velev-npe-1.0-9dlx-b71.cnf.gz +satcomp13/velev-pipe-o-uns-1.0-7.cnf.gz +satcomp13/velev-pipe-o-uns-1.1-6.cnf.gz +satcomp13/velev-pipe-sat-1.0-b9.cnf.gz +satcomp13/velev-vliw-uns-4.0-9-i1.cnf.gz +satcomp13/vmpc_25.renamed-as.sat05-1913.cnf.gz +satcomp13/vmpc_29.renamed-as.sat05-1916.cnf.gz +satcomp13/vmpc_32.renamed-as.sat05-1919.cnf.gz +satcomp13/vmpc_34.renamed-as.sat05-1926.cnf.gz +satcomp13/vmpc_35.renamed-as.sat05-1921.cnf.gz +satcomp13/vmpc_36.renamed-as.sat05-1922.cnf.gz +satcomp13/x1mul.miter.shuffled-as.sat03-359.cnf.gz diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/config/satcomp14_updated b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/config/satcomp14_updated new file mode 100644 index 000000000..8e0553b8e --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/config/satcomp14_updated @@ -0,0 +1,300 @@ +satcomp14/openstacks-sequencedstrips-nonadl-nonnegated-os-sequencedstrips-p30_3.025-NOTKNOWN.cnf.gz +satcomp14/openstacks-sequencedstrips-nonadl-nonnegated-os-sequencedstrips-p30_1.025-NOTKNOWN.cnf.gz +satcomp14/slp-synthesis-aes-top29.cnf.gz +satcomp14/gss-25-s100.cnf.gz +satcomp14/aes_32_2_keyfind_1.cnf.gz +satcomp14/aes_24_4_keyfind_4.cnf.gz +satcomp14/korf-18.cnf.gz +satcomp14/smtlib-qfbv-aigs-ext_con_032_008_0256-tseitin.cnf.gz +satcomp14/slp-synthesis-aes-top28.cnf.gz +satcomp14/gss-22-s100.cnf.gz +satcomp14/partial-10-17-s.cnf.gz +satcomp14/gss-24-s100.cnf.gz +satcomp14/gss-23-s100.cnf.gz +satcomp14/hitag2-7-60-0-0xe8fa35372ed37e2-80.cnf.gz +satcomp14/hitag2-8-60-0-0xfba1a41b5dfd7f7-52.cnf.gz +satcomp14/hitag2-8-60-0-0xdcdbc8bf368ee73-37.cnf.gz +satcomp14/hitag2-8-60-0-0x1eb82244d7f1c3c-47.cnf.gz +satcomp14/hitag2-10-60-0-0xfee9637399d85a2-78.cnf.gz +satcomp14/hitag2-10-60-0-0xe6754daf48162bf-46.cnf.gz +satcomp14/hitag2-10-60-0-0xe14721bd199894a-99.cnf.gz +satcomp14/hitag2-10-60-0-0x8edc44db7837bbf-65.cnf.gz +satcomp14/hitag2-10-60-0-0x0ffdbe60727f161-57.cnf.gz +satcomp14/ctl_4291_567_5_unsat_pre.cnf.gz +satcomp14/6s151.cnf.gz +satcomp14/6s137.cnf.gz +satcomp14/6s123.cnf.gz +satcomp14/SAT_dat.k95-24_1_rule_3.cnf.gz +satcomp14/SAT_dat.k95-24_1_rule_2.cnf.gz +satcomp14/SAT_dat.k95-24_1_rule_1.cnf.gz +satcomp14/SAT_dat.k90.debugged.cnf.gz +satcomp14/SAT_dat.k85-24_1_rule_1.cnf.gz +satcomp14/SAT_dat.k100-24_1_rule_3.cnf.gz +satcomp14/SAT_dat.k100-24_1_rule_2.cnf.gz +satcomp14/SAT_dat.k100-24_1_rule_1.cnf.gz +satcomp14/6s126-opt.cnf.gz +satcomp14/15pipe_q0_k.cnf.gz +satcomp14/010-23-80.cnf.gz +satcomp14/010-22-160.cnf.gz +satcomp14/010-22-144.cnf.gz +satcomp14/009-23-64.cnf.gz +satcomp14/006-23-96.cnf.gz +satcomp14/006-23-80.cnf.gz +satcomp14/006-22-160.cnf.gz +satcomp14/006-22-144.cnf.gz +satcomp14/005-22-160.cnf.gz +satcomp14/004-22-160.cnf.gz +satcomp14/004-22-144.cnf.gz +satcomp14/003-23-80.cnf.gz +satcomp14/002-23-96.cnf.gz +satcomp14/stable-400-0.1-5-9876543214005.cnf.gz +satcomp14/stable-400-0.1-4-9876543214004.cnf.gz +satcomp14/stable-400-0.1-2-9876543214002.cnf.gz +satcomp14/stable-400-0.1-11-98765432140011.cnf.gz +satcomp14/atco_enc1_opt2_10_16.cnf.gz +satcomp14/MD5-32-5.cnf.gz +satcomp14/MD5-32-4.cnf.gz +satcomp14/MD5-32-3.cnf.gz +satcomp14/MD5-32-2.cnf.gz +satcomp14/MD5-32-1.cnf.gz +satcomp14/MD5-31-5.cnf.gz +satcomp14/MD5-31-4.cnf.gz +satcomp14/MD5-30-5.cnf.gz +satcomp14/MD5-30-4.cnf.gz +satcomp14/MD5-30-2.cnf.gz +satcomp14/MD5-30-1.cnf.gz +satcomp14/MD5-29-5.cnf.gz +satcomp14/MD5-29-4.cnf.gz +satcomp14/MD5-29-3.cnf.gz +satcomp14/MD5-29-2.cnf.gz +satcomp14/MD5-28-5.cnf.gz +satcomp14/MD5-28-4.cnf.gz +satcomp14/MD5-28-3.cnf.gz +satcomp14/MD5-28-2.cnf.gz +satcomp14/MD5-28-1.cnf.gz +satcomp14/dimacs.cnf.gz +satcomp14/SAT_dat.k35-31_2_rule_2.cnf.gz +satcomp14/aes_32_2_keyfind_3.cnf.gz +satcomp14/SAT_dat.k85-24_1_rule_2.cnf.gz +satcomp14/SAT_dat.k85-24_1_rule_3.cnf.gz +satcomp14/rbcl_xits_08_UNSAT.cnf.gz +satcomp14/ctl_3791_556_unsat_pre.cnf.gz +satcomp14/UR-20-10p1.cnf.gz +satcomp14/SAT_dat.k80-24_1_rule_2.cnf.gz +satcomp14/11pipe_11_ooo.cnf.gz +satcomp14/dated-5-13-u.cnf.gz +satcomp14/AProVE07-01.cnf.gz +satcomp14/SAT_dat.k80-24_1_rule_1.cnf.gz +satcomp14/hwmcc10-timeframe-expansion-k45-pdtvisns3p02-tseitin.cnf.gz +satcomp14/ACG-20-10p1.cnf.gz +satcomp14/minandmaxor128.cnf.gz +satcomp14/UR-20-10p0.cnf.gz +satcomp14/IBM_FV_2004_rule_batch_1_31_1_SAT_dat.k40.debugged.cnf.gz +satcomp14/SAT_dat.k75-24_1_rule_3.cnf.gz +satcomp14/SAT_dat.k70-24_1_rule_1.cnf.gz +satcomp14/SAT_dat.k30-30_rule.cnf.gz +satcomp14/aaai10-planning-ipc5-pathways-17-step21.cnf.gz +satcomp14/vmpc_33.cnf.gz +satcomp14/SAT_dat.k70-24_1_rule_3.cnf.gz +satcomp14/aes_24_4_keyfind_5.cnf.gz +satcomp14/atco_enc3_opt2_18_44.cnf.gz +satcomp14/dated-10-17-u.cnf.gz +satcomp14/aes_32_3_keyfind_1.cnf.gz +satcomp14/atco_enc1_opt2_20_12.cnf.gz +satcomp14/reg_s_2_unknown.cnf.gz +satcomp14/9dlx_vliw_at_b_iq9.cnf.gz +satcomp14/hwmcc10-timeframe-expansion-k50-pdtvisns3p00-tseitin.cnf.gz +satcomp14/UCG-20-10p1.cnf.gz +satcomp14/UCG-20-10p0.cnf.gz +satcomp14/atco_enc3_opt2_10_12.cnf.gz +satcomp14/atco_enc3_opt2_05_21.cnf.gz +satcomp14/9dlx_vliw_at_b_iq8.used-as.sat04-718.cnf.gz +satcomp14/11pipe_k.cnf.gz +satcomp14/gss-20-s100.cnf.gz +satcomp14/002-80-12.cnf.gz +satcomp14/atco_enc2_opt2_10_21.cnf.gz +satcomp14/atco_enc3_opt2_10_14.cnf.gz +satcomp14/UTI-20-10p1.cnf.gz +satcomp14/transport-transport-city-sequential-35nodes-1000size-4degree-100mindistance-4trucks-14packages-2008seed.040-NOTKNOWN.cnf.gz +satcomp14/velev-vliw-uns-4.0-9-i1.cnf.gz +satcomp14/010-80-12.cnf.gz +satcomp14/001-80-12.cnf.gz +satcomp14/007-80-12.cnf.gz +satcomp14/008-80-12.cnf.gz +satcomp14/009-80-8.cnf.gz +satcomp14/ACG-20-5p1.cnf.gz +satcomp14/atco_enc3_opt1_13_48.cnf.gz +satcomp14/stable-400-0.1-12-98765432140012.cnf.gz +satcomp14/004-80-8.cnf.gz +satcomp14/14pipe_q0_k.cnf.gz +satcomp14/ACG-20-5p0.cnf.gz +satcomp14/002-80-8.cnf.gz +satcomp14/003-80-8.cnf.gz +satcomp14/9dlx_vliw_at_b_iq7.cnf.gz +satcomp14/aaai10-planning-ipc5-TPP-21-step11.cnf.gz +satcomp14/atco_enc1_opt1_10_15.cnf.gz +satcomp14/AProVE09-06.cnf.gz +satcomp14/008-80-8.cnf.gz +satcomp14/ACG-15-10p1.cnf.gz +satcomp14/atco_enc2_opt2_05_9.cnf.gz +satcomp14/bob12m02-opt.cnf.gz +satcomp14/007-80-8.cnf.gz +satcomp14/blocks-blocks-36-0.120-NOTKNOWN.cnf.gz +satcomp14/atco_enc3_opt1_04_50.cnf.gz +satcomp14/13pipe_q0_k.cnf.gz +satcomp14/UR-15-10p0.cnf.gz +satcomp14/gss-19-s100.cnf.gz +satcomp14/AProVE07-27.cnf.gz +satcomp14/bjrb07amba10andenv.cnf.gz +satcomp14/partial-10-11-s.cnf.gz +satcomp14/korf-17.cnf.gz +satcomp14/vmpc_32.renamed-as.sat05-1919.cnf.gz +satcomp14/atco_enc2_opt1_20_11.cnf.gz +satcomp14/ACG-15-10p0.cnf.gz +satcomp14/UR-15-10p1.cnf.gz +satcomp14/atco_enc1_opt1_10_21.cnf.gz +satcomp14/UCG-15-10p0.cnf.gz +satcomp14/atco_enc2_opt1_10_21.cnf.gz +satcomp14/UCG-20-5p0.cnf.gz +satcomp14/blocks-blocks-37-1.130-NOTKNOWN.cnf.gz +satcomp14/UCG-15-10p1.cnf.gz +satcomp14/9dlx_vliw_at_b_iq6.used-as.sat04-347.cnf.gz +satcomp14/005-80-12.cnf.gz +satcomp14/atco_enc1_opt2_10_14.cnf.gz +satcomp14/aaai10-planning-ipc5-pathways-13-step17.cnf.gz +satcomp14/UTI-20-10p0.cnf.gz +satcomp14/atco_enc1_opt2_10_15.cnf.gz +satcomp14/atco_enc2_opt2_20_11.cnf.gz +satcomp14/006-80-4.cnf.gz +satcomp14/bob12m02.cnf.gz +satcomp14/009-80-4.cnf.gz +satcomp14/6s16-opt.cnf.gz +satcomp14/countbitssrl032.cnf.gz +satcomp14/stable-400-0.1-7-9876543214007.cnf.gz +satcomp14/E02F22.cnf.gz +satcomp14/12pipe_q0_k.cnf.gz +satcomp14/008-80-4.cnf.gz +satcomp14/atco_enc3_opt1_03_53.cnf.gz +satcomp14/hwmcc10-timeframe-expansion-k50-pdtpmsns2-tseitin.cnf.gz +satcomp14/6s12.cnf.gz +satcomp14/bob12s02.cnf.gz +satcomp14/6s16.cnf.gz +satcomp14/dated-10-13-u.cnf.gz +satcomp14/6s184.cnf.gz +satcomp14/UR-20-5p0.cnf.gz +satcomp14/6s131-opt.cnf.gz +satcomp14/6s17-opt.cnf.gz +satcomp14/6s9.cnf.gz +satcomp14/6s10.cnf.gz +satcomp14/6s11-opt.cnf.gz +satcomp14/6s13-opt.cnf.gz +satcomp14/UTI-20-5p1.cnf.gz +satcomp14/bob12m09-opt.cnf.gz +satcomp14/aaai10-planning-ipc5-pathways-17-step20.cnf.gz +satcomp14/velev-vliw-uns-2.0-uq5.cnf.gz +satcomp14/6s130-opt.cnf.gz +satcomp14/stable-300-0.1-20-98765432130020.cnf.gz +satcomp14/atco_enc1_opt2_10_12.cnf.gz +satcomp14/dated-10-11-u.cnf.gz +satcomp14/grieu-vmpc-31.cnf.gz +satcomp14/11pipe_q0_k.cnf.gz +satcomp14/6s133.cnf.gz +satcomp14/AProVE07-08.cnf.gz +satcomp14/UCG-20-5p1.cnf.gz +satcomp14/10pipe_q0_k.cnf.gz +satcomp14/esawn_uw3.debugged.cnf.gz +satcomp14/grid-strips-grid-y-3.055-NOTKNOWN.cnf.gz +satcomp14/atco_enc2_opt2_05_4.cnf.gz +satcomp14/minxor128.cnf.gz +satcomp14/vmpc_29.cnf.gz +satcomp14/002-80-4.cnf.gz +satcomp14/bob12s09-opt.cnf.gz +satcomp14/manol-pipe-c10nidw.cnf.gz +satcomp14/partial-5-17-s.cnf.gz +satcomp14/total-10-13-u.cnf.gz +satcomp14/atco_enc1_opt1_18_18.cnf.gz +satcomp14/minxorminand064.cnf.gz +satcomp14/manol-pipe-g10bid_i.cnf.gz +satcomp14/grid-strips-grid-y-3.065-SAT.cnf.gz +satcomp14/9vliw_m_9stages_iq3_C1_bug1.cnf.gz +satcomp14/transport-transport-city-sequential-25nodes-1000size-3degree-100mindistance-3trucks-10packages-2008seed.050-NOTKNOWN.cnf.gz +satcomp14/9dlx_vliw_at_b_iq4.cnf.gz +satcomp14/atco_enc1_opt1_04_32.cnf.gz +satcomp14/blocks-blocks-36-0.130-NOTKNOWN.cnf.gz +satcomp14/q_query_3_l48_lambda.cnf.gz +satcomp14/manol-pipe-c10nid_i.cnf.gz +satcomp14/grid-strips-grid-y-3.035-NOTKNOWN.cnf.gz +satcomp14/atco_enc1_opt2_05_4.cnf.gz +satcomp14/q_query_3_l46_lambda.cnf.gz +satcomp14/q_query_3_l45_lambda.cnf.gz +satcomp14/gss-18-s100.cnf.gz +satcomp14/hwmcc10-timeframe-expansion-k45-pdtpmsgoodbakery-tseitin.cnf.gz +satcomp14/6s169-opt.cnf.gz +satcomp14/pb_300_10_lb_08.cnf.gz +satcomp14/8pipe_k.cnf.gz +satcomp14/9vliw_m_9stages_iq3_C1_bug9.cnf.gz +satcomp14/q_query_3_L200_coli.sat.cnf.gz +satcomp14/AProVE07-03.cnf.gz +satcomp14/velev-vliw-uns-4.0-9.cnf.gz +satcomp14/beempgsol5b1.cnf.gz +satcomp14/beempgsol2b1.cnf.gz +satcomp14/post-cbmc-aes-ee-r2-noholes.cnf.gz +satcomp14/E02F20.cnf.gz +satcomp14/post-c32s-ss-8.cnf.gz +satcomp14/9vliw_m_9stages_iq3_C1_bug8.cnf.gz +satcomp14/manol-pipe-c8nidw.cnf.gz +satcomp14/atco_enc1_opt1_03_56.cnf.gz +satcomp14/post-cbmc-aes-d-r2.cnf.gz +satcomp14/post-cbmc-aes-d-r2-noholes.cnf.gz +satcomp14/c10bi_i.cnf.gz +satcomp14/q_query_3_L150_coli.sat.cnf.gz +satcomp14/bob12m04.cnf.gz +satcomp14/9dlx_vliw_at_b_iq3.cnf.gz +satcomp14/atco_enc2_opt1_15_100.cnf.gz +satcomp14/partial-5-15-s.cnf.gz +satcomp14/9vliw_m_9stages_iq3_C1_bug7.cnf.gz +satcomp14/9vliw_m_9stages_iq3_C1_bug10.cnf.gz +satcomp14/9vliw_m_9stages_iq3_C1_bug4.cnf.gz +satcomp14/9vliw_m_9stages_iq3_C1_bug3.cnf.gz +satcomp14/6s167-opt.cnf.gz +satcomp14/zfcp-2.8-u2-nh.cnf.gz +satcomp14/6s153.cnf.gz +satcomp14/post-cbmc-zfcp-2.8-u2.cnf.gz +satcomp14/7pipe_k.cnf.gz +satcomp14/pb_300_10_lb_07.cnf.gz +satcomp14/atco_enc1_opt1_15_240.cnf.gz +satcomp14/openstacks-sequencedstrips-nonadl-nonnegated-os-sequencedstrips-p30_3.085-SAT.cnf.gz +satcomp14/openstacks-p30_3.085-SAT.cnf.gz +satcomp14/atco_enc1_opt1_05_21.cnf.gz +satcomp14/q_query_3_L100_coli.sat.cnf.gz +satcomp14/transport-transport-city-sequential-25nodes-1000size-3degree-100mindistance-3trucks-10packages-2008seed.040-NOTKNOWN.cnf.gz +satcomp14/6s168-opt.cnf.gz +satcomp14/MD5-27-4.cnf.gz +satcomp14/maxxor032.cnf.gz +satcomp14/q_query_3_L80_coli.sat.cnf.gz +satcomp14/aaai10-planning-ipc5-TPP-30-step11.cnf.gz +satcomp14/q_query_3_L90_coli.sat.cnf.gz +satcomp14/k2fix_gr_rcs_w9.shuffled.cnf.gz +satcomp14/transport-transport-city-sequential-25nodes-1000size-3degree-100mindistance-3trucks-10packages-2008seed.030-NOTKNOWN.cnf.gz +satcomp14/atco_enc2_opt1_05_21.cnf.gz +satcomp14/transport-transport-city-sequential-25nodes-1000size-3degree-100mindistance-3trucks-10packages-2008seed.020-NOTKNOWN.cnf.gz +satcomp14/manol-pipe-c10nidw_s.cnf.gz +satcomp14/complete-500-0.1-17-98765432150017.cnf.gz +satcomp14/complete-500-0.1-8-9876543215008.cnf.gz +satcomp14/complete-500-0.1-7-9876543215007.cnf.gz +satcomp14/complete-500-0.1-15-98765432150015.cnf.gz +satcomp14/complete-500-0.1-1-9876543215001.cnf.gz +satcomp14/6s165-nonopt.cnf.gz +satcomp14/rbcl_xits_14_SAT.cnf.gz +satcomp14/aes_64_1_keyfind_1.cnf.gz +satcomp14/smtlib-qfbv-aigs-lfsr_004_127_112-tseitin.cnf.gz +satcomp14/complete-400-0.1-3-9876543214003.cnf.gz +satcomp14/complete-400-0.1-12-98765432140012.cnf.gz +satcomp14/complete-400-0.1-16-98765432140016.cnf.gz +satcomp14/rpoc_xits_15_SAT.cnf.gz +satcomp14/complete-400-0.1-7-9876543214007.cnf.gz +satcomp14/itox_vc1130.cnf.gz +satcomp14/complete-300-0.1-4-9876543213004.cnf.gz +satcomp14/complete-300-0.1-8-9876543213008.cnf.gz +satcomp14/complete-300-0.1-18-98765432130018.cnf.gz +satcomp14/complete-300-0.1-7-9876543213007.cnf.gz diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/config/satcomp16_updated b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/config/satcomp16_updated new file mode 100644 index 000000000..21425bd38 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/config/satcomp16_updated @@ -0,0 +1,300 @@ +satcomp16/10pipe_k.cnf.gz +satcomp16/14pipe_q0_k.cnf.gz +satcomp16/16pipe_16_ooo.cnf.gz +satcomp16/1dlx_c_iq57_a.cnf.gz +satcomp16/26_stack_cas_longest_true-unreach-call.i-cbmc-u2.cnf.gz +satcomp16/9dlx_vliw_at_b_iq4.used-as.sat04-345.cnf.gz +satcomp16/9dlx_vliw_at_b_iq8.used-as.sat04-718.cnf.gz +satcomp16/9dlx_vliw_at_b_iq9.used-as.sat04-719.cnf.gz +satcomp16/ACG-20-10p0.cnf.gz +satcomp16/ACG-20-5p1.cnf.gz +satcomp16/AProVE07-25.cnf.gz +satcomp16/AProVE11-06.cnf.gz +satcomp16/C168_FW_UT_518.cnf.gz +satcomp16/E00N23.cnf.gz +satcomp16/E02F22.cnf.gz +satcomp16/Sz1024_34824.smt2-stp212.cnf.gz +satcomp16/Sz512_15127_1.smt2-stp212.cnf.gz +satcomp16/Sz512_15127_3.smt2-cvc4.cnf.gz +satcomp16/Sz512_15127_4.smt2-cvc4.cnf.gz +satcomp16/Sz512_15127_5.smt2-stp212.cnf.gz +satcomp16/Sz512_15127_6.smt2-stp212.cnf.gz +satcomp16/Sz512_15128_0.smt2-stp212.cnf.gz +satcomp16/Sz512_15128_1.smt2-cvc4.cnf.gz +satcomp16/UCG-20-5p1.cnf.gz +satcomp16/UR-15-10p0.cnf.gz +satcomp16/UTI-20-10p1.cnf.gz +satcomp16/UTI-20-5p1.cnf.gz +satcomp16/abb313GPIA-9-c.used-as.sat04-317.cnf.gz +satcomp16/ablmulub16x4o.cnf.gz +satcomp16/ablmulub2x32o.cnf.gz +satcomp16/ablmulub8x16o.cnf.gz +satcomp16/add_01_1000_4.smt2-cvc4.cnf.gz +satcomp16/aes_32_3_keyfind_2.cnf.gz +satcomp16/aes_32_5_keyfind_1.cnf.gz +satcomp16/aes_64_2_keyfind_1.cnf.gz +satcomp16/aes_64_3_keyfind_1.cnf.gz +satcomp16/ak016modbtsimpbisc.cnf.gz +satcomp16/ak032diagodiagoisc.cnf.gz +satcomp16/ak032modbtmodbtisc.cnf.gz +satcomp16/ak032modbtsimpbisc.cnf.gz +satcomp16/ak064boothboothisc.cnf.gz +satcomp16/ak064diagodiagoisc.cnf.gz +satcomp16/ak064modasbg2asisc.cnf.gz +satcomp16/ak064modbtmodbtisc.cnf.gz +satcomp16/ak064paralbg2btaig.cnf.gz +satcomp16/ak064paralparalisc.cnf.gz +satcomp16/ak064simpbbg2btaig.cnf.gz +satcomp16/ak128astepbg2msaig.cnf.gz +satcomp16/ak128boothbg2btisc.cnf.gz +satcomp16/ak128boothboothisc.cnf.gz +satcomp16/ak128diagobg2asaig.cnf.gz +satcomp16/ak128modasbg2asisc.cnf.gz +satcomp16/ak128modbtbg2msisc.cnf.gz +satcomp16/ak128paralbg2msisc.cnf.gz +satcomp16/ak128paralparalisc.cnf.gz +satcomp16/ak128simpbbg2msisc.cnf.gz +satcomp16/am_7_7.shuffled-as.sat03-363.cnf.gz +satcomp16/am_9_9.cnf.gz +satcomp16/arcfour_initialPermutation_5_32.cnf.gz +satcomp16/arcfour_initialPermutation_6_14.cnf.gz +satcomp16/barman-pfile06-022.sas.ex.7.cnf.gz +satcomp16/barman-pfile07-027.sas.cr.37.cnf.gz +satcomp16/barman-pfile07-028.sas.ex.15.cnf.gz +satcomp16/barman-pfile08-030.sas.cr.27.cnf.gz +satcomp16/barman-pfile08-032.sas.ex.15.cnf.gz +satcomp16/barman-pfile08-032.sas.ex.7.cnf.gz +satcomp16/barman-pfile09-036.sas.cr.33.cnf.gz +satcomp16/barman-pfile10-037.sas.ex.7.cnf.gz +satcomp16/barman-pfile10-038.sas.cr.25.cnf.gz +satcomp16/barman-pfile10-038.sas.ex.15.cnf.gz +satcomp16/barman-pfile10-039.sas.ex.15.cnf.gz +satcomp16/barman-pfile10-040.sas.cr.17.cnf.gz +satcomp16/barman-pfile10-040.sas.cr.21.cnf.gz +satcomp16/barman-pfile10-040.sas.ex.15.cnf.gz +satcomp16/countbitsarray04_32.cnf.gz +satcomp16/countbitssrl128.cnf.gz +satcomp16/ctl_3791_556_unsat.cnf.gz +satcomp16/ctl_4291_567_8_unsat.cnf.gz +satcomp16/cube-11-h13-unsat.cnf.gz +satcomp16/custmulsb2x32o.cnf.gz +satcomp16/custmulun16x16o.cnf.gz +satcomp16/dated-10-19-u.cnf.gz +satcomp16/div2.c.20.smt2-stp212.cnf.gz +satcomp16/e2_1.c.smt2-stp212.cnf.gz +satcomp16/e2_2.c.smt2-cvc4.cnf.gz +satcomp16/e2a_2.c.smt2-cvc4.cnf.gz +satcomp16/eq.atree.braun.11.unsat.cnf.gz +satcomp16/eq.atree.braun.12.unsat.cnf.gz +satcomp16/eq.atree.braun.13.unsat.cnf.gz +satcomp16/esawn_uw3.debugged.cnf.gz +satcomp16/f1000.cnf.gz +satcomp16/f600.cnf.gz +satcomp16/g250.29.cnf.gz +satcomp16/gaussian.c.75.smt2-cvc4.cnf.gz +satcomp16/gripper14u.cnf.gz +satcomp16/gss-20-s100.cnf.gz +satcomp16/gss-24-s100.cnf.gz +satcomp16/gss-26-s100.cnf.gz +satcomp16/gss-27-s100.cnf.gz +satcomp16/gss-28-s100.cnf.gz +satcomp16/gss-29-s100.cnf.gz +satcomp16/gus-md5-10.cnf.gz +satcomp16/gus-md5-12.cnf.gz +satcomp16/hitag2-8-60-0-0xb2021557d918860-94.cnf.gz +satcomp16/homer17.cnf.gz +satcomp16/ibm-2002-23r-k90.cnf.gz +satcomp16/k2mul.miter.cnf.gz +satcomp16/k_unsat.cnf.gz +satcomp16/korf-18.cnf.gz +satcomp16/li-exam-61.cnf.gz +satcomp16/li-exam-61.shuffled-as.sat03-366.cnf.gz +satcomp16/li-exam-62.cnf.gz +satcomp16/li-exam-63.cnf.gz +satcomp16/li-test4-100.cnf.gz +satcomp16/li-test4-95.cnf.gz +satcomp16/li-test4-96.cnf.gz +satcomp16/li-test4-98.cnf.gz +satcomp16/li-test4-99.cnf.gz +satcomp16/maxor128.cnf.gz +satcomp16/maxxororand032.cnf.gz +satcomp16/minxorminand128.cnf.gz +satcomp16/mix034_rmo.opt_false-unreach-call.i-cbmc-u2.cnf.gz +satcomp16/miza-sr06-md5-48-01.cnf.gz +satcomp16/mizh-md5-47-3.cnf.gz +satcomp16/modgen-n200-m90860q08c40-1006.cnf.gz +satcomp16/modgen-n200-m90860q08c40-11953.cnf.gz +satcomp16/modgen-n200-m90860q08c40-12992.cnf.gz +satcomp16/modgen-n200-m90860q08c40-13845.cnf.gz +satcomp16/modgen-n200-m90860q08c40-1434.cnf.gz +satcomp16/modgen-n200-m90860q08c40-14424.cnf.gz +satcomp16/modgen-n200-m90860q08c40-14808.cnf.gz +satcomp16/modgen-n200-m90860q08c40-15163.cnf.gz +satcomp16/modgen-n200-m90860q08c40-15606.cnf.gz +satcomp16/modgen-n200-m90860q08c40-1585.cnf.gz +satcomp16/modgen-n200-m90860q08c40-16597.cnf.gz +satcomp16/modgen-n200-m90860q08c40-1876.cnf.gz +satcomp16/modgen-n200-m90860q08c40-18788.cnf.gz +satcomp16/modgen-n200-m90860q08c40-18972.cnf.gz +satcomp16/modgen-n200-m90860q08c40-19419.cnf.gz +satcomp16/modgen-n200-m90860q08c40-2087.cnf.gz +satcomp16/modgen-n200-m90860q08c40-21438.cnf.gz +satcomp16/modgen-n200-m90860q08c40-22556.cnf.gz +satcomp16/modgen-n200-m90860q08c40-25297.cnf.gz +satcomp16/modgen-n200-m90860q08c40-28046.cnf.gz +satcomp16/modgen-n200-m90860q08c40-29020.cnf.gz +satcomp16/modgen-n200-m90860q08c40-3230.cnf.gz +satcomp16/modgen-n200-m90860q08c40-3866.cnf.gz +satcomp16/modgen-n200-m90860q08c40-4208.cnf.gz +satcomp16/modgen-n200-m90860q08c40-5377.cnf.gz +satcomp16/modgen-n200-m90860q08c40-6295.cnf.gz +satcomp16/modgen-n200-m90860q08c40-6336.cnf.gz +satcomp16/modgen-n200-m90860q08c40-6967.cnf.gz +satcomp16/modgen-n200-m90860q08c40-9056.cnf.gz +satcomp16/mul_03_3000_1.smt2-cvc4.cnf.gz +satcomp16/mulhs016.cnf.gz +satcomp16/mulhs032.cnf.gz +satcomp16/mulhs064.cnf.gz +satcomp16/ndhf_xits_09_UNSAT.cnf.gz +satcomp16/ndhf_xits_17_UNKNOWN.cnf.gz +satcomp16/newton.2.2.i.smt2-cvc4.cnf.gz +satcomp16/newton.2.3.i.smt2-cvc4.cnf.gz +satcomp16/newton.2.3.i.smt2-stp212.cnf.gz +satcomp16/newton.3.3.i.smt2-stp212.cnf.gz +satcomp16/newton.4.3.i.smt2-stp212.cnf.gz +satcomp16/newton.5.1.i.smt2-cvc4.cnf.gz +satcomp16/openstacks-sequencedstrips-nonadl-nonnegated-os-sequencedstrips-p30_1.035-NOTKNOWN.cnf.gz +satcomp16/openstacks-sequencedstrips-nonadl-nonnegated-os-sequencedstrips-p30_3.045-NOTKNOWN.cnf.gz +satcomp16/par32-1-c.cnf.gz +satcomp16/par32-3-c.cnf.gz +satcomp16/partial-10-13-u.cnf.gz +satcomp16/partial-10-15-s.cnf.gz +satcomp16/partial-10-19-s.cnf.gz +satcomp16/partial-10-19-u.cnf.gz +satcomp16/partial-5-11-u.cnf.gz +satcomp16/partial-5-15-u.cnf.gz +satcomp16/partial-5-17-u.cnf.gz +satcomp16/partial-5-19-u.cnf.gz +satcomp16/pb_400_02_lb_15.cnf.gz +satcomp16/podwr001_power.opt_false-unreach-call.i-cbmc-u2.cnf.gz +satcomp16/q_query_3_L200_coli.sat.cnf.gz +satcomp16/qurt.c.20.smt2-cvc4.cnf.gz +satcomp16/rbcl_xits_09_UNKNOWN.cnf.gz +satcomp16/rbcl_xits_11_UNKNOWN.cnf.gz +satcomp16/rbcl_xits_13_UNKNOWN.cnf.gz +satcomp16/rpoc_xits_08_UNSAT.cnf.gz +satcomp16/rpoc_xits_09_UNSAT.cnf.gz +satcomp16/rpoc_xits_10_UNKNOWN.cnf.gz +satcomp16/rpoc_xits_11_UNKNOWN.cnf.gz +satcomp16/rpoc_xits_14_UNKNOWN.cnf.gz +satcomp16/safe-30-h29-unsat.cnf.gz +satcomp16/safe009_pso.oepc_true-unreach-call.i-cbmc-u2.cnf.gz +satcomp16/safe027_pso.opt_true-unreach-call.i-cbmc-u2.cnf.gz +satcomp16/safe028_tso.oepc_true-unreach-call.i-cbmc-u2.cnf.gz +satcomp16/safe029_power.opt_false-unreach-call.i-cbmc-u2.cnf.gz +satcomp16/sat_prob_143.cnf.gz +satcomp16/sat_prob_23.cnf.gz +satcomp16/sat_prob_3.cnf.gz +satcomp16/sat_prob_63.cnf.gz +satcomp16/sat_prob_83.cnf.gz +satcomp16/schup-l2s-bc56s-1-k391.cnf.gz +satcomp16/servers_slapd_a_vc149923.cnf.gz +satcomp16/sin.c.75.smt2-cvc4.cnf.gz +satcomp16/sin2.c.2.smt2-cvc4.cnf.gz +satcomp16/sin2.c.20.smt2-cvc4.cnf.gz +satcomp16/slp-synthesis-aes-top21.cnf.gz +satcomp16/slp-synthesis-aes-top23.cnf.gz +satcomp16/slp-synthesis-aes-top26.cnf.gz +satcomp16/smtlib-qfbv-aigs-VS3-benchmark-S2-tseitin.cnf.gz +satcomp16/smulo128.cnf.gz +satcomp16/sncf_model_ixl_bmc_depth_07.cnf.gz +satcomp16/sncf_model_ixl_bmc_depth_08.cnf.gz +satcomp16/sncf_model_ixl_bmc_depth_09.cnf.gz +satcomp16/sncf_model_ixl_bmc_depth_10.cnf.gz +satcomp16/sncf_model_ixl_bmc_depth_11.cnf.gz +satcomp16/sncf_model_ixl_bmc_depth_12.cnf.gz +satcomp16/sncf_model_ixl_bmc_depth_13.cnf.gz +satcomp16/sncf_model_ixl_bmc_depth_14.cnf.gz +satcomp16/sncf_model_ixl_bmc_depth_15.cnf.gz +satcomp16/snw_13_8_CCSEncnopre.cnf.gz +satcomp16/snw_13_8_CCSpreOptEncpre.cnf.gz +satcomp16/snw_13_8_CCSpreOptnopre.cnf.gz +satcomp16/snw_13_8_CCSpreOptpre.cnf.gz +satcomp16/snw_13_8_pre.cnf.gz +satcomp16/snw_13_9_CCSEncpre.cnf.gz +satcomp16/snw_13_9_CCSpre.cnf.gz +satcomp16/snw_13_9_Encpre.cnf.gz +satcomp16/snw_13_9_pre.cnf.gz +satcomp16/snw_13_9_preOptEncpre.cnf.gz +satcomp16/snw_13_9_preOpt_pre.cnf.gz +satcomp16/snw_16_8_nopre.cnf.gz +satcomp16/snw_16_8_pre.cnf.gz +satcomp16/snw_16_8_preOpt_pre.cnf.gz +satcomp16/snw_16_9_CCSpre.cnf.gz +satcomp16/snw_16_9_CCSpreOptpre.cnf.gz +satcomp16/snw_16_9_Encpre.cnf.gz +satcomp16/snw_16_9_pre.cnf.gz +satcomp16/snw_16_9_preOptEncpre.cnf.gz +satcomp16/snw_16_9_preOpt_pre.cnf.gz +satcomp16/snw_17_9_CCSpreOptEncpre.cnf.gz +satcomp16/sokoban-p01.sas.ex.17.cnf.gz +satcomp16/sokoban-p04.sas.ex.13.cnf.gz +satcomp16/sokoban-p09.sas.cr.25.cnf.gz +satcomp16/sokoban-p10.sas.cr.35.cnf.gz +satcomp16/sokoban-p16.sas.cr.37.cnf.gz +satcomp16/sokoban-p16.sas.cr.39.cnf.gz +satcomp16/sokoban-p16.sas.ex.15.cnf.gz +satcomp16/sokoban-p16.sas.ex.17.cnf.gz +satcomp16/sokoban-p16.sas.ex.19.cnf.gz +satcomp16/sokoban-p16.sas.ex.21.cnf.gz +satcomp16/sokoban-p16.sas.ex.23.cnf.gz +satcomp16/sokoban-p17.sas.ex.11.cnf.gz +satcomp16/sokoban-p18.sas.cr.29.cnf.gz +satcomp16/sokoban-p19.sas.cr.23.cnf.gz +satcomp16/sokoban-p20.sas.cr.21.cnf.gz +satcomp16/sokoban-p20.sas.cr.23.cnf.gz +satcomp16/sokoban-p20.sas.cr.25.cnf.gz +satcomp16/sokoban-p20.sas.cr.27.cnf.gz +satcomp16/sokoban-p20.sas.cr.29.cnf.gz +satcomp16/sokoban-p20.sas.cr.31.cnf.gz +satcomp16/sokoban-p20.sas.cr.33.cnf.gz +satcomp16/sokoban-p20.sas.cr.35.cnf.gz +satcomp16/sokoban-p20.sas.cr.37.cnf.gz +satcomp16/sokoban-p20.sas.cr.39.cnf.gz +satcomp16/sokoban-p20.sas.ex.11.cnf.gz +satcomp16/sokoban-p20.sas.ex.13.cnf.gz +satcomp16/sokoban-p20.sas.ex.15.cnf.gz +satcomp16/sokoban-p20.sas.ex.17.cnf.gz +satcomp16/sokoban-p20.sas.ex.19.cnf.gz +satcomp16/sokoban-p20.sas.ex.21.cnf.gz +satcomp16/sokoban-p20.sas.ex.23.cnf.gz +satcomp16/sokoban-sequential-p145-microban-sequential.050-NOTKNOWN.cnf.gz +satcomp16/sokoban-sequential-p145-microban-sequential.070-NOTKNOWN.cnf.gz +satcomp16/sortnet-7-ipc5-h15-unsat.cnf.gz +satcomp16/sortnet-8-ipc5-h18-unsat.cnf.gz +satcomp16/square.2.0.i.smt2-cvc4.cnf.gz +satcomp16/test_v3_r3_vr10_c1_s24300.smt2-stp212.cnf.gz +satcomp16/test_v3_r8_vr5_c1_s8257.smt2-stp212.cnf.gz +satcomp16/test_v5_r5_vr1_c1_s15604.smt2-stp212.cnf.gz +satcomp16/test_v7_r12_vr10_c1_s18160.smt2-cvc4.cnf.gz +satcomp16/test_v7_r12_vr10_c1_s18160.smt2-stp212.cnf.gz +satcomp16/test_v7_r12_vr1_c1_s22787.smt2-cvc4.cnf.gz +satcomp16/test_v7_r17_vr10_c1_s3680.smt2-stp212.cnf.gz +satcomp16/test_v7_r17_vr1_c1_s30331.smt2-stp212.cnf.gz +satcomp16/test_v7_r17_vr5_c1_s25451.smt2-cvc4.cnf.gz +satcomp16/test_v7_r17_vr5_c1_s2807.smt2-stp212.cnf.gz +satcomp16/test_v7_r7_vr10_c1_s32506.smt2-cvc4.cnf.gz +satcomp16/total-10-13-u.cnf.gz +satcomp16/total-10-19-u.cnf.gz +satcomp16/total-5-17-u.cnf.gz +satcomp16/traffic_3_uc_sat.cnf.gz +satcomp16/transport-transport-city-sequential-35nodes-1000size-4degree-100mindistance-4trucks-14packages-2008seed.020-NOTKNOWN.cnf.gz +satcomp16/transport-transport-city-sequential-35nodes-1000size-4degree-100mindistance-4trucks-14packages-2008seed.050-SAT.cnf.gz +satcomp16/transport-transport-three-cities-sequential-14nodes-1000size-4degree-100mindistance-4trucks-14packages-2008seed.040-NOTKNOWN.cnf.gz +satcomp16/transport-transport-two-cities-sequential-15nodes-1000size-3degree-100mindistance-3trucks-10packages-2008seed.020-NOTKNOWN.cnf.gz +satcomp16/transport-transport-two-cities-sequential-15nodes-1000size-3degree-100mindistance-3trucks-10packages-2008seed.040-SAT.cnf.gz +satcomp16/uum16.smt2-cvc4.cnf.gz +satcomp16/uum8.smt2-stp212.cnf.gz +satcomp16/valves-gates-1-k617-unsat.cnf.gz +satcomp16/velev-pipe-oun-1.1-05.cnf.gz +satcomp16/velev-vliw-uns-2.0-uq5.cnf.gz diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/config/satcomp17_updated b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/config/satcomp17_updated new file mode 100644 index 000000000..29894b0b4 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/config/satcomp17_updated @@ -0,0 +1,350 @@ +satcomp17/g2-ACG-15-10p1.cnf.gz +satcomp17/g2-ACG-20-10p1.cnf.gz +satcomp17/g2-ACG-20-5p1.cnf.gz +satcomp17/g2-Sz512_15128_1.smt2-cvc4.cnf.gz +satcomp17/g2-T1.2.1.cnf.gz +satcomp17/g2-T100.2.0.cnf.gz +satcomp17/g2-T101.2.0.cnf.gz +satcomp17/g2-T102.2.1.cnf.gz +satcomp17/g2-T103.2.1.cnf.gz +satcomp17/g2-T104.1.0.cnf.gz +satcomp17/g2-T105.2.1.cnf.gz +satcomp17/g2-T106.2.0.cnf.gz +satcomp17/g2-T108.2.1.cnf.gz +satcomp17/g2-T109.2.0.cnf.gz +satcomp17/g2-T110.2.1.cnf.gz +satcomp17/g2-T112.1.0.cnf.gz +satcomp17/g2-T118.2.1.cnf.gz +satcomp17/g2-T122.1.0.cnf.gz +satcomp17/g2-T124.2.0.cnf.gz +satcomp17/g2-T124.2.1.cnf.gz +satcomp17/g2-T133.2.1.cnf.gz +satcomp17/g2-T135.1.1.cnf.gz +satcomp17/g2-T141.1.0.cnf.gz +satcomp17/g2-T154.1.0.cnf.gz +satcomp17/g2-T155.1.0.cnf.gz +satcomp17/g2-T169.1.0.cnf.gz +satcomp17/g2-T169.2.0.cnf.gz +satcomp17/g2-T49.2.0.cnf.gz +satcomp17/g2-T50.2.0.cnf.gz +satcomp17/g2-T55.2.0.cnf.gz +satcomp17/g2-T58.2.0.cnf.gz +satcomp17/g2-T65.2.0.cnf.gz +satcomp17/g2-T65.2.1.cnf.gz +satcomp17/g2-T75.2.0.cnf.gz +satcomp17/g2-T81.2.1.cnf.gz +satcomp17/g2-T83.2.1.cnf.gz +satcomp17/g2-T85.2.1.cnf.gz +satcomp17/g2-T88.2.1.cnf.gz +satcomp17/g2-T89.2.1.cnf.gz +satcomp17/g2-T93.2.1.cnf.gz +satcomp17/g2-T96.1.1.cnf.gz +satcomp17/g2-T97.2.1.cnf.gz +satcomp17/g2-T99.2.0.cnf.gz +satcomp17/g2-T99.2.1.cnf.gz +satcomp17/g2-UCG-15-10p1.cnf.gz +satcomp17/g2-UCG-20-10p1.cnf.gz +satcomp17/g2-UCG-20-5p1.cnf.gz +satcomp17/g2-UR-20-10p1.cnf.gz +satcomp17/g2-UR-20-5p1.cnf.gz +satcomp17/g2-UTI-20-10p1.cnf.gz +satcomp17/g2-UTI-20-5p1.cnf.gz +satcomp17/g2-ak128astepbg1btisc.cnf.gz +satcomp17/g2-ak128astepbg2asisc.cnf.gz +satcomp17/g2-ak128astepbg2msaig.cnf.gz +satcomp17/g2-ak128astepbg2msisc.cnf.gz +satcomp17/g2-ak128astepmodasaig.cnf.gz +satcomp17/g2-ak128astepmodbtisc.cnf.gz +satcomp17/g2-ak128boothbg1btisc.cnf.gz +satcomp17/g2-ak128boothbg2asisc.cnf.gz +satcomp17/g2-ak128boothbg2msaig.cnf.gz +satcomp17/g2-ak128boothbg2msisc.cnf.gz +satcomp17/g2-ak128boothboothisc.cnf.gz +satcomp17/g2-ak128boothdiagoaig.cnf.gz +satcomp17/g2-ak128boothmodasaig.cnf.gz +satcomp17/g2-ak128diagobg1btaig.cnf.gz +satcomp17/g2-ak128diagobg2asaig.cnf.gz +satcomp17/g2-ak128diagodiagoisc.cnf.gz +satcomp17/g2-ak128modasbg1msisc.cnf.gz +satcomp17/g2-ak128modasbg1sbisc.cnf.gz +satcomp17/g2-ak128modasmodasisc.cnf.gz +satcomp17/g2-ak128modbtbg1asaig.cnf.gz +satcomp17/g2-ak128modbtbg1asisc.cnf.gz +satcomp17/g2-ak128modbtbg1btaig.cnf.gz +satcomp17/g2-ak128modbtbg2msisc.cnf.gz +satcomp17/g2-ak128modbtsimpbaig.cnf.gz +satcomp17/g2-ak128paralbg1sbisc.cnf.gz +satcomp17/g2-ak128paralbg2asaig.cnf.gz +satcomp17/g2-ak128paralparalisc.cnf.gz +satcomp17/g2-ak128paralsimpbaig.cnf.gz +satcomp17/g2-ak128simpbbg1sbisc.cnf.gz +satcomp17/g2-ak128simpbbg2asaig.cnf.gz +satcomp17/g2-gss-22-s100.cnf.gz +satcomp17/g2-gss-24-s100.cnf.gz +satcomp17/g2-gss-26-s100.cnf.gz +satcomp17/g2-gss-28-s100.cnf.gz +satcomp17/g2-gss-30-s100.cnf.gz +satcomp17/g2-gss-32-s100.cnf.gz +satcomp17/g2-gss-34-s100.cnf.gz +satcomp17/g2-gss-36-s100.cnf.gz +satcomp17/g2-gss-38-s100.cnf.gz +satcomp17/g2-gss-40-s100.cnf.gz +satcomp17/g2-hwmcc15deep-6s105-k35.cnf.gz +satcomp17/g2-hwmcc15deep-6s161-k17.cnf.gz +satcomp17/g2-hwmcc15deep-6s161-k18.cnf.gz +satcomp17/g2-hwmcc15deep-6s179-k17.cnf.gz +satcomp17/g2-hwmcc15deep-6s188-k44.cnf.gz +satcomp17/g2-hwmcc15deep-6s188-k46.cnf.gz +satcomp17/g2-hwmcc15deep-6s33-k33.cnf.gz +satcomp17/g2-hwmcc15deep-6s33-k34.cnf.gz +satcomp17/g2-hwmcc15deep-6s340rb63-k16.cnf.gz +satcomp17/g2-hwmcc15deep-6s340rb63-k22.cnf.gz +satcomp17/g2-hwmcc15deep-6s341r-k16.cnf.gz +satcomp17/g2-hwmcc15deep-6s341r-k19.cnf.gz +satcomp17/g2-hwmcc15deep-6s366r-k72.cnf.gz +satcomp17/g2-hwmcc15deep-6s399b02-k02.cnf.gz +satcomp17/g2-hwmcc15deep-6s399b03-k02.cnf.gz +satcomp17/g2-hwmcc15deep-6s44-k38.cnf.gz +satcomp17/g2-hwmcc15deep-6s44-k40.cnf.gz +satcomp17/g2-hwmcc15deep-6s516r-k17.cnf.gz +satcomp17/g2-hwmcc15deep-6s516r-k18.cnf.gz +satcomp17/g2-hwmcc15deep-beembkry8b1-k45.cnf.gz +satcomp17/g2-hwmcc15deep-beemcmbrdg7f2-k32.cnf.gz +satcomp17/g2-hwmcc15deep-beemfwt4b1-k48.cnf.gz +satcomp17/g2-hwmcc15deep-beemhanoi4b1-k32.cnf.gz +satcomp17/g2-hwmcc15deep-beemhanoi4b1-k37.cnf.gz +satcomp17/g2-hwmcc15deep-beemlifts3b1-k29.cnf.gz +satcomp17/g2-hwmcc15deep-beemloyd3b1-k31.cnf.gz +satcomp17/g2-hwmcc15deep-bob12s02-k16.cnf.gz +satcomp17/g2-hwmcc15deep-bob12s02-k17.cnf.gz +satcomp17/g2-hwmcc15deep-bobpcihm-k30.cnf.gz +satcomp17/g2-hwmcc15deep-bobpcihm-k31.cnf.gz +satcomp17/g2-hwmcc15deep-bobpcihm-k32.cnf.gz +satcomp17/g2-hwmcc15deep-bobpcihm-k33.cnf.gz +satcomp17/g2-hwmcc15deep-intel032-k84.cnf.gz +satcomp17/g2-hwmcc15deep-intel065-k11.cnf.gz +satcomp17/g2-hwmcc15deep-intel066-k10.cnf.gz +satcomp17/g2-hwmcc15deep-oski15a10b06s-k24.cnf.gz +satcomp17/g2-hwmcc15deep-oski15a10b08s-k23.cnf.gz +satcomp17/g2-hwmcc15deep-oski15a10b10s-k20.cnf.gz +satcomp17/g2-hwmcc15deep-oski15a10b10s-k22.cnf.gz +satcomp17/g2-hwmcc15deep-oski15a14b04s-k16.cnf.gz +satcomp17/g2-hwmcc15deep-oski15a14b30s-k24.cnf.gz +satcomp17/g2-mizh-md5-47-3.cnf.gz +satcomp17/g2-mizh-md5-47-5.cnf.gz +satcomp17/g2-mizh-md5-48-2.cnf.gz +satcomp17/g2-mizh-md5-48-5.cnf.gz +satcomp17/g2-modgen-n200-m90860q08c40-13698.cnf.gz +satcomp17/g2-modgen-n200-m90860q08c40-16823.cnf.gz +satcomp17/g2-modgen-n200-m90860q08c40-29667.cnf.gz +satcomp17/g2-modgen-n200-m90860q08c40-3230.cnf.gz +satcomp17/g2-modgen-n200-m90860q08c40-6967.cnf.gz +satcomp17/g2-mult1.c.50.smt2-cvc4.cnf.gz +satcomp17/g2-newton.8.3.i.smt2-cvc4.cnf.gz +satcomp17/g2-slp-synthesis-aes-top24.cnf.gz +satcomp17/g2-slp-synthesis-aes-top25.cnf.gz +satcomp17/g2-slp-synthesis-aes-top26.cnf.gz +satcomp17/g2-slp-synthesis-aes-top28.cnf.gz +satcomp17/g2-slp-synthesis-aes-top29.cnf.gz +satcomp17/g2-slp-synthesis-aes-top30.cnf.gz +satcomp17/g2-test_v5_r10_vr10_c1_s21502.smt2-cvc4.cnf.gz +satcomp17/g2-test_v7_r7_vr5_c1_s14675.smt2-cvc4.cnf.gz +satcomp17/mp1-21.0.cnf.gz +satcomp17/mp1-21.1.cnf.gz +satcomp17/mp1-21.2.cnf.gz +satcomp17/mp1-21.3.cnf.gz +satcomp17/mp1-21.4.cnf.gz +satcomp17/mp1-21.5.cnf.gz +satcomp17/mp1-21.6.cnf.gz +satcomp17/mp1-21.7.cnf.gz +satcomp17/mp1-21.8.cnf.gz +satcomp17/mp1-21.9.cnf.gz +satcomp17/mp1-22.0.cnf.gz +satcomp17/mp1-22.1.cnf.gz +satcomp17/mp1-22.2.cnf.gz +satcomp17/mp1-22.3.cnf.gz +satcomp17/mp1-22.4.cnf.gz +satcomp17/mp1-22.5.cnf.gz +satcomp17/mp1-22.6.cnf.gz +satcomp17/mp1-22.7.cnf.gz +satcomp17/mp1-22.8.cnf.gz +satcomp17/mp1-22.9.cnf.gz +satcomp17/mp1-23.0.cnf.gz +satcomp17/mp1-23.1.cnf.gz +satcomp17/mp1-23.2.cnf.gz +satcomp17/mp1-23.3.cnf.gz +satcomp17/mp1-23.4.cnf.gz +satcomp17/mp1-23.5.cnf.gz +satcomp17/mp1-23.6.cnf.gz +satcomp17/mp1-23.7.cnf.gz +satcomp17/mp1-23.8.cnf.gz +satcomp17/mp1-24.0.cnf.gz +satcomp17/mp1-24.1.cnf.gz +satcomp17/mp1-24.2.cnf.gz +satcomp17/mp1-24.3.cnf.gz +satcomp17/mp1-24.4.cnf.gz +satcomp17/mp1-24.5.cnf.gz +satcomp17/mp1-24.6.cnf.gz +satcomp17/mp1-24.7.cnf.gz +satcomp17/mp1-24.8.cnf.gz +satcomp17/mp1-24.9.cnf.gz +satcomp17/mp1-9_1.cnf.gz +satcomp17/mp1-9_11.cnf.gz +satcomp17/mp1-9_12.cnf.gz +satcomp17/mp1-9_14.cnf.gz +satcomp17/mp1-9_19.cnf.gz +satcomp17/mp1-9_21.cnf.gz +satcomp17/mp1-9_22.cnf.gz +satcomp17/mp1-9_24.cnf.gz +satcomp17/mp1-9_25.cnf.gz +satcomp17/mp1-9_27.cnf.gz +satcomp17/mp1-9_29.cnf.gz +satcomp17/mp1-9_3.cnf.gz +satcomp17/mp1-9_31.cnf.gz +satcomp17/mp1-9_34.cnf.gz +satcomp17/mp1-9_38.cnf.gz +satcomp17/mp1-9_4.cnf.gz +satcomp17/mp1-9_44.cnf.gz +satcomp17/mp1-9_49.cnf.gz +satcomp17/mp1-9_50.cnf.gz +satcomp17/mp1-9_9.cnf.gz +satcomp17/mp1-Nb5T06.cnf.gz +satcomp17/mp1-Nb5T07.cnf.gz +satcomp17/mp1-Nb5T14.cnf.gz +satcomp17/mp1-Nb5T15.cnf.gz +satcomp17/mp1-Nb5T16.cnf.gz +satcomp17/mp1-Nb6T06.cnf.gz +satcomp17/mp1-Nb6T07.cnf.gz +satcomp17/mp1-Nb6T25.cnf.gz +satcomp17/mp1-Nb6T27.cnf.gz +satcomp17/mp1-Nb6T28.cnf.gz +satcomp17/mp1-Nb6T29.cnf.gz +satcomp17/mp1-Nb6T30.cnf.gz +satcomp17/mp1-Nb7T07.cnf.gz +satcomp17/mp1-Nb7T08.cnf.gz +satcomp17/mp1-Nb7T42.cnf.gz +satcomp17/mp1-Nb7T43.cnf.gz +satcomp17/mp1-Nb7T44.cnf.gz +satcomp17/mp1-Nb7T45.cnf.gz +satcomp17/mp1-Nb7T46.cnf.gz +satcomp17/mp1-blockpuzzle_5x10_s2_free5.cnf.gz +satcomp17/mp1-blockpuzzle_5x10_s3_free4.cnf.gz +satcomp17/mp1-blockpuzzle_5x10_s5_free3.cnf.gz +satcomp17/mp1-blockpuzzle_5x10_s7_free4.cnf.gz +satcomp17/mp1-blockpuzzle_5x10_s8_free3.cnf.gz +satcomp17/mp1-blockpuzzle_5x12_s6_free3.cnf.gz +satcomp17/mp1-blockpuzzle_7x10_s10_free4.cnf.gz +satcomp17/mp1-blockpuzzle_7x10_s7_free8.cnf.gz +satcomp17/mp1-blockpuzzle_7x10_s9_free6.cnf.gz +satcomp17/mp1-blockpuzzle_8x8_s1_free4.cnf.gz +satcomp17/mp1-blockpuzzle_9x9_s1_free10.cnf.gz +satcomp17/mp1-blockpuzzle_9x9_s1_free7.cnf.gz +satcomp17/mp1-blockpuzzle_9x9_s1_free8.cnf.gz +satcomp17/mp1-blockpuzzle_9x9_s1_free9.cnf.gz +satcomp17/mp1-blockpuzzle_9x9_s4_free3.cnf.gz +satcomp17/mp1-blockpuzzle_9x9_s5_free3.cnf.gz +satcomp17/mp1-blockpuzzle_9x9_s7_free8.cnf.gz +satcomp17/mp1-blockpuzzle_9x9_s7_free9.cnf.gz +satcomp17/mp1-blockpuzzle_9x9_s8_free3.cnf.gz +satcomp17/mp1-blockpuzzle_9x9_s8_free7.cnf.gz +satcomp17/mp1-bsat180-648.cnf.gz +satcomp17/mp1-bsat192-689.cnf.gz +satcomp17/mp1-bsat201-707.cnf.gz +satcomp17/mp1-bsat210-739.cnf.gz +satcomp17/mp1-klieber2017s-0300-032-t12.cnf.gz +satcomp17/mp1-klieber2017s-0300-033-t12.cnf.gz +satcomp17/mp1-klieber2017s-0300-034-t12.cnf.gz +satcomp17/mp1-klieber2017s-0300-035-t12.cnf.gz +satcomp17/mp1-klieber2017s-0490-022-t12.cnf.gz +satcomp17/mp1-klieber2017s-0490-023-t12.cnf.gz +satcomp17/mp1-klieber2017s-0490-024-t12.cnf.gz +satcomp17/mp1-klieber2017s-0500-022-t12.cnf.gz +satcomp17/mp1-klieber2017s-0500-023-t12.cnf.gz +satcomp17/mp1-klieber2017s-0500-024-t12.cnf.gz +satcomp17/mp1-klieber2017s-1000-023-eq.cnf.gz +satcomp17/mp1-klieber2017s-1000-024-eq.cnf.gz +satcomp17/mp1-klieber2017s-1200-022-eq.cnf.gz +satcomp17/mp1-klieber2017s-1200-023-eq.cnf.gz +satcomp17/mp1-klieber2017s-1200-024-eq.cnf.gz +satcomp17/mp1-klieber2017s-1600-022-eq.cnf.gz +satcomp17/mp1-klieber2017s-1600-023-eq.cnf.gz +satcomp17/mp1-klieber2017s-1600-024-eq.cnf.gz +satcomp17/mp1-klieber2017s-2000-022-eq.cnf.gz +satcomp17/mp1-klieber2017s-2000-023-eq.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.6_0_1.45_0.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.6_0_1.45_2.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.6_0_1.45_4.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.6_0_1.45_6.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.6_0_1.45_8.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.6_0_1.50_0.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.6_0_1.50_2.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.6_0_1.50_4.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.6_0_1.50_6.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.6_0_1.50_8.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.7_0_1.45_0.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.7_0_1.45_2.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.7_0_1.45_4.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.7_0_1.45_6.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.7_0_1.45_8.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.7_0_1.50_0.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.7_0_1.50_2.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.7_0_1.50_4.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.7_0_1.50_6.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.7_0_1.50_8.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.8_0_1.50_0.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.8_0_1.50_2.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.8_0_1.50_4.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.8_0_1.50_6.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.8_0_1.50_8.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.8_0_1.55_0.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.8_0_1.55_2.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.8_0_1.55_4.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.8_0_1.55_6.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.8_0_1.55_8.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.8_0_1.60_0.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.8_0_1.60_2.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.8_0_1.60_4.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.8_0_1.60_6.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.8_0_1.60_8.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.8_0_1.70_0.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.8_0_1.70_2.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.8_0_1.70_4.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.8_0_1.70_6.cnf.gz +satcomp17/mp1-ps_5000_21250_3_0_0.8_0_1.70_8.cnf.gz +satcomp17/mp1-qpr-bmp280-driver-14.cnf.gz +satcomp17/mp1-qpr-bmp280-driver-5.cnf.gz +satcomp17/mp1-rubikcube012.cnf.gz +satcomp17/mp1-rubikcube031.cnf.gz +satcomp17/mp1-rubikcube101.cnf.gz +satcomp17/mp1-rubikcube120.cnf.gz +satcomp17/mp1-rubikcube212.cnf.gz +satcomp17/mp1-rubikcube220.cnf.gz +satcomp17/mp1-rubikcube301.cnf.gz +satcomp17/mp1-rubikcube312.cnf.gz +satcomp17/mp1-rubikcube401.cnf.gz +satcomp17/mp1-rubikcube420.cnf.gz +satcomp17/mp1-rubikcube512.cnf.gz +satcomp17/mp1-rubikcube520.cnf.gz +satcomp17/mp1-rubikcube601.cnf.gz +satcomp17/mp1-rubikcube612.cnf.gz +satcomp17/mp1-rubikcube701.cnf.gz +satcomp17/mp1-rubikcube720.cnf.gz +satcomp17/mp1-rubikcube812.cnf.gz +satcomp17/mp1-rubikcube820.cnf.gz +satcomp17/mp1-rubikcube901.cnf.gz +satcomp17/mp1-rubikcube912.cnf.gz +satcomp17/mp1-squ_ali_s10x10_c39_abio_SAT.cnf.gz +satcomp17/mp1-squ_ali_s10x10_c39_abix_SAT.cnf.gz +satcomp17/mp1-squ_ali_s10x10_c39_bail_SAT.cnf.gz +satcomp17/mp1-squ_ali_s10x10_c39_sinx_SAT.cnf.gz +satcomp17/mp1-squ_ali_s10x10_c39_sinz_SAT.cnf.gz +satcomp17/mp1-squ_any_s09x07_c27_abio_UNS.cnf.gz +satcomp17/mp1-squ_any_s09x07_c27_abix_UNS.cnf.gz +satcomp17/mp1-squ_any_s09x07_c27_bail_UNS.cnf.gz +satcomp17/mp1-squ_any_s09x07_c27_sinx_UNS.cnf.gz +satcomp17/mp1-squ_any_s09x07_c27_sinz_UNS.cnf.gz +satcomp17/mp1-tri_ali_s11_c35_abio_UNS.cnf.gz +satcomp17/mp1-tri_ali_s11_c35_abix_UNS.cnf.gz +satcomp17/mp1-tri_ali_s11_c35_bail_UNS.cnf.gz +satcomp17/mp1-tri_ali_s11_c35_sinx_UNS.cnf.gz +satcomp17/mp1-tri_ali_s11_c35_sinz_UNS.cnf.gz diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/config/satrace15_updated b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/config/satrace15_updated new file mode 100644 index 000000000..b256c5a09 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/config/satrace15_updated @@ -0,0 +1,300 @@ +satrace15/002-80-12.cnf.gz +satrace15/002-80-4.cnf.gz +satrace15/002-80-8.cnf.gz +satrace15/003-80-8.cnf.gz +satrace15/004-80-8.cnf.gz +satrace15/005-80-12.cnf.gz +satrace15/007-80-12.cnf.gz +satrace15/007-80-8.cnf.gz +satrace15/008-80-12.cnf.gz +satrace15/008-80-4.cnf.gz +satrace15/008-80-8.cnf.gz +satrace15/009-23-64.cnf.gz +satrace15/009-80-4.cnf.gz +satrace15/009-80-8.cnf.gz +satrace15/010-22-144.cnf.gz +satrace15/010-23-80.cnf.gz +satrace15/010-80-12.cnf.gz +satrace15/10pipe_q0_k.cnf.gz +satrace15/11pipe_k.cnf.gz +satrace15/13pipe_q0_k.cnf.gz +satrace15/38bits_10.dimacs.cnf.gz +satrace15/40bits_10.dimacs.cnf.gz +satrace15/42bits_12.dimacs.cnf.gz +satrace15/44bits_11.dimacs.cnf.gz +satrace15/46bits_11.dimacs.cnf.gz +satrace15/46bits_12.dimacs.cnf.gz +satrace15/46bits_14.dimacs.cnf.gz +satrace15/48bits_11.dimacs.cnf.gz +satrace15/48bits_12.dimacs.cnf.gz +satrace15/48bits_13.dimacs.cnf.gz +satrace15/48bits_14.dimacs.cnf.gz +satrace15/50bit.dimacs.cnf.gz +satrace15/50bits_10.dimacs.cnf.gz +satrace15/50bits_11.dimacs.cnf.gz +satrace15/50bits_13.dimacs.cnf.gz +satrace15/50bits_14.dimacs.cnf.gz +satrace15/52bits_12.dimacs.cnf.gz +satrace15/54bits_13.dimacs.cnf.gz +satrace15/56bits_12.dimacs.cnf.gz +satrace15/58bits_10.dimacs.cnf.gz +satrace15/58bits_11.dimacs.cnf.gz +satrace15/58bits_13.dimacs.cnf.gz +satrace15/62bits_10.dimacs.cnf.gz +satrace15/62bits_11.dimacs.cnf.gz +satrace15/62bits_14.dimacs.cnf.gz +satrace15/64bits_11.dimacs.cnf.gz +satrace15/64bits_13.dimacs.cnf.gz +satrace15/66bit.dimacs.cnf.gz +satrace15/6s11-opt.cnf.gz +satrace15/6s13-opt.cnf.gz +satrace15/6s130-opt.cnf.gz +satrace15/6s131-opt.cnf.gz +satrace15/6s133.cnf.gz +satrace15/6s151.cnf.gz +satrace15/6s16-opt.cnf.gz +satrace15/6s16.cnf.gz +satrace15/6s165-nonopt.cnf.gz +satrace15/6s167-opt.cnf.gz +satrace15/6s168-opt.cnf.gz +satrace15/6s169-opt.cnf.gz +satrace15/6s17-opt.cnf.gz +satrace15/6s9.cnf.gz +satrace15/7pipe_k.cnf.gz +satrace15/9dlx_vliw_at_b_iq8.used-as.sat04-718.cnf.gz +satrace15/ACG-15-10p0.cnf.gz +satrace15/ACG-20-10p1.cnf.gz +satrace15/ACG-20-5p0.cnf.gz +satrace15/AProVE07-03.cnf.gz +satrace15/AProVE07-27.cnf.gz +satrace15/AProVE09-06.cnf.gz +satrace15/E02F20.cnf.gz +satrace15/E02F22.cnf.gz +satrace15/MD5-28-1.cnf.gz +satrace15/MD5-29-2.cnf.gz +satrace15/MD5-29-4.cnf.gz +satrace15/MD5-29-5.cnf.gz +satrace15/MD5-30-1.cnf.gz +satrace15/MD5-30-5.cnf.gz +satrace15/SAT_dat.k70-24_1_rule_3.cnf.gz +satrace15/SAT_dat.k80-24_1_rule_1.cnf.gz +satrace15/SAT_dat.k85-24_1_rule_3.cnf.gz +satrace15/SAT_dat.k90.debugged.cnf.gz +satrace15/SAT_dat.k95-24_1_rule_3.cnf.gz +satrace15/UCG-15-10p1.cnf.gz +satrace15/UCG-20-10p0.cnf.gz +satrace15/UCG-20-10p1.cnf.gz +satrace15/UCG-20-5p0.cnf.gz +satrace15/UCG-20-5p1.cnf.gz +satrace15/UR-15-10p1.cnf.gz +satrace15/UR-20-10p0.cnf.gz +satrace15/UTI-20-10p1.cnf.gz +satrace15/UTI-20-5p1.cnf.gz +satrace15/aaai10-planning-ipc5-TPP-21-step11.cnf.gz +satrace15/aaai10-planning-ipc5-pathways-13-step17.cnf.gz +satrace15/aaai10-planning-ipc5-pathways-17-step20.cnf.gz +satrace15/aes_24_4_keyfind_5.cnf.gz +satrace15/aes_32_2_keyfind_1.cnf.gz +satrace15/aes_32_3_keyfind_1.cnf.gz +satrace15/aes_64_1_keyfind_1.cnf.gz +satrace15/aes_id.cnf.gz +satrace15/atco_enc1_opt1_04_32.cnf.gz +satrace15/atco_enc1_opt1_10_15.cnf.gz +satrace15/atco_enc1_opt1_10_21.cnf.gz +satrace15/atco_enc1_opt2_10_14.cnf.gz +satrace15/atco_enc1_opt2_10_16.cnf.gz +satrace15/atco_enc1_opt2_20_12.cnf.gz +satrace15/atco_enc2_opt2_05_9.cnf.gz +satrace15/atco_enc2_opt2_10_21.cnf.gz +satrace15/atco_enc2_opt2_20_11.cnf.gz +satrace15/atco_enc3_opt1_13_48.cnf.gz +satrace15/atco_enc3_opt2_10_12.cnf.gz +satrace15/atco_enc3_opt2_10_14.cnf.gz +satrace15/atco_enc3_opt2_18_44.cnf.gz +satrace15/beempgsol2b1.cnf.gz +satrace15/beempgsol5b1.cnf.gz +satrace15/bjrb07amba10andenv.cnf.gz +satrace15/bob12m02-opt.cnf.gz +satrace15/bob12m09-opt.cnf.gz +satrace15/bob12s02.cnf.gz +satrace15/complete-400-0.1-16-98765432140016.cnf.gz +satrace15/complete-400-0.1-3-9876543214003.cnf.gz +satrace15/complete-500-0.1-1-9876543215001.cnf.gz +satrace15/complete-500-0.1-15-98765432150015.cnf.gz +satrace15/complete-500-0.1-17-98765432150017.cnf.gz +satrace15/complete-500-0.1-8-9876543215008.cnf.gz +satrace15/countbitssrl032.cnf.gz +satrace15/dated-10-13-u.cnf.gz +satrace15/dated-10-17-u.cnf.gz +satrace15/dated-5-13-u.cnf.gz +satrace15/dimacs.cnf.gz +satrace15/grieu-vmpc-31.cnf.gz +satrace15/group_mulr.cnf.gz +satrace15/gss-18-s100.cnf.gz +satrace15/gss-19-s100.cnf.gz +satrace15/gss-22-s100.cnf.gz +satrace15/hitag2-10-60-0-0x8edc44db7837bbf-65.cnf.gz +satrace15/hitag2-10-60-0-0xe14721bd199894a-99.cnf.gz +satrace15/hitag2-8-60-0-0x1eb82244d7f1c3c-47.cnf.gz +satrace15/hwmcc10-timeframe-expansion-k45-pdtvisns3p02-tseitin.cnf.gz +satrace15/hwmcc10-timeframe-expansion-k50-pdtpmsns2-tseitin.cnf.gz +satrace15/hwmcc10-timeframe-expansion-k50-pdtvisns3p00-tseitin.cnf.gz +satrace15/itox_vc1130.cnf.gz +satrace15/jgiraldezlevy.2200.9086.08.40.108.cnf.gz +satrace15/jgiraldezlevy.2200.9086.08.40.109.cnf.gz +satrace15/jgiraldezlevy.2200.9086.08.40.117.cnf.gz +satrace15/jgiraldezlevy.2200.9086.08.40.135.cnf.gz +satrace15/jgiraldezlevy.2200.9086.08.40.136.cnf.gz +satrace15/jgiraldezlevy.2200.9086.08.40.149.cnf.gz +satrace15/jgiraldezlevy.2200.9086.08.40.158.cnf.gz +satrace15/jgiraldezlevy.2200.9086.08.40.167.cnf.gz +satrace15/jgiraldezlevy.2200.9086.08.40.180.cnf.gz +satrace15/jgiraldezlevy.2200.9086.08.40.188.cnf.gz +satrace15/jgiraldezlevy.2200.9086.08.40.194.cnf.gz +satrace15/jgiraldezlevy.2200.9086.08.40.2.cnf.gz +satrace15/jgiraldezlevy.2200.9086.08.40.20.cnf.gz +satrace15/jgiraldezlevy.2200.9086.08.40.22.cnf.gz +satrace15/jgiraldezlevy.2200.9086.08.40.28.cnf.gz +satrace15/jgiraldezlevy.2200.9086.08.40.33.cnf.gz +satrace15/jgiraldezlevy.2200.9086.08.40.35.cnf.gz +satrace15/jgiraldezlevy.2200.9086.08.40.41.cnf.gz +satrace15/jgiraldezlevy.2200.9086.08.40.46.cnf.gz +satrace15/jgiraldezlevy.2200.9086.08.40.62.cnf.gz +satrace15/jgiraldezlevy.2200.9086.08.40.79.cnf.gz +satrace15/jgiraldezlevy.2200.9086.08.40.8.cnf.gz +satrace15/jgiraldezlevy.2200.9086.08.40.81.cnf.gz +satrace15/jgiraldezlevy.2200.9086.08.40.83.cnf.gz +satrace15/jgiraldezlevy.2200.9086.08.40.85.cnf.gz +satrace15/jgiraldezlevy.2200.9086.08.40.93.cnf.gz +satrace15/k2fix_gr_rcs_w9.shuffled.cnf.gz +satrace15/manol-pipe-c10nid_i.cnf.gz +satrace15/manthey_DimacsSorterHalf_28_4.cnf.gz +satrace15/manthey_DimacsSorterHalf_29_2.cnf.gz +satrace15/manthey_DimacsSorterHalf_29_8.cnf.gz +satrace15/manthey_DimacsSorterHalf_30_0.cnf.gz +satrace15/manthey_DimacsSorterHalf_30_3.cnf.gz +satrace15/manthey_DimacsSorterHalf_30_7.cnf.gz +satrace15/manthey_DimacsSorterHalf_31_2.cnf.gz +satrace15/manthey_DimacsSorterHalf_31_8.cnf.gz +satrace15/manthey_DimacsSorterHalf_32_1.cnf.gz +satrace15/manthey_DimacsSorterHalf_33_1.cnf.gz +satrace15/manthey_DimacsSorterHalf_35_8.cnf.gz +satrace15/manthey_DimacsSorterHalf_35_9.cnf.gz +satrace15/manthey_DimacsSorterHalf_36_0.cnf.gz +satrace15/manthey_DimacsSorterHalf_36_7.cnf.gz +satrace15/manthey_DimacsSorterHalf_37_3.cnf.gz +satrace15/manthey_DimacsSorterHalf_37_6.cnf.gz +satrace15/manthey_DimacsSorterHalf_37_8.cnf.gz +satrace15/manthey_DimacsSorterHalf_37_9.cnf.gz +satrace15/manthey_DimacsSorter_28_0.cnf.gz +satrace15/manthey_DimacsSorter_28_3.cnf.gz +satrace15/manthey_DimacsSorter_28_4.cnf.gz +satrace15/manthey_DimacsSorter_28_7.cnf.gz +satrace15/manthey_DimacsSorter_29_8.cnf.gz +satrace15/manthey_DimacsSorter_30_1.cnf.gz +satrace15/manthey_DimacsSorter_30_4.cnf.gz +satrace15/manthey_DimacsSorter_30_5.cnf.gz +satrace15/manthey_DimacsSorter_30_6.cnf.gz +satrace15/manthey_DimacsSorter_31_0.cnf.gz +satrace15/manthey_DimacsSorter_31_4.cnf.gz +satrace15/manthey_DimacsSorter_31_6.cnf.gz +satrace15/manthey_DimacsSorter_31_8.cnf.gz +satrace15/manthey_DimacsSorter_32_1.cnf.gz +satrace15/manthey_DimacsSorter_35_1.cnf.gz +satrace15/manthey_DimacsSorter_35_7.cnf.gz +satrace15/manthey_DimacsSorter_35_8.cnf.gz +satrace15/manthey_DimacsSorter_36_4.cnf.gz +satrace15/manthey_DimacsSorter_36_7.cnf.gz +satrace15/manthey_DimacsSorter_37_3.cnf.gz +satrace15/manthey_DimacsSorter_37_6.cnf.gz +satrace15/manthey_single-ordered-initialized-w12-b6.cnf.gz +satrace15/manthey_single-ordered-initialized-w14-b7.cnf.gz +satrace15/manthey_single-ordered-initialized-w18-b7.cnf.gz +satrace15/manthey_single-ordered-initialized-w18-b8.cnf.gz +satrace15/manthey_single-ordered-initialized-w20-b10.cnf.gz +satrace15/manthey_single-ordered-initialized-w20-b7.cnf.gz +satrace15/manthey_single-ordered-initialized-w20-b8.cnf.gz +satrace15/manthey_single-ordered-initialized-w22-b6.cnf.gz +satrace15/manthey_single-ordered-initialized-w22-b8.cnf.gz +satrace15/manthey_single-ordered-initialized-w24-b7.cnf.gz +satrace15/manthey_single-ordered-initialized-w24-b9.cnf.gz +satrace15/manthey_single-ordered-initialized-w26-b7.cnf.gz +satrace15/manthey_single-ordered-initialized-w26-b8.cnf.gz +satrace15/manthey_single-ordered-initialized-w28-b8.cnf.gz +satrace15/manthey_single-ordered-initialized-w32-b9.cnf.gz +satrace15/manthey_single-ordered-initialized-w40-b10.cnf.gz +satrace15/manthey_single-ordered-initialized-w40-b8.cnf.gz +satrace15/manthey_single-ordered-initialized-w42-b8.cnf.gz +satrace15/manthey_single-ordered-initialized-w42-b9.cnf.gz +satrace15/manthey_single-ordered-initialized-w44-b6.cnf.gz +satrace15/manthey_single-ordered-initialized-w44-b7.cnf.gz +satrace15/manthey_single-ordered-initialized-w44-b8.cnf.gz +satrace15/manthey_single-ordered-initialized-w44-b9.cnf.gz +satrace15/manthey_single-ordered-initialized-w46-b7.cnf.gz +satrace15/manthey_single-ordered-initialized-w46-b8.cnf.gz +satrace15/manthey_single-ordered-initialized-w46-b9.cnf.gz +satrace15/manthey_single-ordered-initialized-w48-b6.cnf.gz +satrace15/manthey_single-ordered-initialized-w48-b7.cnf.gz +satrace15/manthey_single-ordered-initialized-w48-b8.cnf.gz +satrace15/manthey_single-ordered-initialized-w48-b9.cnf.gz +satrace15/manthey_single-ordered-initialized-w50-b6.cnf.gz +satrace15/manthey_single-ordered-initialized-w50-b7.cnf.gz +satrace15/manthey_single-ordered-initialized-w52-b6.cnf.gz +satrace15/manthey_single-ordered-initialized-w54-b9.cnf.gz +satrace15/minandmaxor128.cnf.gz +satrace15/minxorminand064.cnf.gz +satrace15/mrpp_4x4#10_20.cnf.gz +satrace15/mrpp_4x4#10_9.cnf.gz +satrace15/mrpp_4x4#12_12.cnf.gz +satrace15/mrpp_4x4#4_24.cnf.gz +satrace15/mrpp_4x4#4_4.cnf.gz +satrace15/mrpp_4x4#4_5.cnf.gz +satrace15/mrpp_4x4#6_16.cnf.gz +satrace15/mrpp_4x4#6_20.cnf.gz +satrace15/mrpp_4x4#6_5.cnf.gz +satrace15/mrpp_4x4#8_8.cnf.gz +satrace15/mrpp_6x6#10_10.cnf.gz +satrace15/mrpp_6x6#10_8.cnf.gz +satrace15/mrpp_6x6#12_16.cnf.gz +satrace15/mrpp_6x6#12_8.cnf.gz +satrace15/mrpp_6x6#14_24.cnf.gz +satrace15/mrpp_6x6#16_12.cnf.gz +satrace15/mrpp_6x6#16_24.cnf.gz +satrace15/mrpp_6x6#16_9.cnf.gz +satrace15/mrpp_6x6#18_12.cnf.gz +satrace15/mrpp_6x6#18_9.cnf.gz +satrace15/mrpp_6x6#20_10.cnf.gz +satrace15/mrpp_8x8#12_9.cnf.gz +satrace15/mrpp_8x8#16_12.cnf.gz +satrace15/mrpp_8x8#18_12.cnf.gz +satrace15/mrpp_8x8#18_13.cnf.gz +satrace15/mrpp_8x8#18_20.cnf.gz +satrace15/mrpp_8x8#20_16.cnf.gz +satrace15/mrpp_8x8#20_20.cnf.gz +satrace15/mrpp_8x8#22_10.cnf.gz +satrace15/mrpp_8x8#22_11.cnf.gz +satrace15/mrpp_8x8#22_20.cnf.gz +satrace15/mrpp_8x8#22_24.cnf.gz +satrace15/mrpp_8x8#24_11.cnf.gz +satrace15/mrpp_8x8#24_14.cnf.gz +satrace15/mrpp_8x8#24_16.cnf.gz +satrace15/mrpp_8x8#24_20.cnf.gz +satrace15/mrpp_8x8#24_24.cnf.gz +satrace15/mrpp_8x8#8_9.cnf.gz +satrace15/openstacks-p30_3.085-SAT.cnf.gz +satrace15/partial-10-11-s.cnf.gz +satrace15/partial-5-15-s.cnf.gz +satrace15/partial-5-17-s.cnf.gz +satrace15/post-c32s-ss-8.cnf.gz +satrace15/post-cbmc-aes-d-r2-noholes.cnf.gz +satrace15/post-cbmc-aes-d-r2.cnf.gz +satrace15/post-cbmc-aes-ee-r2-noholes.cnf.gz +satrace15/q_query_3_L150_coli.sat.cnf.gz +satrace15/q_query_3_L200_coli.sat.cnf.gz +satrace15/q_query_3_L80_coli.sat.cnf.gz +satrace15/transport-transport-city-sequential-25nodes-1000size-3degree-100mindistance-3trucks-10packages-2008seed.040-NOTKNOWN.cnf.gz +satrace15/transport-transport-city-sequential-35nodes-1000size-4degree-100mindistance-4trucks-14packages-2008seed.040-NOTKNOWN.cnf.gz +satrace15/velev-vliw-uns-2.0-uq5.cnf.gz +satrace15/velev-vliw-uns-4.0-9-i1.cnf.gz +satrace15/vmpc_29.cnf.gz +satrace15/vmpc_33.cnf.gz diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/config/test_updated b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/config/test_updated new file mode 100644 index 000000000..f3df488e9 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/config/test_updated @@ -0,0 +1,8 @@ +test/6s165-nonopt.cnf.gz +test/a.cnf.gz +test/complete-400-0.1-16-98765432140016.cnf.gz +test/d.cnf.gz +test/f.cnf.gz +test/k2fix_gr_rcs_w9.shuffled.cnf.gz +test/manol-pipe-c10nidw_s.cnf.gz +test/z.cnf.gz diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/config/unsat_small_candidates_fullpath b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/config/unsat_small_candidates_fullpath new file mode 100644 index 000000000..568331ddb --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/config/unsat_small_candidates_fullpath @@ -0,0 +1,425 @@ +satcomp13/slp-synthesis-aes-bottom13.cnf.gz +satcomp13/smtlib-qfbv-aigs-lfsr_004_127_112-tseitin.cnf.gz +satcomp13/ctl_4291_567_12_unsat_pre.cnf.gz +satcomp13/hwmcc10-timeframe-expansion-k45-pdtvissoap1-tseitin.cnf.gz +satcomp13/dated-10-13-u.cnf.gz +satcomp13/biere6s153.cnf.gz +satcomp13/maxxor032.cnf.gz +satcomp13/ctl_4291_567_7_unsat_pre.cnf.gz +satcomp13/pb_200_10_lb_15.cnf.gz +satcomp13/minxorminand064.cnf.gz +satcomp13/pb_200_05_lb_00.cnf.gz +satcomp13/pb_300_10_lb_06.cnf.gz +satcomp13/hwmcc10-timeframe-expansion-k45-pdtpmsgoodbakery-tseitin.cnf.gz +satcomp13/6s133.cnf.gz +satcomp13/b_unsat_pre.cnf.gz +satcomp13/pb_200_03_lb_02.cnf.gz +satcomp13/UR-20-5p0.cnf.gz +satcomp13/ctl_4291_567_7_unsat.cnf.gz +satcomp13/SAT_dat.k80.cnf.gz +satcomp13/p01_lb_05.cnf.gz +satcomp13/maxor064.cnf.gz +satcomp13/UR-15-10p0.cnf.gz +satcomp13/pb_400_03_lb_05.cnf.gz +satcomp13/beempgsol2b1.cnf.gz +satcomp13/ctl_4291_567_9_unsat_pre.cnf.gz +satcomp13/aaai10-planning-ipc5-pipesworld-12-step15.cnf.gz +satcomp13/aaai10-planning-ipc5-pathways-17-step20.cnf.gz +satcomp13/pb_400_09_lb_02.cnf.gz +satcomp13/biere6s165.cnf.gz +satcomp13/velev-vliw-uns-4.0-9.cnf.gz +satcomp13/AProVE07-27.cnf.gz +satcomp13/AProVE07-03.cnf.gz +satcomp13/9dlx_vliw_at_b_iq4.cnf.gz +satcomp13/pb_300_04_lb_05.cnf.gz +satcomp13/gus-md5-08.cnf.gz +satcomp13/smtlib-qfbv-aigs-ext_con_032_008_0256-tseitin.cnf.gz +satcomp13/minxorminand128.cnf.gz +satcomp13/countbitssrl032.cnf.gz +satcomp13/biere6s9.cnf.gz +satcomp13/arcfour_initialPermutation_6_14.cnf.gz +satcomp13/7pipe_k.cnf.gz +satcomp13/ctl_4291_567_9_unsat.cnf.gz +satcomp13/hwmcc10-timeframe-expansion-k50-pdtpmsns2-tseitin.cnf.gz +satcomp13/pb_200_03_lb_01.cnf.gz +satcomp13/SAT_dat.k100.cnf.gz +satcomp13/biere6s19.cnf.gz +satcomp13/AProVE07-02.cnf.gz +satcomp13/aaai10-planning-ipc5-pathways-13-step17.cnf.gz +satcomp13/pb_300_04_lb_06.cnf.gz +satcomp13/8pipe_q0_k.cnf.gz +satcomp13/bierebob12s02.cnf.gz +satcomp13/pb_400_09_lb_03.cnf.gz +satcomp13/beempgsol5b1.cnf.gz +satcomp13/arcfour_initialPermutation_6_15.cnf.gz +satcomp13/ctl_4291_567_12_unsat.cnf.gz +satcomp13/minxor128.cnf.gz +satcomp13/biere6s166.cnf.gz +satcomp13/dated-10-11-u.cnf.gz +satcomp09/ACG-10-5p0.cnf.gz +satcomp09/uts-l05-ipc5-h26-unsat.cnf.gz +satcomp09/blocks-4-ipc5-h22-unknown.cnf.gz +satcomp09/q_query_3_L150_coli.sat.cnf.gz +satcomp09/velev-vliw-uns-4.0-9C1.cnf.gz +satcomp09/post-c32s-ss-8.cnf.gz +satcomp09/q_query_3_L80_coli.sat.cnf.gz +satcomp09/manol-pipe-c10nid_i.cnf.gz +satcomp09/q_query_3_L100_coli.sat.cnf.gz +satcomp09/9dlx_vliw_at_b_iq5.cnf.gz +satcomp09/q_query_3_l46_lambda.cnf.gz +satcomp09/dated-5-17-u.cnf.gz +satcomp09/maxand064.cnf.gz +satcomp09/q_query_3_l45_lambda.cnf.gz +satcomp09/manol-pipe-f9n.cnf.gz +satcomp09/UTI-15-5p0.cnf.gz +satcomp09/hoons-vbmc-lucky7.cnf.gz +satcomp09/9dlx_vliw_at_b_iq2.cnf.gz +satcomp09/manol-pipe-c10nidw_s.cnf.gz +satcomp09/UTI-15-10p0.cnf.gz +satcomp09/manol-pipe-c9.cnf.gz +satcomp09/minxorminand064.cnf.gz +satcomp09/AProVE07-16.cnf.gz +satcomp09/smulo016.cnf.gz +satcomp09/goldb-heqc-dalumul.cnf.gz +satcomp09/q_query_3_l48_lambda.cnf.gz +satcomp09/post-c32s-gcdm16-23.cnf.gz +satcomp09/schup-l2s-abp4-1-k31.cnf.gz +satcomp09/simon-s02b-dp11u10.cnf.gz +satcomp09/UR-20-5p0.cnf.gz +satcomp09/countbitssrl016.cnf.gz +satcomp09/gus-md5-07.cnf.gz +satcomp09/rpoc_xits_07_UNSAT.cnf.gz +satcomp09/q_query_3_L200_coli.sat.cnf.gz +satcomp09/dated-5-15-u.cnf.gz +satcomp09/eq.atree.braun.10.unsat.cnf.gz +satcomp09/cmu-bmc-longmult15.cnf.gz +satcomp09/UR-15-10p0.cnf.gz +satcomp09/q_query_2_L324_coli.cnf.gz +satcomp09/AProVE07-09.cnf.gz +satcomp09/countbitsrotate016.cnf.gz +satcomp09/post-cbmc-aes-d-r2-noholes.cnf.gz +satcomp09/UCG-15-10p0.cnf.gz +satcomp09/maxxororand032.cnf.gz +satcomp09/goldb-heqc-alu4mul.cnf.gz +satcomp09/q_query_3_l47_lambda.cnf.gz +satcomp09/schup-l2s-bc56s-1-k391.cnf.gz +satcomp09/minor032.cnf.gz +satcomp09/q_query_3_L90_coli.sat.cnf.gz +satcomp09/eq.atree.braun.8.unsat.cnf.gz +satcomp09/UTI-10-10p0.cnf.gz +satcomp09/AProVE07-08.cnf.gz +satcomp09/minxorminand032.cnf.gz +satcomp09/aloul-chnl11-13.cnf.gz +satcomp09/total-10-13-u.cnf.gz +satcomp09/goldb-heqc-i10mul.cnf.gz +satcomp09/manol-pipe-c6bidw_i.cnf.gz +satcomp09/9dlx_vliw_at_b_iq3.cnf.gz +satcomp09/post-cbmc-aes-ee-r3-noholes.cnf.gz +satcomp09/icbrt1_32.cnf.gz +satcomp09/post-c32s-col400-16.cnf.gz +satcomp09/eq.atree.braun.9.unsat.cnf.gz +satcomp09/AProVE07-27.cnf.gz +satcomp09/post-cbmc-aes-ee-r2-noholes.cnf.gz +satcomp09/hsat_vc11813.cnf.gz +satcomp09/manol-pipe-c10nidw.cnf.gz +satcomp09/gus-md5-06.cnf.gz +satcomp09/manol-pipe-c7nidw.cnf.gz +satcomp09/velev-engi-uns-1.0-4nd.cnf.gz +satcomp09/9dlx_vliw_at_b_iq4.cnf.gz +satcomp09/post-cbmc-aes-ele-noholes.cnf.gz +satcomp09/countbitswegner064.cnf.gz +satcomp09/total-5-13-u.cnf.gz +satcomp09/minor064.cnf.gz +satcomp09/manol-pipe-g6bi.cnf.gz +satcomp09/UR-15-5p0.cnf.gz +satcomp09/velev-pipe-o-uns-1.0-7.cnf.gz +satcomp09/emptyroom-4-h21-unsat.cnf.gz +satcomp09/minxorminand128.cnf.gz +satcomp09/countbitssrl032.cnf.gz +satcomp09/manol-pipe-g10nid.cnf.gz +satcomp09/total-5-11-u.cnf.gz +satcomp09/velev-pipe-o-uns-1.1-6.cnf.gz +satcomp09/uts-l06-ipc5-h33-unknown.cnf.gz +satcomp09/UR-10-5p0.cnf.gz +satcomp09/een-tip-uns-nusmv-t5.B.cnf.gz +satcomp09/velev-live-uns-2.0-ebuf.cnf.gz +satcomp09/gus-md5-05.cnf.gz +satcomp09/manol-pipe-g10id.cnf.gz +satcomp09/manol-pipe-g7nidw.cnf.gz +satcomp09/goldb-heqc-term1mul.cnf.gz +satcomp09/manol-pipe-c7bidw_i.cnf.gz +satcomp09/rbcl_xits_06_UNSAT.cnf.gz +satcomp09/uts-l05-ipc5-h27-unknown.cnf.gz +satcomp09/manol-pipe-c6nidw_i.cnf.gz +satcomp09/xinetd_vc56703.cnf.gz +satcomp09/schup-l2s-guid-1-k56.cnf.gz +satcomp09/uts-l06-ipc5-h31-unknown.cnf.gz +satcomp09/rpoc_xits_08_UNSAT.cnf.gz +satcomp09/manol-pipe-f9b.cnf.gz +satcomp09/gus-md5-04.cnf.gz +satcomp09/uts-l06-ipc5-h28-unknown.cnf.gz +satcomp09/9dlx_vliw_at_b_iq1.cnf.gz +satcomp09/cmu-bmc-barrel6.cnf.gz +satcomp09/manol-pipe-f10ni.cnf.gz +satcomp09/UCG-10-5p0.cnf.gz +satcomp09/minand128.cnf.gz +satcomp09/simon-s03-fifo8-300.cnf.gz +satcomp09/manol-pipe-g10bidw.cnf.gz +satcomp09/goldb-heqc-frg1mul.cnf.gz +satcomp09/UCG-15-5p0.cnf.gz +satcomp09/goldb-heqc-x1mul.cnf.gz +satcomp09/minandmaxor032.cnf.gz +satcomp09/countbitsarray02_32.cnf.gz +satcomp09/minxor128.cnf.gz +satcomp09/UTI-20-5p0.cnf.gz +satcomp09/rbcl_xits_07_UNSAT.cnf.gz +satcomp09/hsat_vc11803.cnf.gz +satcomp09/q_query_3_l44_lambda.cnf.gz +satcomp14/velev-vliw-uns-2.0-uq5.cnf.gz +satcomp14/smtlib-qfbv-aigs-lfsr_004_127_112-tseitin.cnf.gz +satcomp14/atco_enc1_opt2_05_4.cnf.gz +satcomp14/q_query_3_L150_coli.sat.cnf.gz +satcomp14/post-c32s-ss-8.cnf.gz +satcomp14/q_query_3_L80_coli.sat.cnf.gz +satcomp14/manol-pipe-c10nid_i.cnf.gz +satcomp14/q_query_3_L100_coli.sat.cnf.gz +satcomp14/6s131-opt.cnf.gz +satcomp14/dated-10-13-u.cnf.gz +satcomp14/q_query_3_l46_lambda.cnf.gz +satcomp14/maxxor032.cnf.gz +satcomp14/q_query_3_l45_lambda.cnf.gz +satcomp14/manol-pipe-c10nidw_s.cnf.gz +satcomp14/minxorminand064.cnf.gz +satcomp14/6s153.cnf.gz +satcomp14/manol-pipe-c8nidw.cnf.gz +satcomp14/6s184.cnf.gz +satcomp14/6s10.cnf.gz +satcomp14/6s167-opt.cnf.gz +satcomp14/q_query_3_l48_lambda.cnf.gz +satcomp14/hwmcc10-timeframe-expansion-k45-pdtpmsgoodbakery-tseitin.cnf.gz +satcomp14/6s133.cnf.gz +satcomp14/pb_300_10_lb_08.cnf.gz +satcomp14/bob12s02.cnf.gz +satcomp14/post-cbmc-aes-d-r2.cnf.gz +satcomp14/UR-20-5p0.cnf.gz +satcomp14/atco_enc1_opt2_10_12.cnf.gz +satcomp14/q_query_3_L200_coli.sat.cnf.gz +satcomp14/atco_enc1_opt2_10_14.cnf.gz +satcomp14/UR-15-10p0.cnf.gz +satcomp14/beempgsol2b1.cnf.gz +satcomp14/post-cbmc-aes-d-r2-noholes.cnf.gz +satcomp14/UCG-15-10p0.cnf.gz +satcomp14/aaai10-planning-ipc5-pathways-17-step20.cnf.gz +satcomp14/q_query_3_L90_coli.sat.cnf.gz +satcomp14/6s17-opt.cnf.gz +satcomp14/6s11-opt.cnf.gz +satcomp14/manol-pipe-g10bid_i.cnf.gz +satcomp14/AProVE07-08.cnf.gz +satcomp14/total-10-13-u.cnf.gz +satcomp14/9dlx_vliw_at_b_iq3.cnf.gz +satcomp14/6s13-opt.cnf.gz +satcomp14/k2fix_gr_rcs_w9.shuffled.cnf.gz +satcomp14/velev-vliw-uns-4.0-9.cnf.gz +satcomp14/AProVE07-27.cnf.gz +satcomp14/post-cbmc-aes-ee-r2-noholes.cnf.gz +satcomp14/manol-pipe-c10nidw.cnf.gz +satcomp14/AProVE07-03.cnf.gz +satcomp14/UCG-20-5p0.cnf.gz +satcomp14/9dlx_vliw_at_b_iq4.cnf.gz +satcomp14/6s165-nonopt.cnf.gz +satcomp14/bob12s09-opt.cnf.gz +satcomp14/c10bi_i.cnf.gz +satcomp14/grid-strips-grid-y-3.035-NOTKNOWN.cnf.gz +satcomp14/smtlib-qfbv-aigs-ext_con_032_008_0256-tseitin.cnf.gz +satcomp14/6s9.cnf.gz +satcomp14/countbitssrl032.cnf.gz +satcomp14/6s16.cnf.gz +satcomp14/7pipe_k.cnf.gz +satcomp14/hwmcc10-timeframe-expansion-k50-pdtpmsns2-tseitin.cnf.gz +satcomp14/aaai10-planning-ipc5-pathways-13-step17.cnf.gz +satcomp14/6s16-opt.cnf.gz +satcomp14/6s130-opt.cnf.gz +satcomp14/6s168-opt.cnf.gz +satcomp14/6s12.cnf.gz +satcomp14/atco_enc1_opt2_10_15.cnf.gz +satcomp14/beempgsol5b1.cnf.gz +satcomp14/6s169-opt.cnf.gz +satcomp14/bob12m09-opt.cnf.gz +satcomp14/minxor128.cnf.gz +satcomp14/dated-10-11-u.cnf.gz +satcomp14/pb_300_10_lb_07.cnf.gz +satcomp16/velev-vliw-uns-2.0-uq5.cnf.gz +satcomp16/q_query_3_L200_coli.sat.cnf.gz +satcomp16/UR-15-10p0.cnf.gz +satcomp16/maxxororand032.cnf.gz +satcomp16/schup-l2s-bc56s-1-k391.cnf.gz +satcomp16/total-10-13-u.cnf.gz +satcomp16/minxorminand128.cnf.gz +satcomp16/arcfour_initialPermutation_6_14.cnf.gz +satcomp16/rpoc_xits_08_UNSAT.cnf.gz +satcomp11/slp-synthesis-aes-bottom13.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k45-pdtswvrod6x8p1-tseitin.cnf.gz +satcomp11/smtlib-qfbv-aigs-lfsr_004_127_112-tseitin.cnf.gz +satcomp11/q_query_3_L150_coli.sat.cnf.gz +satcomp11/hard-25-U-7061.cnf.gz +satcomp11/smtlib-qfbv-aigs-lfsr_008_063_080-tseitin.cnf.gz +satcomp11/aaai10-planning-ipc5-pipesworld-27-step13.cnf.gz +satcomp11/grid-strips-grid-y-4.025-NOTKNOWN.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k45-pdtvissoap1-tseitin.cnf.gz +satcomp11/q_query_3_l46_lambda.cnf.gz +satcomp11/AProVE07-21.cnf.gz +satcomp11/hard-18-U-10652.cnf.gz +satcomp11/maxxor032.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k50-bc57sensorsp3-tseitin.cnf.gz +satcomp11/traffic_pcb_unknown.cnf.gz +satcomp11/traffic_fb_unknown.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k45-bc57sensorsp1-tseitin.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k45-pdtviseisenberg1-tseitin.cnf.gz +satcomp11/E02F17.cnf.gz +satcomp11/comb1.shuffled.cnf.gz +satcomp11/ACG-10-10p0.cnf.gz +satcomp11/post-c32s-gcdm16-23.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k45-pdtpmsgoodbakery-tseitin.cnf.gz +satcomp11/manol-pipe-f7nidw.cnf.gz +satcomp11/slp-synthesis-aes-bottom12.cnf.gz +satcomp11/korf-15.cnf.gz +satcomp11/SAT_dat.k80.cnf.gz +satcomp11/dspam_dump_vc949.cnf.gz +satcomp11/aaai10-planning-ipc5-pipesworld-12-step15.cnf.gz +satcomp11/rand_net60-30-1.shuffled.cnf.gz +satcomp11/UCG-15-10p0.cnf.gz +satcomp11/smtlib-qfbv-aigs-lfsr_008_079_112-tseitin.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k50-pdtswvsam6x8p3-tseitin.cnf.gz +satcomp11/aaai10-planning-ipc5-pathways-17-step20.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k45-pdtswvqis8x8p2-tseitin.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k45-bobsm5378d2-tseitin.cnf.gz +satcomp11/6pipe_6_ooo.shuffled-as.sat03-413.cnf.gz +satcomp11/traffic_f_unknown.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k50-bjrb07amba2andenv-tseitin.cnf.gz +satcomp11/SAT_dat.k45.cnf.gz +satcomp11/manol-pipe-c6bidw_i.cnf.gz +satcomp11/minandmaxor016.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k50-pdtviseisenberg2-tseitin.cnf.gz +satcomp11/AProVE11-11.cnf.gz +satcomp11/k2fix_gr_rcs_w9.shuffled.cnf.gz +satcomp11/traffic_kkb_unknown.cnf.gz +satcomp11/dp04u03.shuffled.cnf.gz +satcomp11/aaai10-planning-ipc5-pipesworld-18-step15.cnf.gz +satcomp11/k2mul.miter.shuffled-as.sat03-355.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k50-bc57sensorsp2-tseitin.cnf.gz +satcomp11/E07N15.cnf.gz +satcomp11/x1mul.miter.shuffled-as.sat03-359.cnf.gz +satcomp11/UTI-20-10t0.cnf.gz +satcomp11/homer14.shuffled.cnf.gz +satcomp11/all.used-as.sat04-986.cnf.gz +satcomp11/manol-pipe-c10nidw.cnf.gz +satcomp11/AProVE07-03.cnf.gz +satcomp11/E03N17.cnf.gz +satcomp11/hard-6-U-7061.cnf.gz +satcomp11/grid-strips-grid-y-3.035-NOTKNOWN.cnf.gz +satcomp11/velev-pipe-o-uns-1.0-7.cnf.gz +satcomp11/dated-5-11-u.cnf.gz +satcomp11/IBM_FV_2004_rule_batch_30_SAT_dat.k80.cnf.gz +satcomp11/hsat_vc12062.cnf.gz +satcomp11/smtlib-qfbv-aigs-ext_con_032_008_0256-tseitin.cnf.gz +satcomp11/minxorminand128.cnf.gz +satcomp11/blocks-4-ipc5-h21-unknown.cnf.gz +satcomp11/traffic_b_unsat.cnf.gz +satcomp11/velev-pipe-o-uns-1.1-6.cnf.gz +satcomp11/SAT_dat.k20.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k50-pdtpmsns2-tseitin.cnf.gz +satcomp11/SAT_dat.k100.cnf.gz +satcomp11/c10idw_i.cnf.gz +satcomp11/c6288mul.miter.shuffled-as.sat03-346.cnf.gz +satcomp11/blocks-blocks-37-1.120-NOTKNOWN.cnf.gz +satcomp11/sokoban-sequential-p145-microban-sequential.030-NOTKNOWN.cnf.gz +satcomp11/aaai10-planning-ipc5-pathways-13-step17.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k50-nusmvreactorp4-tseitin.cnf.gz +satcomp11/traffic_3b_unknown.cnf.gz +satcomp11/E04N18.cnf.gz +satcomp11/E05X15.cnf.gz +satcomp11/rand_net60-40-10.shuffled.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k50-pdtvisns2p3-tseitin.cnf.gz +satcomp11/manol-pipe-f7idw.cnf.gz +satcomp11/smtlib-qfbv-aigs-nlzbe256-tseitin.cnf.gz +satcomp11/rand_net60-25-10.shuffled.cnf.gz +satcomp11/E15N15.cnf.gz +satcomp11/dekker.used-as.sat04-989.cnf.gz +satcomp11/UCG-15-5p0.cnf.gz +satcomp11/hwmcc10-timeframe-expansion-k45-pdtswvtms14x8p1-tseitin.cnf.gz +satcomp11/rand_net70-60-10.shuffled.cnf.gz +satcomp11/aaai10-planning-ipc5-rovers-18-step11.cnf.gz +satrace15/velev-vliw-uns-2.0-uq5.cnf.gz +satrace15/q_query_3_L150_coli.sat.cnf.gz +satrace15/manthey_single-ordered-initialized-w42-b8.cnf.gz +satrace15/post-c32s-ss-8.cnf.gz +satrace15/q_query_3_L80_coli.sat.cnf.gz +satrace15/manthey_single-ordered-initialized-w40-b8.cnf.gz +satrace15/manthey_single-ordered-initialized-w44-b9.cnf.gz +satrace15/mrpp_8x8#8_9.cnf.gz +satrace15/manthey_single-ordered-initialized-w28-b8.cnf.gz +satrace15/manthey_single-ordered-initialized-w40-b10.cnf.gz +satrace15/manol-pipe-c10nid_i.cnf.gz +satrace15/6s131-opt.cnf.gz +satrace15/manthey_single-ordered-initialized-w22-b8.cnf.gz +satrace15/dated-10-13-u.cnf.gz +satrace15/mrpp_8x8#24_11.cnf.gz +satrace15/minxorminand064.cnf.gz +satrace15/mrpp_4x4#6_5.cnf.gz +satrace15/6s167-opt.cnf.gz +satrace15/manthey_single-ordered-initialized-w44-b7.cnf.gz +satrace15/manthey_single-ordered-initialized-w44-b6.cnf.gz +satrace15/6s133.cnf.gz +satrace15/manthey_single-ordered-initialized-w42-b9.cnf.gz +satrace15/mrpp_8x8#18_12.cnf.gz +satrace15/bob12s02.cnf.gz +satrace15/post-cbmc-aes-d-r2.cnf.gz +satrace15/manthey_single-ordered-initialized-w44-b8.cnf.gz +satrace15/manthey_single-ordered-initialized-w20-b8.cnf.gz +satrace15/group_mulr.cnf.gz +satrace15/q_query_3_L200_coli.sat.cnf.gz +satrace15/mrpp_6x6#16_9.cnf.gz +satrace15/atco_enc1_opt2_10_14.cnf.gz +satrace15/beempgsol2b1.cnf.gz +satrace15/post-cbmc-aes-d-r2-noholes.cnf.gz +satrace15/mrpp_6x6#12_8.cnf.gz +satrace15/aaai10-planning-ipc5-pathways-17-step20.cnf.gz +satrace15/6s17-opt.cnf.gz +satrace15/6s11-opt.cnf.gz +satrace15/6s13-opt.cnf.gz +satrace15/k2fix_gr_rcs_w9.shuffled.cnf.gz +satrace15/mrpp_6x6#20_10.cnf.gz +satrace15/AProVE07-27.cnf.gz +satrace15/manthey_single-ordered-initialized-w18-b8.cnf.gz +satrace15/post-cbmc-aes-ee-r2-noholes.cnf.gz +satrace15/manthey_single-ordered-initialized-w50-b6.cnf.gz +satrace15/manthey_single-ordered-initialized-w26-b8.cnf.gz +satrace15/AProVE07-03.cnf.gz +satrace15/UCG-20-5p0.cnf.gz +satrace15/manthey_single-ordered-initialized-w24-b7.cnf.gz +satrace15/manthey_single-ordered-initialized-w24-b9.cnf.gz +satrace15/6s165-nonopt.cnf.gz +satrace15/mrpp_6x6#18_9.cnf.gz +satrace15/manthey_single-ordered-initialized-w26-b7.cnf.gz +satrace15/mrpp_8x8#22_10.cnf.gz +satrace15/mrpp_4x4#4_4.cnf.gz +satrace15/manthey_single-ordered-initialized-w22-b6.cnf.gz +satrace15/6s9.cnf.gz +satrace15/mrpp_4x4#12_12.cnf.gz +satrace15/countbitssrl032.cnf.gz +satrace15/6s16.cnf.gz +satrace15/7pipe_k.cnf.gz +satrace15/hwmcc10-timeframe-expansion-k50-pdtpmsns2-tseitin.cnf.gz +satrace15/manthey_single-ordered-initialized-w46-b7.cnf.gz +satrace15/aaai10-planning-ipc5-pathways-13-step17.cnf.gz +satrace15/6s16-opt.cnf.gz +satrace15/6s130-opt.cnf.gz +satrace15/6s168-opt.cnf.gz +satrace15/mrpp_8x8#12_9.cnf.gz +satrace15/manthey_single-ordered-initialized-w48-b6.cnf.gz +satrace15/manthey_single-ordered-initialized-w18-b7.cnf.gz +satrace15/manthey_single-ordered-initialized-w32-b9.cnf.gz +satrace15/beempgsol5b1.cnf.gz +satrace15/6s169-opt.cnf.gz +satrace15/bob12m09-opt.cnf.gz +satrace15/manthey_single-ordered-initialized-w20-b7.cnf.gz diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/ec2-spot-instance-test.cfg b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/ec2-spot-instance-test.cfg new file mode 100644 index 000000000..3411ff88c --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/ec2-spot-instance-test.cfg @@ -0,0 +1,47 @@ +[ec2] +count=1 + +##################### +# Oregon -- us-west-2 +##################### +# region=us-west-2 +# subnet_id =subnet-88ab16ed +# security_group_client=sg-bc7b3fd9 +# security_group_server=sg-507b3f35 +# key_name=controlkey +# result_bucket=msoos-solve-results-oregon +## us-west-2 Ubuntu 14.04 LTS +## ami_id = ami-3ede3d5e +## us-west-2 hvm:ebs-ssd 16.04 LTS +# ami_id=ami-5dca1925 + +##################### +# London -- eu-west-2 +##################### +# region=eu-west-2 +# subnet_id =subnet-eb12cf90 +# security_group_client=sg-d97fd8b1 +# security_group_server=sg-797dda11 +# key_name=controlkey-lon +# result_bucket=msoos-solve-results-ireland +# # eu-west-2 hvm:ebs-ssd 16.04 LTS +# ami_id=ami-4c0b1428 + +##################### +# Ireland -- eu-west-1 +##################### +region=eu-west-1 +subnet_id =subnet-05c8e843 +security_group_client=sg-715c360a +security_group_server=sg-b05e34cb +key_name=controlkey-ireland +result_bucket=msoos-solve-results-ireland +# eu-west-2 hvm:ebs-ssd 16.04 LTS +ami_id=ami-8fd760f6 + +max_bid=0.09 +instance_profile_name=client +instance_profile_arn=arn:aws:iam::907572138573:instance-profile/client + +# has instance storage +type=r3.large diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/ec2-spot-instance.cfg b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/ec2-spot-instance.cfg new file mode 100644 index 000000000..0e0111ea8 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/ec2-spot-instance.cfg @@ -0,0 +1,51 @@ +[ec2] +count=2 +max_bid=0.85 + +##################### +# Oregon -- us-west-2 +##################### +# region=us-west-2 +# subnet_id =subnet-88ab16ed +# security_group_client=sg-bc7b3fd9 +# security_group_server=sg-507b3f35 +# key_name=controlkey +# result_bucket=msoos-solve-results-oregon +## us-west-2 Ubuntu 14.04 LTS +## ami_id = ami-3ede3d5e +## us-west-2 hvm:ebs-ssd 16.04 LTS +# ami_id=ami-5dca1925 + +##################### +# London -- eu-west-2 +##################### +# region=eu-west-2 +# subnet_id =subnet-eb12cf90 +# security_group_client=sg-d97fd8b1 +# security_group_server=sg-797dda11 +# key_name=controlkey-lon +# result_bucket=msoos-solve-results-ireland +# # eu-west-2 hvm:ebs-ssd 16.04 LTS +# ami_id=ami-4c0b1428 + +##################### +# Ireland -- eu-west-1 +##################### +region=eu-west-1 +subnet_id =subnet-05c8e843 +security_group_client=sg-715c360a +security_group_server=sg-b05e34cb +key_name=controlkey-ireland +result_bucket=msoos-solve-results-ireland +# eu-west-2 hvm:ebs-ssd 16.04 LTS +ami_id=ami-8fd760f6 + + +instance_profile_name=client +instance_profile_arn=arn:aws:iam::907572138573:instance-profile/client + +#preference would be: +# c4.8xlarge for speed (but no DRAT) +# r3.8xlarge for DRAT -- due to memory need AND instance store!! r4 does not have instance store... +# but c3.8xlarge is _cheap_ and only 0.8x speed of c4.8xlarge +type=r3.8xlarge diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/launch_server.py b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/launch_server.py new file mode 100755 index 000000000..3fd36fed1 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/launch_server.py @@ -0,0 +1,153 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (C) 2018 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +from __future__ import print_function +import sys +import boto.ec2 +import os +import subprocess +import server_option_parser + + +def get_answer(): + yes = set(['yes', 'y', 'ye']) + no = set(['no', 'n']) + + choice = input().lower() + if choice in yes: + return True + elif choice in no: + return False + else: + sys.stdout.write("Please respond with 'yes' or 'no'\n") + exit(0) + + +def push(): + print("First we push, oherwise we'll forget...") + ret = os.system("git push") + if ret != 0: + print("Oops, couldn't push, exiting before executing") + exit(-1) + + print("") + + +if __name__ == "__main__": + options, args = server_option_parser.parse_arguments() + print("Options are:") + for a, b in options.__dict__.items(): + print("-- %-30s : %s" % (a, b)) + assert args == [] + + if options.mem_limit_in_mb < 10000 and options.drat: + print("******* WARNING ********") + print("Beware: your memory is WAY too low for DRAT and learning stuff") + + push() + data = "" + opt_is_on = False + for x in sys.argv[1:]: + if opt_is_on: + data += " ".join(x.split(",")) + data += "\" " + opt_is_on = False + continue + if x != "--opt": + data += x + " " + continue + + opt_is_on = True + data += "--opt \"" + + if ("--git" not in data): + revision = subprocess.check_output(['git', 'rev-parse', 'HEAD']).strip().decode("utf-8") + data += " --git '{revision}'".format(revision=revision) + + if len(sys.argv) > 1: + print("Launching with data: %s" % data) + else: + print("you must give at least one parameter, probably --s3folder") + exit(-1) + + sys.stdout.write("Is this OK? [y/n]? ") + if not get_answer(): + print("Aborting") + exit(0) + + print("Executing!") + + cloud_init = """#!/bin/bash +set -e + +apt-get update +apt-get install -y python +apt-get -y install git python-pip +pip install --force-reinstall --upgrade awscli +pip install --force-reinstall --upgrade boto +pip install configparser + +# Get AWS log agent +cd /home/ubuntu/ + +cat > aws-logs-server.conf << EOF +[general] +state_file = /home/ubuntu/cloudwatch.state + +[logstream1] +log_group_name = cyrptominisat-perftest +log_stream_name = server +file = /home/ubuntu/*.log + +[messages] +log_group_name = cyrptominisat-perftest +log_stream_name = server +file = /var/log/messages +EOF + +curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O +python ./awslogs-agent-setup.py --region {region} -c aws-logs-server.conf -n + +sudo -H -u ubuntu bash -c 'ssh-keyscan github.com >> ~/.ssh/known_hosts' +sudo -H -u ubuntu bash -c 'git clone --depth 50 https://github.com/msoos/cryptominisat.git' + +# Get credentials +cd /home/ubuntu +sudo -H -u ubuntu bash -c 'aws s3 cp s3://msoos-solve-data/solvers/email.conf . --region={region}' + +# Start server +cd /home/ubuntu/cryptominisat +sudo -H -u ubuntu bash -c '/home/ubuntu/cryptominisat/scripts/aws/pre-server.py > /home/ubuntu/pre_server_log.log 2>&1 &' + +DATA="{data}" + """.format(region=options.region, data=data) + + conn = boto.ec2.connect_to_region(options.region) + conn.run_instances( + min_count=1, + max_count=1, + image_id=options.ami_id, + subnet_id=options.subnet_id, + instance_type='t2.micro', + instance_profile_arn='arn:aws:iam::907572138573:instance-profile/server', + user_data=cloud_init, + key_name=options.key_name, + security_group_ids=[options.security_group_server], + instance_initiated_shutdown_behavior='terminate') diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/pack_cnf_lists.py b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/pack_cnf_lists.py new file mode 100755 index 000000000..d085b56f8 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/pack_cnf_lists.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (C) 2018 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +from __future__ import print_function +import sys + +if len(sys.argv) == 1: + print("""Usage example: +./{name} satcomp14_updated satcomp16_updated > satcomp1416_updated +""".format(name=sys.argv[0])) + exit(-1) + +files = {} +for a in range(len(sys.argv)-1): + with open(sys.argv[a+1], "r") as f: + for l in f: + l = l.strip() + fname = l[l.find("/")+1:] + files[fname] = l + +for a,b in files.items(): + print(b) diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/pre-server.py b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/pre-server.py new file mode 100755 index 000000000..01702484f --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/pre-server.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (C) 2018 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +import boto.utils +import os + +user_data = boto.utils.get_instance_userdata() + +todo = "" +for line in user_data.split("\n"): + if "DATA" in line: + todo = line[5:].strip().strip('"') + +if todo == "": + exit(0) + +os.chdir("/home/ubuntu/cryptominisat/scripts/aws/") +command = "nohup /home/ubuntu/cryptominisat/scripts/aws/server.py %s &" % todo +os.system(command) diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/satcomp091113_updated b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/satcomp091113_updated new file mode 100644 index 000000000..c94033705 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/satcomp091113_updated @@ -0,0 +1,751 @@ +satcomp091113/gss-20-s100.cnf.gz +satcomp091113/slp-synthesis-aes-bottom15.cnf.gz +satcomp091113/bivium-40-200-0s0-0x66b619d7b8e447710bf43b794ded6cfaf1e75bb8a947e14c78-50.cnf.gz +satcomp091113/bivium-40-200-0s0-0x92fc13b11169afbb2ef11a684d9fe9a19e743cd6aa5ce23fb5-19.cnf.gz +satcomp091113/countbitsarray02_32.cnf.gz +satcomp091113/ibm-2002-21r-k95.cnf.gz +satcomp091113/smtlib-qfbv-aigs-countbits128-tseitin.cnf.gz +satcomp091113/smulo128.cnf.gz +satcomp091113/gss-33-s100.cnf.gz +satcomp091113/rbcl_xits_08_UNSAT.cnf.gz +satcomp091113/rbcl_xits_09_UNKNOWN.cnf.gz +satcomp091113/minandmaxor032.cnf.gz +satcomp091113/icbrt1_32.cnf.gz +satcomp091113/sokoban-sequential-p145-microban-sequential.070-NOTKNOWN.cnf.gz +satcomp091113/hitag2-8-60-0-0x880693399044612-25-SAT.cnf.gz +satcomp091113/traffic_pcb_unknown.cnf.gz +satcomp091113/k2fix_gr_rcs_w8.shuffled.cnf.gz +satcomp091113/pb_300_01_lb_00.cnf.gz +satcomp091113/transport-transport-two-cities-sequential-15nodes-1000size-3degree-100mindistance-3trucks-10packages-2008seed.040-SAT.cnf.gz +satcomp091113/hwmcc10-timeframe-expansion-k45-pdtpmspalu-tseitin.cnf.gz +satcomp091113/bierebob12s02.cnf.gz +satcomp091113/mizh-md5-48-5.cnf.gz +satcomp091113/b04_s_unknown.cnf.gz +satcomp091113/rbcl_xits_14_SAT.cnf.gz +satcomp091113/rpoc_xits_12_UNKNOWN.cnf.gz +satcomp091113/6s20.cnf.gz +satcomp091113/manol-pipe-c10nid_i.cnf.gz +satcomp091113/22-160-nossum003.cnf.gz +satcomp091113/md5_48_2.cnf.gz +satcomp091113/AProVE07-25.cnf.gz +satcomp091113/q_query_3_l45_lambda.cnf.gz +satcomp091113/UR-15-5p0.cnf.gz +satcomp091113/9dlx_vliw_at_b_iq3.cnf.gz +satcomp091113/manol-pipe-g6bi.cnf.gz +satcomp091113/aaai10-planning-ipc5-rovers-18-step11.cnf.gz +satcomp091113/total-5-11-u.cnf.gz +satcomp091113/aes_64_2_keyfind_1.cnf.gz +satcomp091113/grid-strips-grid-y-3.035-NOTKNOWN.cnf.gz +satcomp091113/blocks-blocks-37-1.120-NOTKNOWN.cnf.gz +satcomp091113/ACG-10-10p0.cnf.gz +satcomp091113/traffic_f_unknown.cnf.gz +satcomp091113/9vliw_m_9stages_iq3_C1_bug8.cnf.gz +satcomp091113/traffic_fb_unknown.cnf.gz +satcomp091113/partial-10-11-s.cnf.gz +satcomp091113/AProVE09-20.cnf.gz +satcomp091113/aaai10-planning-ipc5-pathways-17-step20.cnf.gz +satcomp091113/li-exam-61.shuffled-as.sat03-366.cnf.gz +satcomp091113/manol-pipe-f7idw.cnf.gz +satcomp091113/b04_s_2_unknown_pre.cnf.gz +satcomp091113/partial-5-13-u.cnf.gz +satcomp091113/q_query_3_l40_lambda.cnf.gz +satcomp091113/AProVE07-16.cnf.gz +satcomp091113/goldb-heqc-dalumul.cnf.gz +satcomp091113/vmpc_29.cnf.gz +satcomp091113/9vliw_m_9stages_iq3_C1_bug9.cnf.gz +satcomp091113/biere6s139.cnf.gz +satcomp091113/aaai10-planning-ipc5-pathways-13-step17.cnf.gz +satcomp091113/E05X15.cnf.gz +satcomp091113/minandmaxor128.cnf.gz +satcomp091113/ACG-15-5p1.cnf.gz +satcomp091113/vmpc_36.renamed-as.sat05-1922.cnf.gz +satcomp091113/transport-transport-city-sequential-35nodes-1000size-4degree-100mindistance-4trucks-14packages-2008seed.030-NOTKNOWN.cnf.gz +satcomp091113/maxxororand032.cnf.gz +satcomp091113/manol-pipe-c6nidw_i.cnf.gz +satcomp091113/q_query_3_l48_lambda.cnf.gz +satcomp091113/aaai10-planning-ipc5-TPP-21-step11.cnf.gz +satcomp091113/countbitsarray04_32.cnf.gz +satcomp091113/slp-synthesis-aes-bottom14.cnf.gz +satcomp091113/q_query_3_l41_lambda.cnf.gz +satcomp091113/AProVE09-22.cnf.gz +satcomp091113/23-80-nossum001.cnf.gz +satcomp091113/blocks-blocks-36-0.170-NOTKNOWN.cnf.gz +satcomp091113/22-128-nossum010.cnf.gz +satcomp091113/biere6s9.cnf.gz +satcomp091113/velev-vliw-uns-4.0-9.cnf.gz +satcomp091113/ctl_4291_567_9_unsat_pre.cnf.gz +satcomp091113/smtlib-qfbv-aigs-bin_libsmbsharemodes_vc5759-tseitin.cnf.gz +satcomp091113/biere6s166.cnf.gz +satcomp091113/22-160-nossum009.cnf.gz +satcomp091113/maxxororand064.cnf.gz +satcomp091113/hwmcc10-timeframe-expansion-k45-pdtviseisenberg1-tseitin.cnf.gz +satcomp091113/manol-pipe-g10nid.cnf.gz +satcomp091113/hitag2-7-60-0-0xe8fa35372ed37e2-80.cnf.gz +satcomp091113/AProVE09-03.cnf.gz +satcomp091113/ctl_4291_567_11_unsat.cnf.gz +satcomp091113/E04F19.cnf.gz +satcomp091113/pb_400_09_lb_02.cnf.gz +satcomp091113/6s137.cnf.gz +satcomp091113/gss-28-s100.cnf.gz +satcomp091113/li-test4-100.shuffled-as.sat03-370.cnf.gz +satcomp091113/22-144-nossum005.cnf.gz +satcomp091113/sokoban-sequential-p145-microban-sequential.040-NOTKNOWN.cnf.gz +satcomp091113/manol-pipe-f7nidw.cnf.gz +satcomp091113/dated-10-13-u.cnf.gz +satcomp091113/manol-pipe-g10bidw.cnf.gz +satcomp091113/vda_gr_rcs_w9.shuffled.cnf.gz +satcomp091113/80-8-nossum006.cnf.gz +satcomp091113/hitag2-10-60-0-0xe14721bd199894a-99.cnf.gz +satcomp091113/UR-20-5p0.cnf.gz +satcomp091113/rbcl_xits_11_UNKNOWN.cnf.gz +satcomp091113/hitag2-10-60-0-0xa04d664a73eac4d-66.cnf.gz +satcomp091113/E00X23.cnf.gz +satcomp091113/biere6s19.cnf.gz +satcomp091113/22-144-nossum003.cnf.gz +satcomp091113/aes_64_3_keyfind_1.cnf.gz +satcomp091113/minxorminand064.cnf.gz +satcomp091113/schup-l2s-guid-1-k56.cnf.gz +satcomp091113/rpoc_xits_09_UNSAT.cnf.gz +satcomp091113/uts-l05-ipc5-h26-unsat.cnf.gz +satcomp091113/ctl_4291_567_8_unsat_pre.cnf.gz +satcomp091113/6pipe_6_ooo.shuffled-as.sat03-413.cnf.gz +satcomp091113/zfcp-2.8-u2-nh.cnf.gz +satcomp091113/hwmcc10-timeframe-expansion-k45-pdtvisns3p02-tseitin.cnf.gz +satcomp091113/q_query_3_L90_coli.sat.cnf.gz +satcomp091113/ndhf_xits_21_SAT.cnf.gz +satcomp091113/q_query_3_L150_coli.sat.cnf.gz +satcomp091113/22-160-nossum007.cnf.gz +satcomp091113/q_query_3_l47_lambda.cnf.gz +satcomp091113/smtlib-qfbv-aigs-rfunit_flat-64-tseitin.cnf.gz +satcomp091113/gss-25-s100.cnf.gz +satcomp091113/pb_300_05_lb_17.cnf.gz +satcomp091113/bierebob12s04.cnf.gz +satcomp091113/vmpc_24.cnf.gz +satcomp091113/manol-pipe-c7nidw.cnf.gz +satcomp091113/goldb-heqc-i10mul.cnf.gz +satcomp091113/velev-pipe-sat-1.0-b7.cnf.gz +satcomp091113/gss-15-s100.cnf.gz +satcomp091113/vmpc_28.cnf.gz +satcomp091113/countbitswegner064.cnf.gz +satcomp091113/smulo016.cnf.gz +satcomp091113/gus-md5-14.cnf.gz +satcomp091113/cmu-bmc-barrel6.cnf.gz +satcomp091113/gripper13u.shuffled-as.sat03-395.cnf.gz +satcomp091113/blocks-blocks-36-0.160-NOTKNOWN.cnf.gz +satcomp091113/minor032.cnf.gz +satcomp091113/E02F20.cnf.gz +satcomp091113/gss-17-s100.cnf.gz +satcomp091113/ndhf_xits_15_UNKNOWN.cnf.gz +satcomp091113/9vliw_m_9stages_iq3_C1_bug6.cnf.gz +satcomp091113/22-160-nossum001.cnf.gz +satcomp091113/gss-21-s100.cnf.gz +satcomp091113/aes_128_2_keyfind_1.cnf.gz +satcomp091113/mizh-sha0-36-4.cnf.gz +satcomp091113/md5_47_1.cnf.gz +satcomp091113/transport-transport-three-cities-sequential-14nodes-1000size-4degree-100mindistance-4trucks-14packages-2008seed.020-NOTKNOWN.cnf.gz +satcomp091113/p01_lb_05.cnf.gz +satcomp091113/22-128-nossum007.cnf.gz +satcomp091113/slp-synthesis-aes-bottom20.cnf.gz +satcomp091113/gss-16-s100.cnf.gz +satcomp091113/hwmcc10-timeframe-expansion-k50-bjrb07amba2andenv-tseitin.cnf.gz +satcomp091113/AProVE09-07.cnf.gz +satcomp091113/23-96-nossum003.cnf.gz +satcomp091113/mizh-sha0-36-2.cnf.gz +satcomp091113/gss-31-s100.cnf.gz +satcomp091113/eq.atree.braun.9.unsat.cnf.gz +satcomp091113/transport-transport-city-sequential-25nodes-1000size-3degree-100mindistance-3trucks-10packages-2008seed.060-SAT.cnf.gz +satcomp091113/11pipe_k.cnf.gz +satcomp091113/pb_300_05_lb_16.cnf.gz +satcomp091113/rpoc_xits_10_UNKNOWN.cnf.gz +satcomp091113/hitag2-10-60-0-0x2201a94920a2d2e-8.cnf.gz +satcomp091113/AProVE07-11.cnf.gz +satcomp091113/dated-10-11-u.cnf.gz +satcomp091113/grid-strips-grid-y-4.025-NOTKNOWN.cnf.gz +satcomp091113/23-64-nossum003.cnf.gz +satcomp091113/smtlib-qfbv-aigs-nlzbe256-tseitin.cnf.gz +satcomp091113/hwmcc10-timeframe-expansion-k50-bc57sensorsp3-tseitin.cnf.gz +satcomp091113/22-160-nossum002.cnf.gz +satcomp091113/driverlog1_ks99i.renamed-as.sat05-3951.cnf.gz +satcomp091113/slp-synthesis-aes-top28.cnf.gz +satcomp091113/E04N18.cnf.gz +satcomp091113/9vliw_m_9stages_iq3_C1_bug7.cnf.gz +satcomp091113/AProVE09-24.cnf.gz +satcomp091113/slp-synthesis-aes-bottom21.cnf.gz +satcomp091113/grieu-vmpc-31.cnf.gz +satcomp091113/rand_net60-30-1.shuffled.cnf.gz +satcomp091113/aes_64_4_keyfind_1.cnf.gz +satcomp091113/maxor128.cnf.gz +satcomp091113/maxxor032.cnf.gz +satcomp091113/total-10-15-s.cnf.gz +satcomp091113/hwmcc10-timeframe-expansion-k45-bobsm5378d2-tseitin.cnf.gz +satcomp091113/aaai10-planning-ipc5-pipesworld-18-step15.cnf.gz +satcomp091113/gus-md5-10.cnf.gz +satcomp091113/velev-pipe-o-uns-1.0-7.cnf.gz +satcomp091113/AProVE11-02.cnf.gz +satcomp091113/goldb-heqc-alu4mul.cnf.gz +satcomp091113/comb1.shuffled.cnf.gz +satcomp091113/q_query_3_l37_lambda.cnf.gz +satcomp091113/aes_24_4_keyfind_4.cnf.gz +satcomp091113/minor064.cnf.gz +satcomp091113/minxor128.cnf.gz +satcomp091113/80-8-nossum005.cnf.gz +satcomp091113/slp-synthesis-aes-bottom19.cnf.gz +satcomp091113/abb313GPIA-9-tr.used-as.sat04-321.cnf.gz +satcomp091113/9dlx_vliw_at_b_iq7.cnf.gz +satcomp091113/hard-25-U-7061.cnf.gz +satcomp091113/bivium-39-200-0s0-0x5fa955de2b4f64d00226837d226c955de4566ce95f660180d7-30.cnf.gz +satcomp091113/UCG-15-10p1.cnf.gz +satcomp091113/22-160-nossum008.cnf.gz +satcomp091113/manol-pipe-c10nidw.cnf.gz +satcomp091113/eq.atree.braun.8.unsat.cnf.gz +satcomp091113/UCG-15-10p0.cnf.gz +satcomp091113/E05F20.cnf.gz +satcomp091113/countbitsrotate128.cnf.gz +satcomp091113/slp-synthesis-aes-top24.cnf.gz +satcomp091113/partial-10-13-s.cnf.gz +satcomp091113/partial-10-17-s.cnf.gz +satcomp091113/22-144-nossum002.cnf.gz +satcomp091113/ctl_3791_556_unsat.cnf.gz +satcomp091113/gss-23-s100.cnf.gz +satcomp091113/blocks-4-ipc5-h22-unknown.cnf.gz +satcomp091113/sortnet-8-ipc5-h18-unsat.cnf.gz +satcomp091113/hitag2-10-60-0-0xe6754daf48162bf-46.cnf.gz +satcomp091113/9dlx_vliw_at_b_iq5.cnf.gz +satcomp091113/velev-npe-1.0-9dlx-b71.cnf.gz +satcomp091113/blocks-blocks-37-1.130-NOTKNOWN.cnf.gz +satcomp091113/pb_400_09_lb_04.cnf.gz +satcomp091113/schup-l2s-abp4-1-k31.cnf.gz +satcomp091113/transport-transport-city-sequential-35nodes-1000size-4degree-100mindistance-4trucks-14packages-2008seed.040-NOTKNOWN.cnf.gz +satcomp091113/AProVE11-10.cnf.gz +satcomp091113/slp-synthesis-aes-bottom16.cnf.gz +satcomp091113/ctl_4201_555_unsat.cnf.gz +satcomp091113/ctl_3082_415_unsat_pre.cnf.gz +satcomp091113/simon-s03-w08-15.cnf.gz +satcomp091113/9dlx_vliw_at_b_iq8.cnf.gz +satcomp091113/ibm-2004-23-k100.cnf.gz +satcomp091113/22-128-nossum003.cnf.gz +satcomp091113/hwmcc10-timeframe-expansion-k50-nusmvreactorp4-tseitin.cnf.gz +satcomp091113/23-96-nossum007.cnf.gz +satcomp091113/9vliw_m_9stages_iq3_C1_bug10.cnf.gz +satcomp091113/gus-md5-08.cnf.gz +satcomp091113/arcfour_initialPermutation_6_15.cnf.gz +satcomp091113/gss-22-s100.cnf.gz +satcomp091113/aes_24_4_keyfind_2.cnf.gz +satcomp091113/bivium-39-200-0s0-0x28df9231b320bd56dfb68bfc7c3f0ca20dbae6b0eba535ad91-98.cnf.gz +satcomp091113/openstacks-sequencedstrips-nonadl-nonnegated-os-sequencedstrips-p30_3.025-NOTKNOWN.cnf.gz +satcomp091113/bc57-sensors-1-k303-unsat.shuffled-as.sat03-406.cnf.gz +satcomp091113/gus-md5-04.cnf.gz +satcomp091113/q_query_3_L200_coli.sat.cnf.gz +satcomp091113/gss-14-s100.cnf.gz +satcomp091113/vmpc_33.cnf.gz +satcomp091113/vmpc_34.cnf.gz +satcomp091113/AProVE11-12.cnf.gz +satcomp091113/E15N15.cnf.gz +satcomp091113/22-128-nossum006.cnf.gz +satcomp091113/all.used-as.sat04-986.cnf.gz +satcomp091113/countbitssrl032.cnf.gz +satcomp091113/mizh-sha0-35-3.cnf.gz +satcomp091113/partial-5-17-u.cnf.gz +satcomp091113/aes_64_1_keyfind_1.cnf.gz +satcomp091113/bob12m04.cnf.gz +satcomp091113/grid-strips-grid-y-3.045-NOTKNOWN.cnf.gz +satcomp091113/ibm-2004-01-k90.cnf.gz +satcomp091113/rpoc_xits_14_UNKNOWN.cnf.gz +satcomp091113/ACG-20-5p1.cnf.gz +satcomp091113/simon-s02b-dp11u10.cnf.gz +satcomp091113/rand_net60-25-10.shuffled.cnf.gz +satcomp091113/simon-s03-fifo8-300.cnf.gz +satcomp091113/manol-pipe-c6bidw_i.cnf.gz +satcomp091113/hard-6-U-7061.cnf.gz +satcomp091113/hitag2-10-60-0-0xac23f1205f76343-96.cnf.gz +satcomp091113/mulhs032.cnf.gz +satcomp091113/slp-synthesis-aes-top22.cnf.gz +satcomp091113/AProVE11-13.cnf.gz +satcomp091113/bivium-39-200-0s0-0xdcfb6ab71951500b8e460045bd45afee15c87e08b0072eb174-43.cnf.gz +satcomp091113/md5_48_3.cnf.gz +satcomp091113/countbitssrl128.cnf.gz +satcomp091113/b_unsat_pre.cnf.gz +satcomp091113/slp-synthesis-aes-bottom18.cnf.gz +satcomp091113/9dlx_vliw_at_b_iq1.cnf.gz +satcomp091113/hitag2-10-60-0-0xdf7fa6426edec07-17.cnf.gz +satcomp091113/gus-md5-07.cnf.gz +satcomp091113/minxorminand128.cnf.gz +satcomp091113/b04_s_unknown_pre.cnf.gz +satcomp091113/ctl_4291_567_12_unsat.cnf.gz +satcomp091113/UTI-20-10p0.cnf.gz +satcomp091113/ndhf_xits_14_UNSAT.cnf.gz +satcomp091113/total-5-15-u.cnf.gz +satcomp091113/vmpc_25.renamed-as.sat05-1913.cnf.gz +satcomp091113/9dlx_vliw_at_b_iq6.used-as.sat04-347.cnf.gz +satcomp091113/q_query_3_L70_coli.sat.cnf.gz +satcomp091113/ACG-15-10p1.cnf.gz +satcomp091113/ndhf_xits_11_UNSAT.cnf.gz +satcomp091113/aes_32_3_keyfind_1.cnf.gz +satcomp091113/smtlib-qfbv-aigs-src_wget_vc18517-tseitin.cnf.gz +satcomp091113/eq.atree.braun.13.unsat.cnf.gz +satcomp091113/AProVE11-15.cnf.gz +satcomp091113/rbcl_xits_10_UNKNOWN.cnf.gz +satcomp091113/manol-pipe-g10id.cnf.gz +satcomp091113/SAT_dat.k80_04.cnf.gz +satcomp091113/22-144-nossum007.cnf.gz +satcomp091113/partial-5-11-u.cnf.gz +satcomp091113/transport-transport-city-sequential-35nodes-1000size-4degree-100mindistance-4trucks-14packages-2008seed.020-NOTKNOWN.cnf.gz +satcomp091113/sha0_36_5.cnf.gz +satcomp091113/9pipe_k.cnf.gz +satcomp091113/pb_400_03_lb_07.cnf.gz +satcomp091113/blocks-4-ipc5-h21-unknown.cnf.gz +satcomp091113/hitag2-10-60-0-0xa360966c6eb75c4-62.cnf.gz +satcomp091113/slp-synthesis-aes-bottom17.cnf.gz +satcomp091113/partial-5-17-s.cnf.gz +satcomp091113/mizh-sha0-36-3.cnf.gz +satcomp091113/korf-18.cnf.gz +satcomp091113/total-10-13-u.cnf.gz +satcomp091113/k2mul.miter.shuffled-as.sat03-355.cnf.gz +satcomp091113/rbcl_xits_13_UNKNOWN.cnf.gz +satcomp091113/ibm-2002-30r-k85.cnf.gz +satcomp091113/pb_200_05_lb_00.cnf.gz +satcomp091113/UTI-15-5p1.cnf.gz +satcomp091113/rbcl_xits_07_UNSAT.cnf.gz +satcomp091113/hitag2-8-60-0-0xdcdbc8bf368ee73-37.cnf.gz +satcomp091113/manol-pipe-g7nidw.cnf.gz +satcomp091113/partial-10-13-u.cnf.gz +satcomp091113/dme-03-1-k247-unsat.shuffled-as.sat03-407.cnf.gz +satcomp091113/aaai10-planning-ipc5-pathways-17-step21.cnf.gz +satcomp091113/8pipe_k.cnf.gz +satcomp091113/1dlx_c_iq57_a.cnf.gz +satcomp091113/23-64-nossum004.cnf.gz +satcomp091113/uts-l06-ipc5-h31-unknown.cnf.gz +satcomp091113/ctl_4291_567_2_unsat_pre.cnf.gz +satcomp091113/blocks-blocks-36-0.180-SAT.cnf.gz +satcomp091113/aaai10-planning-ipc5-pipesworld-12-step16.cnf.gz +satcomp091113/gss-13-s100.cnf.gz +satcomp091113/countbitsarray32_32.cnf.gz +satcomp091113/pb_400_03_lb_05.cnf.gz +satcomp091113/hard-18-U-10652.cnf.gz +satcomp091113/ctl_4291_567_10_unsat_pre.cnf.gz +satcomp091113/velev-pipe-sat-1.0-b10.cnf.gz +satcomp091113/pb_300_05_lb_11.cnf.gz +satcomp091113/smtlib-qfbv-aigs-bin_libsmbclient_vc1228502-tseitin.cnf.gz +satcomp091113/AProVE07-03.cnf.gz +satcomp091113/hitag2-8-60-0-0xb2021557d918860-94.cnf.gz +satcomp091113/9dlx_vliw_at_b_iq9.used-as.sat04-719.cnf.gz +satcomp091113/gss-18-s100.cnf.gz +satcomp091113/slp-synthesis-aes-bottom25.cnf.gz +satcomp091113/traffic_3b_unknown.cnf.gz +satcomp091113/uts-l06-ipc5-h35-unknown.cnf.gz +satcomp091113/AProVE07-02.cnf.gz +satcomp091113/aes_32_1_keyfind_1.cnf.gz +satcomp091113/partial-10-19-s.cnf.gz +satcomp091113/arcfour_initialPermutation_6_56.cnf.gz +satcomp091113/22-144-nossum001.cnf.gz +satcomp091113/pb_300_02_lb_06.cnf.gz +satcomp091113/post-c32s-gcdm16-23.cnf.gz +satcomp091113/hwmcc10-timeframe-expansion-k50-pdtvisns3p00-tseitin.cnf.gz +satcomp091113/UR-10-10p1.cnf.gz +satcomp091113/velev-engi-uns-1.0-4nd.cnf.gz +satcomp091113/velev-pipe-uns-1.0-8.cnf.gz +satcomp091113/hoons-vbmc-lucky7.cnf.gz +satcomp091113/md5_47_3.cnf.gz +satcomp091113/12pipe_bug4_q0.used-as.sat04-723.cnf.gz +satcomp091113/hitag2-10-60-0-0xbc15b17d0353413-10.cnf.gz +satcomp091113/hsat_vc11803.cnf.gz +satcomp091113/22-144-nossum009.cnf.gz +satcomp091113/UCG-15-5p0.cnf.gz +satcomp091113/goldb-heqc-x1mul.cnf.gz +satcomp091113/safe-30-h29-unsat.cnf.gz +satcomp091113/maxxor128.cnf.gz +satcomp091113/cube-11-h13-unsat.cnf.gz +satcomp091113/md5_47_2.cnf.gz +satcomp091113/driverlog3_v01a.renamed-as.sat05-3963.cnf.gz +satcomp091113/pb_200_10_lb_15.cnf.gz +satcomp091113/q_query_3_l46_lambda.cnf.gz +satcomp091113/smtlib-qfbv-aigs-bin_libmsrpc_vc1225336-tseitin.cnf.gz +satcomp091113/AProVE11-09.cnf.gz +satcomp091113/ndhf_xits_13_UNSAT.cnf.gz +satcomp091113/q_query_3_l43_lambda.cnf.gz +satcomp091113/sokoban-sequential-p145-microban-sequential.060-NOTKNOWN.cnf.gz +satcomp091113/aaai10-planning-ipc5-TPP-30-step11.cnf.gz +satcomp091113/slp-synthesis-aes-top26.cnf.gz +satcomp091113/arcfour_initialPermutation_6_14.cnf.gz +satcomp091113/arcfour_initialPermutation_6_16.cnf.gz +satcomp091113/E05F18.cnf.gz +satcomp091113/UTI-10-5t1.cnf.gz +satcomp091113/transport-transport-city-sequential-25nodes-1000size-3degree-100mindistance-3trucks-10packages-2008seed.040-NOTKNOWN.cnf.gz +satcomp091113/slp-synthesis-aes-bottom24.cnf.gz +satcomp091113/7pipe_k.cnf.gz +satcomp091113/rbcl_xits_15_SAT.cnf.gz +satcomp091113/vmpc_26.cnf.gz +satcomp091113/dspam_dump_vc949.cnf.gz +satcomp091113/gus-md5-16.cnf.gz +satcomp091113/xinetd_vc56703.cnf.gz +satcomp091113/ctl_4291_567_7_unsat.cnf.gz +satcomp091113/valves-gates-1-k617-unsat.shuffled-as.sat03-412.cnf.gz +satcomp091113/dp04s04.shuffled.cnf.gz +satcomp091113/vmpc_29.renamed-as.sat05-1916.cnf.gz +satcomp091113/aaai10-planning-ipc5-rovers-18-step12.cnf.gz +satcomp091113/hwmcc10-timeframe-expansion-k45-bobsmhdlc2-tseitin.cnf.gz +satcomp091113/ACG-15-10p0.cnf.gz +satcomp091113/UCG-20-10p1.cnf.gz +satcomp091113/een-tip-sat-texas-tp-5e.cnf.gz +satcomp091113/slp-synthesis-aes-bottom13.cnf.gz +satcomp091113/rbcl_xits_06_UNSAT.cnf.gz +satcomp091113/velev-vliw-uns-4.0-9-i1.cnf.gz +satcomp091113/pb_300_02_lb_07.cnf.gz +satcomp091113/biere6s20.cnf.gz +satcomp091113/ndhf_xits_16_UNKNOWN.cnf.gz +satcomp091113/aaai10-planning-ipc5-pipesworld-27-step14.cnf.gz +satcomp091113/aes_32_3_keyfind_2.cnf.gz +satcomp091113/smtlib-qfbv-aigs-servers_slapd_a_vc149789-tseitin.cnf.gz +satcomp091113/sortnet-8-ipc5-h19-sat.cnf.gz +satcomp091113/gus-md5-11.cnf.gz +satcomp091113/ACG-20-10p0.cnf.gz +satcomp091113/minxorminand032.cnf.gz +satcomp091113/dated-5-13-u.cnf.gz +satcomp091113/AProVE09-21.cnf.gz +satcomp091113/AProVE09-11.cnf.gz +satcomp091113/slp-synthesis-aes-top27.cnf.gz +satcomp091113/uts-l06-ipc5-h28-unknown.cnf.gz +satcomp091113/hitag2-10-60-0-0xb7b72dfef34c17b-39.cnf.gz +satcomp091113/maxand064.cnf.gz +satcomp091113/bivium-39-200-0s0-0x1b770901581bbb2863c83835583d7ce4e1fafd907076320542-34.cnf.gz +satcomp091113/transport-transport-city-sequential-35nodes-1000size-4degree-100mindistance-4trucks-14packages-2008seed.050-SAT.cnf.gz +satcomp091113/hwmcc10-timeframe-expansion-k45-bc57sensorsp1-tseitin.cnf.gz +satcomp091113/22-128-nossum005.cnf.gz +satcomp091113/6s139.cnf.gz +satcomp091113/pb_300_09_lb_07.cnf.gz +satcomp091113/smtlib-qfbv-aigs-lfsr_008_063_080-tseitin.cnf.gz +satcomp091113/post-c32s-gcdm16-22.cnf.gz +satcomp091113/9dlx_vliw_at_b_iq4.cnf.gz +satcomp091113/rpoc_xits_07_UNSAT.cnf.gz +satcomp091113/SAT_dat.k100.cnf.gz +satcomp091113/AProVE11-07.cnf.gz +satcomp091113/IBM_FV_2004_rule_batch_30_SAT_dat.k55.cnf.gz +satcomp091113/UTI-20-5p0.cnf.gz +satcomp091113/pb_200_03_lb_03.cnf.gz +satcomp091113/blocks-blocks-36-0.130-NOTKNOWN.cnf.gz +satcomp091113/ACG-10-5p0.cnf.gz +satcomp091113/post-cbmc-aes-ee-r2-noholes.cnf.gz +satcomp091113/UTI-20-10t0.cnf.gz +satcomp091113/AProVE11-16.cnf.gz +satcomp091113/post-cbmc-aes-d-r2-noholes.cnf.gz +satcomp091113/blocks-blocks-37-1.150-SAT.cnf.gz +satcomp091113/hitag2-8-60-0-0xa3b8497b8aad6d7-42.cnf.gz +satcomp091113/transport-transport-city-sequential-25nodes-1000size-3degree-100mindistance-3trucks-10packages-2008seed.050-NOTKNOWN.cnf.gz +satcomp091113/9vliw_m_9stages_iq3_C1_bug1.cnf.gz +satcomp091113/mulhs016.cnf.gz +satcomp091113/hwmcc10-timeframe-expansion-k45-pdtswvtms14x8p1-tseitin.cnf.gz +satcomp091113/md5_47_4.cnf.gz +satcomp091113/E07N15.cnf.gz +satcomp091113/22-144-nossum008.cnf.gz +satcomp091113/hwmcc10-timeframe-expansion-k50-eijkbs6669-tseitin.cnf.gz +satcomp091113/rbcl_xits_12_UNKNOWN.cnf.gz +satcomp091113/hitag2-7-60-0-0xe97b5f1bee04d70-47.cnf.gz +satcomp091113/UR-20-5p1.cnf.gz +satcomp091113/arcfour_initialPermutation_6_24.cnf.gz +satcomp091113/smtlib-qfbv-aigs-lfsr_004_127_112-tseitin.cnf.gz +satcomp091113/slp-synthesis-aes-bottom23.cnf.gz +satcomp091113/dated-10-17-u.cnf.gz +satcomp091113/22-128-nossum001.cnf.gz +satcomp091113/vmpc_32.renamed-as.sat05-1919.cnf.gz +satcomp091113/9vliw_m_9stages_iq3_C1_bug4.cnf.gz +satcomp091113/UTI-20-5p1.cnf.gz +satcomp091113/E04F20.cnf.gz +satcomp091113/SAT_dat.k20.cnf.gz +satcomp091113/clauses-8.cnf.gz +satcomp091113/22-128-nossum002.cnf.gz +satcomp091113/slp-synthesis-aes-top23.cnf.gz +satcomp091113/UTI-15-10p0.cnf.gz +satcomp091113/openstacks-sequencedstrips-nonadl-nonnegated-os-sequencedstrips-p30_3.085-SAT.cnf.gz +satcomp091113/AProVE07-26.cnf.gz +satcomp091113/ctl_4291_567_2_unsat.cnf.gz +satcomp091113/hitag2-7-60-0-0x39ff85d4ef127de-52.cnf.gz +satcomp091113/cmu-bmc-longmult15.cnf.gz +satcomp091113/pb_300_10_lb_13.cnf.gz +satcomp091113/smtlib-qfbv-aigs-lfsr_008_079_112-tseitin.cnf.gz +satcomp091113/E02F22.cnf.gz +satcomp091113/AProVE09-13.cnf.gz +satcomp091113/beempgsol5b1.cnf.gz +satcomp091113/vange-col-abb313GPIA-9-c.cnf.gz +satcomp091113/dp10s10.shuffled.cnf.gz +satcomp091113/bivium-40-200-0s0-0xd447c33176b6b675fd5f8dc3a5deda46569dc34eedf37da020-6.cnf.gz +satcomp091113/partial-5-15-s.cnf.gz +satcomp091113/SAT_dat.k80.cnf.gz +satcomp091113/smulo064.cnf.gz +satcomp091113/k_unsat.cnf.gz +satcomp091113/traffic_r_uc_sat.cnf.gz +satcomp091113/velev-live-uns-2.0-ebuf.cnf.gz +satcomp091113/ndhf_xits_12_UNSAT.cnf.gz +satcomp091113/sokoban-sequential-p145-microban-sequential.080-SAT.cnf.gz +satcomp091113/manol-pipe-c9.cnf.gz +satcomp091113/9dlx_vliw_at_b_iq9.cnf.gz +satcomp091113/slp-synthesis-aes-top30.cnf.gz +satcomp091113/gss-26-s100.cnf.gz +satcomp091113/AProVE09-01.cnf.gz +satcomp091113/homer16.shuffled.cnf.gz +satcomp091113/gss-27-s100.cnf.gz +satcomp091113/sokoban-sequential-p145-microban-sequential.050-NOTKNOWN.cnf.gz +satcomp091113/9dlx_vliw_at_b_iq2.cnf.gz +satcomp091113/vmpc_30.cnf.gz +satcomp091113/partial-10-19-u.cnf.gz +satcomp091113/AProVE11-06.cnf.gz +satcomp091113/bivium-39-200-0s0-0x163b785faa4bfb1b3b894a9206768a6c3d5d6f038b3797c4c2-99.cnf.gz +satcomp091113/countbitssrl064.cnf.gz +satcomp091113/eq.atree.braun.10.unsat.cnf.gz +satcomp091113/pb_400_09_lb_05.cnf.gz +satcomp091113/post-cbmc-aes-ele-noholes.cnf.gz +satcomp091113/transport-transport-two-cities-sequential-15nodes-1000size-3degree-100mindistance-3trucks-10packages-2008seed.030-NOTKNOWN.cnf.gz +satcomp091113/gus-md5-09.cnf.gz +satcomp091113/AProVE09-19.cnf.gz +satcomp091113/gss-32-s100.cnf.gz +satcomp091113/aes_128_3_keyfind_1.cnf.gz +satcomp091113/dated-5-15-u.cnf.gz +satcomp091113/een-tip-uns-nusmv-t5.B.cnf.gz +satcomp091113/hwmcc10-timeframe-expansion-k45-pdtvissoap1-tseitin.cnf.gz +satcomp091113/AProVE07-27.cnf.gz +satcomp091113/hwmcc10-timeframe-expansion-k50-pdtvisns2p3-tseitin.cnf.gz +satcomp091113/simon-s02b-k2f-gr-rcs-w8.cnf.gz +satcomp091113/rovers1_ks99i.renamed-as.sat05-3971.cnf.gz +satcomp091113/gus-md5-12.cnf.gz +satcomp091113/ctl_4291_567_7_unsat_pre.cnf.gz +satcomp091113/pb_300_06_lb_02.cnf.gz +satcomp091113/k2fix_gr_rcs_w9.shuffled.cnf.gz +satcomp091113/post-cbmc-aes-ee-r3-noholes.cnf.gz +satcomp091113/AProVE09-25.cnf.gz +satcomp091113/10pipe_q0_k.cnf.gz +satcomp091113/SAT_dat.k45.cnf.gz +satcomp091113/slp-synthesis-aes-bottom26.cnf.gz +satcomp091113/8pipe_q0_k.cnf.gz +satcomp091113/AProVE07-01.cnf.gz +satcomp091113/9dlx_vliw_at_b_iq8.used-as.sat04-718.cnf.gz +satcomp091113/transport-transport-three-cities-sequential-14nodes-1000size-4degree-100mindistance-4trucks-14packages-2008seed.040-NOTKNOWN.cnf.gz +satcomp091113/countbitsrotate016.cnf.gz +satcomp091113/dp04u03.shuffled.cnf.gz +satcomp091113/blocks-blocks-36-0.150-NOTKNOWN.cnf.gz +satcomp091113/6s126.cnf.gz +satcomp091113/slp-synthesis-aes-bottom22.cnf.gz +satcomp091113/q_query_3_l44_lambda.cnf.gz +satcomp091113/dated-5-17-u.cnf.gz +satcomp091113/pb_200_03_lb_02.cnf.gz +satcomp091113/maxor064.cnf.gz +satcomp091113/openstacks-sequencedstrips-nonadl-nonnegated-os-sequencedstrips-p30_3.045-NOTKNOWN.cnf.gz +satcomp091113/10pipe_k.cnf.gz +satcomp091113/pb_400_09_lb_03.cnf.gz +satcomp091113/homer17.shuffled.cnf.gz +satcomp091113/UTI-20-10p1.cnf.gz +satcomp091113/vmpc_35.renamed-as.sat05-1921.cnf.gz +satcomp091113/pb_400_05_lb_00.cnf.gz +satcomp091113/minand128.cnf.gz +satcomp091113/pb_300_03_lb_13.cnf.gz +satcomp091113/gus-md5-05.cnf.gz +satcomp091113/aes_32_4_keyfind_1.cnf.gz +satcomp091113/IBM_FV_2004_rule_batch_30_SAT_dat.k80.cnf.gz +satcomp091113/ctl_4291_567_1_unsat.cnf.gz +satcomp091113/UCG-20-5p1.cnf.gz +satcomp091113/hwmcc10-timeframe-expansion-k50-pdtswvsam6x8p3-tseitin.cnf.gz +satcomp091113/total-5-13-u.cnf.gz +satcomp091113/goldb-heqc-term1mul.cnf.gz +satcomp091113/arcfour_initialPermutation_6_64.cnf.gz +satcomp091113/manol-pipe-c10nidw_s.cnf.gz +satcomp091113/ndhf_xits_22_SAT.cnf.gz +satcomp091113/ndhf_xits_20_SAT.cnf.gz +satcomp091113/goldb-heqc-frg1mul.cnf.gz +satcomp091113/ctl_3082_415_unsat.cnf.gz +satcomp091113/countbitsarray08_32.cnf.gz +satcomp091113/c10idw_i.cnf.gz +satcomp091113/slp-synthesis-aes-bottom12.cnf.gz +satcomp091113/q_query_3_l39_lambda.cnf.gz +satcomp091113/ctl_4291_567_6_unsat_pre.cnf.gz +satcomp091113/gus-md5-06.cnf.gz +satcomp091113/pb_300_10_lb_12.cnf.gz +satcomp091113/bivium-39-200-0s0-0x53e7622aad02b083b53dcd6a4a76f54a150ceb996ea1dfa300-63.cnf.gz +satcomp091113/bierebob12s06.cnf.gz +satcomp091113/velev-pipe-o-uns-1.1-6.cnf.gz +satcomp091113/aaai10-planning-ipc5-pipesworld-27-step13.cnf.gz +satcomp091113/rpoc_xits_17_SAT.cnf.gz +satcomp091113/traffic_3_uc_sat.cnf.gz +satcomp091113/q_query_3_l38_lambda.cnf.gz +satcomp091113/UR-15-10p0.cnf.gz +satcomp091113/blocks-blocks-36-0.120-NOTKNOWN.cnf.gz +satcomp091113/beempgsol2b1.cnf.gz +satcomp091113/pb_300_10_lb_06.cnf.gz +satcomp091113/slp-synthesis-aes-top29.cnf.gz +satcomp091113/uts-l06-ipc5-h33-unknown.cnf.gz +satcomp091113/rpoc_xits_08_UNSAT.cnf.gz +satcomp091113/AProVE09-17.cnf.gz +satcomp091113/AProVE09-05.cnf.gz +satcomp091113/manol-pipe-f10ni.cnf.gz +satcomp091113/UR-10-5p0.cnf.gz +satcomp091113/md5_48_4.cnf.gz +satcomp091113/9dlx_vliw_at_b_iq6.cnf.gz +satcomp091113/hitag2-7-60-0-0x5f8ec0ffa4b15c6-25.cnf.gz +satcomp091113/traffic_r_sat.cnf.gz +satcomp091113/mizh-md5-47-4.cnf.gz +satcomp091113/hitag2-7-60-0-0xc048b9ebae66e9d-32-SAT.cnf.gz +satcomp091113/UR-15-10p1.cnf.gz +satcomp091113/11pipe_11_ooo.cnf.gz +satcomp091113/hwmcc10-timeframe-expansion-k50-pdtpmsns2-tseitin.cnf.gz +satcomp091113/hwmcc10-timeframe-expansion-k45-pdtswvqis8x8p2-tseitin.cnf.gz +satcomp091113/velev-vliw-uns-4.0-9C1.cnf.gz +satcomp091113/myciel6-tr.used-as.sat04-320.cnf.gz +satcomp091113/korf-15.cnf.gz +satcomp091113/post-c32s-col400-16.cnf.gz +satcomp091113/UR-20-10p0.cnf.gz +satcomp091113/rpoc_xits_11_UNKNOWN.cnf.gz +satcomp091113/hwmcc10-timeframe-expansion-k45-pdtpmsgoodbakery-tseitin.cnf.gz +satcomp091113/post-cbmc-zfcp-2.8-u2-noholes.cnf.gz +satcomp091113/ctl_4291_567_9_unsat.cnf.gz +satcomp091113/esawn_uw3.debugged.cnf.gz +satcomp091113/q_query_2_L324_coli.cnf.gz +satcomp091113/slp-synthesis-aes-top21.cnf.gz +satcomp091113/gus-md5-15.cnf.gz +satcomp091113/openstacks-sequencedstrips-nonadl-nonnegated-os-sequencedstrips-p30_1.025-NOTKNOWN.cnf.gz +satcomp091113/pb_300_04_lb_05.cnf.gz +satcomp091113/emptyroom-4-h21-unsat.cnf.gz +satcomp091113/pb_300_04_lb_06.cnf.gz +satcomp091113/openstacks-sequencedstrips-nonadl-nonnegated-os-sequencedstrips-p30_3.035-NOTKNOWN.cnf.gz +satcomp091113/ndhf_xits_17_UNKNOWN.cnf.gz +satcomp091113/am_7_7.shuffled-as.sat03-363.cnf.gz +satcomp091113/sortnet-7-ipc5-h15-unsat.cnf.gz +satcomp091113/gss-19-s100.cnf.gz +satcomp091113/manol-pipe-f9b.cnf.gz +satcomp091113/q_query_3_L100_coli.sat.cnf.gz +satcomp091113/mizh-md5-47-3.cnf.gz +satcomp091113/AProVE07-21.cnf.gz +satcomp091113/partial-10-15-s.cnf.gz +satcomp091113/abb313GPIA-9-c.used-as.sat04-317.cnf.gz +satcomp091113/aaai10-planning-ipc5-pipesworld-12-step15.cnf.gz +satcomp091113/hitag2-8-60-0-0xfba1a41b5dfd7f7-52.cnf.gz +satcomp091113/smtlib-qfbv-aigs-VS3-benchmark-S2-tseitin.cnf.gz +satcomp091113/post-c32s-ss-8.cnf.gz +satcomp091113/AProVE07-08.cnf.gz +satcomp091113/partial-5-13-s.cnf.gz +satcomp091113/hitag2-10-60-0-0x8edc44db7837bbf-65.cnf.gz +satcomp091113/pb_400_02_lb_15.cnf.gz +satcomp091113/hwmcc10-timeframe-expansion-k45-pdtswvrod6x8p1-tseitin.cnf.gz +satcomp091113/ndhf_xits_19_UNKNOWN.cnf.gz +satcomp091113/dated-5-11-u.cnf.gz +satcomp091113/9vliw_m_9stages_iq3_C1_bug5.cnf.gz +satcomp091113/hsat_vc12062.cnf.gz +satcomp091113/schup-l2s-bc56s-1-k391.cnf.gz +satcomp091113/E03N17.cnf.gz +satcomp091113/rand_net70-60-10.shuffled.cnf.gz +satcomp091113/smtlib-qfbv-aigs-ext_con_032_008_0256-tseitin.cnf.gz +satcomp091113/uts-l05-ipc5-h27-unknown.cnf.gz +satcomp091113/rand_net60-40-10.shuffled.cnf.gz +satcomp091113/vmpc_34.renamed-as.sat05-1926.cnf.gz +satcomp091113/countbitsrotate032.cnf.gz +satcomp091113/E00N23.cnf.gz +satcomp091113/aloul-chnl11-13.cnf.gz +satcomp091113/UCG-10-5p0.cnf.gz +satcomp091113/transport-transport-three-cities-sequential-14nodes-1000size-4degree-100mindistance-4trucks-14packages-2008seed.030-NOTKNOWN.cnf.gz +satcomp091113/ctl_4201_555_unsat_pre.cnf.gz +satcomp091113/UTI-15-5p0.cnf.gz +satcomp091113/slp-synthesis-aes-top25.cnf.gz +satcomp091113/AProVE09-12.cnf.gz +satcomp091113/SAT_dat.k85.cnf.gz +satcomp091113/manol-pipe-c7bidw_i.cnf.gz +satcomp091113/c6288mul.miter.shuffled-as.sat03-346.cnf.gz +satcomp091113/bierebob12m06.cnf.gz +satcomp091113/dated-10-19-u.cnf.gz +satcomp091113/safe-50-h49-unsat.cnf.gz +satcomp091113/md5_48_1.cnf.gz +satcomp091113/countbitssrl016.cnf.gz +satcomp091113/ctl_4291_567_11_unsat_pre.cnf.gz +satcomp091113/ctl_4291_567_12_unsat_pre.cnf.gz +satcomp091113/22-128-nossum009.cnf.gz +satcomp091113/UTI-20-10t1.cnf.gz +satcomp091113/sokoban-sequential-p145-microban-sequential.030-NOTKNOWN.cnf.gz +satcomp091113/11pipe_q0_k.cnf.gz +satcomp091113/x1mul.miter.shuffled-as.sat03-359.cnf.gz +satcomp091113/dated-5-19-u.cnf.gz +satcomp091113/ctl_4291_567_10_unsat.cnf.gz +satcomp091113/6s133.cnf.gz +satcomp091113/eq.atree.braun.11.unsat.cnf.gz +satcomp091113/AProVE11-11.cnf.gz +satcomp091113/transport-transport-city-sequential-25nodes-1000size-3degree-100mindistance-3trucks-10packages-2008seed.030-NOTKNOWN.cnf.gz +satcomp091113/aes_16_10_keyfind_3.cnf.gz +satcomp091113/aes_128_1_keyfind_1.cnf.gz +satcomp091113/hsat_vc11813.cnf.gz +satcomp091113/hitag2-10-60-0-0xfee9637399d85a2-78.cnf.gz +satcomp091113/22-128-nossum008.cnf.gz +satcomp091113/aes_128_10_keyfind_1.cnf.gz +satcomp091113/ACG-20-5p0.cnf.gz +satcomp091113/transport-transport-city-sequential-25nodes-1000size-3degree-100mindistance-3trucks-10packages-2008seed.020-NOTKNOWN.cnf.gz +satcomp091113/12pipe_bug6_q0.used-as.sat04-725.cnf.gz +satcomp091113/UR-20-10p1.cnf.gz +satcomp091113/dekker.used-as.sat04-989.cnf.gz +satcomp091113/AProVE09-08.cnf.gz +satcomp091113/total-5-17-u.cnf.gz +satcomp091113/rpoc_xits_15_SAT.cnf.gz +satcomp091113/bart17.shuffled.cnf.gz +satcomp091113/total-10-17-u.cnf.gz +satcomp091113/maxxororand128.cnf.gz +satcomp091113/itox_vc1033.cnf.gz +satcomp091113/AProVE09-15.cnf.gz +satcomp091113/manol-pipe-f9n.cnf.gz +satcomp091113/ndhf_xits_09_UNSAT.cnf.gz +satcomp091113/maxxor064.cnf.gz +satcomp091113/pb_400_04_lb_19.cnf.gz +satcomp091113/homer14.shuffled.cnf.gz +satcomp091113/grid-strips-grid-y-3.055-NOTKNOWN.cnf.gz +satcomp091113/vmpc_25.cnf.gz +satcomp091113/md5_48_5.cnf.gz +satcomp091113/schup-l2s-motst-2-k315.cnf.gz +satcomp091113/total-10-19-u.cnf.gz +satcomp091113/gss-34-s100.cnf.gz +satcomp091113/grid-strips-grid-y-3.065-SAT.cnf.gz +satcomp091113/UR-10-5p1.cnf.gz +satcomp091113/bob12m06.cnf.gz +satcomp091113/UTI-15-10p1.cnf.gz +satcomp091113/eq.atree.braun.12.unsat.cnf.gz +satcomp091113/1dlx_c_iq60_a.cnf.gz +satcomp091113/hwmcc10-timeframe-expansion-k50-pdtviseisenberg2-tseitin.cnf.gz +satcomp091113/post-cbmc-zfcp-2.8-u2.cnf.gz +satcomp091113/partial-5-15-u.cnf.gz +satcomp091113/b_unsat.cnf.gz +satcomp091113/ferry5_ks99i.renamed-as.sat05-3994.cnf.gz +satcomp091113/ctl_4291_567_6_unsat.cnf.gz +satcomp091113/q_query_3_L80_coli.sat.cnf.gz +satcomp091113/cube-11-h14-sat.cnf.gz +satcomp091113/pb_200_03_lb_01.cnf.gz +satcomp091113/partial-5-19-s.cnf.gz +satcomp091113/q_query_3_L60_coli.sat.cnf.gz +satcomp091113/22-128-nossum004.cnf.gz +satcomp091113/hwmcc10-timeframe-expansion-k50-bc57sensorsp2-tseitin.cnf.gz +satcomp091113/biere6s153.cnf.gz +satcomp091113/AProVE07-09.cnf.gz +satcomp091113/openstacks-sequencedstrips-nonadl-nonnegated-os-sequencedstrips-p30_1.035-NOTKNOWN.cnf.gz +satcomp091113/aaai10-planning-ipc5-pipesworld-18-step16.cnf.gz +satcomp091113/minandmaxor016.cnf.gz +satcomp091113/q_query_3_l42_lambda.cnf.gz +satcomp091113/biere6s165.cnf.gz +satcomp091113/AProVE09-10.cnf.gz +satcomp091113/ACG-20-10p1.cnf.gz +satcomp091113/arcfour_initialPermutation_5_32.cnf.gz +satcomp091113/E02F17.cnf.gz +satcomp091113/ndhf_xits_10_UNSAT.cnf.gz +satcomp091113/UTI-10-10p0.cnf.gz +satcomp091113/gss-24-s100.cnf.gz +satcomp091113/bob12s06.cnf.gz +satcomp091113/arcfour_initialPermutation_6_40.cnf.gz +satcomp091113/ctl_4291_567_1_unsat_pre.cnf.gz +satcomp091113/SAT_dat.k65.cnf.gz +satcomp091113/6s103.cnf.gz +satcomp091113/korf-17.cnf.gz +satcomp091113/rpoc_xits_13_UNKNOWN.cnf.gz +satcomp091113/ctl_4291_567_8_unsat.cnf.gz +satcomp091113/itox_vc1130.cnf.gz +satcomp091113/aes_32_2_keyfind_1.cnf.gz +satcomp091113/rbcl_xits_18_SAT.cnf.gz +satcomp091113/traffic_kkb_unknown.cnf.gz +satcomp091113/countbitswegner128.cnf.gz +satcomp091113/transport-transport-two-cities-sequential-15nodes-1000size-3degree-100mindistance-3trucks-10packages-2008seed.020-NOTKNOWN.cnf.gz +satcomp091113/AProVE09-06.cnf.gz +satcomp091113/clauses-8.renamed-as.sat05-1964.cnf.gz +satcomp091113/aes_32_5_keyfind_1.cnf.gz +satcomp091113/openstacks-sequencedstrips-nonadl-nonnegated-os-sequencedstrips-p30_1.045-NOTKNOWN.cnf.gz +satcomp091113/pb_400_10_lb_00.cnf.gz +satcomp091113/velev-pipe-sat-1.0-b9.cnf.gz +satcomp091113/2dlx_ca_bp_f_liveness.cnf.gz +satcomp091113/traffic_b_unsat.cnf.gz +satcomp091113/ctl_4291_567_5_unsat.cnf.gz diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/server.py b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/server.py new file mode 100755 index 000000000..3c5c75be9 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/server.py @@ -0,0 +1,432 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (C) 2018 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +from __future__ import print_function +import os +import socket +import sys +import struct +import pickle +import time +import pprint +import traceback +import Queue +import threading +import logging +import server_option_parser + +# for importing in systems where "." is not in the PATH +sys.path.append(os.getcwd()) +from common_aws import * +import RequestSpotClient + + +def get_n_bytes_from_connection(sock, MSGLEN): + chunks = [] + bytes_recd = 0 + while bytes_recd < MSGLEN: + chunk = sock.recv(min(MSGLEN - bytes_recd, 2048)) + if chunk == '': + raise RuntimeError("socket connection broken") + chunks.append(chunk) + bytes_recd = bytes_recd + len(chunk) + + return ''.join(chunks) + + +def send_command(sock, command, tosend=None): + # note, this is a python issue, we can't set above tosend={} + # https://nedbatchelder.com/blog/200806/pylint.html + tosend = tosend or {} + + tosend["command"] = command + tosend = pickle.dumps(tosend) + tosend = struct.pack('!q', len(tosend)) + tosend + sock.sendall(tosend) + + +class ToSolve: + + def __init__(self, num, name): + self.num = num + self.name = name + + def __str__(self): + return "%s (num: %d)" % (self.name, self.num) + + +class Server (threading.Thread): + def __init__(self): + threading.Thread.__init__(self) + self.files_available = [] + self.files_finished = [] + self.files = {} + + logging.info("Getting list of files %s", options.cnf_list) + key = boto.connect_s3().get_bucket("msoos-solve-data").get_key("solvers/" + options.cnf_list) + key.get_contents_to_filename(options.cnf_list) + + fnames = open(options.cnf_list, "r") + logging.info("CNF list is file %s", options.cnf_list) + num = 0 + for fname in fnames: + fname = fname.strip() + self.files[num] = ToSolve(num, fname) + self.files_available.append(num) + logging.info("File added: %s", fname) + num = num+1 + fnames.close() + + self.files_running = {} + logging.info("Solving %d files", len(self.files_available)) + self.uniq_cnt = 0 + + def ready_to_shutdown(self): + if len(self.files_available) > 0: + return False + + if len(self.files_finished) < len(self.files): + return False + + return True + + def handle_done(self, connection, cli_addr, indata): + file_num = indata["file_num"] + + logging.info("Finished with file %s (num %d), got files %s", + self.files[indata["file_num"]], indata["file_num"], + indata["files"]) + self.files_finished.append(indata["file_num"]) + if file_num in self.files_running: + del self.files_running[file_num] + + logging.info("Num files_available: %d Num files_finished %d", + len(self.files_available), len(self.files_finished)) + + self.rename_files_to_final(indata["files"]) + sys.stdout.flush() + + def rename_files_to_final(self, files): + for fnames in files: + logging.info("Renaming file %s to %s", fnames[0], fnames[1]) + ret = os.system("aws s3 mv s3://{bucket}/{origname} s3://{bucket}/{toname} --region {region}".format( + bucket=options.s3_bucket, + origname=fnames[0], + toname=fnames[1], + region=options.region)) + if ret: + logging.warn("Renaming file to final name failed!") + + def check_for_dead_files(self): + this_time = time.time() + files_to_remove_from_files_running = [] + for file_num, starttime in self.files_running.items(): + duration = this_time - starttime + # print("* death check. running:" , file_num, " duration: ", + # duration) + if duration > options.timeout_in_secs*options.tout_mult: + logging.warn("* dead file %s duration: %d re-inserting", + file_num, duration) + files_to_remove_from_files_running.append(file_num) + self.files_available.append(file_num) + + for c in files_to_remove_from_files_running: + del self.files_running[c] + + def find_something_to_solve(self): + self.check_for_dead_files() + logging.info("Num files_available pre-send: %d", + len(self.files_available)) + + if len(self.files_available) == 0: + return None + + file_num = self.files_available[0] + del self.files_available[0] + logging.info("Num files_available post-send: %d", + len(self.files_available)) + sys.stdout.flush() + + return file_num + + def handle_build(self, connection, cli_addr, indata): + tosend = self.default_tosend() + logging.info("Sending git revision %s to %s", options.git_rev, + cli_addr) + send_command(connection, "build_data", tosend) + + def send_termination(self, connection, cli_addr): + tosend = {} + tosend["noshutdown"] = options.noshutdown + send_command(connection, "finish", tosend) + + logging.info("No more to solve, terminating %s", cli_addr) + global last_termination_sent + last_termination_sent = time.time() + + def send_wait(self, connection, cli_addr): + tosend = {} + tosend["noshutdown"] = options.noshutdown + logging.info("Everything is in sent queue, sending wait to %s", cli_addr) + send_command(connection, "wait", tosend) + + def default_tosend(self): + tosend = {} + tosend["solver"] = options.solver + tosend["git_rev"] = options.git_rev + tosend["stats"] = options.stats + tosend["gauss"] = options.gauss + tosend["s3_bucket"] = options.s3_bucket + tosend["given_folder"] = options.given_folder + tosend["timeout_in_secs"] = options.timeout_in_secs + tosend["mem_limit_in_mb"] = options.mem_limit_in_mb + tosend["noshutdown"] = options.noshutdown + tosend["extra_opts"] = options.extra_opts + tosend["drat"] = options.drat + tosend["region"] = options.region + + return tosend + + def send_one_to_solve(self, connection, cli_addr, file_num): + # set timer that we have sent this to be solved + self.files_running[file_num] = time.time() + filename = self.files[file_num].name + + tosend = self.default_tosend() + tosend["file_num"] = file_num + tosend["cnf_filename"] = filename + tosend["uniq_cnt"] = str(self.uniq_cnt) + logging.info("Sending file %s (num %d) to %s", + filename, file_num, cli_addr) + send_command(connection, "solve", tosend) + self.uniq_cnt += 1 + + def handle_need(self, connection, cli_addr, indata): + # TODO don't ignore 'indata' for solving CNF instances, use it to + # opitimize for uptime + file_num = self.find_something_to_solve() + + if file_num is None: + if len(self.files_running) == 0: + self.send_termination(connection, cli_addr) + else: + self.send_wait(connection, cli_addr) + else: + self.send_one_to_solve(connection, cli_addr, file_num) + + def handle_one_client(self, conn, cli_addr): + try: + logging.info("connection from %s", cli_addr) + + data = get_n_bytes_from_connection(conn, 8) + length = struct.unpack('!q', data)[0] + data = get_n_bytes_from_connection(conn, length) + data = pickle.loads(data) + + if data["command"] == "done": + self.handle_done(conn, cli_addr, data) + + if data["command"] == "error": + shutdown(-1) + raise + + elif data["command"] == "need": + self.handle_need(conn, cli_addr, data) + + elif data["command"] == "build": + self.handle_build(conn, cli_addr, data) + + sys.stdout.flush() + except: + exc_type, exc_value, exc_traceback = sys.exc_info() + traceback.print_exc() + the_trace = traceback.format_exc() + + logging.error("Exception from %s, Trace: %s", cli_addr, + the_trace) + + finally: + # Clean up the connection + logging.info("Finished with client %s", cli_addr) + conn.close() + + def run(self): + global acc_queue + while True: + conn, cli_addr = acc_queue.get() + self.handle_one_client(conn, cli_addr) + + +class Listener (threading.Thread): + + def __init__(self): + threading.Thread.__init__(self) + + def listen_to_connection(self): + # Create a TCP/IP socket + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + + # Bind the socket to the port + server_address = ('0.0.0.0', options.port) + logging.info('starting up on %s port %s', server_address, options.port) + sock.bind(server_address) + + # Listen for incoming connections + sock.listen(128) + return sock + + def handle_one_connection(self): + global acc_queue + + # Wait for a connection + conn, client_addr = self.sock.accept() + acc_queue.put_nowait((conn, client_addr)) + + def run(self): + try: + self.sock = self.listen_to_connection() + except: + exc_type, exc_value, exc_traceback = sys.exc_info() + the_trace = traceback.format_exc().rstrip().replace("\n", " || ") + logging.error("Cannot listen on stocket! Traceback: %s", the_trace) + shutdown(-1) + raise + while True: + self.handle_one_connection() + + +class SpotManager (threading.Thread): + + def __init__(self): + threading.Thread.__init__(self) + self.spot_creator = RequestSpotClient.RequestSpotClient( + options.git_rev, + ("test" in options.cnf_list), noshutdown=options.noshutdown, + count=options.client_count) + + def run(self): + while True: + try: + if not server.ready_to_shutdown(): + self.spot_creator.create_spots_if_needed() + except: + exc_type, exc_value, exc_traceback = sys.exc_info() + the_trace = traceback.format_exc().rstrip().replace("\n", " || ") + logging.error("Cannot create spots! Traceback: %s", the_trace) + + time.sleep(60) + + +def shutdown(exitval=0): + toexec = "sudo shutdown -h now" + logging.info("SHUTTING DOWN") + + # send email + try: + email_subject = "Server shutting down " + if exitval == 0: + email_subject += "OK" + else: + email_subject += "FAIL" + + full_s3_folder = get_s3_folder( + options.given_folder, + options.git_rev, + options.solver, + options.timeout_in_secs, + options.mem_limit_in_mb) + text = """Server finished. Please download the final data: + +mkdir {0} +cd {0} +aws s3 cp --recursive s3://{1}/{0}/ . + +Don't forget to: + +* check volume +* check EC2 still running + +So long and thanks for all the fish! +""".format(full_s3_folder, options.s3_bucket) + send_email(email_subject, text, options.logfile_name) + except: + exc_type, exc_value, exc_traceback = sys.exc_info() + the_trace = traceback.format_exc().rstrip().replace("\n", " || ") + logging.error("Cannot send email! Traceback: %s", the_trace) + + if not options.noshutdown: + os.system(toexec) + + exit(exitval) + + +def set_up_logging(): + form = '[ %(asctime)-15s %(levelname)s %(message)s ]' + logformatter = logging.Formatter(form) + + try: + os.unlink(options.logfile_name) + except: + pass + fileHandler = logging.FileHandler(options.logfile_name) + fileHandler.setFormatter(logformatter) + logging.getLogger().addHandler(fileHandler) + logging.getLogger().setLevel(logging.INFO) + +if __name__ == "__main__": + global options + global args + options, args = server_option_parser.parse_arguments() + if options.drat: + assert "cryptominisat" in options.solver + + global acc_queue + acc_queue = Queue.Queue() + last_termination_sent = None + + set_up_logging() + logging.info("Server called with parameters: %s", + pprint.pformat(options, indent=4).replace("\n", " || ")) + + if not options.git_rev: + options.git_rev = get_revision(options.base_dir + options.solver, options.base_dir) + logging.info("Revision not given, taking HEAD: %s", options.git_rev) + + server = Server() + listener = Listener() + spotmanager = SpotManager() + listener.setDaemon(True) + server.setDaemon(True) + spotmanager.setDaemon(True) + + listener.start() + server.start() + time.sleep(20) + spotmanager.start() + + while threading.active_count() > 0: + time.sleep(0.5) + if last_termination_sent is not None and server.ready_to_shutdown(): + diff = time.time() - last_termination_sent + limit = 100 + if diff > limit: + break + + shutdown() diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/aws/server_option_parser.py b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/server_option_parser.py new file mode 100755 index 000000000..c31cb0bde --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/aws/server_option_parser.py @@ -0,0 +1,194 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (C) 2018 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +import optparse +import random +import time +import string +import configparser + + +def parse_arguments(): + class PlainHelpFormatter(optparse.IndentedHelpFormatter): + + def format_description(self, description): + if description: + return description + "\n" + else: + return "" + + usage = """usage: %prog + +To use other solvers, give: +--solver SWDiA5BY.alt.vd.res.va2.15000.looseres.3tierC5/binary/SWDiA5BY_static.alt.vd +--solver SWDiA5BY_A26/binary/SWDiA5BY_static_A26 +--solver lingeling_ayv/binary/lingeling_ayv +--solver glucose2016/simp/glucose_static_2016 +--solver MapleCOMSPS/simp/maplecomsps_static +--solver cmsat-satcomp16/bin/cryptominisat4_simple +--solver lingeling-bbc/build/lingeling/lingeling_bbc +--solver Maple_LCM_Dist/Maple_LCM_Dist # may work with --drat, but needs updated DRAT checker + + +Use-cases: +# normal run +./launch_server.py --cnflist satcomp17_updated + +# stats run +./launch_server.py --cnf test_updated --stats --drat --tout 600 --memlimit 10000 +./launch_server.py --cnf unsat_small_candidates_fullpath --stats --drat --tout 600 --memlimit 10000 + + +# testing, using small instance to check (cheaper & faster) +./launch_server.py --cnflist test_updated + +# 2 clients, no preprocessing +./launch_server.py --cnflist satcomp14 -c 2 --opt "--preproc 0" --folder no_preproc + +# gaussian elimination -- automatic detection, built with GAUSS +./launch_server.py --cnflist satcomp14 --folder gauss + +# clause IDs so learning can be performed -- gzipped SQL output with clause IDs will be produced +./launch_server.py --stats --drat --folder learning + +# to give options to the solver +./launch_server.py --folder with_opts --opt \"--ml=1,--keepglue=4\"" + + # to upload features_to_reconf.cpp +aws s3 cp ../../src/features_to_reconf.cpp s3://msoos-solve-data/solvers/ + +""" + parser = optparse.OptionParser(usage=usage, formatter=PlainHelpFormatter()) + parser.add_option("--verbose", "-v", action="store_true", + default=False, dest="verbose", help="Be more verbose" + ) + + parser.add_option("--numclients", "-c", default=None, type=int, + dest="client_count", help="Number of clients to launch" + ) + + parser.add_option("--port", "-p", default=10000, dest="port", + help="Port to listen on. [default: %default]", type="int" + ) + + parser.add_option("--tout", "-t", default=3000, dest="timeout_in_secs", + help="Timeout for the file in seconds" + "[default: %default]", + type=int + ) + + parser.add_option("--toutmult", default=12.1, dest="tout_mult", + help="Approx: 1x is solving, 10x time is DRAT time wait, 1x is parsing, 0.1x that is sending us the result." + "[default: %default]", + type=float + ) + + parser.add_option("--memlimit", "-m", default=1600, dest="mem_limit_in_mb", + help="Memory limit in MB" + "[default: %default]", + type=int + ) + + parser.add_option("--cnflist", default="satcomp14_updated", dest="cnf_list", + type=str, + help="The list of CNF files to solve, first line the dir" + "[default: %default]", + ) + + parser.add_option("--dir", default="/home/ubuntu/", dest="base_dir", type=str, + help="The home dir of cryptominisat [default: %default]" + ) + + parser.add_option("--solver", + default="cryptominisat/build/cryptominisat5", + dest="solver", + help="Solver executable" + "[default: %default]", + type=str + ) + + parser.add_option("--folder", default="results", dest="given_folder", + help="S3 folder name to upload data" + "[default: %default]", + type=str + ) + + parser.add_option("--git", dest="git_rev", type=str, + help="The GIT revision to use. Default: HEAD" + ) + + parser.add_option("--opt", dest="extra_opts", type=str, default="", + help="Extra options to give to solver" + "[default: %default]", + ) + + parser.add_option("--noshutdown", "-n", default=False, dest="noshutdown", + action="store_true", help="Do not shut down clients" + ) + + parser.add_option("--drat", default=False, dest="drat", + action="store_true", help="Use DRAT" + ) + + parser.add_option("--stats", default=False, dest="stats", + action="store_true", help="Use STATS and get SQLITE data" + ) + + parser.add_option("--gauss", default=False, dest="gauss", + action="store_true", help="Use GAUSS" + ) + + parser.add_option("--logfile", dest="logfile_name", type=str, + default="python_server_log.log", help="Name of LOG file") + + # parse options + options, args = parser.parse_args() + conf = configparser.ConfigParser() + if options.cnf_list == "test": + conf.read('ec2-spot-instance-test.cfg') + else: + conf.read('ec2-spot-instance.cfg') + + options.s3_bucket = conf.get("ec2", "result_bucket") + options.key_name = conf.get("ec2", "key_name") + options.security_group_server = conf.get("ec2", "security_group_server") + options.subnet_id = conf.get("ec2", "subnet_id") + options.ami_id = conf.get("ec2", "ami_id") + options.region = conf.get("ec2", "region") + + def rnd_id(): + return ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(5)) + + options.logfile_name = options.base_dir + options.logfile_name + options.given_folder += "-" + time.strftime("%d-%B-%Y") + options.given_folder += "-%s" % rnd_id() + options.given_folder += "-%s" % options.cnf_list + + if options.drat and not options.stats: + print("ERROR: You must have --stats when you use --drat") + exit(-1) + + return options, args + + +if __name__ == "__main__": + options, args = parse_arguments() + print("Options are:", options) + print("args are:", args) diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/check_all_licenses.sh b/cryptominisat5/cryptominisat-5.6.3/scripts/check_all_licenses.sh new file mode 100755 index 000000000..ee2c025cd --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/check_all_licenses.sh @@ -0,0 +1,21 @@ +#!/usr/bin/bash +set -e +set -x + +check_license_fnames() { + #license check -- first print and then fail in case of problems + find $1 -type f -name $2 -exec ../utils/licensecheck/licensecheck.pl -m {} \; + NUM=$(find $1 -type f -name $2 -exec ../utils/licensecheck/licensecheck.pl -m {} \; | grep UNK | wc -l) + shopt -s extglob + NUM="${NUM##*( )}" + NUM="${NUM%%*( )}" + shopt -u extglob + if [ "$NUM" -ne 0 ]; then + echo "There are some files without license information!" + exit -1 + fi +} + +check_license_fnames ../tests/ CMakeLists.txt +check_license_fnames ../src/ CMakeLists.txt +check_license_fnames ../scripts/ CMakeLists.txt diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/docker/Dockerfile b/cryptominisat5/cryptominisat-5.6.3/scripts/docker/Dockerfile new file mode 100644 index 000000000..c76597c8b --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/docker/Dockerfile @@ -0,0 +1,9 @@ +FROM ubuntu:14.04 +MAINTAINER Mate Soos +# RUN apt-get update && apt-get install -y libboost-program-options1.54.0 libstdc++6 && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* +RUN apt-get install libboost-program-options1.54.0 +ADD cryptominisat4 /home/cryptominisat4 +ADD libcryptominisat4* /home/ +ADD libm4ri-* /home/ +WORKDIR /home +CMD ["./cryptominisat4"] diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/fuzz/CMakeLists.txt b/cryptominisat5/cryptominisat-5.6.3/scripts/fuzz/CMakeLists.txt new file mode 100644 index 000000000..31d801c70 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/fuzz/CMakeLists.txt @@ -0,0 +1,29 @@ +# Copyright (c) 2017, Mate Soos +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + + +# resource limiting is not available on Windows, so skip +if (ENABLE_TESTING AND NOT MSVC AND NOT ONLY_SIMPLE) + add_test ( + NAME verifier_test + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/verifier_test.py + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + ) +endif() diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/fuzz/debuglib.py b/cryptominisat5/cryptominisat-5.6.3/scripts/fuzz/debuglib.py new file mode 100644 index 000000000..639899b9f --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/fuzz/debuglib.py @@ -0,0 +1,148 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +# Copyright (C) 2014 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +from __future__ import with_statement # Required in 2.5 +from __future__ import print_function +import random + + +def get_max_var_from_clause(line): + maxvar = 0 + # strip leading 'x' + line2 = line.strip() + if len(line2) > 0 and line2[0] == 'x': + line2 = line2[1:] + + for lit in line2.split(): + num = 0 + try: + num = int(lit) + except ValueError: + print("line '%s' contains a non-integer variable" % line2) + + maxvar = max(maxvar, abs(num)) + + return maxvar + + +class debuglib: + @staticmethod + def generate_random_assumps(maxvar): + assumps = "" + num = 0 + varsInside = set() + + # Half of the time, no assumptions at all + if random.randint(0, 1) == 1: + return assumps + + # use a distribution so that few will be in assumps + while (num < maxvar and random.randint(0, 4) > 0): + + # get a var that is not already inside the assumps + thisVar = random.randint(1, maxvar) + tries = 0 + while (thisVar in varsInside): + thisVar = random.randint(1, maxvar) + tries += 1 + + # too many tries, don't waste time + if tries > 100: + return assumps + + varsInside.add(thisVar) + + # random sign + num += 1 + if random.randint(0, 1): + thisVar *= -1 + + assumps += "%d " % thisVar + + return assumps + + @staticmethod + def file_len_no_comment(fname): + i = 0 + with open(fname) as f: + for l in f: + # ignore comments and empty lines and header + if not l or l[0] == "c" or l[0] == "p": + continue + i += 1 + + return i + + @staticmethod + def main(fname1, fname2): + + # approx number of solve()-s to add + if random.randint(0, 1) == 1: + num_to_add = random.randint(0, 10) + else: + num_to_add = 0 + + # based on length and number of solve()-s to add, intersperse + # file with ::solve() + file_len = debuglib.file_len_no_comment(fname1) + if num_to_add > 0: + nextToAdd = random.randint(1, int(file_len / num_to_add) + 1) + else: + nextToAdd = file_len + 1 + + fin = open(fname1, "r") + fout = open(fname2, "w") + at = 0 + maxvar = 0 + for line in fin: + line = line.strip() + + # ignore comments (but write them out) + if not line or line[0] == "c" or line[0] == 'p': + fout.write(line + '\n') + continue + + at += 1 + if at >= nextToAdd: + assumps = debuglib.generate_random_assumps(maxvar) + if random.choice([True, False]): + fout.write("c Solver::solve( %s )\n" % assumps) + elif random.choice([True, False]): + fout.write("c Solver::simplify( %s )\n" % assumps) + else: + fout.write("c Solver::simplify( %s )\n" % assumps) + fout.write("c Solver::solve( %s )\n" % assumps) + + nextToAdd = at + \ + random.randint(1, int(file_len / num_to_add) + 1) + + # calculate max variable + maxvar = max(maxvar, get_max_var_from_clause(line)) + + # copy line over + fout.write(line + '\n') + fout.close() + fin.close() + + +def intersperse(fname1, fname2, seed): + random.seed(int(seed)) + debuglib.main(fname1, fname2) + diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/fuzz/fuzz_test.py b/cryptominisat5/cryptominisat-5.6.3/scripts/fuzz/fuzz_test.py new file mode 100755 index 000000000..1b741ef1a --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/fuzz/fuzz_test.py @@ -0,0 +1,871 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (C) 2014 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +from __future__ import with_statement # Required in 2.5 +from __future__ import print_function +import subprocess +import os +import sys +import time +import random +from random import choice +import optparse +import glob +import resource +from verifier import * +from functools import partial + +print("our CWD is: %s files here: %s" % (os.getcwd(), glob.glob("*"))) +sys.path.append(os.getcwd()) +print("our sys.path is", sys.path) + +from debuglib import * + + +class PlainHelpFormatter(optparse.IndentedHelpFormatter): + + def format_description(self, description): + if description: + return description + "\n" + else: + return "" + + +usage = "usage: %prog [options] --fuzz/--regtest/--checkdir/filetocheck" +desc = """Fuzz the solver with fuzz-generator: ./fuzz_test.py +""" + + +def set_up_parser(): + parser = optparse.OptionParser(usage=usage, description=desc, + formatter=PlainHelpFormatter()) + parser.add_option("--exec", metavar="SOLVER", dest="solver", + default="../../build/cryptominisat5", + help="SAT solver executable. Default: %default") + + parser.add_option("--extraopts", "-e", metavar="OPTS", + dest="extra_options", default="", + help="Extra options to give to SAT solver") + + parser.add_option("--verbose", "-v", action="store_true", default=False, + dest="verbose", help="Print more output") + + # for fuzz-testing + parser.add_option("--seed", dest="fuzz_seed_start", + help="Fuzz test start seed. Otherwise, random seed is picked" + " (printed to console)", type=int) + + parser.add_option("--fuzzlim", dest="fuzz_test_lim", type=int, + help="Number of fuzz tests to run" + ) + parser.add_option("--novalgrind", dest="novalgrind", default=False, + action="store_true", help="No valgrind installed") + parser.add_option("--valgrindfreq", dest="valgrind_freq", type=int, + default=10, help="1 out of X times valgrind will be used. Default: %default in 1") + + parser.add_option("--small", dest="small", default=False, + action="store_true", + help="Don't run 'large' fuzzer" + " (may mem-out on smaller systems)") + parser.add_option("--gauss", dest="gauss", default=False, + action="store_true", + help="Concentrate fuzzing gauss") + parser.add_option("--indep", dest="only_indep", default=False, + action="store_true", + help="Concentrate fuzzing independent variables") + parser.add_option("--dump", dest="only_dump", default=False, + action="store_true", + help="Concentrate fuzzing dumped clauses") + + parser.add_option("--maxth", "-m", dest="max_threads", default=100, + type=int, help="Max number of threads") + + parser.add_option("--tout", "-t", dest="maxtime", type=int, default=35, + help="Max time to run. Default: %default") + + parser.add_option("--textra", dest="maxtimediff", type=int, default=10, + help="Extra time on top of timeout for processing." + " Default: %default") + return parser + + +def fuzzer_call_failed(fname): + print("OOps, fuzzer executable call failed!") + print("Did you build with cmake -DENABLE_TESTING=ON? Did you do git submodules init & update?") + print("Here is the output:") + + print("**** ----- ****") + with open(fname, "r") as a: + for x in a: + print(x.strip()) + print("**** ----- ****") + exit(-1) + + +class create_fuzz: + + def call_from_fuzzer(self, fuzzer, fname): + seed = random.randint(0, 1000000) + if len(fuzzer) == 1: + call = "{0} {1} > {2}".format(fuzzer[0], seed, fname) + elif len(fuzzer) == 2: + call = "{0} {1} {2} > {3}".format( + fuzzer[0], fuzzer[1], seed, fname) + elif len(fuzzer) == 3: + hashbits = (random.getrandbits(20) % 80) + 1 + call = "%s %s %d %s %d > %s" % ( + fuzzer[0], fuzzer[1], hashbits, fuzzer[2], seed, fname) + else: + assert False, "Fuzzer must have at most 2 arguments" + + return call + + def create_fuzz_file(self, fuzzer, fuzzers, fname): + # handle special fuzzer + fnames_multi = [] + if len(fuzzer) == 2 and fuzzer[1] == "special": + + # sometimes just fuzz with all SAT problems + fixed = random.getrandbits(1) == 1 + + for _ in range(random.randrange(2, 4)): + fname2 = unique_file("fuzzTest") + fnames_multi.append(fname2) + + # chose a ranom fuzzer, not multipart + fuzzer2 = ["multipart.py", "special"] + while os.path.basename(fuzzer2[0]) == "multipart.py": + fuzzer2 = choice(fuzzers) + + # sometimes fuzz with SAT problems only + if (fixed): + fuzzer2 = fuzzers[0] + + print("fuzzer2 used: %s" % fuzzer2) + call = self.call_from_fuzzer(fuzzer2, fname2) + print("calling sub-fuzzer: %s" % call) + status = subprocess.call(call, shell=True) + if status != 0: + fuzzer_call_failed(fname2) + + # construct multi-fuzzer call + call = "" + call += fuzzer[0] + call += " " + for name in fnames_multi: + call += " " + name + call += " > " + fname + + return call, fnames_multi + + # handle normal fuzzer + else: + return self.call_from_fuzzer(fuzzer, fname), [] + + +def file_exists(fname): + try: + with open(fname): + return True + except IOError: + return False + + +def print_version(): + command = options.solver + " --version" + if options.verbose: + print("Executing: %s" % command) + p = subprocess.Popen(command.rsplit(), stderr=subprocess.STDOUT, + stdout=subprocess.PIPE, universal_newlines=True) + + consoleOutput, err = p.communicate() + print("Version values: %s" % consoleOutput.strip()) + + +class Tester: + + def __init__(self): + self.ignoreNoSolution = False + self.extra_opts_supported = self.list_options_if_supported( + ["xor", "autodisablegauss", "sql", "clid"]) + self.sol_parser = solution_parser(options) + self.sqlitedbfname = None + self.clid_added = False + self.only_indep = False + self.indep_vars = [] + self.dump_red = None + + def list_options_if_supported(self, tocheck): + ret = [] + for elem in tocheck: + if self.option_supported(elem): + ret.append(elem) + + return ret + + def option_supported(self, option_name): + command = options.solver + command += " --hhelp" + p = subprocess.Popen( + command.rsplit(), stderr=subprocess.STDOUT, + stdout=subprocess.PIPE, + universal_newlines=True) + + consoleOutput, err = p.communicate() + + for l in consoleOutput.split("\n"): + tmp_option_name = "--" + option_name + if tmp_option_name in l: + return True + + return False + + def create_rnd_sched(self, string_list): + opts = string_list.split(",") + opts = [a.strip(" ") for a in opts] + opts = sorted(list(set(opts))) + if options.verbose: + print("available schedule options: %s" % opts) + + sched = [] + for _ in range(int(random.gammavariate(12, 0.7))): + sched.append(random.choice(opts)) + + # just so that XOR is really found and used, so we can fuzz it + if "autodisablegauss" in self.extra_opts_supported: + if random.choice([False, True, True, True]) and self.this_gauss_on: + sched.append("occ-xor") + + return sched + + def rnd_schedule_all(self, preproc): + sched_opts = "handle-comps," + sched_opts += "scc-vrepl, cache-clean, cache-tryboth," + sched_opts += "sub-impl, intree-probe, probe," + sched_opts += "sub-str-cls-with-bin, distill-cls, scc-vrepl, sub-impl," + sched_opts += "sub-cls-with-bin," + sched_opts += "str-impl, cache-clean, sub-str-cls-with-bin, distill-cls, scc-vrepl," + sched_opts += "occ-backw-sub-str, occ-xor, occ-clean-implicit, occ-bve, occ-bva," + sched_opts += "check-cache-size, renumber" + + # type of schedule + cmd = "" + sched = ",".join(self.create_rnd_sched(sched_opts)) + if sched != "" and not preproc: + cmd += "--schedule %s " % sched + + sched = ",".join(self.create_rnd_sched(sched_opts)) + if sched != "": + cmd += "--preschedule %s " % sched + + return cmd + + def random_options(self, preproc=False): + self.sqlitedbfname = None + self.clid_added = False + cmd = " --zero-exit-status " + + # disable gauss when gauss is compiled in but asked not to be used + if not self.this_gauss_on and "autodisablegauss" in self.extra_opts_supported: + cmd += "--maxgaussdepth 0 " + + # note, presimp=0 is braindead for preproc but it's mostly 1 so OK + cmd += "--presimp %d " % random.choice([1, 1, 1, 1, 1, 1, 1, 0]) + cmd += "--confbtwsimp %d " % random.choice([100, 1000]) + + if self.dump_red is not None: + cmd += "--dumpred %s " % self.dump_red + cmd += "--dumpredmaxlen %d " % random.choice([2, 10, 100, 100000]) + cmd += "--dumpredmaxglue %d " % random.choice([2, 10, 100, 100000]) + + if self.only_indep: + cmd += "--onlyindep " + cmd += "--indep " + cmd += ",".join(["%s" % x for x in self.indep_vars]) + " " + + if random.choice([True, False]) and "clid" in self.extra_opts_supported: + cmd += "--varsperxorcut %d " % random.randint(4, 6) + cmd += "--xorcache %d " % random.choice([0, 1]) + if random.choice([True, True, True, False]): + self.clid_added = True + cmd += "--clid " + cmd += "--locgmult %.12f " % random.gammavariate(0.5, 0.7) + cmd += "--varelimover %d " % random.gammavariate(1, 20) + cmd += "--memoutmult %0.12f " % random.gammavariate(0.03, 50) + cmd += "--verb %d " % random.choice([0, 0, 0, 0, 1, 2]) + cmd += "--maple %d " % random.choice([0, 1]) + if random.randint(0, 2) == 1: + cmd += "--reconf %d " % random.choice([3, 4, 6, 7, 12, 13, 14, 15, 16]) + # cmd += "--undef %d " % random.choice([0, 1]) + cmd += " --reconfat %d " % random.randint(0, 2) + cmd += "--ml %s " % random.randint(0, 10) + cmd += "--restart %s " % random.choice( + ["geom", "glue", "luby"]) + cmd += "--adjustglue %f " % random.choice([0, 0.5, 0.7, 1.0]) + cmd += "--gluehist %s " % random.randint(1, 500) + cmd += "--updateglueonanalysis %s " % random.randint(0, 1) + cmd += "--otfhyper %s " % random.randint(0, 1) + # cmd += "--clean %s " % random.choice(["size", "glue", "activity", + # "prconf"]) + cmd += "--bothprop %s " % random.randint(0, 1) + cmd += "--probemaxm %s " % random.choice([0, 10, 100, 1000]) + cmd += "--cachesize %s " % random.randint(10, 100) + cmd += "--cachecutoff %s " % random.randint(0, 2000) + cmd += "--occredmax %s " % random.randint(0, 100) + cmd += "--extscc %s " % random.randint(0, 1) + cmd += "--distill %s " % random.randint(0, 1) + cmd += "--recur %s " % random.randint(0, 1) + cmd += "--compsfrom %d " % random.randint(0, 2) + cmd += "--compsvar %d " % random.randint(20000, 500000) + cmd += "--compslimit %d " % random.randint(0, 3000) + cmd += "--implicitmanip %s " % random.randint(0, 1) + cmd += "--occsimp %s " % random.randint(0, 1) + cmd += "--occirredmaxmb %s " % random.gammavariate(0.2, 5) + cmd += "--occredmaxmb %s " % random.gammavariate(0.2, 5) + cmd += "--skipresol %d " % random.choice([1, 1, 1, 0]) + cmd += "--implsubsto %s " % random.choice([0, 10, 1000]) + cmd += "--sync %d " % random.choice([100, 1000, 6000, 100000]) + cmd += "-m %0.12f " % random.gammavariate(0.1, 5.0) + cmd += "--maxsccdepth %d " % random.choice([0, 1, 100, 100000]) + + # more more minim + cmd += "--moremoreminim %d " % random.choice([1, 1, 1, 0]) + cmd += "--moremorecachelimit %d " % int(random.gammavariate(1, 6)) + cmd += "--moremorestamp %d " % random.choice([1, 1, 1, 0]) + cmd += "--moremorealways %d " % random.choice([1, 1, 1, 0]) + + if self.this_gauss_on: + # Reduce iteratively the matrix that is updated + cmd += "--iterreduce %s " % random.choice([0, 1]) + + # Only run Gaussian Elimination until this depth + cmd += "--maxgaussdepth %s " % int(random.gammavariate(1, 20.0)) + + # Set maximum no. of rows for gaussian matrix." + cmd += "--maxmatrixrows %s " % int(random.gammavariate(5, 15.0)) + + # "Automatically disable gauss when performing badly") + cmd += "--autodisablegauss %s " % random.choice([0, 1]) + + # "Set minimum no. of rows for gaussian matrix. + cmd += "--minmatrixrows %s " % int(random.gammavariate(3, 15.0)) + + # Save matrix every Nth decision level." + cmd += "--savematrix %s " % (int(random.gammavariate(1, 15.0))+1) + + # "Maximum number of matrixes to treat.") + cmd += "--maxnummatrixes %s " % int(random.gammavariate(1, 10.0)) + + if "sql" in self.extra_opts_supported and random.randint(0, 3) > 0 and self.num_threads == 1 and not self.preproc: + cmd += "--sql 2 " + self.sqlitedbfname = unique_file("fuzz", ".sqlitedb") + cmd += "--sqlitedb %s " % self.sqlitedbfname + cmd += "--sqlresttime %d " % random.randint(0, 1) + cmd += "--cldatadumpratio %0.3f " % random.choice([0.9, 0.1, 0.7]) + + # the most buggy ones, don't turn them off much, please + if random.choice([True, False]): + opts = ["scc", "varelim", "comps", "strengthen", "probe", "intree", + "stamp", "cache", "otfsubsume", + "renumber", "savemem", "moreminim", "gates", "bva", + "gorshort", "gandrem", "gateeqlit", "schedsimp"] + + if "xor" in self.extra_opts_supported: + opts.append("xor") + + for opt in opts: + cmd += "--%s %d " % (opt, random.randint(0, 1)) + + cmd += self.rnd_schedule_all(preproc) + + return cmd + + def execute(self, fname, fname2=None, fixed_opts="", rnd_opts=None): + if os.path.isfile(options.solver) is not True: + print("Error: Cannot find CryptoMiniSat executable.Searched in: '%s'" % + options.solver) + print("Error code 300") + exit(300) + + for f in glob.glob("%s-debugLibPart*.output" % fname): + os.unlink(f) + + # construct command + command = "" + if not options.novalgrind and random.randint(1, options.valgrind_freq) == 1: + command += "valgrind -q --leak-check=full --error-exitcode=9 " + command += options.solver + if rnd_opts is None: + rnd_opts = self.random_options() + command += rnd_opts + if self.needDebugLib: + command += "--debuglib %s " % fname + command += "--threads %d " % self.num_threads + command += options.extra_options + " " + command += fixed_opts + " " + if fname is not None: + command += fname + if fname2: + if self.drat: + command += " %s " % fname2 + else: + command += " %s --savedstate %s-savedstate.dat " % (fname2, fname2) + + print("Executing: %s " % command) + + # print time limit + if options.verbose: + print("CPU limit of parent (pid %d)" % os.getpid(), resource.getrlimit(resource.RLIMIT_CPU)) + + # if need time limit, then limit + err_fname = unique_file("err", ".out") + err_file = open(err_fname, "w") + p = subprocess.Popen( + command.rsplit(), stderr=err_file, stdout=subprocess.PIPE, + preexec_fn=partial(setlimits, options.maxtime), + universal_newlines=True) + + # print time limit after child startup + if options.verbose: + print("CPU limit of parent (pid %d) after startup of child: %s secs" % + (os.getpid(), resource.getrlimit(resource.RLIMIT_CPU))) + + # Get solver output + consoleOutput, err = p.communicate() + retcode = p.returncode + err_file.close() + with open(err_fname, "r") as err_file: + found_something = False + for line in err_file: + print("Error line while executing: %s" % line.strip()) + # don't error out on issues related to UBSAN/ASAN + # of clang of other projects + if "std::_Ios_Fmtflags" in line or "mzd.h" in line or "lexical_cast.hpp" in line or "MersenneTwister.h" in line: + pass + else: + found_something = True + + if found_something: + exit(-1) + + os.unlink(err_fname) + if self.sqlitedbfname is not None: + os.unlink(self.sqlitedbfname) + + if options.verbose: + print("CPU limit of parent (pid %d) after child finished executing: %s" % + (os.getpid(), resource.getrlimit(resource.RLIMIT_CPU))) + + return consoleOutput, retcode + + def check(self, fname, fname2=None, + checkAgainst=None, + fixed_opts="", dump_output_fname=None, + rnd_opts=None): + + consoleOutput = "" + if checkAgainst is None: + checkAgainst = fname + curr_time = time.time() + + # Do we need to solve the problem, or is it already solved? + consoleOutput, retcode = self.execute( + fname, fname2=fname2, + fixed_opts=fixed_opts, rnd_opts=rnd_opts) + + # if time was limited, we need to know if we were over the time limit + # and that is why there is no solution + diff_time = time.time() - curr_time + if diff_time > (options.maxtime - options.maxtimediff) / self.num_threads: + print("Too much time to solve, aborted!") + return None + + print("Within time limit: %.2f s" % diff_time) + print("filename: %s" % fname) + + if options.verbose: + print(consoleOutput) + + # if library debug is set, check it + if (self.needDebugLib): + self.sol_parser.check_debug_lib(checkAgainst) + + if retcode != 0: + print("Return code is not 0, error!") + exit(-1) + + print("Checking console output...") + unsat, solution, _ = self.sol_parser.parse_solution_from_output( + consoleOutput.split("\n"), self.ignoreNoSolution) + + # preprocessing + if dump_output_fname is not None: + f = open(dump_output_fname, "w") + f.write(consoleOutput) + f.close() + return True + + if not unsat: + if len(self.indep_vars) != 0: + self.sol_parser.indep_vars_solution_check(fname, self.indep_vars, solution) + else: + self.sol_parser.test_found_solution(solution, checkAgainst) + + if self.dump_red: + self.check_dumped_clauses(fname) + + return + + # it's UNSAT, let's check with DRAT + if fname2: + toexec = "../../build/tests/drat-trim/drat-trim {cnf} {dratf} {opt}" + opt = "" + if self.clid_added: + opt = "-i " + toexec = toexec.format(cnf=fname, dratf=fname2, opt=opt) + print("Checking DRAT...: ", toexec) + p = subprocess.Popen(toexec.rsplit(), + stdout=subprocess.PIPE, + universal_newlines=True) + + consoleOutput2 = p.communicate()[0] + diff_time = time.time() - curr_time + + # find verification code + foundVerif = False + dratLine = "" + for line in consoleOutput2.split('\n'): + if len(line) > 1 and line[:2] == "s ": + # print("verif: " , line) + foundVerif = True + if line[2:10] != "VERIFIED" and line[2:] != "TRIVIAL UNSAT": + print("DRAT verification error, it says: %s" % consoleOutput2) + assert line[2:10] == "VERIFIED" or line[ + 2:] == "TRIVIAL UNSAT", "DRAT didn't verify problem!" + dratLine = line + + # Check whether we have found a verification code + if foundVerif is False: + print("verifier error! It says: %s" % consoleOutput2) + assert foundVerif, "Cannot find DRAT verification code!" + else: + print("OK, DRAT says: %s" % dratLine) + + # check with other solver + ret = self.sol_parser.check_unsat(checkAgainst) + if ret is None: + print("Other solver time-outed, cannot check") + elif ret is True: + print("UNSAT verified by other solver") + else: + print("Grave bug: SAT-> UNSAT : Other solver found solution!!") + exit() + + def check_dumped_clauses(self, fname): + assert self.dump_red is not None + + tmpfname = unique_file("fuzzTest-dump-test") + with open(tmpfname, "w") as tmpf: + with open(fname, "r") as x: + for line in x: + line = line.strip() + if "c" in line or "p" in line: + continue + tmpf.write(line+"\n") + + with open(self.dump_red, "r") as x: + for line in x: + line = line.strip() + tmpf.write(line+"\n") + + print("[dump-check] dump-combined file is: ", tmpfname) + if options.verbose: + print("dump file is: ", self.dump_red) + print("orig file is: ", fname) + + self.old_dump_red = str(self.dump_red) + self.dump_red = None + self.indep_vars = [] + self.only_indep = False + self.check(tmpfname, checkAgainst=fname) + + os.unlink(tmpfname) + os.unlink(self.old_dump_red) + print("[dump-check] OK, solution after DUMP has been injected is still OK") + + def fuzz_test_one(self): + print("--- NORMAL TESTING ---") + self.num_threads = random.choice([1, 1, 1, 1, 1, 1, 4]) + self.num_threads = min(options.max_threads, self.num_threads) + self.this_gauss_on = "autodisablegauss" in self.extra_opts_supported and random.choice([True, False, False]) + if options.gauss: + self.this_gauss_on = True + assert "autodisablegauss" in self.extra_opts_supported + + self.drat = self.num_threads == 1 and random.randint(0, 10) < 5 and (not self.this_gauss_on) + self.sqlitedbfname = None + self.preproc = False + self.dump_red = random.choice([None, None, None, None, None, True]) + if self.dump_red is not None: + self.dump_red = unique_file("fuzzTest-dump") + self.only_indep = random.choice([True, False, False, False, False]) and not self.drat + + if options.only_indep: + self.drat = False + self.only_indep = True + + if options.only_dump: + self.drat = False + self.only_indep = False + if self.dump_red is None: + self.dump_red = unique_file("fuzzTest-dump") + + if self.drat: + fuzzers = fuzzers_drat + elif options.gauss: + fuzzers = fuzzers_xor + else: + fuzzers = fuzzers_nodrat + fuzzer = random.choice(fuzzers) + + fname = unique_file("fuzzTest") + fname_drat = None + if self.drat: + fname_drat = unique_file("fuzzTest-drat") + + # create the fuzz file + cf = create_fuzz() + call, todel = cf.create_fuzz_file(fuzzer, fuzzers, fname) + print("calling %s" % call) + status = subprocess.call(call, shell=True) + if status != 0: + fuzzer_call_failed(fname) + + if not self.drat and not self.only_indep and not self.dump_red: + self.needDebugLib = True + interspersed_fname = unique_file("fuzzTest") + seed_for_inters = random.randint(0, 1000000) + intersperse(fname, interspersed_fname, seed_for_inters) + print("Interspersed: ./intersperse.py %s %s %d" % (fname, + interspersed_fname, + seed_for_inters)) + os.unlink(fname) + else: + self.needDebugLib = False + interspersed_fname = fname + + # calculate indep vars + self.indep_vars = [] + if self.only_indep: + max_vars = self.sol_parser.max_vars_in_file(fname) + assert max_vars > 0 + + self.indep_vars = [] + myset = {} + for _ in range(random.randint(1, 50)): + x = random.randint(1, max_vars) + if x not in myset: + self.indep_vars.append(x) + myset[x] = 1 + + # don't do it for 0-length indep vars + if len(self.indep_vars) == 0: + self.only_indep = False + + self.check(fname=interspersed_fname, fname2=fname_drat) + + # remove temporary filenames + os.unlink(interspersed_fname) + if fname_drat: + os.unlink(fname_drat) + for name in todel: + os.unlink(name) + + if self.dump_red is not None: + os.unlink(self.dump_red) + self.dump_red = None + + def delete_file_no_matter_what(self, fname): + try: + os.unlink(fname) + except: + pass + + def fuzz_test_preproc(self): + print("--- PREPROC TESTING ---") + self.this_gauss_on = False # don't do gauss on preproc + tester.needDebugLib = False + fuzzer = random.choice(fuzzers_drat) + self.num_threads = 1 + fname = unique_file("fuzzTest") + self.drat = False + self.preproc = True + self.only_indep = False + self.indep_vars = [] + assert self.dump_red is None + self.dump_red = None + + # create the fuzz file + cf = create_fuzz() + call, todel = cf.create_fuzz_file(fuzzer, fuzzers_nodrat, fname) + print("calling %s : %s" % (fuzzer, call)) + status = subprocess.call(call, shell=True) + if status != 0: + fuzzer_call_failed(fname) + + rnd_opts = self.random_options(preproc=True) + + # preprocess + simp = "%s-simplified.cnf" % fname + self.delete_file_no_matter_what(simp) + curr_time = time.time() + console, retcode = self.execute(fname, fname2=simp, + rnd_opts=rnd_opts, + fixed_opts="--preproc 1") + + diff_time = time.time() - curr_time + if diff_time > (options.maxtime - options.maxtimediff) / self.num_threads: + print("Too much time to solve, aborted!") + else: + print("Within time limit: %.2f s" % diff_time) + if retcode != 0: + print("Return code is not 0, error!") + exit(-1) + + solution = "%s-solution.sol" % fname + ret = self.check(fname=simp, dump_output_fname=solution) + if ret is not None: + # didn't time out, so let's reconstruct the solution + savedstate = "%s-savedstate.dat" % simp + self.check(fname=solution, checkAgainst=fname, + fixed_opts="--preproc 2 --savedstate %s" % savedstate, + rnd_opts=rnd_opts) + os.unlink(savedstate) + os.unlink(solution) + + # remove temporary filenames + os.unlink(fname) + for name in todel: + os.unlink(name) + assert self.dump_red is None + + +def filter_large_fuzzer(dat): + f = [] + for x in dat: + okay = True + for y in x: + if "large" in y: + okay = False + + if okay: + f.append(x) + + return f + + +fuzzers_noxor = [ + ["../../build/tests/sha1-sat/sha1-gen --nocomment --attack preimage --rounds 20", + "--hash-bits", "--seed"], + ["../../build/tests/sha1-sat/sha1-gen --nocomment --attack preimage --zero " + "--message-bits 400 --rounds 8 --hash-bits 60", + "--seed"], + # ["build/cnf-fuzz-nossum"], + ["../../build/tests/cnf-utils/largefuzzer"], + ["../../build/tests/cnf-utils/cnf-fuzz-biere"], + ["../../build/tests/cnf-utils/cnf-fuzz-biere"], + ["../../build/tests/cnf-utils/cnf-fuzz-biere"], + ["../../build/tests/cnf-utils/cnf-fuzz-biere"], + ["../../build/tests/cnf-utils/cnf-fuzz-biere"], + ["../../build/tests/cnf-utils/cnf-fuzz-biere"], + ["../../build/tests/cnf-utils/cnf-fuzz-biere"], + ["../../build/tests/cnf-utils/cnf-fuzz-biere"], + ["../../build/tests/cnf-utils/cnf-fuzz-biere"], + ["../../build/tests/cnf-utils/sgen4 -unsat -n 50", "-s"], + ["../../build/tests/cnf-utils//sgen4 -sat -n 50", "-s"], + ["../../utils/cnf-utils/cnf-fuzz-brummayer.py", "-s"], + ["../../utils/cnf-utils/cnf-fuzz-xor.py", "--seed"], + ["../../utils/cnf-utils/multipart.py", "special"] +] +fuzzers_xor = [ + ["../../utils/cnf-utils/xortester.py", "--seed"], + ["../../build/tests/sha1-sat/sha1-gen --xor --attack preimage --rounds 21", + "--hash-bits", "--seed"], +] + + +if __name__ == "__main__": + global options + global fuzzers_drat + global fuzzers_nodrat + if not os.path.isdir("out"): + print("Directory for outputs, 'out' not present, creating it.") + os.mkdir("out") + + # parse options + parser = set_up_parser() + (options, args) = parser.parse_args() + if options.valgrind_freq <= 0: + print("Valgrind Frequency must be at least 1") + exit(-1) + + fuzzers_drat = fuzzers_noxor + fuzzers_nodrat = fuzzers_noxor + fuzzers_xor + if options.small: + fuzzers_drat = filter_large_fuzzer(fuzzers_drat) + fuzzers_nodrat = filter_large_fuzzer(fuzzers_nodrat) + + print_version() + tester = Tester() + tester.needDebugLib = False + num = 0 + rnd_seed = options.fuzz_seed_start + if rnd_seed is None: + rnd_seed = random.randint(0, 1000*1000*100) + + while True: + toexec = "./fuzz_test.py --fuzzlim 1 --seed %d " % rnd_seed + if options.novalgrind: + toexec += "--novalgrind " + if options.valgrind_freq: + toexec += "--valgrindfreq %d " % options.valgrind_freq + if options.small: + toexec += "--small " + if options.gauss: + toexec += "--gauss " + if options.only_indep: + toexec += "--indep " + if options.only_dump: + toexec += "--dump " + toexec += "-m %d " % options.max_threads + + print("") + print("") + print("--> To re-create fuzz-test below: %s" % toexec) + + random.seed(rnd_seed) + if random.randint(0, 10) == 0: + tester.fuzz_test_preproc() + else: + tester.fuzz_test_one() + rnd_seed += 1 + num += 1 + if options.fuzz_test_lim is not None and num >= options.fuzz_test_lim: + exit(0) diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/fuzz/intersperse.py b/cryptominisat5/cryptominisat-5.6.3/scripts/fuzz/intersperse.py new file mode 100755 index 000000000..6eb91615b --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/fuzz/intersperse.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +# Copyright (C) 2014 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +from __future__ import with_statement # Required in 2.5 +from __future__ import print_function +import debuglib +import sys + +if len(sys.argv) != 4: + print("You must give 3 arguments: input file, output file, seed") + + +debuglib.intersperse(sys.argv[1], sys.argv[2], sys.argv[3]) +print("OK, output in %s" % sys.argv[2]) diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/fuzz/verifier.py b/cryptominisat5/cryptominisat-5.6.3/scripts/fuzz/verifier.py new file mode 100755 index 000000000..b3389d5d6 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/fuzz/verifier.py @@ -0,0 +1,589 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +# Copyright (C) 2016 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + +from __future__ import with_statement # Required in 2.5 +from __future__ import print_function +import optparse +import gzip +import re +import fnmatch +from xor_to_cnf_class import * +from debuglib import * +import subprocess +import os +import stat +import time +import resource +import locale +from functools import partial + + +def unique_file(fname_begin, fname_end=".cnf"): + counter = 1 + while 1: + fname = "out/" + fname_begin + '_' + str(counter) + fname_end + try: + fd = os.open( + fname, os.O_CREAT | os.O_EXCL, stat.S_IREAD | stat.S_IWRITE) + os.fdopen(fd).close() + return fname + except OSError: + pass + + counter += 1 + if counter > 300: + print("Cannot create unique_file, last try was: %s", fname) + exit(-1) + + +def setlimits(maxtime): + # sys.stdout.write("Setting resource limit in child (pid %d): %d s\n" % + # (os.getpid(), maxtime)) + resource.setrlimit(resource.RLIMIT_CPU, (maxtime, maxtime)) + + +class solution_parser: + def __init__(self, options): + self.options = options + + @staticmethod + def test_found_solution(solution, fname, debugLibPart=None): + if debugLibPart is None: + print("Verifying solution for CNF file %s" % fname) + else: + print("Verifying solution for CNF file %s, part %d" % + (fname, debugLibPart)) + + if fnmatch.fnmatch(fname, '*.gz'): + f = gzip.open(fname, "r") + else: + f = open(fname, "r") + clauses = 0 + thisDebugLibPart = 0 + + for line in f: + line = line.rstrip() + + # skip empty lines + if len(line) == 0: + continue + + # count debug lib parts + if line[0] == 'c' and "Solver::solve" in line: + thisDebugLibPart += 1 + + # if we are over debugLibPart, exit + if debugLibPart is not None and thisDebugLibPart >= debugLibPart: + f.close() + return + + # check solution against clause + try: + if line[0] != 'c' and line[0] != 'p': + if line[0] != 'x': + solution_parser._check_regular_clause(line, solution) + else: + assert line[0] == 'x', "Line must start with p, c, v or x" + solution_parser._check_xor_clause(line, solution) + + clauses += 1 + except: + if debugLibPart is not None: + print("--> Error in part: %s. We are reading up to and including part: %s" + % (thisDebugLibPart, debugLibPart-1)) + raise + + f.close() + print("Verified %d original xor®ular clauses" % clauses) + + def indep_vars_solution_check(self, fname, indep_vars, solution): + assert len(indep_vars) > 0 + a = XorToCNF() + tmpfname = unique_file("tmp_for_xor_to_cnf_convert") + a.convert(fname, tmpfname) + + with open(tmpfname, "a") as f: + # NOTE: the "p cnf..." header will be wrong + for i in indep_vars: + if i not in solution: + print("ERROR: solution does not contain independent var %d" % i) + print("Independent vars were: %s" % indep_vars) + exit(-1) + + if solution[i]: + f.write("%d 0\n" % i) + else: + f.write("-%d 0\n" % i) + + print("-> added partial solution to temporary CNF file %s" % tmpfname) + + # execute with the other solver + toexec = "../../build/tests/minisat/minisat -verb=0 %s" % tmpfname + print("Solving with other solver: %s" % toexec) + curr_time = time.time() + try: + p = subprocess.Popen(toexec.rsplit(), + stdout=subprocess.PIPE, + preexec_fn=partial(setlimits, self.options.maxtime), + universal_newlines=True) + except OSError: + print("ERROR: Minisat didn't run... weird, it's included as a submodule") + raise + + consoleOutput2 = p.communicate()[0] + os.unlink(tmpfname) + + # if other solver was out of time, then we can't say anything + diff_time = time.time() - curr_time + if diff_time > self.options.maxtime - self.options.maxtimediff: + print("Other solver: too much time to solve, aborted!") + return None + + # extract output from the other solver + print("Checking other solver output...") + otherSolverUNSAT, _, _ = self.parse_solution_from_output( + consoleOutput2.split("\n")) + + # check if the other solver finds a solution with the independent vars + # set as per partial solution returned + if otherSolverUNSAT is True: + print("ERROR; The other solver did NOT find a solution with the partial solution given") + exit(-1) + return False + + print("OK, other solver found a solution using the partial solution") + + return True + + def check_unsat(self, fname): + a = XorToCNF() + tmpfname = unique_file("tmp_for_xor_to_cnf_convert") + a.convert(fname, tmpfname) + + # execute with the other solver + toexec = "../../build/tests/minisat/minisat -verb=0 %s" % tmpfname + print("Solving with other solver: %s" % toexec) + curr_time = time.time() + try: + p = subprocess.Popen(toexec.rsplit(), + stdout=subprocess.PIPE, + preexec_fn=partial(setlimits, self.options.maxtime), + universal_newlines=True) + except OSError: + print("ERROR: Minisat didn't run... weird, it's included as a submodule") + raise + + consoleOutput2 = p.communicate()[0] + os.unlink(tmpfname) + + # if other solver was out of time, then we can't say anything + diff_time = time.time() - curr_time + if diff_time > self.options.maxtime - self.options.maxtimediff: + print("Other solver: too much time to solve, aborted!") + return None + + # extract output from the other solver + print("Checking other solver output...") + otherSolverUNSAT, otherSolverSolution, _ = self.parse_solution_from_output( + consoleOutput2.split("\n")) + + # check if the other solver agrees with us + return otherSolverUNSAT + + def check_debug_lib(self, fname): + largestPart = self._find_largest_debuglib_part(fname) + for debugLibPart in range(1, largestPart + 1): + fname_debug = "%s-debugLibPart%d.output" % (fname, debugLibPart) + print("Checking debug lib part %s -- %s " % (debugLibPart, fname_debug)) + + if (os.path.isfile(fname_debug) is False): + print("Error: Filename to be read '%s' is not a file!" % fname_debug) + exit(-1) + + # take file into mem + f = open(fname_debug, "r") + text = f.read() + output_lines = text.splitlines() + f.close() + + unsat, solution, conflict = self.parse_solution_from_output(output_lines) + assumps = self._get_assumps(fname, debugLibPart) + if unsat is False: + print("debugLib is SAT") + self._check_assumps_inside_solution(assumps, solution) + self.test_found_solution(solution, fname, debugLibPart) + else: + print("debugLib is UNSAT") + assert conflict is not None, "debugLibPart must create a conflict in case of UNSAT" + self._check_assumps_inside_conflict(assumps, conflict) + tmpfname = unique_file("tmp_for_extract_libpart") + self._extract_lib_part(fname, debugLibPart, assumps, tmpfname) + + # check with other solver + ret = self.check_unsat(tmpfname) + if ret is None: + print("Cannot check, other solver took too much time") + elif ret is True: + print("UNSAT verified by other solver") + else: + print("Grave bug: SAT-> UNSAT : Other solver found solution!!") + exit(-1) + os.unlink(tmpfname) + + self.remove_debuglib_files(fname) + + def remove_debuglib_files(self, fname): + #removing debuglib files + largestPart = self._find_largest_debuglib_part(fname) + for debugLibPart in range(1, largestPart + 1): + fname_debug = "%s-debugLibPart%d.output" % (fname, debugLibPart) + os.unlink(fname_debug) + + @staticmethod + def parse_solution_from_output(output_lines, ignoreNoSolution=False): + if len(output_lines) == 0: + print("Error! SAT solver output is empty!") + print("output lines: %s" % output_lines) + exit(-1) + + # solution will be put here + satunsatfound = False + vlinefound = False + solution = {} + conflict = None + + # parse in solution + for line in output_lines: + # skip comment + if re.match('^conflict ', line): + line = line.strip().split()[1:] + conflict = [int(elem) for elem in line] + continue + + if (re.match('^c ', line)): + continue + + # solution + if (re.match('^s ', line)): + if (satunsatfound): + print("ERROR: solution twice in solver output!") + exit(400) + + if 'UNSAT' in line: + unsat = True + satunsatfound = True + continue + + if 'SAT' in line: + unsat = False + satunsatfound = True + continue + + print("ERROR: line starts with 's' but no SAT/UNSAT on line") + exit(400) + + # parse in solution + if (re.match('^v ', line)): + vlinefound = True + myvars = line.split(' ') + for var in myvars: + var = var.strip() + if var == "" or var == 'v': + continue + if (int(var) == 0): + break + intvar = int(var) + solution[abs(intvar)] = (intvar >= 0) + continue + + if (line.strip() == ""): + continue + + print("Error! SAT solver output contains a line that is neither 'v' nor 'c' nor 's'!") + print("Line is:", line.strip()) + exit(-1) + + # print("Parsed values:", solution) + + if (ignoreNoSolution is False and + (satunsatfound is False or ( + unsat is False and vlinefound is False))): + print("Error: Cannot find line starting with 's' or 'v' in output!") + print(output_lines) + print("Error code 500") + exit(-1) + + if (ignoreNoSolution is True and + (satunsatfound is False or ( + unsat is False and vlinefound is False))): + print("Probably timeout, since no solution printed. Could, of course, be segfault/assert fault, etc.") + print("Making it look like an UNSAT, so no checks!") + return (True, []) + + if (satunsatfound is False): + print("Error: Cannot find if SAT or UNSAT. Maybe didn't finish running?") + print(output_lines) + print("Error code 500") + exit(-1) + + if (unsat is False and vlinefound is False): + print("Error: Solution is SAT, but no 'v' line") + print (output_lines) + print("Error code 500") + exit(-1) + + return unsat, solution, conflict + + def _extract_lib_part(self, fname, debug_num, assumps, tofile): + fromf = open(fname, "r") + thisDebugLibPart = 0 + maxvar = 0 + numcls = 0 + for line in fromf: + line = line.strip() + + # ignore empty strings and headers + if not line or line[0] == "p": + continue + + # process (potentially special) comments + if line[0] == "c": + if "Solver::solve" in line: + thisDebugLibPart += 1 + + continue + + # break out if we reached the debug lib part + if thisDebugLibPart >= debug_num: + break + + # count clauses and get max var number + numcls += 1 + maxvar = max(maxvar, get_max_var_from_clause(line)) + + fromf.close() + + # now we can create the new CNF file + fromf = open(fname, "r") + tof = open(tofile, "w") + tof.write("p cnf %d %d\n" % (maxvar, numcls + len(assumps))) + + thisDebugLibPart = 0 + for line in fromf: + line = line.strip() + # skip empty lines and headers + if not line or line[0] == "p": + continue + + # parse up special header + if line[0] == "c": + if "Solver::solve" in line: + thisDebugLibPart += 1 + + continue + + # break out if we reached the debug lib part + if thisDebugLibPart >= debug_num: + break + + tof.write(line + '\n') + + # add assumptions + for lit in assumps: + tof.write("%d 0\n" % lit) + + fromf.close() + tof.close() + + def _get_assumps(self, fname, debugLibPart): + f = open(fname, "r") + + thispart = 0 + solveline = None + for line in f: + if "Solver::solve" in line: + thispart += 1 + if thispart == debugLibPart: + solveline = line + break + f.close() + + assert solveline is not None + ret = re.match("c.*Solver::solve\((.*)\)", solveline) + assert ret is not None + assumps = ret.group(1).strip().split() + assumps = [int(x) for x in assumps] + + print("Assumptions: ", assumps) + return assumps + + def _check_assumps_inside_conflict(self, assumps, conflict): + for lit in conflict: + if -1 * lit not in assumps: + print("ERROR: Final conflict contains %s but assumps is %s" %(conflict, assumps)) + print("ERROR: lit ", lit, " is in conflict but its inverse is not is assumps!") + exit(-100) + + print("OK, final conflict only contains elements from assumptions") + + def _check_assumps_inside_solution(self, assumps, solution): + for lit in assumps: + var = abs(lit) + val = lit > 0 + if var in solution: + if solution[var] != val: + print("Solution pinted has literal %s but assumptions contained the inverse: '%s'" % (-1 * lit, assumps)) + exit(-100) + + print("OK, all assumptions inside solution") + + def _find_largest_debuglib_part(self, fname): + largestPart = 0 + dirList2 = os.listdir(".") + for fname_debug in dirList2: + if fnmatch.fnmatch(fname_debug, "%s-debugLibPart*.output" % fname): + largestPart += 1 + + return largestPart + + @staticmethod + def max_vars_in_file(fname): + maxvar = 0 + with open(fname, "r") as f: + for line in f: + line = line.strip() + + # ignore comments + if not line or line[0] == "c" or line[0] == 'p': + continue + + # calculate max variable + maxvar = max(maxvar, get_max_var_from_clause(line)) + + return maxvar + + @staticmethod + def _check_regular_clause(line, solution): + lits = line.split() + for lit in lits: + numlit = int(lit) + if numlit == 0: + break + + if abs(numlit) not in solution: + continue + + if solution[abs(numlit)] ^ (numlit < 0): + return True + + # print not set vars + print("Unset vars:") + for lit in lits: + numlit = int(lit) + if numlit == 0: + break + + if abs(numlit) not in solution: + print("var %d not set" % abs(numlit)) + + print("Every other var set to FALSE") + raise NameError("Error: clause '%s' not satisfied." % line) + + @staticmethod + def _check_xor_clause(line, solution): + line = line.lstrip('x') + lits = line.split() + final = False + for lit in lits: + numlit = int(lit) + if numlit != 0: + if abs(numlit) not in solution: + raise NameError("Error: var %d not solved, but referred to in a xor-clause of the CNF" % abs(numlit)) + final ^= solution[abs(numlit)] + final ^= numlit < 0 + if final is False: + raise NameError("Error: xor-clause '%s' not satisfied." % line) + + return final + + +def parse_arguments(): + class PlainHelpFormatter(optparse.IndentedHelpFormatter): + + def format_description(self, description): + if description: + return description + "\n" + else: + return "" + + usage = """usage: %prog solution cnf + +For example: +%prog my_solution_file.out my_problem.cnf.gz""" + parser = optparse.OptionParser(usage=usage, formatter=PlainHelpFormatter()) + parser.add_option("--verbose", "-v", action="store_true", + default=False, dest="verbose", help="Be more verbose") + parser.add_option("--tout", "-t", dest="maxtime", type=int, default=100, + help="Max time to run. Default: %default") + parser.add_option("--textra", dest="maxtimediff", type=int, default=10, + help="Extra time on top of timeout for processing." + " Default: %default") + # parse options + options, args = parser.parse_args() + return options, args + +if __name__ == "__main__": + options, args = parse_arguments() + print("Options are:", options) + print("args are:", args) + if len(args) != 2: + print("ERROR: You must give exactly two parameters, " + "one SOLUTION and one CNF") + print("You gave {n} parameters".format(**{"n": len(args)})) + exit(-1) + + sol_file = args[0] + cnf_file = args[1] + print("Verifying CNF file '{cnf}' against solution in file '{sol}'".format( + **{"cnf": cnf_file, "sol": sol_file})) + + print("Checking debug libs...") + sol_parser = solution_parser(options) + sol_parser.check_debug_lib(cnf_file) + + print("Checking console output...") + sol = {} + with open(sol_file) as f: + dat = f.read() + + dat = dat.split("\n") + unsat, solution, _ = sol_parser.parse_solution_from_output(dat) + if not unsat: + sol_parser.test_found_solution(solution, cnf_file) + exit(0) + + # check with other solver + ret = sol_parser.check_unsat(cnf_file) + if ret is None: + print("Other solver time-outed, cannot check") + elif ret is True: + print("UNSAT verified by other solver") + else: + print("Grave bug: SAT-> UNSAT : Other solver found solution!!") + exit(-1) diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/fuzz/verifier_test.py b/cryptominisat5/cryptominisat-5.6.3/scripts/fuzz/verifier_test.py new file mode 100755 index 000000000..ca0786d69 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/fuzz/verifier_test.py @@ -0,0 +1,83 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (C) 2016 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + +from __future__ import with_statement # Required in 2.5 +from __future__ import print_function + +from verifier import * +import unittest + + +class Map(dict): + """ + Example: + m = Map({'first_name': 'Eduardo'}, last_name='Pool', age=24, sports=['Soccer']) + """ + def __init__(self, *args, **kwargs): + super(Map, self).__init__(*args, **kwargs) + for arg in args: + if isinstance(arg, dict): + for k, v in arg.items(): + self[k] = v + + if kwargs: + for k, v in kwargs.iteritems(): + self[k] = v + + def __getattr__(self, attr): + return self.get(attr) + + +class TestVerifier(unittest.TestCase): + def setUp(self): + options = Map({"verbose": False, "maxtime": 60, "maxtimediff": 160}) + self.s = solution_parser(options) + + def test_sat_cl(self): + self.assertTrue(self.s._check_regular_clause("1 2 3", {1: True})) + self.assertTrue(self.s._check_regular_clause("1 2 3", {2: True})) + self.assertTrue(self.s._check_regular_clause("1 2 -3", {3: False})) + + def test_unsat_cl(self): + self.assertRaises(NameError, self.s._check_regular_clause, "-1 2 3", {1: True}) + self.assertRaises(NameError, self.s._check_regular_clause, "-1 2 3", {}) + self.assertRaises(NameError, self.s._check_regular_clause, "-1 2 3 0", {}) + self.assertRaises(NameError, self.s._check_regular_clause, "1 2 -3 0", {0: True}) + self.assertRaises(NameError, self.s._check_regular_clause, "1 2 3", {1: False, 2: False, 3: False}) + self.assertRaises(NameError, self.s._check_regular_clause, "-1 -2 -3", {1: True, 2: True, 3: True}) + + def test_sat_xcl(self): + self.assertTrue(NameError, self.s._check_xor_clause("x1 2 3", {1: True, 2: False, 3: False})) + self.assertTrue(NameError, self.s._check_xor_clause("x1 2 3 0", {1: True, 2: False, 3: False})) + + def test_unsat_xcl(self): + self.assertRaises(NameError, self.s._check_xor_clause, "x1 2 3", {1: True}) + self.assertRaises(NameError, self.s._check_xor_clause, "x1 2 3", {1: False, 2: False, 3: False}) + + def test_sol_parse_sat(self): + unsat, s, _ = self.s.parse_solution_from_output(["s SAT", "v 1 2 3 0"]) + self.assertEqual(s, {1: True, 2: True, 3: True}) + + def test_sol_parse_unsat(self): + unsat, _, _ = self.s.parse_solution_from_output(["s UNSAT\n"]) + self.assertTrue(unsat) + + +if __name__ == '__main__': + unittest.main() diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/fuzz/xor_to_cnf_class.py b/cryptominisat5/cryptominisat-5.6.3/scripts/fuzz/xor_to_cnf_class.py new file mode 100644 index 000000000..38b96f008 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/fuzz/xor_to_cnf_class.py @@ -0,0 +1,238 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (C) 2014 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +from __future__ import print_function +import re + + +class XorToCNF: + def __init__(self): + self.cutsize = 4 + + def get_max_var(self, clause): + maxvar = 0 + + tmp = clause.strip() + if len(tmp) == 0: + return 0 + + assert re.search(r'^x? *-?\d+', tmp) + + if tmp[0] == 'x': + tmp = tmp[1:] + + for lit in tmp.split(): + var = abs(int(lit)) + maxvar = max(var, maxvar) + + return maxvar + + def convert(self, infilename, outfilename): + assert isinstance(self.cutsize, int) + if self.cutsize <= 2: + print("ERROR: The cut size MUST be larger or equal to 3") + exit(-1) + + maxvar, numcls, extravars_needed, extracls_needed = self.get_stats(infilename) + fout = open(outfilename, "w") + fout.write("p cnf %d %d\n" % (maxvar + extravars_needed, numcls + extracls_needed)) + fin = open(infilename, "r") + atvar = maxvar + for line in fin: + line = line.strip() + + # skip empty line + if len(line) == 0: + continue + + # skip header and comments + if line[0] == 'c' or line[0] == 'p': + continue + + if line[0] == 'x': + # convert XOR to normal(s) + xorclauses, atvar = self.cut_up_xor_to_n(line, atvar) + for xorcl in xorclauses: + cls = self.xor_to_cnf_simple(xorcl) + for cl in cls: + fout.write(cl + "\n") + else: + # simply print normal clause + fout.write(line + "\n") + + assert atvar == maxvar + extravars_needed + fout.close() + fin.close() + + def popcount(self, x): + return bin(x).count('1') + + def parse_xor(self, xorclause): + assert re.search(r'^x( *-?\d+ )*0$', xorclause) + + tmp = xorclause[1:] + lits = [int(elem) for elem in tmp.split()] + assert lits[len(lits)-1] == 0 + + # remove last element, the 0 + lits = lits[:len(lits)-1] + + return lits + + def xor_to_cnf_simple(self, xorclause, equals=True): + assert equals is True or equals is False + if equals is True: + equals = 1 + else: + equals = 0 + + lits = self.parse_xor(xorclause) + + # empty XOR clause is TRUE, so is NOT an empty clause (i.e. UNSAT) + if len(lits) == 0: + return [] + + ret = [] + for i in range(2**(len(lits))): + # only the ones we need + cls = "" + if self.popcount(i) % 2 == equals: + continue + + for at in range(len(lits)): + if ((i >> at) & 1) == 0: + cls += "%d " % lits[at] + else: + cls += "%d " % (-1*lits[at]) + + cls += "0" + ret.append(cls) + + return ret + + def cut_up_xor_to_n(self, xorclause, oldmaxvar): + assert self.cutsize > 2 + + lits = self.parse_xor(xorclause) + xors = [] + + # xor clause that doesn't need to be cut up + if len(lits) <= self.cutsize: + retcl = "x" + for lit in lits: + retcl += "%d " % lit + retcl += "0" + return [[retcl], oldmaxvar] + + at = 0 + newmaxvar = oldmaxvar + while(at < len(lits)): + + # until when should we cut? + until = min(at + self.cutsize-1, len(lits)) + + # if in the middle, don't add so much + if at > 0 and until < len(lits): + until -= 1 + + thisxor = "x" + for i2 in range(at, until): + thisxor += "%d " % lits[i2] + + # add the extra variables + if at == 0: + # beginning, add only one + thisxor += "%d 0" % (newmaxvar+1) + newmaxvar += 1 + elif until == len(lits): + # end, only add the one we already made + thisxor += "-%d 0" % (newmaxvar) + else: + thisxor += "-%d %d 0" % (newmaxvar, newmaxvar+1) + newmaxvar += 1 + + xors.append(thisxor) + + # move along where we are at + at = until + + return [xors, newmaxvar] + + def num_extra_vars_cls_needed(self, numlits): + def cls_for_plain_xor(numlits): + return 2**(numlits-1) + + varsneeded = 0 + clsneeded = 0 + + at = 0 + while(at < numlits): + # at the beginning + if at == 0: + if numlits > self.cutsize: + at += self.cutsize-1 + varsneeded += 1 + clsneeded += cls_for_plain_xor(self.cutsize) + else: + at = numlits + clsneeded += cls_for_plain_xor(numlits) + + # in the middle + elif at + (self.cutsize-1) < numlits: + at += self.cutsize-2 + varsneeded += 1 + clsneeded += cls_for_plain_xor(self.cutsize) + # at the end + else: + clsneeded += cls_for_plain_xor(numlits-at+1) + at = numlits + + return [varsneeded, clsneeded] + + def get_stats(self, infilename): + infile = open(infilename, "r") + + maxvar = 0 + numcls = 0 + extravars_needed = 0 + extracls_needed = 0 + for line in infile: + line = line.strip() + + # empty line, skip + if len(line) == 0: + continue + + # header or comment + if line[0] == 'p' or line[0] == 'c': + continue + + # get max var + maxvar = max(self.get_max_var(line), maxvar) + + if line[0] == 'x': + e_var, e_clause = self.num_extra_vars_cls_needed(len(self.parse_xor(line))) + extravars_needed += e_var + extracls_needed += e_clause + else: + numcls += 1 + + infile.close() + + return [maxvar, numcls, extravars_needed, extracls_needed] diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/learn/add_lemma_ind.py b/cryptominisat5/cryptominisat-5.6.3/scripts/learn/add_lemma_ind.py new file mode 100755 index 000000000..ccdb1f46f --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/learn/add_lemma_ind.py @@ -0,0 +1,126 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +# Copyright (C) 2017 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +from __future__ import print_function +import sqlite3 +import optparse + + +class Query: + def __init__(self, dbfname): + self.conn = sqlite3.connect(dbfname) + self.c = self.conn.cursor() + self.runID = self.find_runID() + # zero out goodClauses + self.c.execute('delete from goodClauses;') + self.cur_good_ids_num = 0 + self.num_goods_total = 0 + self.cur_good_ids = [] + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_value, traceback): + self.conn.commit() + self.conn.close() + + def parse_and_add_lemmas(self, lemmafname): + with open(lemmafname, "r") as f: + for line in f: + line = line.strip().split(" ") + self.parse_one_line(line) + + # final dump + self.dump_ids() + + print("Parsed %d number of good lemmas" % self.num_goods_total) + + def parse_one_line(self, line): + self.cur_good_ids_num += 1 + self.num_goods_total += 1 + + # get ID + myid = int(line[0]) + assert myid >= 0, "ID is always at least 0" + assert myid != 0, "ID with 0 should not even be printed" + + num_used = int(line[1]) + last_used = int(line[2]) + + # append to cur_good_ids + self.cur_good_ids.append((self.runID, myid, num_used, last_used)) + + # don't run out of memory, dump early + if self.cur_good_ids_num > 10000: + self.dump_ids() + + def dump_ids(self): + self.c.executemany(""" + INSERT INTO goodClauses (`runID`, `clauseID`, `num_used`, `last_confl_used`) + VALUES (?, ?, ?, ?);""", self.cur_good_ids) + self.cur_good_ids = [] + self.cur_good_ids_num = 0 + + def find_runID(self): + q = """ + SELECT runID + FROM startUp + order by startTime desc + """ + + runID = None + for row in self.c.execute(q): + if runID is not None: + print("ERROR: More than one RUN in the SQL, can't add lemmas!") + exit(-1) + runID = int(row[0]) + + print("runID: %d" % runID) + return runID + + +if __name__ == "__main__": + usage = """usage: %prog [options] sqlite_db lemmas + +It adds lemma indices from "lemmas" to the SQLite database, indicating whether +it was good or not.""" + + parser = optparse.OptionParser(usage=usage) + + parser.add_option("--verbose", "-v", action="store_true", default=False, + dest="verbose", help="Print more output") + + (options, args) = parser.parse_args() + + if len(args) != 2: + print("Error. Please follow usage") + print(usage) + exit(-1) + + dbfname = args[0] + lemmafname = args[1] + print("Using sqlite3db file %s" % dbfname) + print("Using lemma file %s" % lemmafname) + + with Query(dbfname) as q: + q.parse_and_add_lemmas(lemmafname) + + print("Finished adding good lemma indicators to db %s" % dbfname) + exit(0) diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/learn/gen_pandas.py b/cryptominisat5/cryptominisat-5.6.3/scripts/learn/gen_pandas.py new file mode 100755 index 000000000..c79f660a5 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/learn/gen_pandas.py @@ -0,0 +1,771 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +# Copyright (C) 2017 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +from __future__ import print_function +import sqlite3 +import optparse +import time +import pickle +import re +import pandas as pd +import numpy as np +import os.path + +from sklearn.model_selection import train_test_split +import sklearn.tree +import sklearn.svm +import sklearn.ensemble +import sklearn.metrics +from sklearn.preprocessing import LabelEncoder + + +############## +# HOW TO GET A NICE LIST +############## +# go into .stdout.gz outputs: +# zgrep "s UNSAT" * | cut -d ":" -f 1 > ../candidate_files_large_fixed_adjust_guess-12-April +# +# --> edit file to have the format: +# zgrep -H "Total" large_hybr-12-April-2016-VAGTY-e4119a1b0-tout-1500-mout-1600/1dlx_c_iq57_a.cnf.gz.stdout.gz +# +# run: +# ./candidate_files_large_hybr-12-April-2016-VAGTY.sh | awk '{if ($5 < 600 && $5 > 200) print $1 " -- " $5}' | cut -d "/" -f 2 | cut -d ":" -f 1 | sed "s/.stdout.*//" > ../unsat_small_candidates2.txt + + +################ +# EXAMPLE TO RUN THIS AGAINST +################ +# 6s153.cnf.gz + +class QueryHelper: + def __init__(self, dbfname): + if not os.path.isfile(dbfname): + print("ERROR: Database file '%s' does not exist" % dbfname) + exit(-1) + + self.conn = sqlite3.connect(dbfname) + self.c = self.conn.cursor() + self.runID = self.find_runID() + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_value, traceback): + self.conn.commit() + self.conn.close() + + def find_runID(self): + q = """ + SELECT runID + FROM startUp + order by startTime desc + limit 1 + """ + + runID = None + for row in self.c.execute(q): + if runID is not None: + print("ERROR: More than one RUN IDs in file!") + exit(-1) + runID = int(row[0]) + + print("runID: %d" % runID) + return runID + + +class Query2 (QueryHelper): + def create_indexes(self): + print("Recreating indexes...") + t = time.time() + q = """ + drop index if exists `idxclid`; + drop index if exists `idxclid2`; + drop index if exists `idxclid3`; + drop index if exists `idxclid4`; + drop index if exists `idxclid5`; + drop index if exists `idxclid6`; + + create index `idxclid` on `clauseStats` (`runID`,`clauseID`); + create index `idxclid2` on `clauseStats` (`runID`,`prev_restart`); + create index `idxclid3` on `goodClauses` (`runID`,`clauseID`); + create index `idxclid4` on `restart` (`runID`, `restarts`); + create index `idxclid5` on `tags` (`runID`, `tagname`); + create index `idxclid6` on `reduceDB` (`runID`,`clauseID`, `dump_no`); + """ + for l in q.split('\n'): + self.c.execute(l) + + print("indexes created T: %-3.2f s" % (time.time() - t)) + + def get_clstats(self): + + # partially done with tablestruct_sql and SED: sed -e 's/`\(.*\)`.*/rst.`\1` as `rst.\1`/' ../tmp.txt + restart_dat = """ + -- , rst.`runID` as `rst.runID` + -- , rst.`simplifications` as `rst.simplifications` + -- , rst.`restarts` as `rst.restarts` + -- , rst.`conflicts` as `rst.conflicts` + -- , rst.`latest_feature_calc` as `rst.latest_feature_calc` + -- rst.`runtime` as `rst.runtime` + , rst.`numIrredBins` as `rst.numIrredBins` + , rst.`numIrredLongs` as `rst.numIrredLongs` + , rst.`numRedBins` as `rst.numRedBins` + , rst.`numRedLongs` as `rst.numRedLongs` + , rst.`numIrredLits` as `rst.numIrredLits` + , rst.`numredLits` as `rst.numredLits` + , rst.`glue` as `rst.glue` + , rst.`glueSD` as `rst.glueSD` + , rst.`glueMin` as `rst.glueMin` + , rst.`glueMax` as `rst.glueMax` + , rst.`size` as `rst.size` + , rst.`sizeSD` as `rst.sizeSD` + , rst.`sizeMin` as `rst.sizeMin` + , rst.`sizeMax` as `rst.sizeMax` + , rst.`resolutions` as `rst.resolutions` + , rst.`resolutionsSD` as `rst.resolutionsSD` + , rst.`resolutionsMin` as `rst.resolutionsMin` + , rst.`resolutionsMax` as `rst.resolutionsMax` + , rst.`branchDepth` as `rst.branchDepth` + , rst.`branchDepthSD` as `rst.branchDepthSD` + , rst.`branchDepthMin` as `rst.branchDepthMin` + , rst.`branchDepthMax` as `rst.branchDepthMax` + , rst.`branchDepthDelta` as `rst.branchDepthDelta` + , rst.`branchDepthDeltaSD` as `rst.branchDepthDeltaSD` + , rst.`branchDepthDeltaMin` as `rst.branchDepthDeltaMin` + , rst.`branchDepthDeltaMax` as `rst.branchDepthDeltaMax` + , rst.`trailDepth` as `rst.trailDepth` + , rst.`trailDepthSD` as `rst.trailDepthSD` + , rst.`trailDepthMin` as `rst.trailDepthMin` + , rst.`trailDepthMax` as `rst.trailDepthMax` + , rst.`trailDepthDelta` as `rst.trailDepthDelta` + , rst.`trailDepthDeltaSD` as `rst.trailDepthDeltaSD` + , rst.`trailDepthDeltaMin` as `rst.trailDepthDeltaMin` + , rst.`trailDepthDeltaMax` as `rst.trailDepthDeltaMax` + , rst.`propBinIrred` as `rst.propBinIrred` + , rst.`propBinRed` as `rst.propBinRed` + , rst.`propLongIrred` as `rst.propLongIrred` + , rst.`propLongRed` as `rst.propLongRed` + , rst.`conflBinIrred` as `rst.conflBinIrred` + , rst.`conflBinRed` as `rst.conflBinRed` + , rst.`conflLongIrred` as `rst.conflLongIrred` + , rst.`conflLongRed` as `rst.conflLongRed` + , rst.`learntUnits` as `rst.learntUnits` + , rst.`learntBins` as `rst.learntBins` + , rst.`learntLongs` as `rst.learntLongs` + , rst.`resolBinIrred` as `rst.resolBinIrred` + , rst.`resolBinRed` as `rst.resolBinRed` + , rst.`resolLIrred` as `rst.resolLIrred` + , rst.`resolLRed` as `rst.resolLRed` + -- , rst.`propagations` as `rst.propagations` + -- , rst.`decisions` as `rst.decisions` + -- , rst.`flipped` as `rst.flipped` + , rst.`varSetPos` as `rst.varSetPos` + , rst.`varSetNeg` as `rst.varSetNeg` + , rst.`free` as `rst.free` + -- , rst.`replaced` as `rst.replaced` + -- , rst.`eliminated` as `rst.eliminated` + -- , rst.`set` as `rst.set` + -- , rst.`clauseIDstartInclusive` as `rst.clauseIDstartInclusive` + -- , rst.`clauseIDendExclusive` as `rst.clauseIDendExclusive` + """ + + rdb0_dat = """ + -- , rdb0.`runID` as `rdb0.runID` + -- , rdb0.`simplifications` as `rdb0.simplifications` + -- , rdb0.`restarts` as `rdb0.restarts` + , rdb0.`conflicts` as `rdb0.conflicts` + -- , rdb0.`runtime` as `rdb0.runtime` + + -- , rdb0.`clauseID` as `rdb0.clauseID` + , rdb0.`dump_no` as `rdb0.dump_no` + , rdb0.`conflicts_made` as `rdb0.conflicts_made` + , rdb0.`sum_of_branch_depth_conflict` as `rdb0.sum_of_branch_depth_conflict` + , rdb0.`propagations_made` as `rdb0.propagations_made` + , rdb0.`clause_looked_at` as `rdb0.clause_looked_at` + , rdb0.`used_for_uip_creation` as `rdb0.used_for_uip_creation` + , rdb0.`last_touched_diff` as `rdb0.last_touched_diff` + , rdb0.`activity_rel` as `rdb0.activity_rel` + , rdb0.`locked` as `rdb0.locked` + , rdb0.`in_xor` as `rdb0.in_xor` + -- , rdb0.`glue` as `rdb0.glue` + -- , rdb0.`size` as `rdb0.size` + , rdb0.`ttl` as `rdb0.ttl` + """ + + clause_dat = """ + -- , cl.`runID` as `cl.runID` + -- , cl.`simplifications` as `cl.simplifications` + -- , cl.`restarts` as `cl.restarts` + -- , cl.`prev_restart` as `cl.prev_restart` + -- , cl.`conflicts` as `cl.conflicts` + -- , cl.`latest_feature_calc` as `cl.latest_feature_calc` + -- , cl.`clauseID` as `cl.clauseID` + , cl.`glue` as `cl.glue` + , cl.`size` as `cl.size` + , cl.`conflicts_this_restart` as `cl.conflicts_this_restart` + , cl.`num_overlap_literals` as `cl.num_overlap_literals` + , cl.`num_antecedents` as `cl.num_antecedents` + , cl.`num_total_lits_antecedents` as `cl.num_total_lits_antecedents` + , cl.`antecedents_avg_size` as `cl.antecedents_avg_size` + , cl.`backtrack_level` as `cl.backtrack_level` + , cl.`decision_level` as `cl.decision_level` + , cl.`decision_level_pre1` as `cl.decision_level_pre1` + , cl.`decision_level_pre2` as `cl.decision_level_pre2` + , cl.`trail_depth_level` as `cl.trail_depth_level` + , cl.`cur_restart_type` as `cl.cur_restart_type` + , cl.`atedecents_binIrred` as `cl.atedecents_binIrred` + , cl.`atedecents_binRed` as `cl.atedecents_binRed` + , cl.`atedecents_longIrred` as `cl.atedecents_longIrred` + , cl.`atedecents_longRed` as `cl.atedecents_longRed` + -- , cl.`vsids_vars_avg` as `cl.vsids_vars_avg` + -- , cl.`vsids_vars_var` as `cl.vsids_vars_var` + -- , cl.`vsids_vars_min` as `cl.vsids_vars_min` + -- , cl.`vsids_vars_max` as `cl.vsids_vars_max` + , cl.`antecedents_glue_long_reds_avg` as `cl.antecedents_glue_long_reds_avg` + , cl.`antecedents_glue_long_reds_var` as `cl.antecedents_glue_long_reds_var` + , cl.`antecedents_glue_long_reds_min` as `cl.antecedents_glue_long_reds_min` + , cl.`antecedents_glue_long_reds_max` as `cl.antecedents_glue_long_reds_max` + , cl.`antecedents_long_red_age_avg` as `cl.antecedents_long_red_age_avg` + , cl.`antecedents_long_red_age_var` as `cl.antecedents_long_red_age_var` + , cl.`antecedents_long_red_age_min` as `cl.antecedents_long_red_age_min` + , cl.`antecedents_long_red_age_max` as `cl.antecedents_long_red_age_max` + -- , cl.`vsids_of_resolving_literals_avg` as `cl.vsids_of_resolving_literals_avg` + -- , cl.`vsids_of_resolving_literals_var` as `cl.vsids_of_resolving_literals_var` + -- , cl.`vsids_of_resolving_literals_min` as `cl.vsids_of_resolving_literals_min` + -- , cl.`vsids_of_resolving_literals_max` as `cl.vsids_of_resolving_literals_max` + -- , cl.`vsids_of_all_incoming_lits_avg` as `cl.vsids_of_all_incoming_lits_avg` + -- , cl.`vsids_of_all_incoming_lits_var` as `cl.vsids_of_all_incoming_lits_var` + -- , cl.`vsids_of_all_incoming_lits_min` as `cl.vsids_of_all_incoming_lits_min` + -- , cl.`vsids_of_all_incoming_lits_max` as `cl.vsids_of_all_incoming_lits_max` + -- , cl.`antecedents_antecedents_vsids_avg` as `cl.antecedents_antecedents_vsids_avg` + , cl.`decision_level_hist` as `cl.decision_level_hist` + , cl.`backtrack_level_hist_lt` as `cl.backtrack_level_hist_lt` + , cl.`trail_depth_level_hist` as `cl.trail_depth_level_hist` + -- , cl.`vsids_vars_hist` as `cl.vsids_vars_hist` + , cl.`size_hist` as `cl.size_hist` + , cl.`glue_hist` as `cl.glue_hist` + , cl.`num_antecedents_hist` as `cl.num_antecedents_hist` + , cl.`antec_sum_size_hist` as `cl.antec_sum_size_hist` + , cl.`antec_overlap_hist` as `cl.antec_overlap_hist` + + , cl.`branch_depth_hist_queue` as `cl.branch_depth_hist_queue` + , cl.`trail_depth_hist` as `cl.trail_depth_hist` + , cl.`trail_depth_hist_longer` as `cl.trail_depth_hist_longer` + , cl.`num_resolutions_hist` as `cl.num_resolutions_hist` + , cl.`confl_size_hist` as `cl.confl_size_hist` + , cl.`trail_depth_delta_hist` as `cl.trail_depth_delta_hist` + , cl.`backtrack_level_hist` as `cl.backtrack_level_hist` + , cl.`glue_hist_queue` as `cl.glue_hist_queue` + , cl.`glue_hist_long` as `cl.glue_hist_long` + """ + + feat_dat = """ + -- , feat.`simplifications` as `feat.simplifications` + -- , feat.`restarts` as `feat.restarts` + , feat.`conflicts` as `feat.conflicts` + -- , feat.`latest_feature_calc` as `feat.latest_feature_calc` + , feat.`numVars` as `feat.numVars` + , feat.`numClauses` as `feat.numClauses` + , feat.`var_cl_ratio` as `feat.var_cl_ratio` + , feat.`binary` as `feat.binary` + , feat.`horn` as `feat.horn` + , feat.`horn_mean` as `feat.horn_mean` + , feat.`horn_std` as `feat.horn_std` + , feat.`horn_min` as `feat.horn_min` + , feat.`horn_max` as `feat.horn_max` + , feat.`horn_spread` as `feat.horn_spread` + , feat.`vcg_var_mean` as `feat.vcg_var_mean` + , feat.`vcg_var_std` as `feat.vcg_var_std` + , feat.`vcg_var_min` as `feat.vcg_var_min` + , feat.`vcg_var_max` as `feat.vcg_var_max` + , feat.`vcg_var_spread` as `feat.vcg_var_spread` + , feat.`vcg_cls_mean` as `feat.vcg_cls_mean` + , feat.`vcg_cls_std` as `feat.vcg_cls_std` + , feat.`vcg_cls_min` as `feat.vcg_cls_min` + , feat.`vcg_cls_max` as `feat.vcg_cls_max` + , feat.`vcg_cls_spread` as `feat.vcg_cls_spread` + , feat.`pnr_var_mean` as `feat.pnr_var_mean` + , feat.`pnr_var_std` as `feat.pnr_var_std` + , feat.`pnr_var_min` as `feat.pnr_var_min` + , feat.`pnr_var_max` as `feat.pnr_var_max` + , feat.`pnr_var_spread` as `feat.pnr_var_spread` + , feat.`pnr_cls_mean` as `feat.pnr_cls_mean` + , feat.`pnr_cls_std` as `feat.pnr_cls_std` + , feat.`pnr_cls_min` as `feat.pnr_cls_min` + , feat.`pnr_cls_max` as `feat.pnr_cls_max` + , feat.`pnr_cls_spread` as `feat.pnr_cls_spread` + , feat.`avg_confl_size` as `feat.avg_confl_size` + , feat.`confl_size_min` as `feat.confl_size_min` + , feat.`confl_size_max` as `feat.confl_size_max` + , feat.`avg_confl_glue` as `feat.avg_confl_glue` + , feat.`confl_glue_min` as `feat.confl_glue_min` + , feat.`confl_glue_max` as `feat.confl_glue_max` + , feat.`avg_num_resolutions` as `feat.avg_num_resolutions` + , feat.`num_resolutions_min` as `feat.num_resolutions_min` + , feat.`num_resolutions_max` as `feat.num_resolutions_max` + , feat.`learnt_bins_per_confl` as `feat.learnt_bins_per_confl` + , feat.`avg_branch_depth` as `feat.avg_branch_depth` + , feat.`branch_depth_min` as `feat.branch_depth_min` + , feat.`branch_depth_max` as `feat.branch_depth_max` + , feat.`avg_trail_depth_delta` as `feat.avg_trail_depth_delta` + , feat.`trail_depth_delta_min` as `feat.trail_depth_delta_min` + , feat.`trail_depth_delta_max` as `feat.trail_depth_delta_max` + , feat.`avg_branch_depth_delta` as `feat.avg_branch_depth_delta` + , feat.`props_per_confl` as `feat.props_per_confl` + , feat.`confl_per_restart` as `feat.confl_per_restart` + , feat.`decisions_per_conflict` as `feat.decisions_per_conflict` + , feat.`red_glue_distr_mean` as `feat.red_glue_distr_mean` + , feat.`red_glue_distr_var` as `feat.red_glue_distr_var` + , feat.`red_size_distr_mean` as `feat.red_size_distr_mean` + , feat.`red_size_distr_var` as `feat.red_size_distr_var` + -- , feat.`red_activity_distr_mean` as `feat.red_activity_distr_mean` + -- , feat.`red_activity_distr_var` as `feat.red_activity_distr_var` + -- , feat.`irred_glue_distr_mean` as `feat.irred_glue_distr_mean` + -- , feat.`irred_glue_distr_var` as `feat.irred_glue_distr_var` + , feat.`irred_size_distr_mean` as `feat.irred_size_distr_mean` + , feat.`irred_size_distr_var` as `feat.irred_size_distr_var` + -- , feat.`irred_activity_distr_mean` as `feat.irred_activity_distr_mean` + -- , feat.`irred_activity_distr_var` as `feat.irred_activity_distr_var` + """ + + common_restrictions = """ + and cl.restarts > 1 -- to avoid history being invalid + and cl.runID = {runid} + and feat.runID = {runid} + and feat.latest_feature_calc = cl.latest_feature_calc + and rst.restarts = cl.prev_restart + and rst.runID = {runid} + and tags.tagname = "filename" + and tags.runID = {runid} + and cl.conflicts > {start_confl} + """ + + common_limits = """ + order by random() + limit {limit} + """ + + q_count = "SELECT count(*)" + q_ok_select = """ + SELECT + tags.tag as "fname" + {clause_dat} + {clause2_dat} + {clause3_dat} + {restart_dat} + {feat_dat} + {rdb0_dat} + {rdb1_dat} + {rdb2_dat} + {rdb3_dat} + {rdb4_dat} + , goodcl.num_used as `x.num_used` + , goodcl.last_confl_used-cl.`conflicts` as `x.lifetime` + , "OK" as `x.class` + """ + + q_ok = """ + FROM + clauseStats as cl + , clauseStats as cl2 + , clauseStats as cl3 + , goodClauses as goodcl + , restart as rst + , features as feat + , reduceDB as rdb0 + , reduceDB as rdb1 + , reduceDB as rdb2 + , reduceDB as rdb3 + , reduceDB as rdb4 + , tags + WHERE + + cl.clauseID = goodcl.clauseID + and cl.clauseID != 0 + and cl.runID = goodcl.runID + and rdb0.runID = cl.runID + and rdb0.clauseID = cl.clauseID + and rdb0.dump_no = 0 + and rdb1.runID = cl.runID + and rdb1.clauseID = cl.clauseID + and rdb1.dump_no = 1 + and rdb2.runID = cl.runID + and rdb2.clauseID = cl.clauseID + and rdb2.dump_no = 2 + and rdb3.runID = cl.runID + and rdb3.clauseID = cl.clauseID + and rdb3.dump_no = 3 + and rdb4.runID = cl.runID + and rdb4.clauseID = cl.clauseID + and rdb4.dump_no = 4 + and cl2.runID = cl.runID + and cl2.clauseID = cl.clauseID + and cl3.runID = cl.runID + and cl3.clauseID = cl.clauseID + """ + q_ok += common_restrictions + + # BAD caluses + q_bad_select = """ + SELECT + tags.tag as "fname" + {clause_dat} + {clause2_dat} + {clause3_dat} + {restart_dat} + {feat_dat} + {rdb0_dat} + {rdb1_dat} + {rdb2_dat} + {rdb3_dat} + {rdb4_dat} + , 0 as `x.num_used` + , 0 as `x.lifetime` + , "BAD" as `x.class` + """ + + q_bad = """ + FROM clauseStats as cl left join goodClauses as goodcl + on cl.clauseID = goodcl.clauseID + and cl.runID = goodcl.runID + , clauseStats as cl2 + , clauseStats as cl3 + , restart as rst + , features as feat + , reduceDB as rdb0 + , reduceDB as rdb1 + , reduceDB as rdb2 + , reduceDB as rdb3 + , reduceDB as rdb4 + , tags + WHERE + + goodcl.clauseID is NULL + and goodcl.runID is NULL + and cl.clauseID != 0 + and rdb0.runID = cl.runID + and rdb0.clauseID = cl.clauseID + and rdb0.dump_no = 0 + and rdb1.runID = cl.runID + and rdb1.clauseID = cl.clauseID + and rdb1.dump_no = 1 + and rdb2.runID = cl.runID + and rdb2.clauseID = cl.clauseID + and rdb2.dump_no = 2 + and rdb3.runID = cl.runID + and rdb3.clauseID = cl.clauseID + and rdb3.dump_no = 3 + and rdb4.runID = cl.runID + and rdb4.clauseID = cl.clauseID + and rdb4.dump_no = 4 + and cl2.runID = cl.runID + and cl2.clauseID = cl.clauseID + and cl3.runID = cl.runID + and cl3.clauseID = cl.clauseID + """ + q_bad += common_restrictions + + myformat = {"runid": self.runID, + "limit": 1000*1000*1000, + "restart_dat": restart_dat, + "clause_dat": clause_dat, + "clause2_dat": clause_dat.replace("cl.", "cl2."), + "clause3_dat": clause_dat.replace("cl.", "cl3."), + "feat_dat": feat_dat, + "rdb0_dat": rdb0_dat, + "rdb1_dat": rdb0_dat.replace("rdb0.", "rdb1."), + "rdb2_dat": rdb0_dat.replace("rdb0.", "rdb2."), + "rdb3_dat": rdb0_dat.replace("rdb0.", "rdb3."), + "rdb4_dat": rdb0_dat.replace("rdb0.", "rdb4."), + "start_confl": options.start_conflicts} + + t = time.time() + + q = q_count + q_ok + q = q.format(**myformat) + if options.verbose: + print("query:", q) + cur = self.conn.execute(q.format(**myformat)) + num_lines_ok = int(cur.fetchone()[0]) + print("Num datapoints OK (K): %-3.5f" % (num_lines_ok/1000.0)) + + q = q_count + q_bad + q = q.format(**myformat) + if options.verbose: + print("query:", q) + cur = self.conn.execute(q.format(**myformat)) + num_lines_bad = int(cur.fetchone()[0]) + print("Num datpoints BAD (K): %-3.5f" % (num_lines_bad/1000.0)) + + total_lines = num_lines_ok + num_lines_bad + print("Total number of datapoints (K): %-3.2f" % (total_lines/1000.0)) + if options.fixed_num_datapoints != -1: + if options.fixed_num_datapoints > total_lines: + print("WARNING -- Your fixed num datapoints is too high:", options.fixed_num_datapoints) + print("WARNING -- We only have:", total_lines) + print("WARNING --> Not returning data.") + return False, None + + if total_lines == 0: + print("WARNING: Total number of datapoints is 0. Potential issues:") + print(" --> Minimum no. conflicts set too high") + print(" --> Less than 1 restarts were made") + print(" --> No conflicts in SQL") + print(" --> Something went wrong") + return False, None + + print("Percentage of OK: %-3.2f" % (num_lines_ok/float(total_lines)*100.0)) + q = q_ok_select + q_ok + if options.fixed_num_datapoints != -1: + myformat["limit"] = int(options.fixed_num_datapoints * num_lines_ok/float(total_lines)) + q += common_limits + + print("limit for OK:", myformat["limit"]) + q = q.format(**myformat) + print("Running query for OK...") + if options.verbose: + print("query:", q) + df = pd.read_sql_query(q, self.conn) + + q = q_bad_select + q_bad + if options.fixed_num_datapoints != -1: + myformat["limit"] = int(options.fixed_num_datapoints * num_lines_bad/float(total_lines)) + q += common_limits + + print("limit for bad:", myformat["limit"]) + q = q.format(**myformat) + print("Running query for BAD...") + if options.verbose: + print("query:", q) + df2 = pd.read_sql_query(q, self.conn) + print("Queries finished. T: %-3.2f" % (time.time() - t)) + + if options.dump_sql: + print("-- query starts --") + print(q) + print("-- query ends --") + + return True, pd.concat([df, df2]) + + +def get_one_file(dbfname): + print("Using sqlite3db file %s" % dbfname) + + df = None + with Query2(dbfname) as q: + if not options.no_recreate_indexes: + q.create_indexes() + ok, df = q.get_clstats() + if not ok: + return False, None + + if options.verbose: + print("Printing head:") + print(df.head()) + print("Print head done.") + + return True, df + + +def transform(df): + def check_clstat_row(self, row): + if row[self.ntoc["cl.decision_level_hist"]] == 0 or \ + row[self.ntoc["cl.backtrack_level_hist"]] == 0 or \ + row[self.ntoc["cl.trail_depth_level_hist"]] == 0 or \ + row[self.ntoc["cl.vsids_vars_hist"]] == 0 or \ + row[self.ntoc["cl.size_hist"]] == 0 or \ + row[self.ntoc["cl.glue_hist"]] == 0 or \ + row[self.ntoc["cl.num_antecedents_hist"]] == 0: + print("ERROR: Data is in error:", row) + assert(False) + exit(-1) + + return row + + # relative overlaps + df["cl.overlap"] = df["cl.num_total_lits_antecedents"]-df["cl.size"]-2*df["cl.num_antecedents"] + df["cl.overlap_rel"] = df["cl.overlap"]/df["cl.antec_overlap_hist"] + df["cl.num_antecedents_rel"] = df["cl.num_antecedents"]/df["cl.num_antecedents_hist"] + df["rst.varset_neg_polar_ratio"] = df["rst.varSetNeg"]/(df["rst.varSetPos"]+df["rst.varSetNeg"]) + + # ************ + # TODO decision level and branch depth are the same, right??? + # ************ + df["cl.size_rel"] = df["cl.size"] / df["cl.size_hist"] + df["cl.glue_rel_queue"] = df["cl.glue"] / df["cl.glue_hist_queue"] + df["cl.glue_rel_long"] = df["cl.glue"] / df["cl.glue_hist_long"] + df["cl.glue_rel"] = df["cl.glue"] / df["cl.glue_hist"] + df["cl.trail_depth_level_rel"] = df["cl.trail_depth_level"]/df["cl.trail_depth_level_hist"] + df["cl.branch_depth_rel_queue"] = df["cl.decision_level"]/df["cl.branch_depth_hist_queue"] + + # smaller-than larger-than for glue and size + df["cl.size_smaller_than_hist"] = (df["cl.size"] < df["cl.size_hist"]).astype(int) + df["cl.glue_smaller_than_hist"] = (df["cl.glue"] < df["cl.glue_hist"]).astype(int) + df["cl.glue_smaller_than_hist_lt"] = (df["cl.glue"] < df["cl.glue_hist_long"]).astype(int) + df["cl.glue_smaller_than_hist_queue"] = (df["cl.glue"] < df["cl.glue_hist_queue"]).astype(int) + + # relative decisions + df["cl.decision_level_rel"] = df["cl.decision_level"]/df["cl.decision_level_hist"] + df["cl.decision_level_pre1_rel"] = df["cl.decision_level_pre1"]/df["cl.decision_level_hist"] + df["cl.decision_level_pre2_rel"] = df["cl.decision_level_pre2"]/df["cl.decision_level_hist"] + df["cl.decision_level_pre2_rel"] = df["cl.decision_level_pre2"]/df["cl.decision_level_hist"] + df["cl.decision_level_pre2_rel"] = df["cl.decision_level_pre2"]/df["cl.decision_level_hist"] + df["cl.backtrack_level_rel"] = df["cl.backtrack_level"]/df["cl.decision_level_hist"] + + # relative props + df["rst.all_props"] = df["rst.propBinRed"] + df["rst.propBinIrred"] + df["rst.propLongRed"] + df["rst.propLongIrred"] + df["rst.propBinRed_ratio"] = df["rst.propBinRed"]/df["rst.all_props"] + df["rst.propBinIrred_ratio"] = df["rst.propBinIrred"]/df["rst.all_props"] + df["rst.propLongRed_ratio"] = df["rst.propLongRed"]/df["rst.all_props"] + df["rst.propLongIrred_ratio"] = df["rst.propLongIrred"]/df["rst.all_props"] + + df["cl.trail_depth_level_rel"] = df["cl.trail_depth_level"]/df["rst.free"] + + # relative resolutions + df["rst.resolBinIrred_ratio"] = df["rst.resolBinIrred"]/df["rst.resolutions"] + df["rst.resolBinRed_ratio"] = df["rst.resolBinRed"]/df["rst.resolutions"] + df["rst.resolLRed_ratio"] = df["rst.resolLRed"]/df["rst.resolutions"] + df["rst.resolLIrred_ratio"] = df["rst.resolLIrred"]/df["rst.resolutions"] + + df["cl.num_antecedents_rel"] = df["cl.num_antecedents"] / df["cl.num_antecedents_hist"] + df["cl.decision_level_rel"] = df["cl.decision_level"] / df["cl.decision_level_hist"] + df["cl.trail_depth_level_rel"] = df["cl.trail_depth_level"] / df["cl.trail_depth_level_hist"] + df["cl.backtrack_level_rel"] = df["cl.backtrack_level"] / df["cl.backtrack_level_hist"] + + # smaller-or-greater comparisons + df["cl.decision_level_smaller_than_hist"] = (df["cl.decision_level"] < df["cl.decision_level_hist"]).astype(int) + df["cl.backtrack_level_smaller_than_hist"] = (df["cl.backtrack_level"] < df["cl.backtrack_level_hist"]).astype(int) + df["cl.trail_depth_level_smaller_than_hist"] = (df["cl.trail_depth_level"] < df["cl.trail_depth_level_hist"]).astype(int) + df["cl.num_antecedents_smaller_than_hist"] = (df["cl.num_antecedents"] < df["cl.num_antecedents_hist"]).astype(int) + df["cl.antec_sum_size_smaller_than_hist"] = (df["cl.antec_sum_size_hist"] < df["cl.num_total_lits_antecedents"]).astype(int) + df["cl.antec_overlap_smaller_than_hist"] = (df["cl.antec_overlap_hist"] < df["cl.overlap"]).astype(int) + df["cl.overlap_smaller_than_hist"] = (df["cl.overlap"]<df["cl.antec_overlap_hist"]).astype(int) + df["cl.branch_smaller_than_hist_queue"] = (df["cl.decision_level"]<df["cl.branch_depth_hist_queue"]).astype(int) + + + + # df["cl.vsids_vars_rel"] = df["cl.vsids_vars_avg"] / df["cl.vsids_vars_hist"] + + old = set(df.columns.values.flatten().tolist()) + df = df.dropna(how="all") + new = set(df.columns.values.flatten().tolist()) + if len(old - new) > 0: + print("ERROR: a NaN number turned up") + print("columns: ", (old - new)) + assert(False) + exit(-1) + + # making sure "x.class" is the last one + new_no_class = list(new) + new_no_class.remove("x.class") + df = df[new_no_class + ["x.class"]] + + return df + + +def dump_dataframe(df, name): + if options.dump_csv: + fname = "%s.csv" % name + print("Dumping CSV data to:", fname) + df.to_csv(fname, index=False, columns=sorted(list(df))) + + fname = "%s-pandasdata.dat" % name + print("Dumping pandas data to:", fname) + with open(fname, "wb") as f: + pickle.dump(df, f) + + +def one_predictor(dbfname): + ok, df = get_one_file(dbfname) + if not ok: + return False, None + + cleanname = re.sub('\.cnf.gz.sqlite$', '', dbfname) + + if options.verbose: + print("Describing----") + dat = df.describe() + print(dat) + print("Describe done.---") + print("Features: ", df.columns.values.flatten().tolist()) + + df = transform(df) + + if options.verbose: + print("Describing post-transform ----") + print(df.describe()) + print("Describe done.---") + + dump_dataframe(df, cleanname) + + return True, df + + +if __name__ == "__main__": + usage = "usage: %prog [options] file1.sqlite [file2.sqlite ...]" + parser = optparse.OptionParser(usage=usage) + + parser.add_option("--verbose", "-v", action="store_true", default=False, + dest="verbose", help="Print more output") + + parser.add_option("--csv", action="store_true", default=False, + dest="dump_csv", help="Dump CSV (for weka)") + + parser.add_option("--sql", action="store_true", default=False, + dest="dump_sql", help="Dump SQL query") + + parser.add_option("--fixed", default=-1, type=int, + dest="fixed_num_datapoints", help="Exact number of examples to take. -1 is to take all. Default: %default") + + parser.add_option("--start", default=-1, type=int, + dest="start_conflicts", help="Only consider clauses from conflicts that are at least this high") + + parser.add_option("--noind", action="store_true", default=False, + dest="no_recreate_indexes", help="Don't recreate indexes") + + (options, args) = parser.parse_args() + + if len(args) < 1: + print("ERROR: You must give at least one file") + exit(-1) + + np.random.seed(2097483) + dfs = [] + for dbfname in args: + print("----- INTERMEDIATE predictor -------") + ok, df = one_predictor(dbfname) + if ok: + dfs.append(df) + + if len(dfs) == 0: + print("Error, nothing got ingested, something is off") + exit(-1) + + # intermediate predictor is final + if len(args) == 1: + exit(0) + + print("----- FINAL predictor -------") + if len(dfs) == 0: + print("Ooops, final predictor is None, probably no meaningful data. Exiting.") + exit(0) + + final_df = pd.concat(dfs) + dump_dataframe(final_df, "final") diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/learn/predict.py b/cryptominisat5/cryptominisat-5.6.3/scripts/learn/predict.py new file mode 100755 index 000000000..68fc3bfba --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/learn/predict.py @@ -0,0 +1,372 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +# Copyright (C) 2018 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +import pandas as pd +import pickle +import sklearn +import sklearn.svm +import sklearn.tree +import sklearn.ensemble +import optparse +import numpy as np +import sklearn.metrics +import time +import itertools +import matplotlib.pyplot as plt +from sklearn.model_selection import train_test_split + +class_names = ["throw", "longer"] +cuts = [-1, 10000, 1000000000000] +class_names2 = ["middle", "forever"] +cuts2 = [-1, 30000, 1000000000000] +#class_names3 = ["middle2", "forever"] +#cuts3 = [-1, 60000, 1000000000000] + + +def output_to_dot(clf, features, nameextra): + fname = options.dot+nameextra + sklearn.tree.export_graphviz(clf, out_file=fname, + feature_names=features, + class_names=class_names, + filled=True, rounded=True, + special_characters=True, + proportion=True) + print("Run dot:") + print("dot -Tpng {fname} -o {fname}.png".format(fname=fname)) + print("gwenview {fname}.png".format(fname=fname)) + + +def calc_cross_val(): + # calculate accuracy/prec/recall for cross-validation + accuracy = sklearn.model_selection.cross_val_score(self.clf, X_train, y_train, cv=10) + precision = sklearn.model_selection.cross_val_score(self.clf, X_train, y_train, cv=10, scoring='precision') + recall = sklearn.model_selection.cross_val_score(self.clf, X_train, y_train, cv=10, scoring='recall') + print("cv-accuracy:", accuracy) + print("cv-precision:", precision) + print("cv-recall:", recall) + accuracy = np.mean(accuracy) + precision = np.mean(precision) + recall = np.mean(recall) + print("cv-prec: %-3.4f cv-recall: %-3.4f cv-accuracy: %-3.4f T: %-3.2f" % + (precision, recall, accuracy, (time.time() - t))) + + +def plot_confusion_matrix(cm, classes, + normalize=False, + title='Confusion matrix', + cmap=plt.cm.Blues): + """ + This function prints and plots the confusion matrix. + Normalization can be applied by setting `normalize=True`. + """ + if normalize: + cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis] + print("Normalized confusion matrix") + else: + print('Confusion matrix, without normalization') + + print(cm) + + plt.imshow(cm, interpolation='nearest', cmap=cmap) + plt.title(title) + plt.colorbar() + tick_marks = np.arange(len(classes)) + plt.xticks(tick_marks, classes, rotation=45) + plt.yticks(tick_marks, classes) + + fmt = '.2f' if normalize else 'd' + thresh = cm.max() / 2. + for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])): + plt.text(j, i, format(cm[i, j], fmt), + horizontalalignment="center", + color="white" if cm[i, j] > thresh else "black") + + plt.tight_layout() + plt.ylabel('True label') + plt.xlabel('Predicted label') + + +# to check for too large or NaN values: +def check_too_large_or_nan_values(df): + features = df.columns.values.flatten().tolist() + index = 0 + for index, row in df.iterrows(): + for x, name in zip(row, features): + if not np.isfinite(x) or x > np.finfo(np.float32).max: + print("issue with data for features: ", name, x) + index += 1 + + +def get_code(tree, feature_names): + left = tree.tree_.children_left + right = tree.tree_.children_right + threshold = tree.tree_.threshold + features = [feature_names[i] for i in tree.tree_.feature] + value = tree.tree_.value + + def recurse(left, right, threshold, features, node): + if (threshold[node] != -2): + print("if ( " + features[node] + " <= " + str(threshold[node]) + " ) {") + if left[node] != -1: + recurse(left, right, threshold, features, left[node]) + print("} else {") + if right[node] != -1: + recurse(left, right, threshold, features, right[node]) + print("}") + else: + print("return " + str(value[node])) + + recurse(left, right, threshold, features, 0) + + +def one_classifier(df, features, to_predict, names, w_name, w_number, final): + print("================ predicting %s ================" % to_predict) + print("-> Number of features :", len(features)) + print("-> Number of datapoints:", df.shape) + print("-> Predicting :", to_predict) + + train, test = train_test_split(df, test_size=0.33) + X_train = train[features] + y_train = train[to_predict] + X_test = test[features] + y_test = test[to_predict] + + t = time.time() + clf = None + # clf = sklearn.linear_model.LogisticRegression() + # clf = sklearn.svm.SVC() + if final: + clf = sklearn.tree.DecisionTreeClassifier(max_depth=options.tree_depth) + else: + clf = sklearn.ensemble.RandomForestClassifier(n_estimators=80) + #clf = sklearn.ensemble.ExtraTreesClassifier(n_estimators=80) + + sample_weight = [w_number if i == w_name else 1 for i in y_train] + clf.fit(X_train, y_train, sample_weight=sample_weight) + + print("Training finished. T: %-3.2f" % (time.time() - t)) + + best_features = [] + if not final: + importances = clf.feature_importances_ + std = np.std([tree.feature_importances_ for tree in clf.estimators_], axis=0) + indices = np.argsort(importances)[::-1] + indices = indices[:options.top_num_features] + myrange = min(X_train.shape[1], options.top_num_features) + + # Print the feature ranking + print("Feature ranking:") + + for f in range(myrange): + print("%-3d %-35s -- %8.4f" % + (f + 1, features[indices[f]], importances[indices[f]])) + best_features.append(features[indices[f]]) + + # Plot the feature importances of the clf + plt.figure() + plt.title("Feature importances") + plt.bar(range(myrange), importances[indices], + color="r", align="center" + , yerr=std[indices]) + plt.xticks(range(myrange), [features[x] for x in indices], rotation=45) + plt.xlim([-1, myrange]) + else: + get_code(clf, features) + + print("Calculating scores....") + y_pred = clf.predict(X_test) + accuracy = sklearn.metrics.accuracy_score(y_test, y_pred) + precision = sklearn.metrics.precision_score(y_test, y_pred, average="macro") + recall = sklearn.metrics.recall_score(y_test, y_pred, average="macro") + print("prec: %-3.4f recall: %-3.4f accuracy: %-3.4f T: %-3.2f" % ( + precision, recall, accuracy, (time.time() - t))) + + if options.confusion: + sample_weight = [w_number if i == w_name else 1 for i in y_pred] + cnf_matrix = sklearn.metrics.confusion_matrix( + y_test, y_pred, labels=names, sample_weight=sample_weight) + + np.set_printoptions(precision=2) + + # Plot non-normalized confusion matrix + plt.figure() + plot_confusion_matrix( + cnf_matrix, classes=names, + title='Confusion matrix, without normalization') + + # Plot normalized confusion matrix + plt.figure() + plot_confusion_matrix( + cnf_matrix, classes=names, normalize=True, + title='Normalized confusion matrix') + + # TODO do L1 regularization + + if False: + calc_cross_val() + + if options.dot is not None and final: + output_to_dot(clf, features, names[0]) + + return best_features + + +def remove_old_clause_features(features): + todel = [] + for name in features: + if "cl2" in name or "cl3" in name or "cl4" in name: + todel.append(name) + + for x in todel: + features.remove(x) + if options.verbose: + print("Removing old clause feature:", x) + + +def rem_features(feat, to_remove): + feat_less = list(feat) + todel = [] + for feature in feat: + for rem in to_remove: + if rem in feature: + feat_less.remove(feature) + if options.verbose: + print("Removing feature from feat_less:", feature) + + return feat_less + + +def learn(fname): + with open(fname, "rb") as f: + df = pickle.load(f) + + if options.check_row_data: + check_too_large_or_nan_values(df) + + print("total samples: %5d" % df.shape[0]) + + # lifetime to predict + df["x.lifetime_cut"] = pd.cut( + df["x.lifetime"], + cuts, + labels=class_names) + + df["x.lifetime_cut2"] = pd.cut( + df["x.lifetime"], + cuts2, + labels=class_names2) + + #df["x.lifetime_cut3"] = pd.cut( + #df["x.lifetime"], + #cuts3, + #labels=class_names3) + + features = df.columns.values.flatten().tolist() + features = rem_features(features, + ["x.num_used", "x.class", "x.lifetime", "fname"]) + + # this needs binarization + features = rem_features(features, ["cl.cur_restart_type"]) + # x = (df["cl.cur_restart_type"].values[:, np.newaxis] == df["cl.cur_restart_type"].unique()).astype(int) + # print(x) + + if True: + remove_old_clause_features(features) + + if options.raw_data_plots: + pd.options.display.mpl_style = "default" + df.hist() + df.boxplot() + + if True: + feat_less = rem_features(features, ["rdb1", "rdb2", "rdb3", "rdb4"]) + best_feats = one_classifier(df, feat_less, "x.lifetime_cut", + class_names, "longer", 17, + False) + if options.show: + plt.show() + + one_classifier(df, best_feats, "x.lifetime_cut", + class_names, "longer", 3, + True) + if options.show: + plt.show() + + if True: + feat_less = rem_features(features, ["rdb3", "rdb4"]) + df2 = df[df["x.lifetime"] > cuts[1]] + + best_feats = one_classifier(df2, feat_less, "x.lifetime_cut2", + class_names2, "middle", 30, + False) + if options.show: + plt.show() + + one_classifier(df2, best_feats, "x.lifetime_cut2", + class_names2, "middle", 4, + True) + + if options.show: + plt.show() + + #if True: + #df3 = df[df["x.lifetime"] > cuts2[1]] + + #best_feats = one_classifier(df3, features, "x.lifetime_cut3", + #class_names3, "middle2", 20, + #False) + #if options.show: + #plt.show() + + #one_classifier(df3, best_feats, "x.lifetime_cut3", + #class_names3, "middle2", 8, + #True) + + +if __name__ == "__main__": + usage = "usage: %prog [options] file.pandas" + parser = optparse.OptionParser(usage=usage) + + parser.add_option("--verbose", "-v", action="store_true", default=False, + dest="verbose", help="Print more output") + parser.add_option("--cross", action="store_true", default=False, + dest="cross_validate", help="Cross-validate prec/recall/acc against training data") + parser.add_option("--depth", default=6, type=int, + dest="tree_depth", help="Depth of the tree to create") + parser.add_option("--dot", type=str, default=None, + dest="dot", help="Create DOT file") + parser.add_option("--conf", action="store_true", default=False, + dest="confusion", help="Create confusion matrix") + parser.add_option("--show", action="store_true", default=False, + dest="show", help="Show visual graphs") + parser.add_option("--check", action="store_true", default=False, + dest="check_row_data", help="Check row data for NaN or float overflow") + parser.add_option("--rawplots", action="store_true", default=False, + dest="raw_data_plots", help="Display raw data plots") + parser.add_option("--top", default=12, type=int, + dest="top_num_features", help="Number of top features to take to generate the final predictor") + + (options, args) = parser.parse_args() + + if len(args) < 1: + print("ERROR: You must give the pandas file!") + exit(-1) + + learn(args[0]) diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/learn/predict_one.sh b/cryptominisat5/cryptominisat-5.6.3/scripts/learn/predict_one.sh new file mode 100755 index 000000000..6bb746f11 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/learn/predict_one.sh @@ -0,0 +1,64 @@ +#!/bin/bash + +# Copyright (C) 2017 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +if [[ $# -ne 3 ]]; then + echo "ERROR: wrong number of arguments" + echo "Use with ./predict_one.sh 6s153.cnf.gz DIR RATIO" + echo "for ex. ./predict_one.sh 6s153.cnf.gz mydir 0.5" + exit -1 +fi +set -e +set -x + +status=$(./cryptominisat5 --hhelp | grep sql) +ret=$? +if [ "$ret" -ne 0 ]; then + echo "You must compile SQL into cryptominisat" + exit -1 +fi + +FNAME=$1 +OUTDIR=$2 +RATIO=$3 +mkdir -p "${OUTDIR}" + +rm -if "${OUTDIR}/drat_out" +rm -if "${OUTDIR}/clause_id_data" +rm -if "${OUTDIR}/data.sqlite" +rm -if "${OUTDIR}/data.sqlite.tree.dot" +echo "Predicting file $1" + +# running CNF +./cryptominisat5 ${FNAME} --cldatadumpratio "${RATIO}" --gluecut0 10000 --presimp 1 -n 1 --zero-exit-status --restart luby --clid --sql 2 --maple 0 --distill 0 --sqlitedb "${OUTDIR}/data.sqlite" "${OUTDIR}/drat_out" > "${OUTDIR}/cms_output.txt" + +# parse DRAT for UNSAT proof data +./tests/drat-trim/drat-trim "${FNAME}" "${OUTDIR}/drat_out" -x "${OUTDIR}/clause_id_data" -i + +# add clause IDs and their age and performance data +./add_lemma_ind.py "${OUTDIR}/data.sqlite" "${OUTDIR}/clause_id_data" + +# get pandas dataframe from SQLite database +./gen_pandas.py --csv "${OUTDIR}/data.sqlite" + +# generate predictors +./predict.py "${OUTDIR}/data.sqlite-pandasdata.dat" --dot "${OUTDIR}/dectree.dot" + +# generate DOT and display it +dot -Tpng "${OUTDIR}/dectree.dot" -o tree.png +display tree.png diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/output_parser/convert_to_cactusplot.py b/cryptominisat5/cryptominisat-5.6.3/scripts/output_parser/convert_to_cactusplot.py new file mode 100755 index 000000000..a5e8db080 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/output_parser/convert_to_cactusplot.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python + +import sys +of = sys.argv[1] +f = open(of, "r") +text = f.read() +mylines = text.splitlines() +i = 0; +time = [] +for line in mylines : + time.append(float(line)) + #print "t:%f" %(time[i]) + i += 1 + +lastnum = -1 +for a in range(0, 60000, 1) : + num = 0 + for t in time : + #print "t: %f a: %d" %(t, a) + if (t < a) : + num += 1 + + if (lastnum != num) : + print "%d \t%d" %(num, a) + lastnum = num + +f.close(); diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/output_parser/merge_sqlite.sh b/cryptominisat5/cryptominisat-5.6.3/scripts/output_parser/merge_sqlite.sh new file mode 100755 index 000000000..2aa7fd656 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/output_parser/merge_sqlite.sh @@ -0,0 +1,24 @@ +#!/bin/bash +set -e +set -x + +rm -f mergeddata.sqlite +FNAME=todo +rm -f $FNAME +echo ".read /home/soos/development/sat_solvers/cryptominisat/cmsat_tablestructure.sql" >> $FNAME +for FILE in *sqlite*; do + echo "attach '${FILE}' as tomerge;" >> $FNAME + myarray=( tags timepassed memused reduceDB finishup ) + for DAT in "${myarray[@]}"; do + echo "insert into ${DAT} select * from tomerge.${DAT};" >> $FNAME; + done + echo "detach tomerge;" >> $FNAME +done +sqlite3 mergeddata.sqlite < $FNAME + +# rm -f dump +# rm -f schema +# for FILE in *sqlite*; do +# sqlite3 "$FILE" .sch > schema +# sqlite3 "$FILE" .dump | grep INSERT | sed 's/\"//g' > dump +# done diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/output_parser/plotit b/cryptominisat5/cryptominisat-5.6.3/scripts/output_parser/plotit new file mode 100644 index 000000000..128bda491 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/output_parser/plotit @@ -0,0 +1,45 @@ +#set term epslatex color rounded size 4.9,2.2 +#set term postscript size 8,4 +set term png rounded size 800,600 + +set pointsize 1 +set tics scale 2 + +#set ytics 4e+8 +#set output "only-vs-congl.eps" +set xlabel "No. solved instances from SAT Comp'09" +set ylabel "Time (s)" +#unset key +set xtics 20 +#set key inside b +#set logscale x +#set xtics (10,40,160,640,2560,5000) +set style line 1 lt 1 lw 1 pt 4 ps 0.3 linecolor rgbcolor "red" +set style line 2 lt 2 lw 1 pt 8 ps 0.3 linecolor rgbcolor "orange" +set style line 3 lt 3 lw 1 pt 12 ps 0.3 linecolor rgbcolor "blue" + +########################################## + +#set key lmargin +set key left top +#set output "CryptoMiniSat2.5.0_vs_CryptoMiniSat2.6.0.png" +#plot "./solveTimes56Graph" w lp title "CryptoMiniSat 2.5.0 (SAT Race version)" ls 1, "solveTimes82-learntminimGraph" w lp title "CryptoMiniSat 2.6.0" ls 2 + +#set output "Ligeling_vs_CryptoMiniSat2.6.1.png" +#plot [80:] "./solveTimes97Graph" w lp title "CryptoMiniSat 2.6.1", "./solveTimesLingelingGraph" w lp title "Lingeling" + +#set output "CryptoMiniSat2.7.1-compare.png" +#plot [80:] "./solveTimesMiniSatGraph" w lp title "MiniSat 2.2", "./solveTimesLingelingGraph" w lp title "lingeling", "./solveTimesPrecoSat465Graph" w lp title "PrecoSat465", "./solveTimes97Graph" w lp title "CryptoMiniSat2.7.1" + +#set output "With-without-tans-strong-minim.png" +#plot [80:] "./solveTimes97Graph" w lp title "With transitive strong minimisation", "./solveTimes97-nolfminimGraph" w lp title "Without transitive strong minimisation" + +set output "CryptoMiniSat3Beta-compare.eps" +plot [80:] "./solveTimesMiniSatGraph" w lp title "MiniSat 2.2", "./solveTimesLingelingGraph" w lp title "lingeling", "./solveTimesPrecoSat465Graph" w lp title "PrecoSat465", "./solveTimes129Graph" w lp title "CryptoMiniSat3Beta" + + +#set term png rounded size 700,400 +set term postscript eps color lw 1.5 "Helvetica" 29 size 7,3 +set output "CryptoMiniSat-Competition.eps" +plot [80:] "./solveTimesMiniSatGraph" w lp title "MiniSat 2.2", "./solveTimesLingelingGraph" w lp title "lingeling", "./solveTimesPrecoSat465Graph" w lp title "PrecoSat465", "./solveTimes129Graph" w lp title "CryptoMiniSat SAT Comp'11" + diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/output_parser/solvetimes_from_output.sh b/cryptominisat5/cryptominisat-5.6.3/scripts/output_parser/solvetimes_from_output.sh new file mode 100755 index 000000000..5e4c993cd --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/output_parser/solvetimes_from_output.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +#set -x + +grep --color -i "assert.*fail" `ls *.out` +grep --color -i signal `ls *.out` +grep --color -i error `ls *.out` +grep --color -i terminate `ls *.out` +grep --color -i abort `ls *.out` | grep -v expensive +grep --color -i failed `ls *.out` | grep -v probes + +ls -- *out | sed 's/gz.*/gz/' > allFiles + +# 1500 cutoff +grep "Total" *out | awk '{print $5}' > solveTimes +grep "Total" *out | awk '{if ($5 < 1500) {print $1}}' | sed 's/:c.*$//' | sort > solved_under_1500_full_list + + +# for normal +grep "s.*SATISFIABLE" *out | sed 's/:s.*$//' | sed 's/gz.*/gz/' | sort > solved +grep "s UNSATISFIABLE" *out | sed 's/:s.*$//' | sed 's/gz.*/gz/' | sort > solvedUNSAT +grep "s SATISFIABLE" *out | sed 's/:s.*$//' | sed 's/gz.*/gz/' | sort > solvedSAT + +# 1500 cutoff +grep "s.*SATISFIABLE" $(cat solved_under_1500_full_list) | sed 's/:s.*$//' | sed 's/gz.*/gz/' | sort > solved1500 +grep "s UNSATISFIABLE" $(cat solved_under_1500_full_list) | sed 's/:s.*$//' | sed 's/gz.*/gz/' | sort > solvedUNSAT1500 +grep "s SATISFIABLE" $(cat solved_under_1500_full_list) | sed 's/:s.*$//' | sed 's/gz.*/gz/' | sort > solvedSAT1500 +rm solved_under_1500_full_list diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/output_parser/solvetimes_from_output_glucose.sh b/cryptominisat5/cryptominisat-5.6.3/scripts/output_parser/solvetimes_from_output_glucose.sh new file mode 100755 index 000000000..2d489d8d8 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/output_parser/solvetimes_from_output_glucose.sh @@ -0,0 +1,16 @@ +#!/bin/sh +set -x + +zgrep "CPU" *out.gz | awk '{if ($5 < 1500) {print $1}}' | sed 's/:c.*$//' | sort > solved_under_1500_full_list + +zgrep "CPU time" *out.gz | awk '{print $5}' > solveTimes +zgrep "CPU time" *out.gz | awk '{print $1}' | sed 's/:c$//' | sed 's/gz.*/gz/' | sort > solved +ls *.out.gz | sed 's/gz.*/gz/' | sort > allFiles +zgrep "s UNSATISFIABLE" *out.gz | sed 's/:s.*$//' | sed 's/gz.*/gz/' | sort > solvedUNSAT +zgrep "s SATISFIABLE" *out.gz | sed 's/:s.*$//' | sed 's/gz.*/gz/' | sort > solvedSAT + + +zgrep "s.*SATISFIABLE" $(cat solved_under_1500_full_list) | sed 's/:s.*$//' | sed 's/gz.*/gz/' | sort > solved1500 +zgrep "s.* UNSATISFIABLE" $(cat solved_under_1500_full_list) | sed 's/:s.*$//' | sed 's/gz.*/gz/' | sort > solvedUNSAT1500 +zgrep "s.* SATISFIABLE" $(cat solved_under_1500_full_list) | sed 's/:s.*$//' | sed 's/gz.*/gz/' | sort > solvedSAT1500 +rm solved_under_1500_full_list diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/output_parser/solvetimes_from_output_lingeling.sh b/cryptominisat5/cryptominisat-5.6.3/scripts/output_parser/solvetimes_from_output_lingeling.sh new file mode 100755 index 000000000..ef017d409 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/output_parser/solvetimes_from_output_lingeling.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +zgrep "\%.*all" -- *out.gz | awk '{print $2}' > solveTimes +zgrep "\% *all" -- *out.gz | awk '{print $1}' | sed 's/:c$//' | sed 's/gz.*/gz/' | sort > solved +ls -- *out.gz | sed 's/gz.*/gz/' | sort > allFiles +zgrep "s UNSATISFIABLE" -- *out.gz | sed 's/:s.*$//' | sed 's/gz.*/gz/' | sort > solvedUNSAT +zgrep "s SATISFIABLE" -- *out.gz | sed 's/:s.*$//' | sed 's/gz.*/gz/' | sort > solvedSAT diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/output_parser/sqlite3_checks.py b/cryptominisat5/cryptominisat-5.6.3/scripts/output_parser/sqlite3_checks.py new file mode 100755 index 000000000..dd2b57762 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/output_parser/sqlite3_checks.py @@ -0,0 +1,290 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +from __future__ import print_function +import sqlite3 +import optparse +import operator + + +class Query: + def __init__(self): + self.conn = sqlite3.connect(dbfname) + self.c = self.conn.cursor() + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_value, traceback): + self.conn.close() + + def find_time_outliers(self): + print("----------- TIME OUTLIERS --------------") + query = """ + select tags.tag, name, elapsed + from timepassed,tags + where name != 'search' and elapsed > %d and + tags.tagname="filename" and tags.runID = timepassed.runID + order by elapsed desc; + """ % (options.maxtime) + + for row in self.c.execute(query): + operation = row[1] + t = row[2] + fname = self.get_fname(row[0]) + print("%-32s %-20s %.1fs" % (fname, operation, t)) + + def check_memory(self): + print("----------- MEMORY OUTLIERS --------------") + + query = """ + select tags.tag, memused.name, max(memused.MB) + from memused,tags + where tags.tagname="filename" + and tags.runID = memused.runID + and memused.MB > %d + and memused.name != 'vm' + and memused.name != 'rss' + and memused.name != 'longclauses' + group by tags.tag, memused.name + order by MB desc; + """ % (options.maxmemory) + + for row in self.c.execute(query): + subsystem = row[1] + gigs = row[2]/1000.0 + fname = self.get_fname(row[0]) + print("%-32s %-20s %.1f GB" % (fname, subsystem, gigs)) + + def check_memory_rss(self): + print("----------- MEMORY OUTLIERS RSS --------------") + + query = """ + select tags.tag, memused.name, max(memused.MB) + from memused,tags + where tags.tagname="filename" + and tags.runID = memused.runID + and memused.MB > %d + and memused.name == 'rss' + group by tags.tag, memused.name + order by MB desc; + """ % (options.maxmemory*2) + + for row in self.c.execute(query): + subsystem = row[1] + gigs = row[2]/1000.0 + fname = self.get_fname(row[0]) + print("%-32s %-20s %.1f GB" % (fname, subsystem, gigs)) + + def find_worst_unaccounted_memory(self): + print("----------- Largest RSS vs counted differences --------------") + query = """ + select tags.tag, a.`runtime`, abs((b.rss-a.mysum)/b.rss) as differperc, + a.mysum as counted, b.rss as total + from tags, + + (select runID, `runtime`, sum(MB) as mysum + from memused + where name != 'rss' + and name != 'vm' + group by `runtime`, runID) as a, + + (select runID, name, `runtime`, MB as rss + from memused + where name = 'rss') as b + + where tags.runID = a.runID + and tags.tagname="filename" + and a.runID = b.runID + and a.`runtime` = b.`runtime` + and total > %d + + order by differperc desc + """ % (options.minmemory) + + for row,_ in zip(self.c.execute(query), range(10)): + t = row[1] + diff_perc = row[2] + counted = row[3] + total = row[4] + fname = self.get_fname(row[0]) + print("%-32s at: %-8.1fs counted: %3.2f GB rss: %3.2f GB" % (fname, t, counted/1000.0, total/1000.0)) + + def memory_distrib(self): + print("----------- MEMORY DISTRIBUTION --------------") + print("all divided by RSS -- resident size") + + query = """ + select sum(MB) + from memused + where name != 'vm' + and name != 'rss'; + """ + for row in self.c.execute(query): + recorded_mem = float(row[0]) + + query = """ + select sum(MB) + from memused + where name = 'rss'; + """ + for row in self.c.execute(query): + rss_mem = float(row[0]) + + unaccounted = rss_mem - recorded_mem; + print("%-20s %.1f%%" % ("unaccounted", unaccounted/rss_mem*100.0)) + + query = """ + select name, sum(MB) as memsum + from memused + where name != 'vm' + and name != 'rss' + group by name + order by memsum desc; + """ + + for row in self.c.execute(query): + subsystem = row[0] + mbs = float(row[1]) + print("%-20s %.1f%%" % (subsystem, mbs/rss_mem*100.0)) + + def get_fname(self, val) : + fname = val.split("/") + fname = fname[len(fname)-1] + fname = fname.rstrip(".cnf.gz") + #if len(fname) > 40: + # fname = fname[:30] + "..." + fname[len(fname)-10:] + + return fname + + def calc_time_spent(self): + print("----------- TIME DISTRIBUTION --------------") + + query = """ + select sum(elapsed) + from timepassed + where name='search'; + """ + for row in self.c.execute(query): + search_time = float(row[0]) + + query = """ + select sum(elapsed) + from timepassed + where name!='search'; + """ + for row in self.c.execute(query): + other_time = float(row[0]) + + total = search_time + other_time + print("Total: %10.1fh Search: %3.1f%%, Other: %3.1f%%" % + (total/3600, search_time/total*100, other_time/total*100)) + + query = """ + select name, sum(elapsed) + from timepassed + group by name; + """ + times = {} + for row in self.c.execute(query): + times[row[0]] = float(row[1]) + + # print("Names: %s" % times) + sorted_t = sorted(times.items(), key=operator.itemgetter(1), reverse=True) + for (name, t) in sorted_t: + name = name[:40] + print("%-40s %3.1f%%" % (name, t/total*100)) + + def find_intersting_problems(self): + print("----------- Interesting problems for learning --------------") + + #Find CNFs that are interesting: + #* solved in under 500s + #* UNSAT + #* more conflicts than 60'000 + + #last conflict > 60000, UNSAT, solvetime under 500s + query = """ + select a.runID, tags.tag, a.maxtime, a.maxconfl, mems.maxmem from + + (select runID, max(conflicts) as maxconfl, max(`runtime`) as maxtime + from timepassed + group by runID + ) as a, + (select runID + from finishup + where status = "l_False" + ) as b, + (select runID, max(MB) as maxmem + from memused + group by runID + ) as mems, tags + + where a.maxconfl > 20000 + and a.maxconfl < 400000 + and a.maxtime < 400 + and a.maxtime > 10 + and a.runID = b.runID + and tags.runID = a.runID + and tags.tagname = "filename" + and mems.runID = a.runID + order by maxtime desc + """ + + runIDs = [] + for row in self.c.execute(query): + fname = row[1].split("/") + fname = fname[len(fname)-1] + runID = int(row[0]) + t = row[2] + confl = row[3] + mb = row[4] + print("runID %-10d t(mins): %-6.1f confl(K): %-6.1f mem(GB): %-6.1f fname: %s" % + (runID, t/60.0, confl/(1000.0), mb/1024.0, fname)) + + +if __name__ == "__main__": + usage = "usage: %prog [options] sqlitedb" + parser = optparse.OptionParser(usage=usage) + + parser.add_option("--maxtime", metavar="CUTOFF", + dest="maxtime", default=20, type=int, + help="Max time for an operation") + + parser.add_option("--maxmemory", metavar="CUTOFF", + dest="maxmemory", default=500, type=int, + help="Max memory for a subsystem") + + parser.add_option("--minmemory", metavar="MINMEM", + dest="minmemory", default=800, type=int, + help="Minimum memory to be checked for RSS vs counted check") + + parser.add_option("--verbose", "-v", action="store_true", default=False, + dest="verbose", help="Print more output") + + (options, args) = parser.parse_args() + + if len(args) != 1: + print("ERROR: You must give exactly one argument, the sqlite3 database file") + exit(-1) + + dbfname = args[0] + print("Using sqlite3db file %s" % dbfname) + + #peform queries + with Query() as q: + q.find_intersting_problems() + q.find_worst_unaccounted_memory() + q.check_memory_rss() + q.check_memory() + q.memory_distrib() + q.find_time_outliers() + q.calc_time_spent() + + + +#select timepassed.runID, tag,elapsed from timepassed,tags where name like 'shorten and str red%' and elapsed > 2 and tags.runID = timepassed.runID; + +#select * from timepassed where elapsed > 20 and name not like 'search'; + +#select * from startup, solverRun, finishup where finishup.runID = solverRun.runID and (finishup.endTime - startup.startTime) < 30 and solverRun.version = "618b5e79fdd8a15918e19fb76ca08aa069f14b54" and solverRun.runID = startup.runID; diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/reconf/count_plus_minus.sh b/cryptominisat5/cryptominisat-5.6.3/scripts/reconf/count_plus_minus.sh new file mode 100755 index 000000000..495a006c3 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/reconf/count_plus_minus.sh @@ -0,0 +1,46 @@ +#!/usr/bin/bash + +#rm outfile*.data +#rm outs/*.data +#./reconf.py -n 18 -i 1,2,8,9,10,11,15,5,14,13,3 -f outs/out /home/soos/media/sat/out/new/out-reconf-6776906.wlm01-*/*.out + + +for f in `ls outs/*.data`; do + echo "$f:" + grep ",+" $f | wc -l; + grep ",-" $f | wc -l; + echo "---" +done + + +echo "this is solved by everyone:" +grep "total-10-13-u.cnf" outs/*.data + +echo "this is solved by nobody:" +grep "partial-10-13-u.cnf" outs/*.data + +echo "this is solved by some only -8-==rec15 and -10-=rec17 and -9-=rec16), small diff:" +grep "mp1-22.5.cnf.gz" outs/*.data + +echo "this is solved by everyone except 7, large diff:" +grep "mp1-klieber2017s-1000-024-eq.cnf" outs/*.data + +echo "given neg : rec17, rec7, rec16" +echo "which is eqiv: 10, 4, 9, (note: 8-drat = 15, which is ignored)" + +echo "to check:" +echo 'grep -i "User time" */mp1-klieber2017s-1000-024-eq.cnf*.timeout | awk '{print $5 " -- " $1}' | sort -n' + +echo 'mapping: +num -> reconf +0 0 +1 3 +2 4 +3 6 +4 7 +5 12 +6 13 +7 14 +8 15 +9 16 +10 17' diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/reconf/generate_reconf.py b/cryptominisat5/cryptominisat-5.6.3/scripts/reconf/generate_reconf.py new file mode 100755 index 000000000..1ab65a2a2 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/reconf/generate_reconf.py @@ -0,0 +1,108 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (C) 2014 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +from __future__ import with_statement # Required in 2.5 +from __future__ import print_function +import sys +import subprocess + + +def query_yes_no(question, default="no"): + """Ask a yes/no question via input() and return their answer. + + "question" is a string that is presented to the user. + "default" is the presumed answer if the user just hits <Enter>. + It must be "yes" (the default), "no" or None (meaning + an answer is required of the user). + + The "answer" return value is True for "yes" or False for "no". + """ + valid = {"yes": True, "y": True, "ye": True, + "no": False, "n": False} + if default is None: + prompt = " [y/n] " + elif default == "yes": + prompt = " [Y/n] " + elif default == "no": + prompt = " [y/N] " + else: + raise ValueError("invalid default answer: '%s'" % default) + + while True: + sys.stdout.write(question + prompt) + choice = input().lower() + if default is not None and choice == '': + return valid[default] + elif choice in valid: + return valid[choice] + else: + sys.stdout.write("Please respond with 'yes' or 'no' " + "(or 'y' or 'n').\n") + + +num = 18 +ignore = "1,2,8,9,10,11,15,5,14,13,3" +files = "/home/soos/media/sat/out/new/out-reconf-6776906.wlm01-*/*.out" + +# for testing +#num = 8 +#ignore = "0,1,2,3,5,6" +#files = "/home/soos/media/sat/out/new2/out-reconf-6776906.wlm01-*/*.out" + +ignore_elems = {} +for x in ignore.split(","): + x = x.strip() + if x == "": + continue + + x = int(x) + ignore_elems[x] = True + +subprocess.call("rm outs/*", shell=True) +toexec = "./reconf.py -n %d -i %s -f outs/out %s" % (num, ignore, files) +f = open("output", "w") +ret = subprocess.call(toexec, shell=True, stdout=f) +f.close() +if ret != 0: + print("ERROR: reconf call exited non-zero: %s" % toexec) + exit(-1) + +for i in range(num): + if i in ignore_elems: + continue + + print("reconf with %d" % i) + subprocess.call("cp outs/reconf.names outs/out%d.names" % i, shell=True) + subprocess.call("c5.0 -u 20 -f outs/out%d -r > outs/out%d.c50.out" % (i, i), shell=True) + +subprocess.call("./tocpp.py -i %s -n %d > ../../src/features_to_reconf.cpp" % (ignore, num), + shell=True) + +subprocess.call("sed -i 's/red-/red_cl_distrib./g' ../../src/features_to_reconf.cpp", + shell=True) + +upload = query_yes_no("Upload to AWS?") +if upload: + subprocess.call("aws s3 cp ../../src/features_to_reconf.cpp s3://msoos-solve-data/solvers/", shell=True) + print("Uploded to AWS") +else: + print("Not uploaded to AWS") + + diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/reconf/reconf.py b/cryptominisat5/cryptominisat-5.6.3/scripts/reconf/reconf.py new file mode 100755 index 000000000..fbdd6e8ca --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/reconf/reconf.py @@ -0,0 +1,334 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (C) 2014 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +import sys +import re +import ntpath +import os + +from optparse import OptionParser +usage = """ +./reconf.py -n 15 ~/media/sat/out/satcomp091113/reconf0-09113-23-July-2015-mark-XZGKC-78499d3f2-tout-5000-mout-1600/*.stdout* ~/media/sat/out/satcomp091113/reconf14-091113-28-August-2015-mark-O5T8F-169dfc802-tout-5000-mout-1600/*.stdout* + +NOTE: you *must* have reconf14 in there or a lot of data will be missing +in particular avg_confl_size, which will make the system error out on you. +""" +parser = OptionParser(usage=usage) +parser.add_option("-f", "--file", + dest="outfname", type=str, default="outfile", + help="print final values to this file") +parser.add_option("-n", "--num", + dest="num", type=int, + help="Number of reconfs") +parser.add_option("--dropdown", + dest="dropdown", type=float, default=0.02, + help="From traget 1.0 this is subtracted no matter what") +parser.add_option("--cutoff", + dest="cutoff", type=float, default=0.50, + help="At least this much or higher is needed for +") +parser.add_option("--divisor", + dest="divisor", type=float, default=1500.0, + help="Time difference is divided by this much and subtracted") +parser.add_option("--ignorethresh", + dest="ignore_threshold", type=float, default=4000.0, + help="If all solved above this score, ignore") +parser.add_option("--maxscore", + dest="maxscore", type=int, default=5000.0, + help="Scores go down from here") +parser.add_option("--ignore", "-i", + dest="ignore", type=str, + help="Ignore these reconfs") +parser.add_option("--verbose", "-r", dest="verbose", default=False, + action="store_true", help="More verbose") + +(options, args) = parser.parse_args() +# print("files to parse are:", args) + +ignore = {} +if options.ignore: + for r in options.ignore.split(","): + r = r.strip() + r = int(r) + ignore[r] = True + +feat_order = ["numClauses", "binary", "horn", "horn_mean", "horn_std", "horn_min", "horn_max", "horn_spread", "vcg_var_mean", "vcg_var_std", "vcg_var_min", "vcg_var_max", "vcg_var_spread", "vcg_cls_mean", "vcg_cls_std", "vcg_cls_min", "vcg_cls_max", "vcg_cls_spread", "pnr_var_mean", "pnr_var_std", "pnr_var_min", "pnr_var_max", "pnr_var_spread", "pnr_cls_mean", "pnr_cls_std", "pnr_cls_min", "pnr_cls_max", "pnr_cls_spread", "avg_confl_size", "confl_size_min", "confl_size_max", "avg_confl_glue", "confl_glue_min", "confl_glue_max", "avg_num_resolutions", "num_resolutions_min", "num_resolutions_max", "learnt_bins_per_confl", "avg_branch_depth", "branch_depth_min", "branch_depth_max", "avg_trail_depth_delta", "trail_depth_delta_min", "trail_depth_delta_max", "avg_branch_depth_delta", "props_per_confl", "confl_per_restart", "decisions_per_conflict", "irred_cl_distrib.glue_distr_mean", "irred_cl_distrib.glue_distr_var", "irred_cl_distrib.size_distr_mean", "irred_cl_distrib.size_distr_var", "irred_cl_distrib.uip_use_distr_mean", "irred_cl_distrib.uip_use_distr_var", "irred_cl_distrib.activity_distr_mean", "irred_cl_distrib.activity_distr_var", "red_cl_distrib.glue_distr_mean", "red_cl_distrib.glue_distr_var", "red_cl_distrib.size_distr_mean", "red_cl_distrib.size_distr_var", "red_cl_distrib.uip_use_distr_mean", "red_cl_distrib.uip_use_distr_var", "red_cl_distrib.activity_distr_mean", "red_cl_distrib.activity_distr_var"] + +f = open("outs/reconf.names", "w") +f.write("reconf. | the target attribute\n\n") +f.write("name: label.\n") +for o in feat_order: + f.write("%s: continuous.\n" % o) +f.write("\nreconf: +,-.\n") +f.close() + +if options.num is None: + print("ERROR: You must give the number of reconfs") + exit(-1) + + +def parse_features_line(line): + line = re.sub("c.*features. ", "", line) + line = line.strip().split(" ") + dat = {} + + name = "" + for elem, i in zip(line, range(1000)): + elem = elem.strip(":").strip(",") + if i % 2 == 0: + name = elem + continue + + dat[name] = elem + name = "" + return dat + + +def nobody_could_solve_it(reconf_score): + for r_s_elem in reconf_score: + if r_s_elem[1] != 0: + return False + + return True + + +def all_above_fixed_score(reconf_score): + for x in reconf_score: + if x[0] in ignore: + continue + + if x[1] < options.ignore_threshold: + print("-> not ignoring, reconf %d is below ignore threshold" % x[0]) + return False + + return True + + +def print_features_and_scores(fname, features, reconfs_scores): + r_s = sorted(reconfs_scores, key=lambda x: x[1])[::-1] + best_reconf = r_s[0][0] + best_reconf_score = r_s[0][1] + print("r_s: ", r_s) + + if nobody_could_solve_it(r_s): + print("Nobody could solve: %s" % fname) + return -1, False + + if all_above_fixed_score(r_s): + print("All above score: %s" % (fname)) + return -2, False + + print("Calculating +/- for %s" % fname) + + # calculate final array + final_array = [0.0]*options.num + val = 1.0 + best_score = r_s[0][1] + for conf_score, i in zip(r_s, range(100)): + diff = abs(conf_score[1]-best_score) + best_score = conf_score[1] + val -= float(diff)/options.divisor + if diff > 0: + val -= options.dropdown + + if val < 0.0 or conf_score[1] == 0: + val = 0.0 + + if conf_score[1] > 0: + final_array[conf_score[0]] = val + + # assemble final string + string = "" + string += "%s," % fname + for name in feat_order: + string += "%s," % features[name] + + # print to console + if True: + string2 = str(string) + string2 += "||" + for a in final_array: + string2 += "%.1f " % a + + print(string2) + + # print to files + origstring = str(string) + for i in range(options.num): + # skip files we don't need to write to + if i in ignore: + continue + + string = str(origstring) + if final_array[i] >= options.cutoff: + string += "+" + else: + string += "-" + + outf[i].write(string + "\n") + + only_this_could_solve_it = r_s[1][1] == 0 + return best_reconf, only_this_could_solve_it + + +def parse_file(fname): + f = open(fname, 'r') + # print("fname orig:", fname) + fname_clean = re.sub("cnf.gz-.*", "cnf.gz", fname) + fname_clean = ntpath.split(fname_clean)[1] + reconf = 0 + + satisfiable = None + features = None + score = 0 + for line in f: + line = line.strip() + #print("parsing line:", line) + if features is None and "features" in line and "numClauses" in line: + features = parse_features_line(line) + + if "Total time" in line: + time_used = line.strip().split(":")[1].strip() + score = int(round(float(time_used))) + score = options.maxscore-score + + if "reconfigured" in line: + reconf = line.split("to config")[1].strip() + reconf = int(reconf) + + if "s SATIS" in line: + satisfiable = True + + if "s UNSATIS" in line: + satisfiable = False + + #if satisfiable == True: + # score = 0 + + if reconf in ignore: + score = 0 + + # print("features:", features) + return fname_clean, reconf, features, score + + +all_files = set() +all_files_scores = {} +all_files_features = {} +max_num_features = 0 +for x in args: + print("# parsing infile:", x) + fname, reconf, features, score = parse_file(x) + if fname in all_files: + if all_files_features[fname] != features: + print("different features extracted for fname", fname) + print("orig:", all_files_features[fname]) + print("new: ", features) + print("Keeping the longer one!") + + if all_files_features[fname] is None: + num_features = 0 + else: + num_features = len(all_files_features[fname]) + + if features is not None and num_features < len(features): + all_files_features[fname] = features + else: + all_files.add(fname) + all_files_features[fname] = features + all_files_scores[fname] = [] + + #print("fname:", fname) + all_files_scores[fname].append([reconf, score]) + + sys.stdout.write(".") + sys.stdout.flush() + +print("END--------") +print("all files:", all_files) +print("") + +outf = [] +outfnames = [] +for i in range(options.num): + fname = options.outfname + str(i) + ".data" + outfnames.append(fname) + try: + os.unlink(fname) + except: + pass + + if i not in ignore: + outf.append(open(fname, "w")) + else: + outf.append(None) + +best_reconf = {'all_above_fixed_score': 0, 'nobody_could_solve_it': 0} +for x in range(options.num): + best_reconf[x] = 0 +only_this = dict(best_reconf) + + +for fname in all_files: + print("") + print("calculating final DATs for CNF ", fname) + if all_files_features[fname] is None: + print("-> solved too early, no features, skipping") + continue + + if options.verbose: + print("-> all_files_features[fname]:", all_files_features[fname]) + if "avg_confl_size" not in all_files_features[fname]: + print("-> WARNING This is weird, probably not solved by one (different features than everything else), skipping") + continue + + if all_files_features[fname] is None: + print("-> features for file is None: %s" % fname) + + if all_files_features[fname] is not None: + best, only_this_could_solve_it = print_features_and_scores(fname, all_files_features[fname], all_files_scores[fname]) + + if best == -2: + best = "all_above_fixed_score" + + if best == -1: + best = "nobody_could_solve_it" + + print("-> best here:", best) + best_reconf[best] = best_reconf[best] + 1 + if only_this_could_solve_it: + only_this[best] = only_this[best] + 1 + +print("") +print("Wrote data files: %s\n" % outfnames) +print("\n-----------------------------") +print("best reconfs: ") +for a, b in best_reconf.items(): + if a not in ignore: + print("%-20s : %-3d" % (a, b)) + +print("\n-----------------------------") +print("uniquely solved by: ") +for a, b in only_this.items(): + if a not in ignore: + print("%-20s : %-3d" % (a, b)) + +for i in range(options.num): + if outf[i] is not None: + outf[i].close() diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/reconf/tocpp.py b/cryptominisat5/cryptominisat-5.6.3/scripts/reconf/tocpp.py new file mode 100755 index 000000000..16f0a3396 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/reconf/tocpp.py @@ -0,0 +1,208 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (C) 2014 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + + +from __future__ import print_function +import sys + +from optparse import OptionParser +parser = OptionParser() +parser.add_option("-n", "--num", + dest="num", type=int, + help="Number of reconfs") +parser.add_option("--ignore", "-i", + dest="ignore", type=str, + help="Ignore these reconfs") + +(options, args) = parser.parse_args() + +ignore = {} +if options.ignore: + for r in options.ignore.split(","): + r = r.strip() + r = int(r) + ignore[r] = True + +if options.num is None: + print("ERROR: You must give the number of reconfs") + exit(-1) + +print("""/****************************************** +Copyright (c) 2016, Mate Soos + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +***********************************************/ + +#include "solvefeatures.h" +#include <iostream> +using std::cout; +using std::endl; + +namespace CMSat { +""") + +for i in range(options.num): + if i not in ignore: + print("double get_score%d(const SolveFeatures& feat, const int verb);" % i) + +print(""" +int get_reconf_from_features(const SolveFeatures& feat, const int verb) +{ +\tdouble best_score = 0.0; +\tint best_val = 0; +\tdouble score; +""") + +for i in range(options.num): + if i in ignore: + continue + + print(""" +\tscore = get_score%d(feat, verb); +\tif (verb >= 2) +\t\tcout << "c Score for reconf %d is " << score << endl; +\tif (best_score < score) { +\t\tbest_score = score; +\t\tbest_val = %d; +\t} +""" % (i, i, i)) + +print(""" +\tif (verb >= 2) +\t\tcout << "c Winning reconf is " << best_val << endl; +\treturn best_val; +} + +""") + + +def read_one_reconf(reconf_num): + sys.stderr.write("Parsing reconf num %d\n" % reconf_num) + f = open("outs/out%d.rules" % reconf_num) + num_conds = 0 + cond_no = 0 + num_rules = 0 + rule_no = 0 + string = "" + + print(""" +double get_score%d(const SolveFeatures& feat, const int verb) +{""" % reconf_num) + for line in f: + if "id=" in line: + continue + + line = line.strip() + line = line.split(" ") + dat = {} + for elem in line: + elems = elem.split("=") + elems = [e.strip("\"") for e in elems] + dat[elems[0]] = elems[1] + + if "conds" in dat: + assert num_conds == cond_no + num_conds = int(dat["conds"]) + rule_class = dat["class"] + cond_no = 0 + confidence = float(dat["confidence"]) + continue + + if "entries" in dat: + continue + + if "rules" in dat: + num_rules = int(dat["rules"]) + + if "default" in dat: + default = dat["default"] + if default == "+": + print("\tdouble default_val = %.2f;\n" % (1.0)) + else: + print("\tdouble default_val = %.2f;\n" % (0.0)) + + print("\tdouble total_plus = 0.0;") + print("\tdouble total_neg = 0.0;") + continue + + # process rules + if cond_no == 0: + string = "\tif (" + else: + string += " &&\n\t\t" + + string += "(feat.%s %s %.5f)" % (dat["att"], dat["result"], + float(dat["cut"])) + cond_no += 1 + + # end rules + if cond_no == num_conds: + string += ")\n\t{" + print(string) + + string = "" + if rule_class == "+": + string += "\t\ttotal_plus += %.3f;" % confidence + else: + string += "\t\ttotal_neg += %.3f;" % confidence + + print(string) + print("\t}") + rule_no += 1 + + print("\t// num_rules:", num_rules) + print("\t// rule_no:", rule_no) + sys.stderr.write("num rules: %s rule_no: %s\n" % (num_rules, rule_no)) + assert num_rules == rule_no + print("\t// default is:", default) + print(""" +\tif (total_plus == 0.0 && total_neg == 0.0) { +\t\treturn default_val; +\t} +\tif (verb >= 2) { +\t\t//cout << "c plus: " << total_plus << " , neg: " << total_neg << endl; +\t} +\treturn total_plus - total_neg; +} +""") + + +for i in range(options.num): + if i not in ignore: + read_one_reconf(i) + +print(""" +} //end namespace""") diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/travis-cmake.sh b/cryptominisat5/cryptominisat-5.6.3/scripts/travis-cmake.sh new file mode 100755 index 000000000..623efe918 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/travis-cmake.sh @@ -0,0 +1,471 @@ +#!/bin/bash + +# Copyright (C) 2014 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +# This file wraps CMake invocation for TravisCI +# so we can set different configurations via environment variables. + +set -e +set -x + +# fix TravisCI issue --> https://github.com/travis-ci/travis-ci/issues/8920 +python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" + +check_license() { + #license check -- first print and then fail in case of problems + ./utils/licensecheck/licensecheck.pl -m $1 + NUM=$(./utils/licensecheck/licensecheck.pl -m $1 | grep UNK | wc -l) + shopt -s extglob + NUM="${NUM##*( )}" + NUM="${NUM%%*( )}" + shopt -u extglob + if [ "$NUM" -ne 0 ]; then + echo "There are some files without license information!" + exit -1 + fi +} + +check_license_fnames() { + #license check -- first print and then fail in case of problems + find $1 -type f -name $2 -exec utils/licensecheck/licensecheck.pl -m {} \; + NUM=$(find $1 -type f -name $2 -exec utils/licensecheck/licensecheck.pl -m {} \; | grep UNK | wc -l) + shopt -s extglob + NUM="${NUM##*( )}" + NUM="${NUM%%*( )}" + shopt -u extglob + if [ "$NUM" -ne 0 ]; then + echo "There are some files without license information!" + exit -1 + fi +} + +check_license CMakeLists.txt +check_license ./src +check_license ./tests/ +check_license ./scripts/fuzz/ +check_license ./scripts/learn/ +check_license ./scripts/aws/ + +check_license_fnames tests/ CMakeLists.txt +check_license_fnames src/ CMakeLists.txt +check_license_fnames scripts/ CMakeLists.txt + +NUM=$(./utils/licensecheck/licensecheck.pl -m ./tests | grep UNK | wc -l) +shopt -s extglob +NUM="${NUM##*( )}" +NUM="${NUM%%*( )}" +shopt -u extglob +if [ "$NUM" -ne 0 ]; then + echo "There are some files without license information!" + exit -1 +fi + +set -x + +SOURCE_DIR=$(pwd) +cd build +BUILD_DIR=$(pwd) + +# Note eval is needed so COMMON_CMAKE_ARGS is expanded properly + + +# for OSX keep prefix +PATH_PREFIX_ADD="" +if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then + PATH_PREFIX_ADD="-DCMAKE_INSTALL_PREFIX=/usr" +fi + +case $CMS_CONFIG in + SLOW_DEBUG) + if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libboost-program-options-dev; fi + eval cmake -DENABLE_TESTING:BOOL=ON \ + -DSLOW_DEBUG:BOOL=ON \ + ${PATH_PREFIX_ADD} \ + "${SOURCE_DIR}" + ;; + + NORMAL) + if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libboost-program-options-dev; fi + eval cmake -DENABLE_TESTING:BOOL=ON \ + ${PATH_PREFIX_ADD} \ + "${SOURCE_DIR}" + ;; + + NORMAL_PYTHON2) + if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libboost-program-options-dev; fi + eval cmake -DFORCE_PYTHON2=ON -DENABLE_TESTING:BOOL=ON \ + ${PATH_PREFIX_ADD} \ + "${SOURCE_DIR}" + ;; + + LARGEMEM) + if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libboost-program-options-dev; fi + eval cmake -DENABLE_TESTING:BOOL=ON \ + -DLARGEMEM:BOOL=ON \ + ${PATH_PREFIX_ADD} \ + "${SOURCE_DIR}" + ;; + + LARGEMEM_GAUSS) + if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libboost-program-options-dev; fi + eval cmake -DENABLE_TESTING:BOOL=ON \ + -DLARGEMEM:BOOL=ON \ + -DUSE_GAUSS=ON \ + "${SOURCE_DIR}" + ;; + + COVERAGE) + if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libboost-program-options-dev; fi + eval cmake -DENABLE_TESTING:BOOL=ON \ + -DCOVERAGE:BOOL=ON \ + -DUSE_GAUSS=ON \ + -DSTATS:BOOL=ON \ + -DSLOW_DEBUG:BOOL=ON \ + -DSTATICCOMPILE:BOOL=ON \ + "${SOURCE_DIR}" + ;; + + STATIC) + if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libboost-program-options-dev; fi + eval cmake -DENABLE_TESTING:BOOL=ON \ + -DSTATICCOMPILE:BOOL=ON \ + "${SOURCE_DIR}" + ;; + + ONLY_SIMPLE) + eval cmake -DENABLE_TESTING:BOOL=ON \ + -DONLY_SIMPLE:BOOL=ON \ + "${SOURCE_DIR}" + ;; + + ONLY_SIMPLE_STATIC) + eval cmake -DENABLE_TESTING:BOOL=ON \ + -DONLY_SIMPLE:BOOL=ON \ + -DSTATICCOMPILE:BOOL=ON \ + "${SOURCE_DIR}" + ;; + + STATS) + if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libboost-program-options-dev; fi + eval cmake -DENABLE_TESTING:BOOL=ON \ + -DSTATS:BOOL=ON \ + "${SOURCE_DIR}" + ;; + + NOZLIB) + if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libboost-program-options-dev; fi + eval cmake -DENABLE_TESTING:BOOL=ON \ + -DNOZLIB:BOOL=ON \ + "${SOURCE_DIR}" + ;; + + RELEASE) + if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libboost-program-options-dev; fi + eval cmake -DENABLE_TESTING:BOOL=ON \ + -DCMAKE_BUILD_TYPE:STRING=Release \ + "${SOURCE_DIR}" + ;; + + NOSQLITE) + if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libboost-program-options-dev; fi + if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get remove libsqlite3-dev; fi + eval cmake -DENABLE_TESTING:BOOL=ON \ + "${SOURCE_DIR}" + ;; + + + NOPYTHON) + if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libboost-program-options-dev; fi + if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get remove -y python3-dev python2.7-dev python-dev libpython-dev; fi + eval cmake -DENABLE_TESTING:BOOL=ON \ + "${SOURCE_DIR}" + ;; + + INTREE_BUILD) + cd .. + SOURCE_DIR=$(pwd) + BUILD_DIR=$(pwd) + if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libboost-program-options-dev; fi + eval cmake -DENABLE_TESTING:BOOL=ON \ + "${SOURCE_DIR}" + ;; + + WEB) + if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libboost-program-options-dev; fi + + cd "$SOURCE_DIR" + #./cmsat_mysql_setup.sh + cd "$BUILD_DIR" + + eval cmake -DENABLE_TESTING:BOOL=ON \ + -DSTATS:BOOL=ON \ + "${SOURCE_DIR}" + ;; + + SQLITE) + if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libboost-program-options-dev; fi + if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libsqlite3-dev; fi + + eval cmake -DENABLE_TESTING:BOOL=ON \ + -DSTATS:BOOL=ON \ + "${SOURCE_DIR}" + ;; + + NOTEST) + rm -rf ${SOURCE_DIR}/utils/gtest + if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libboost-program-options-dev; fi + eval cmake "${SOURCE_DIR}" + ;; + + GAUSS) + if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libboost-program-options-dev; fi + if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libsqlite3-dev; fi + + eval cmake -DENABLE_TESTING:BOOL=ON \ + -DUSE_GAUSS=ON \ + ${PATH_PREFIX_ADD} \ + "${SOURCE_DIR}" + ;; + + M4RI) + if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libboost-program-options-dev; fi + wget https://bitbucket.org/malb/m4ri/downloads/m4ri-20140914.tar.gz + tar xzvf m4ri-20140914.tar.gz + cd m4ri-20140914/ + ./configure + make + sudo make install + cd .. + + eval cmake -DENABLE_TESTING:BOOL=ON \ + "${SOURCE_DIR}" + ;; + + *) + echo "\"${CMS_CONFIG}\" configuration not recognised" + exit 1 + ;; +esac + +make -j2 VERBOSE=1 + +if [ "$CMS_CONFIG" == "NOTEST" ]; then + sudo make install VERBOSE=1 + exit 0 +fi + +echo $(ls lib) +echo $(ls pycryptosat) +echo $(otool -L pycryptosat/pycryptosat.so) +echo $(ldd pycryptosat/pycryptosat.so) +echo $(otool -L lib/libcryptominisat5.so.5.0) +echo $(ldd lib/libcryptominisat5.so.5.0) + +if [ "$CMS_CONFIG" = "ONLY_SIMPLE_STATIC" ] || [ "$CMS_CONFIG" = "STATIC" ] ; then + if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then + echo $(ldd ./cryptominisat5_simple) + ldd ./cryptominisat5_simple | grep "not a dynamic"; + fi + + if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then + echo $(otool -L ./cryptominisat5_simple) + ! (otool -L ./cryptominisat5_simple | grep "libcryptominisat"); + ! (otool -L ./cryptominisat5_simple | grep "libz"); + ! (otool -L ./cryptominisat5_simple | grep "libboost"); + fi +fi + +if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then echo $(ldd ./cryptominisat5); fi +if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then echo $(otool -L ./cryptominisat5); fi +if [ "$CMS_CONFIG" = "STATIC" ] ; then + if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then + echo $(ldd ./cryptominisat5) + ldd ./cryptominisat5 | grep "not a dynamic"; + fi + + if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then + echo $(otool -L ./cryptominisat5) + ! (otool -L ./cryptominisat5 | grep "libcryptominisat"); + ! (otool -L ./cryptominisat5 | grep "libz"); + ! (otool -L ./cryptominisat5 | grep "libboost"); + fi +fi + +ctest -V +sudo make install VERBOSE=1 +if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then + echo $(sudo ldconfig) + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib +fi + + +################## +# setting up python environment +################## + +which python +python --version +echo $PYTHONPATH +if [ "$CMS_CONFIG" == "NORMAL_PYTHON2" ]; then + export MYPYTHON=python2 +else + export MYPYTHON=python3 +fi +echo "MYPYTHON is '${MYPYTHON}'" +which ${MYPYTHON} + +if [[ "$CMS_CONFIG" == "NORMAL" ]] || [[ "$CMS_CONFIG" == "NORMAL_PYTHON2" ]] || [[ "$CMS_CONFIG" == "SLOW_DEBUG" ]] || [[ "$CMS_CONFIG" == "LARGEMEM" ]] || [[ "$CMS_CONFIG" == "GAUSS" ]] ; then + echo "from __future__ import print_function +import sys +print(sys.path) +" > check_path.py + ${MYPYTHON} check_path.py + echo $PYTHONPATH + export PYTHONPATH=$PYTHONPATH:/usr/lib/python3.4/site-packages + export PYTHONPATH=$PYTHONPATH:/usr/lib/python2.7/site-packages + echo $PYTHONPATH + ${MYPYTHON} check_path.py + + ( + cd pycryptosat/tests/ + ${MYPYTHON} test_pycryptosat.py + ) +fi + +case $CMS_CONFIG in + WEB) + echo "1 2 0" | ./cryptominisat5 --sql 1 --zero-exit-status + ;; + + SQLITE) + echo "1 2 0" | ./cryptominisat5 --sql 2 --zero-exit-status + ;; + + M4RI) + echo "1 2 0" | ./cryptominisat5 --xor 1 --zero-exit-status + ;; + + *) + echo "\"${CMS_CONFIG}\" Binary no extra testing (sql, xor, etc), skipping this part" + ;; +esac + +if [ "$CMS_CONFIG" == "NORMAL" ] ; then + ( + cd + ${MYPYTHON} -c " +import pycryptosat +a = pycryptosat.Solver() +a.add_clause([1,2,3]) +print(a.solve())" + ) +fi + + + +# elimination checks +# NOTE: minisat doesn't build with clang +if [ "$CMS_CONFIG" == "NORMAL" ] && [ "$CXX" != "clang++" ] ; then + CMS_PATH="${BUILD_DIR}/cryptominisat5" + + # building STP + cd "${BUILD_DIR}" + # minisat + git clone --depth 1 https://github.com/niklasso/minisat.git + cd minisat + mkdir -p build + cd build + cmake .. + make -j2 + sudo make install VERBOSE=1 + cd "${BUILD_DIR}" + + # STP + cd "${BUILD_DIR}" + git clone --depth 1 https://github.com/stp/stp.git + cd stp + mkdir -p build + cd build + cmake .. + make -j2 + sudo make install VERBOSE=1 + cd "${BUILD_DIR}" +fi + + +#do fuzz testing +if [ "$CMS_CONFIG" != "ONLY_SIMPLE" ] && [ "$CMS_CONFIG" != "ONLY_SIMPLE_STATIC" ] && [ "$CMS_CONFIG" != "WEB" ] && [ "$CMS_CONFIG" != "NOPYTHON" ] && [ "$CMS_CONFIG" != "COVERAGE" ] && [ "$CMS_CONFIG" != "INTREE_BUILD" ] && [ "$CMS_CONFIG" != "STATS" ] && [ "$CMS_CONFIG" != "SQLITE" ] ; then + cd ../scripts/fuzz/ + which ${MYPYTHON} + ${MYPYTHON} ./fuzz_test.py --novalgrind --small --fuzzlim 30 +fi + +if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then + case $CMS_CONFIG in + WEB) + #we are now in the main dir, ./src dir is here + cd .. + pwd + + cd web + sudo apt-get install python-software-properties + sudo add-apt-repository -y ppa:chris-lea/node.js + sudo apt-get update + sudo apt-get install -y nodejs + ./install_web.sh + ;; + + STATS) + ln -s ../scripts/build_scripts/* . + ln -s ../scripts/learn/* . + # ./test_id.sh + sudo apt-get install -y --force-yes graphviz + # sudo apt-get install -y --force-yes blas + # sudo pip3 install numpy + # sudo pip3 install scipy + # sudo pip3 install sklearn + # sudo pip3 install pandas + # ./test_predict.sh + ;; + + COVERAGE) + #we are now in the main dir, ./src dir is here + cd .. + pwd + + # capture coverage info + lcov --directory build/cmsat5-src/CMakeFiles/libcryptominisat5.dir --capture --output-file coverage.info + + # filter out system and test code + lcov --remove coverage.info 'tests/*' '/usr/*' 'scripts/*' 'utils/*'--output-file coverage.info + + # debug before upload + lcov --list coverage.info + + # only attempt upload if $COVERTOKEN is set + if [ -n "$COVERTOKEN" ]; then + coveralls-lcov --repo-token "$COVERTOKEN" coverage.info # uploads to coveralls + fi + ;; + + *) + echo "\"${CMS_CONFIG}\" No further testing" + ;; + esac +fi + diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/travis-install-cmake.sh b/cryptominisat5/cryptominisat-5.6.3/scripts/travis-install-cmake.sh new file mode 100755 index 000000000..7f65d3373 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/travis-install-cmake.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +# Copyright (C) 2014 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +# This file wraps CMake invocation for TravisCI +# so we can set different configurations via environment variables. + +set -e +set -x + +wget http://www.cmake.org/files/v3.4/cmake-3.4.1.tar.gz +tar -xzf cmake-3.4.1.tar.gz +cd cmake-3.4.1/ +./configure > cmake_config_out.txt +make -j2 > cmake_build_out.txt +sudo make install > cmake_install_out.txt +sudo update-alternatives --install /usr/bin/cmake cmake /usr/local/bin/cmake 1 --force +cmake --version +cd .. diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/travis-install-lcov.sh b/cryptominisat5/cryptominisat-5.6.3/scripts/travis-install-lcov.sh new file mode 100755 index 000000000..04cc1aae7 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/travis-install-lcov.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# Copyright (C) 2017 Mate Soos +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +# This file wraps CMake invocation for TravisCI +# so we can set different configurations via environment variables. + +sudo pip install cpp-coveralls +wget http://ftp.de.debian.org/debian/pool/main/l/lcov/lcov_1.11.orig.tar.gz +tar xf lcov_1.11.orig.tar.gz +sudo make -C lcov-1.11/ install +gem install coveralls-lcov diff --git a/cryptominisat5/cryptominisat-5.6.3/scripts/xxd-alike.py b/cryptominisat5/cryptominisat-5.6.3/scripts/xxd-alike.py new file mode 100755 index 000000000..3d2ce6c4d --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/scripts/xxd-alike.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python + +# Copyright (c) 2017, Martin Horenovsky +# Copyright (c) 2018, Mate Soos + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +import sys + +PY3 = sys.version_info.major == 3 + +input_name = sys.argv[1] +output_path = sys.argv[2] +output_name = input_name.replace('.', '_') + + +# In python 3, opening file as rb will return bytes and iteration is per byte +# In python 2, opening file as rb will return string and iteration is per char +# and char need to be converted to bytes. +# This function papers over the differences +def convert(c): + if PY3: + return c + return ord(c) + + +with open(input_name, 'rb') as file: + contents = file.read() + + +with open(output_path, 'w') as out: + out.write('unsigned char {}[] = {{'.format(output_name)) + first = True + for i, byte in enumerate(contents): + if not first: + out.write(', ') + first = False + if i % 12 == 0: + out.write('\n ') + out.write('0x{:02x}'.format(convert(byte))) + + out.write(', 0x00') + out.write('\n};\n') + + out.write('unsigned int {}_len = {};\n'.format(output_name, len(contents))) |