summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2018-05-25 15:09:17 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2018-05-25 15:09:17 +0200
commit4b39d99c23fcf2bd13ec4e8cfa028845325921c1 (patch)
tree1b0d633446774c9bfbb92333e0cd0d7d2613e4ed /src
parent587ca62b5c8ee60605aff876cb1101f515348491 (diff)
Fixes partial signature mixing up with normal ones.
Diffstat (limited to 'src')
-rw-r--r--src/hastabel/lang/Predicate.java46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/hastabel/lang/Predicate.java b/src/hastabel/lang/Predicate.java
index f68c8d8..0100daf 100644
--- a/src/hastabel/lang/Predicate.java
+++ b/src/hastabel/lang/Predicate.java
@@ -325,6 +325,25 @@ public class Predicate
public Set<List<Element>> get_relevant_members
(
+ final List<Type> signature
+ )
+ {
+ final Set<List<Element>> result;
+
+ result = new HashSet<List<Element>>();
+
+ for (final List<Element> member: members)
+ {
+ if (is_compatible_with_signature2(member, signature))
+ {
+ result.add(member);
+ }
+ }
+
+ return result;
+ }
+ public Set<List<Element>> get_relevant_members
+ (
final Set<List<Type>> relevant_signatures
)
{
@@ -386,6 +405,31 @@ public class Predicate
return result;
}
+ public Set<List<Element>> get_relevant_partial_members
+ (
+ final List<Type> signature
+ )
+ {
+ final Set<List<Element>> result;
+
+ result = new HashSet<List<Element>>();
+
+ for (final List<Element> member: members)
+ {
+ final List<Element> potential_member;
+
+ potential_member =
+ mask_through_partial_signature(member, signature);
+
+ if (potential_member != null)
+ {
+ result.add(member);
+ }
+ }
+
+ return result;
+ }
+
public Predicate shallow_copy ()
{
return new Predicate(signatures, partial_signatures, function_type, name);
@@ -476,6 +520,8 @@ public class Predicate
+ " support partial signature."
);
}
+
+ return new PredicateFormula(this, partial_signature, params);
}
return as_formula(params);