Slides for 2xxx.
[libguestfs-talks.git] / 2020-frama-c / 2200-range-predicates.html
diff --git a/2020-frama-c/2200-range-predicates.html b/2020-frama-c/2200-range-predicates.html
new file mode 100644 (file)
index 0000000..f9cd68a
--- /dev/null
@@ -0,0 +1,23 @@
+<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>