summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/coq/Base.v7
-rw-r--r--lib/coq/Hoare.v44
-rw-r--r--lib/coq/Impl_base.v (renamed from lib/coq/Sail2_impl_base.v)2
-rw-r--r--lib/coq/Instr_kinds.v (renamed from lib/coq/Sail2_instr_kinds.v)0
-rw-r--r--lib/coq/Makefile30
-rw-r--r--lib/coq/Operators.v (renamed from lib/coq/Sail2_operators.v)2
-rw-r--r--lib/coq/Operators_bitlists.v (renamed from lib/coq/Sail2_operators_bitlists.v)4
-rw-r--r--lib/coq/Operators_mwords.v (renamed from lib/coq/Sail2_operators_mwords.v)8
-rw-r--r--lib/coq/Prompt.v (renamed from lib/coq/Sail2_prompt.v)5
-rw-r--r--lib/coq/Prompt_monad.v (renamed from lib/coq/Sail2_prompt_monad.v)4
-rw-r--r--lib/coq/Real.v (renamed from lib/coq/Sail2_real.v)2
-rw-r--r--lib/coq/State.v (renamed from lib/coq/Sail2_state.v)9
-rw-r--r--lib/coq/State_lemmas.v (renamed from lib/coq/Sail2_state_lemmas.v)14
-rw-r--r--lib/coq/State_lifting.v (renamed from lib/coq/Sail2_state_lifting.v)8
-rw-r--r--lib/coq/State_monad.v (renamed from lib/coq/Sail2_state_monad.v)4
-rw-r--r--lib/coq/State_monad_lemmas.v (renamed from lib/coq/Sail2_state_monad_lemmas.v)8
-rw-r--r--lib/coq/String.v (renamed from lib/coq/Sail2_string.v)2
-rw-r--r--lib/coq/Values.v (renamed from lib/coq/Sail2_values.v)0
-rw-r--r--lib/coq/Values_lemmas.v (renamed from lib/coq/Sail2_values_lemmas.v)4
-rw-r--r--lib/coq/_CoqProject4
20 files changed, 90 insertions, 71 deletions
diff --git a/lib/coq/Base.v b/lib/coq/Base.v
new file mode 100644
index 00000000..1807d151
--- /dev/null
+++ b/lib/coq/Base.v
@@ -0,0 +1,7 @@
+Require Export Sail.Instr_kinds.
+Require Export Sail.Values.
+Require Export Sail.String.
+Require Export Sail.Operators_mwords.
+Require Export Sail.Prompt_monad.
+Require Export Sail.Prompt.
+Require Export Sail.State.
diff --git a/lib/coq/Hoare.v b/lib/coq/Hoare.v
index f5d764b2..b883b7a7 100644
--- a/lib/coq/Hoare.v
+++ b/lib/coq/Hoare.v
@@ -1,6 +1,6 @@
Require Import String ZArith Setoid Morphisms Equivalence.
-Require Import Sail2_state_monad Sail2_prompt Sail2_state Sail2_state_monad_lemmas.
-Require Import Sail2_state_lemmas.
+Require Import Sail.State_monad Sail.Prompt Sail.State Sail.State_monad_lemmas.
+Require Import Sail.State_lemmas.
(*adhoc_overloading
Monad_Syntax.bind State_monad.bindS*)
@@ -193,9 +193,9 @@ eapply PrePost_bindS.
Qed.
Lemma PrePost_and_boolSP (*[PrePost_compositeI]:*) Regs E PP QQ RR H
- (l : monadS Regs {b : bool & Sail2_values.ArithFactP (PP b)} E)
- (r : monadS Regs {b : bool & Sail2_values.ArithFactP (QQ b)} E)
- P (Q : result {b : bool & Sail2_values.ArithFactP (RR b)} E -> predS Regs) R :
+ (l : monadS Regs {b : bool & Sail.Values.ArithFactP (PP b)} E)
+ (r : monadS Regs {b : bool & Sail.Values.ArithFactP (QQ b)} E)
+ P (Q : result {b : bool & Sail.Values.ArithFactP (RR b)} E -> predS Regs) R :
(forall p,
PrePost R r
(fun r =>
@@ -237,9 +237,9 @@ eapply PrePost_bindS.
Qed.
Lemma PrePost_or_boolSP (*[PrePost_compositeI]:*) Regs E PP QQ RR H
- (l : monadS Regs {b : bool & Sail2_values.ArithFactP (PP b)} E)
- (r : monadS Regs {b : bool & Sail2_values.ArithFactP (QQ b)} E)
- P (Q : result {b : bool & Sail2_values.ArithFactP (RR b)} E -> predS Regs) R :
+ (l : monadS Regs {b : bool & Sail.Values.ArithFactP (PP b)} E)
+ (r : monadS Regs {b : bool & Sail.Values.ArithFactP (QQ b)} E)
+ P (Q : result {b : bool & Sail.Values.ArithFactP (RR b)} E -> predS Regs) R :
(forall p,
PrePost R r
(fun r =>
@@ -608,9 +608,9 @@ Qed.
and prevents the reduction of the function application. *)
Lemma PrePostE_and_boolSP (*[PrePost_compositeI]:*) Regs Ety PP QQ RR H
- (l : monadS Regs {b : bool & Sail2_values.ArithFactP (PP b)} Ety)
- (r : monadS Regs {b : bool & Sail2_values.ArithFactP (QQ b)} Ety)
- P (Q : {b : bool & Sail2_values.ArithFactP (RR b)} -> predS Regs) E R :
+ (l : monadS Regs {b : bool & Sail.Values.ArithFactP (PP b)} Ety)
+ (r : monadS Regs {b : bool & Sail.Values.ArithFactP (QQ b)} Ety)
+ P (Q : {b : bool & Sail.Values.ArithFactP (RR b)} -> predS Regs) E R :
PrePostE R r (fun r s => forall pf, Q (existT _ (projT1 r) pf) s) E ->
PrePostE P l
(fun r s => match r with
@@ -645,9 +645,9 @@ eapply PrePostE_bindS.
Qed.
Lemma PrePostE_or_boolSP (*[PrePost_compositeI]:*) Regs Ety PP QQ RR H
- (l : monadS Regs {b : bool & Sail2_values.ArithFactP (PP b)} Ety)
- (r : monadS Regs {b : bool & Sail2_values.ArithFactP (QQ b)} Ety)
- P (Q : {b : bool & Sail2_values.ArithFactP (RR b)} -> predS Regs) E R :
+ (l : monadS Regs {b : bool & Sail.Values.ArithFactP (PP b)} Ety)
+ (r : monadS Regs {b : bool & Sail.Values.ArithFactP (QQ b)} Ety)
+ P (Q : {b : bool & Sail.Values.ArithFactP (RR b)} -> predS Regs) E R :
PrePostE R r (fun r s => forall pf, Q (existT _ (projT1 r) pf) s) E ->
PrePostE P l
(fun r s => match r with
@@ -774,7 +774,7 @@ apply PrePost_foreachS_invariant with (Q := fun v => match v with Value a => Q a
auto.
Qed.
-Lemma PrePostE_foreach_ZS_up_invariant Regs Vars Ety from to step (H : Sail2_values.ArithFact (0 <? step)%Z) vars body (Q : Vars -> predS Regs) (E : ex Ety -> predS Regs) :
+Lemma PrePostE_foreach_ZS_up_invariant Regs Vars Ety from to step (H : Sail.Values.ArithFact (0 <? step)%Z) vars body (Q : Vars -> predS Regs) (E : ex Ety -> predS Regs) :
(forall i range vars, PrePostE (Q vars) (body i range vars) Q E) ->
PrePostE (Q vars) (foreach_ZS_up from to step vars body) Q E.
intro INV.
@@ -793,7 +793,7 @@ induction (S (Z.abs_nat (from - to))); intros.
+ apply PrePostE_returnS.
Qed.
-Lemma PrePostE_foreach_ZS_down_invariant Regs Vars Ety from to step (H : Sail2_values.ArithFact (0 <? step)%Z) vars body (Q : Vars -> predS Regs) (E : ex Ety -> predS Regs) :
+Lemma PrePostE_foreach_ZS_down_invariant Regs Vars Ety from to step (H : Sail.Values.ArithFact (0 <? step)%Z) vars body (Q : Vars -> predS Regs) (E : ex Ety -> predS Regs) :
(forall i range vars, PrePostE (Q vars) (body i range vars) Q E) ->
PrePostE (Q vars) (foreach_ZS_down from to step vars body) Q E.
intro INV.
@@ -838,7 +838,7 @@ apply PrePostE_use_pre. intros s0 Pre0.
assert (measure vars >= 0) as Hlimit_0 by eauto. clear s0 Pre0.
remember (measure vars) as limit eqn: Heqlimit in Hlimit_0 |- *.
assert (measure vars <= limit) as Hlimit by omega. clear Heqlimit.
-generalize (Sail2_prompt.Zwf_guarded limit).
+generalize (Sail.Prompt.Zwf_guarded limit).
revert vars Hlimit.
apply Wf_Z.natlike_ind with (x := limit).
* intros vars Hmeasure_limit [acc]. simpl.
@@ -1000,7 +1000,7 @@ unfold internal_pickS.
intro notnil.
eapply PrePostE_bindS with (R := fun _ s => forall x, List.In x xs -> Q x s).
* intros.
- destruct (nth_error_modulo (Sail2_values.nat_of_bools a) notnil) as (x & IN & nth).
+ destruct (nth_error_modulo (Sail.Values.nat_of_bools a) notnil) as (x & IN & nth).
rewrite nth.
eapply PrePostE_strengthen_pre.
apply PrePostE_returnS.
@@ -1038,7 +1038,7 @@ Qed.
Local Open Scope Z.
-Lemma PrePostE_undefined_bitvectorS_any Regs Ety n `{Sail2_values.ArithFact (n >=? 0)} (Q : Sail2_values.mword n -> predS Regs) (E : ex Ety -> predS Regs) :
+Lemma PrePostE_undefined_bitvectorS_any Regs Ety n `{Sail.Values.ArithFact (n >=? 0)} (Q : Sail.Values.mword n -> predS Regs) (E : ex Ety -> predS Regs) :
PrePostE (fun s => forall w, Q w s) (undefined_bitvectorS n) Q E.
unfold undefined_bitvectorS.
eapply PrePostE_strengthen_pre.
@@ -1049,15 +1049,15 @@ simpl.
auto.
Qed.
-Lemma PrePostE_undefined_bitvectorS_ignore Regs Ety n `{Sail2_values.ArithFact (n >=? 0)} (Q : predS Regs) (E : ex Ety -> predS Regs) :
+Lemma PrePostE_undefined_bitvectorS_ignore Regs Ety n `{Sail.Values.ArithFact (n >=? 0)} (Q : predS Regs) (E : ex Ety -> predS Regs) :
PrePostE Q (undefined_bitvectorS n) (fun _ => Q) E.
eapply PrePostE_strengthen_pre.
apply PrePostE_undefined_bitvectorS_any; auto.
simpl; auto.
Qed.
-Lemma PrePostE_build_trivial_exS Regs (T:Type) Ety (m : monadS Regs T Ety) P (Q : {T & Sail2_values.ArithFact true} -> predS Regs) E :
- PrePostE P m (fun v => Q (existT _ v (Sail2_values.Build_ArithFactP _ eq_refl))) E ->
+Lemma PrePostE_build_trivial_exS Regs (T:Type) Ety (m : monadS Regs T Ety) P (Q : {T & Sail.Values.ArithFact true} -> predS Regs) E :
+ PrePostE P m (fun v => Q (existT _ v (Sail.Values.Build_ArithFactP _ eq_refl))) E ->
PrePostE P (build_trivial_exS m) Q E.
intro H.
unfold build_trivial_exS.
diff --git a/lib/coq/Sail2_impl_base.v b/lib/coq/Impl_base.v
index 464c2902..b5a2dd54 100644
--- a/lib/coq/Sail2_impl_base.v
+++ b/lib/coq/Impl_base.v
@@ -48,7 +48,7 @@
(* SUCH DAMAGE. *)
(*========================================================================*)
-Require Import Sail2_instr_kinds.
+Require Import Sail.Instr_kinds.
(*
class ( EnumerationType 'a )
diff --git a/lib/coq/Sail2_instr_kinds.v b/lib/coq/Instr_kinds.v
index d03d5e63..d03d5e63 100644
--- a/lib/coq/Sail2_instr_kinds.v
+++ b/lib/coq/Instr_kinds.v
diff --git a/lib/coq/Makefile b/lib/coq/Makefile
index 806b0ff0..1b6435e1 100644
--- a/lib/coq/Makefile
+++ b/lib/coq/Makefile
@@ -1,26 +1,40 @@
+HAVE_OPAM_BBV=$(shell if opam config var coq-bbv:share >/dev/null 2>/dev/null; then echo yes; else echo no; fi)
+
+ifeq ($(HAVE_OPAM_BBV),no)
BBV_DIR?=../../../bbv/src/bbv
+endif
-CORESRC=Sail2_prompt_monad.v Sail2_prompt.v Sail2_impl_base.v Sail2_instr_kinds.v Sail2_operators_bitlists.v Sail2_operators_mwords.v Sail2_operators.v Sail2_values.v Sail2_state_monad.v Sail2_state.v Sail2_state_lifting.v Sail2_string.v Sail2_real.v
-PROOFSRC=Sail2_values_lemmas.v Sail2_state_monad_lemmas.v Sail2_state_lemmas.v Hoare.v
+CORESRC=Prompt_monad.v Prompt.v Impl_base.v Instr_kinds.v Operators_bitlists.v Operators_mwords.v Operators.v Values.v State_monad.v State.v State_lifting.v String.v Real.v Base.v
+PROOFSRC=Values_lemmas.v State_monad_lemmas.v State_lemmas.v Hoare.v
SRC=$(CORESRC) $(PROOFSRC)
-COQ_LIBS = -R . Sail -R "$(BBV_DIR)" bbv
+ifdef BBV_DIR
+COQ_LIBS = -Q . Sail -Q "$(BBV_DIR)" bbv
+else
+COQ_LIBS = -Q . Sail
+endif
TARGETS=$(SRC:.v=.vo)
-.PHONY: all clean *.ide
+.PHONY: all clean install
all: $(TARGETS)
clean:
rm -f -- $(TARGETS) $(TARGETS:.vo=.glob) $(TARGETS:%.vo=.%.aux) deps
-%.vo: %.v
+$(TARGETS): %.vo: %.v
coqc $(COQ_LIBS) $<
-%.ide: %.v
- coqide $(COQ_LIBS) $<
-
deps: $(SRC)
coqdep $(COQ_LIBS) $(SRC) > deps
-include deps
+
+COQLIB = $(shell coqc -where)
+DESTDIR ?=
+INSTALLDIR = $(DESTDIR)/$(COQLIB)/user-contrib/Sail
+
+install: $(TARGETS)
+ test -d "$(DESTDIR)/$(COQLIB)/user-contrib" || echo Coq library directory "$(DESTDIR)/$(COQLIB)/user-contrib" not present
+ install -d -- "$(INSTALLDIR)"
+ install -m 644 -- $(SRC) $(TARGETS) $(TARGETS:.vo=.glob) "$(INSTALLDIR)"
diff --git a/lib/coq/Sail2_operators.v b/lib/coq/Operators.v
index ab02c4a8..fa5377ce 100644
--- a/lib/coq/Sail2_operators.v
+++ b/lib/coq/Operators.v
@@ -1,4 +1,4 @@
-Require Import Sail2_values.
+Require Import Sail.Values.
Require List.
Import List.ListNotations.
diff --git a/lib/coq/Sail2_operators_bitlists.v b/lib/coq/Operators_bitlists.v
index dbd8215c..85a01bf9 100644
--- a/lib/coq/Sail2_operators_bitlists.v
+++ b/lib/coq/Operators_bitlists.v
@@ -1,5 +1,5 @@
-Require Import Sail2_values.
-Require Import Sail2_operators.
+Require Import Sail.Values.
+Require Import Sail.Operators.
(*
diff --git a/lib/coq/Sail2_operators_mwords.v b/lib/coq/Operators_mwords.v
index 1f176ad9..c4acd69d 100644
--- a/lib/coq/Sail2_operators_mwords.v
+++ b/lib/coq/Operators_mwords.v
@@ -1,7 +1,7 @@
-Require Import Sail2_values.
-Require Import Sail2_operators.
-Require Import Sail2_prompt_monad.
-Require Import Sail2_prompt.
+Require Import Sail.Values.
+Require Import Sail.Operators.
+Require Import Sail.Prompt_monad.
+Require Import Sail.Prompt.
Require Import bbv.Word.
Require bbv.BinNotation.
Require Import Arith.
diff --git a/lib/coq/Sail2_prompt.v b/lib/coq/Prompt.v
index aeca1248..5a82acdc 100644
--- a/lib/coq/Sail2_prompt.v
+++ b/lib/coq/Prompt.v
@@ -1,6 +1,5 @@
-(*Require Import Sail_impl_base*)
-Require Import Sail2_values.
-Require Import Sail2_prompt_monad.
+Require Import Sail.Values.
+Require Import Sail.Prompt_monad.
Require Export ZArith.Zwf.
Require Import List.
Import ListNotations.
diff --git a/lib/coq/Sail2_prompt_monad.v b/lib/coq/Prompt_monad.v
index 0ff65d28..5f54ad0d 100644
--- a/lib/coq/Sail2_prompt_monad.v
+++ b/lib/coq/Prompt_monad.v
@@ -1,7 +1,7 @@
Require Import String.
(*Require Import Sail_impl_base*)
-Require Import Sail2_instr_kinds.
-Require Import Sail2_values.
+Require Import Sail.Instr_kinds.
+Require Import Sail.Values.
Require bbv.Word.
Import ListNotations.
diff --git a/lib/coq/Sail2_real.v b/lib/coq/Real.v
index 4800f18b..3a3f3a2f 100644
--- a/lib/coq/Sail2_real.v
+++ b/lib/coq/Real.v
@@ -1,7 +1,7 @@
Require Export Rbase.
Require Import Reals.
Require Export ROrderedType.
-Require Import Sail2_values.
+Require Import Sail.Values.
(* "Decidable" in a classical sense... *)
Instance Decidable_eq_real : forall (x y : R), Decidable (x = y) :=
diff --git a/lib/coq/Sail2_state.v b/lib/coq/State.v
index 7c751bc7..f4e5c266 100644
--- a/lib/coq/Sail2_state.v
+++ b/lib/coq/State.v
@@ -1,8 +1,7 @@
-(*Require Import Sail_impl_base*)
-Require Import Sail2_values.
-Require Import Sail2_prompt_monad.
-Require Import Sail2_prompt.
-Require Import Sail2_state_monad.
+Require Import Sail.Values.
+Require Import Sail.Prompt_monad.
+Require Import Sail.Prompt.
+Require Import Sail.State_monad.
Import ListNotations.
(*val iterS_aux : forall 'rv 'a 'e. integer -> (integer -> 'a -> monadS 'rv unit 'e) -> list 'a -> monadS 'rv unit 'e*)
diff --git a/lib/coq/Sail2_state_lemmas.v b/lib/coq/State_lemmas.v
index ef82084f..78a7d1de 100644
--- a/lib/coq/Sail2_state_lemmas.v
+++ b/lib/coq/State_lemmas.v
@@ -1,5 +1,5 @@
-Require Import Sail2_values Sail2_prompt_monad Sail2_prompt Sail2_state_monad Sail2_state Sail2_state Sail2_state_lifting.
-Require Import Sail2_state_monad_lemmas.
+Require Import Sail.Values Sail.Prompt_monad Sail.Prompt Sail.State_monad Sail.State Sail.State Sail.State_lifting.
+Require Import Sail.State_monad_lemmas.
Local Open Scope equiv_scope.
@@ -209,14 +209,14 @@ Qed.
(* Monad lifting *)
-Lemma liftState_bind Regval Regs A B E {r : Sail2_values.register_accessors Regs Regval} {m : monad Regval A E} {f : A -> monad Regval B E} :
+Lemma liftState_bind Regval Regs A B E {r : Sail.Values.register_accessors Regs Regval} {m : monad Regval A E} {f : A -> monad Regval B E} :
liftState r (bind m f) === bindS (liftState r m) (fun x => liftState r (f x)).
induction m; simpl; autorewrite with state; auto using bindS_cong.
Qed.
Hint Rewrite liftState_bind : liftState.
Hint Resolve liftState_bind : liftState.
-Lemma liftState_bind0 Regval Regs B E {r : Sail2_values.register_accessors Regs Regval} {m : monad Regval unit E} {m' : monad Regval B E} :
+Lemma liftState_bind0 Regval Regs B E {r : Sail.Values.register_accessors Regs Regval} {m : monad Regval unit E} {m' : monad Regval B E} :
liftState r (bind0 m m') === seqS (liftState r m) (liftState r m').
induction m; simpl; autorewrite with state; auto using bindS_cong.
Qed.
@@ -327,7 +327,7 @@ Ltac rewrite_liftState :=
try let H := fresh "H" in (eassert (H:liftState r tm === _); [ statecong liftState | rewrite H; clear H])
end.
-Lemma liftState_return Regval Regs A E {r : Sail2_values.register_accessors Regs Regval} {a :A} :
+Lemma liftState_return Regval Regs A E {r : Sail.Values.register_accessors Regs Regval} {a :A} :
liftState (E:=E) r (returnm a) = returnS a.
reflexivity.
Qed.
@@ -633,7 +633,7 @@ Hint Resolve liftState_write_mem_ea : liftState.
Lemma liftState_write_memt Regs Regval A B E wk addr sz v t r :
liftState (Regs := Regs) r (@write_memt Regval A B E wk addr sz v t) = write_memtS wk addr sz v t.
unfold write_memt, write_memtS.
-destruct (Sail2_values.mem_bytes_of_bits v); auto.
+destruct (Sail.Values.mem_bytes_of_bits v); auto.
Qed.
Hint Rewrite liftState_write_memt : liftState.
Hint Resolve liftState_write_memt : liftState.
@@ -641,7 +641,7 @@ Hint Resolve liftState_write_memt : liftState.
Lemma liftState_write_mem Regs Regval A B E wk addrsize addr sz v r :
liftState (Regs := Regs) r (@write_mem Regval A B E wk addrsize addr sz v) = write_memS wk addr sz v.
unfold write_mem, write_memS, write_memtS.
-destruct (Sail2_values.mem_bytes_of_bits v); simpl; auto.
+destruct (Sail.Values.mem_bytes_of_bits v); simpl; auto.
Qed.
Hint Rewrite liftState_write_mem : liftState.
Hint Resolve liftState_write_mem : liftState.
diff --git a/lib/coq/Sail2_state_lifting.v b/lib/coq/State_lifting.v
index 1544c3c9..8342b04c 100644
--- a/lib/coq/Sail2_state_lifting.v
+++ b/lib/coq/State_lifting.v
@@ -1,7 +1,7 @@
-Require Import Sail2_values.
-Require Import Sail2_prompt_monad.
-Require Import Sail2_prompt.
-Require Import Sail2_state_monad.
+Require Import Sail.Values.
+Require Import Sail.Prompt_monad.
+Require Import Sail.Prompt.
+Require Import Sail.State_monad.
Import ListNotations.
(* Lifting from prompt monad to state monad *)
diff --git a/lib/coq/Sail2_state_monad.v b/lib/coq/State_monad.v
index 3fb1f8d9..38f942ee 100644
--- a/lib/coq/Sail2_state_monad.v
+++ b/lib/coq/State_monad.v
@@ -1,5 +1,5 @@
-Require Import Sail2_instr_kinds.
-Require Import Sail2_values.
+Require Import Sail.Instr_kinds.
+Require Import Sail.Values.
Require FMapList.
Require Import OrderedType.
Require OrderedTypeEx.
diff --git a/lib/coq/Sail2_state_monad_lemmas.v b/lib/coq/State_monad_lemmas.v
index c834a0cb..41270be6 100644
--- a/lib/coq/Sail2_state_monad_lemmas.v
+++ b/lib/coq/State_monad_lemmas.v
@@ -1,5 +1,5 @@
-Require Import Sail2_state_monad.
-(*Require Import Sail2_values_lemmas.*)
+Require Import Sail.State_monad.
+(*Require Import Sail.Values_lemmas.*)
Require Export Setoid.
Require Export Morphisms Equivalence.
@@ -8,7 +8,7 @@ Require Export Morphisms Equivalence.
Note that rewriting results are put into both a rewriting hint database and
a normal automation one. The former can be used with autorewrite and friends,
but the latter can be used with the rewriting under congruence tactics, such as
- statecong in Sail2_state_lemmas, and PrePostE_rewrite in Hoare. *)
+ statecong in Sail.State_lemmas, and PrePostE_rewrite in Hoare. *)
(* Ensure that pointwise equality on states is the preferred notion of
equivalence for the state monad. *)
@@ -540,7 +540,7 @@ Hint Resolve no_throw_mem_builtins_7 : ignore_throw.
Lemma no_throw_mem_builtins_8 Regs E1 E2 A B wk addr sz v t :
ignore_throw (E2 := E2) (@write_memtS Regs E1 A B wk addr sz v t) === write_memtS wk addr sz v t.
unfold write_memtS. rewrite ignore_throw_option_case_distrib_2.
-destruct (Sail2_values.mem_bytes_of_bits v); autorewrite with ignore_throw; auto.
+destruct (Sail.Values.mem_bytes_of_bits v); autorewrite with ignore_throw; auto.
Qed.
Hint Rewrite no_throw_mem_builtins_8 : ignore_throw.
Hint Resolve no_throw_mem_builtins_8 : ignore_throw.
diff --git a/lib/coq/Sail2_string.v b/lib/coq/String.v
index 1e1b445b..207aac5f 100644
--- a/lib/coq/Sail2_string.v
+++ b/lib/coq/String.v
@@ -1,4 +1,4 @@
-Require Import Sail2_values.
+Require Import Sail.Values.
Require Import Coq.Strings.Ascii.
Definition string_sub (s : string) (start : Z) (len : Z) : string :=
diff --git a/lib/coq/Sail2_values.v b/lib/coq/Values.v
index 9b76ce62..9b76ce62 100644
--- a/lib/coq/Sail2_values.v
+++ b/lib/coq/Values.v
diff --git a/lib/coq/Sail2_values_lemmas.v b/lib/coq/Values_lemmas.v
index ed8b6af0..8444937f 100644
--- a/lib/coq/Sail2_values_lemmas.v
+++ b/lib/coq/Values_lemmas.v
@@ -1,4 +1,4 @@
-Require Import Sail2_values.
+Require Import Sail.Values.
(*
@@ -389,4 +389,4 @@ lemma bools_of_int_bin_to_bl[simp]:
by (auto simp: bools_of_int_def Let_def map_Not_bin_to_bl rbl_succ[unfolded bin_to_bl_def])
end
-*) \ No newline at end of file
+*)
diff --git a/lib/coq/_CoqProject b/lib/coq/_CoqProject
index 9f5d26b8..fbefc692 100644
--- a/lib/coq/_CoqProject
+++ b/lib/coq/_CoqProject
@@ -1,2 +1,2 @@
--R . Sail
--R ../../../bbv/theories bbv
+-Q . Sail
+-Q ../../../bbv/theories bbv