+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<h1>Back to range_is_empty()</h1>
+
+<pre class="code">
+ <span class="comment">/*@
+ predicate valid_range(struct Range range) =
+ range.lob <= range.upb + 1;
+ predicate empty_range(struct Range range) =
+ range.lob == range.upb + 1;
+ */</span>
+
+ /* Is range empty? */
+ <span class="comment">/*@
+ requires \valid_read(range);
+ requires valid_range(*range);
+ assigns \nothing;
+ ensures \result <==> empty_range(*range);
+ */</span>
+ static inline bool range_is_empty(const Range *range)
+ {
+ return range->lob > range->upb;
+ }
+</pre>
+
+<pre>
+ $ frama-c -wp -wp-rte snippets/range_is_empty.c
+</pre>