summaryrefslogtreecommitdiff |
diff options
author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2018-05-25 15:09:17 +0200 |
---|---|---|
committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2018-05-25 15:09:17 +0200 |
commit | 4b39d99c23fcf2bd13ec4e8cfa028845325921c1 (patch) | |
tree | 1b0d633446774c9bfbb92333e0cd0d7d2613e4ed /src | |
parent | 587ca62b5c8ee60605aff876cb1101f515348491 (diff) |
Fixes partial signature mixing up with normal ones.
Diffstat (limited to 'src')
-rw-r--r-- | src/hastabel/lang/Predicate.java | 46 |
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); |