summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2018-05-28 13:01:50 +0200
committernsensfel <SpamShield0@noot-noot.org>2018-05-28 13:01:50 +0200
commitbba41321ac671463cd1c778cb88d87647e4ca906 (patch)
treed81106a9bd3036186e86ccdef8b84d946c6dc324
parent8a6e84b6f1ef95f1ef0a68e692c5d3c6f59fb645 (diff)
Adds the seeked predicate to the Theory file.
-rw-r--r--src/hastabel2idp/Main.java2
-rw-r--r--src/hastabel2idp/idp/Project.java14
-rw-r--r--src/hastabel2idp/idp/Theory.java40
3 files changed, 50 insertions, 6 deletions
diff --git a/src/hastabel2idp/Main.java b/src/hastabel2idp/Main.java
index 0974623..e64e132 100644
--- a/src/hastabel2idp/Main.java
+++ b/src/hastabel2idp/Main.java
@@ -146,6 +146,6 @@ public class Main
project = new Project(params);
- project.generate(world, property);
+ project.generate("my_property", world, property);
}
}
diff --git a/src/hastabel2idp/idp/Project.java b/src/hastabel2idp/idp/Project.java
index c97af84..9d398c6 100644
--- a/src/hastabel2idp/idp/Project.java
+++ b/src/hastabel2idp/idp/Project.java
@@ -25,7 +25,12 @@ public class Project
theory = new Theory(params.get_theory_filename());
}
- public void generate (final World world, final Formula property)
+ public void generate
+ (
+ final String property_name,
+ final World world,
+ final Formula property
+ )
{
final Collection<Type> types;
final Collection<Predicate> predicates;
@@ -73,7 +78,12 @@ public class Project
}
}
- theory.add_formula(property);
+ theory.add_predicate
+ (
+ property_name,
+ world.get_variables_manager().get_all_seeked(),
+ property
+ );
vocabulary.write_footer();
structure.write_footer();
diff --git a/src/hastabel2idp/idp/Theory.java b/src/hastabel2idp/idp/Theory.java
index 9a060ed..52f4ee4 100644
--- a/src/hastabel2idp/idp/Theory.java
+++ b/src/hastabel2idp/idp/Theory.java
@@ -2,12 +2,12 @@ package hastabel2idp.idp;
import hastabel2idp.OutputFile;
-//import hastabel.lang.Predicate;
+import hastabel.lang.Variable;
//import hastabel.lang.Type;
//import hastabel.lang.Element;
//import java.util.Collection;
-//import java.util.List;
+import java.util.List;
public class Theory
{
@@ -24,8 +24,42 @@ public class Theory
out.insert_newline();
}
- public void add_formula (final hastabel.lang.Formula formula)
+ public void add_predicate
+ (
+ final String name,
+ final List<Variable> arguments,
+ final hastabel.lang.Formula formula
+ )
{
+ boolean is_first;
+
+ for (final Variable argument: arguments)
+ {
+ out.write("!");
+ out.write(argument.get_name());
+ out.write(" [");
+ out.write(argument.get_type().get_name());
+ out.write("]: ");
+ }
+
+ out.write(name);
+ out.write("(");
+ is_first = true;
+
+ for (final Variable argument: arguments)
+ {
+ if (is_first)
+ {
+ is_first = false;
+ }
+ else
+ {
+ out.write(", ");
+ }
+ out.write(argument.get_name());
+ }
+
+ out.write(") <=> ");
out.write(hastabel2idp.idp.lang.Formula.convert(formula).toString());
out.write(".");
out.insert_newline();