summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@gmail.com>2009-12-08 10:10:20 +0000
committerMorgan Deters <mdeters@gmail.com>2009-12-08 10:10:20 +0000
commit2163539a8b839acf98bda0e1a65f1fcca5232fb2 (patch)
tree207a09896626f678172ec774459defa6690b0200 /contrib
parentabe5fb451ae66a4bedc88d870e99f76de4eb323c (diff)
work on propositional layer, expression builder support for large expressions, output classes, and minisat
Diffstat (limited to 'contrib')
-rwxr-xr-xcontrib/dimacs_to_smt.pl36
1 files changed, 36 insertions, 0 deletions
diff --git a/contrib/dimacs_to_smt.pl b/contrib/dimacs_to_smt.pl
new file mode 100755
index 000000000..305db1d8e
--- /dev/null
+++ b/contrib/dimacs_to_smt.pl
@@ -0,0 +1,36 @@
+#!/usr/bin/perl -w
+# DIMACS to SMT
+# Morgan Deters 2009
+
+use strict;
+
+my ($nvars, $nclauses);
+while(<>) {
+ next if /^c/;
+
+ if(/^p cnf (\d+) (\d+)/) {
+ ($nvars, $nclauses) = ($1, $2);
+ print "(benchmark b\n";
+ print ":status unknown\n";
+ print ":logic QF_UF\n";
+ for(my $i = 1; $i <= $nvars; ++$i) {
+ print ":extrapreds ((x$i))\n";
+ }
+ print ":formula (and\n";
+ next;
+ }
+
+ print "(or";
+ chomp;
+ @_ = split(/ /);
+ for(my $i = 0; $i < $#_; ++$i) {
+ if($_[$i] < 0) {
+ print " (not x" . -$_[$i] . ")";
+ } else {
+ print " x" . $_[$i];
+ }
+ }
+ print ")\n";
+}
+
+print "))\n";
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback