summaryrefslogtreecommitdiff
path: root/lib/coq
diff options
context:
space:
mode:
authorAlasdair2018-12-13 01:30:41 +0000
committerAlasdair2018-12-13 01:30:41 +0000
commit49f6fbde33a76424388c28543b3dc1d49867a525 (patch)
treee678ead62197e64399471197552e1022769b8de2 /lib/coq
parentb9a051d186593fdd3bbf295e20f7ace78e668580 (diff)
parentf8d88d4cf2439f4920fa948b054c4f0b2899e368 (diff)
Merge remote-tracking branch 'origin/sail2' into asl_flow
Diffstat (limited to 'lib/coq')
-rw-r--r--lib/coq/Sail2_prompt.v10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/coq/Sail2_prompt.v b/lib/coq/Sail2_prompt.v
index 1b12f360..85ca95f6 100644
--- a/lib/coq/Sail2_prompt.v
+++ b/lib/coq/Sail2_prompt.v
@@ -1,7 +1,7 @@
(*Require Import Sail_impl_base*)
Require Import Sail2_values.
Require Import Sail2_prompt_monad.
-
+Require Export ZArith.Zwf.
Require Import List.
Import ListNotations.
(*
@@ -77,6 +77,14 @@ match b with
| BU => undefined_bool tt
end.
+(* For termination of recursive functions. We don't name assertions, so use
+ the type class mechanism to find it. *)
+Definition _limit_reduces {_limit} (_acc:Acc (Zwf 0) _limit) `{ArithFact (_limit >= 0)} : Acc (Zwf 0) (_limit - 1).
+refine (Acc_inv _acc _).
+destruct H.
+red.
+omega.
+Defined.
(*val whileM : forall 'rv 'vars 'e. 'vars -> ('vars -> monad 'rv bool 'e) ->
('vars -> monad 'rv 'vars 'e) -> monad 'rv 'vars 'e