summaryrefslogtreecommitdiff
path: root/language
diff options
context:
space:
mode:
authorBrian Campbell2018-12-11 11:54:36 +0000
committerBrian Campbell2018-12-11 12:05:34 +0000
commit4f20163965e7c336f28740628fa9d64528006861 (patch)
tree56601922410d37677f9f95cc2c93fec4ee56a7f7 /language
parent25ab845211e3df24386a0573b517a01dab879b03 (diff)
Initial attempt at using termination measures in Coq
This only applies to recursive functions and uses the termination measure merely as a limit to the recursive call depth, rather than proving the measure correct.
Diffstat (limited to 'language')
-rw-r--r--language/sail.ott4
1 files changed, 3 insertions, 1 deletions
diff --git a/language/sail.ott b/language/sail.ott
index a0b02a1c..04207658 100644
--- a/language/sail.ott
+++ b/language/sail.ott
@@ -847,9 +847,11 @@ tannot_opt :: 'Typ_annot_opt_' ::=
rec_opt :: 'Rec_' ::=
{{ com optional recursive annotation for functions }}
+ {{ auxparam 'a }}
{{ aux _ l }}
| :: :: nonrec {{ com non-recursive }}
- | rec :: :: rec {{ com recursive }}
+ | rec :: :: rec {{ com recursive without termination measure }}
+ | { pat -> exp } :: :: measure {{ com recursive with termination measure }}
effect_opt :: 'Effect_opt_' ::=
{{ com optional effect annotation for functions }}