From c965f4e1ba2a1951d6b2bb0511a8197ff92583e8 Mon Sep 17 00:00:00 2001
From: Patrick Baudin <patrick.baudin@cea.fr>
Date: Wed, 19 Jun 2019 13:22:50 +0200
Subject: [PATCH] [ACSL] bug with the precedence of \in

---
 tests/spec/tsets.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/tests/spec/tsets.c b/tests/spec/tsets.c
index 61d8e7f4689..12a6f9763b7 100644
--- a/tests/spec/tsets.c
+++ b/tests/spec/tsets.c
@@ -68,6 +68,12 @@ int *AA(void);
 //@ logic set<integer> Sadd_elem_1(set<integer> s, integer e) = \union(s,e) ;
 //@ logic set<integer> Sadd_elem_2(set<integer> s, integer e) = \union(s,{e}) ;
 
-//@ predicate Smember_and(set<integer> s, integer v1, integer v2) = v1 & v2 \in s ;
-//@ predicate Smember_or (set<integer> s, integer v1, integer v2) = v1 | v2 \in s ;
+//@ predicate rejected_Smember_and(set<integer> s, integer v1, integer v2) = v1 & v2 \in s ;
+//@ predicate rejected_Smember_or (set<integer> s, integer v1, integer v2) = v1 | v2 \in s ;
+//@ predicate rejected_Smember_and_or (set<integer> s, integer v1, integer v2) = v1 & v2 \in s && v1 | v2 \in s ;
 
+//@ predicate Smember_and(set<integer> s, integer v1, integer v2) = (v1 & v2) \in s ;
+//@ predicate Smember_or (set<integer> s, integer v1, integer v2) = (v1 | v2) \in s ;
+//@ predicate Smember_and_or (set<integer> s, integer v1, integer v2) = (v1 & v2) \in s && (v1 | v2) \in s ;
+
+//@ logic set<integer> Scomprehension(set<integer> s, integer mask ) = { (k | 1) | int k ; (k | mask) \in s };
-- 
GitLab