--- /dev/null
+<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>Range predicates</h1>
+
+<pre class="code">
+ <span class="comment">/*
+ * Do not access members directly, use the functions!
+ * A non-empty range has @lob <= @upb.
+ * An empty range has @lob == @upb + 1.
+ */</span>
+</pre>
+
+<pre class="code">
+ /*@
+ predicate valid_range(struct Range range) =
+ range.lob <= range.upb + 1;
+
+ predicate empty_range(struct Range range) =
+ range.lob == range.upb + 1;
+ */
+</pre>