summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorBrian Campbell2018-07-16 15:59:23 +0100
committerBrian Campbell2018-07-16 18:29:45 +0100
commita48dad8232a7db82c74a72157249a27ce25d326e (patch)
tree58dc296c5046a6716dfbbc645d60d433eebc8973 /lib
parent7bdcdcc7abdde74993020d1f2c33ea00d6784fc4 (diff)
Coq: add support for more complex atom types
As a result, add proof to pow2.
Diffstat (limited to 'lib')
-rw-r--r--lib/coq/Sail2_values.v8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/coq/Sail2_values.v b/lib/coq/Sail2_values.v
index ab557ff4..335ebf26 100644
--- a/lib/coq/Sail2_values.v
+++ b/lib/coq/Sail2_values.v
@@ -73,7 +73,13 @@ Definition nn := nat.
(*val pow : Z -> Z -> Z*)
Definition pow m n := m ^ n.
-Definition pow2 n := pow 2 n.
+Program Definition pow2 n : {z : Z & ArithFact (2 ^ n <= z <= 2 ^ n)} := existT _ (pow 2 n) _.
+Next Obligation.
+constructor.
+unfold pow.
+auto using Z.le_refl.
+Qed.
+
(*
Definition inline lt := (<)
Definition inline gt := (>)