diff --git a/src/main/jastadd/base/clauses/expressions.jadd b/src/main/jastadd/base/clauses/expressions.jadd
index 589a2cb565709240f591df6941bf9ed78ef05ce2..85762c76c592ccf80e4f686052115283bf0b2359 100644
--- a/src/main/jastadd/base/clauses/expressions.jadd
+++ b/src/main/jastadd/base/clauses/expressions.jadd
@@ -8,6 +8,18 @@ aspect SignalExpressions {
     syn boolean Literal.isNegativeLiteral() = false;
     eq NegativeLiteral.isNegativeLiteral() = true;
 
+    syn boolean InputSignalClause.hasLiteral(java.lang.String signalId){
+
+        for(Disjunction d : this.getDisjunctions()){
+            for(Literal l : d.getLiterals()){
+                if(l.getName().equals(signalId)){
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
     syn String ASTNode.printClause();
     eq ASTNode.printClause() = "";
     eq Literal.printClause() = getName();