Commit 9291076e authored by Ralf Jung's avatar Ralf Jung

make sure we import 'options' everywhere

parent f7b4fa56
...@@ -12,6 +12,10 @@ TESTFILES:=$(wildcard tests/*.v) ...@@ -12,6 +12,10 @@ TESTFILES:=$(wildcard tests/*.v)
NORMALIZER:=test-normalizer.sed NORMALIZER:=test-normalizer.sed
test: $(TESTFILES:.v=.vo) test: $(TESTFILES:.v=.vo)
# Make sure everything imports the options.
$(HIDE)for FILE in $$(find theories/ -name "*.v" | fgrep -v theories/options.v); do \
if ! fgrep -q 'From iris Require Import options.' "$$FILE"; then echo "ERROR: $$FILE does not import 'options'."; exit 1; fi \
done
.PHONY: test .PHONY: test
COQ_TEST=$(COQTOP) $(COQDEBUG) -batch -test-mode COQ_TEST=$(COQTOP) $(COQDEBUG) -batch -test-mode
......
From stdpp Require Export functions gmap gmultiset. From stdpp Require Export functions gmap gmultiset.
From iris.algebra Require Export monoid. From iris.algebra Require Export monoid.
Set Default Proof Using "Type*". From iris Require Import options.
Local Existing Instances monoid_ne monoid_assoc monoid_comm Local Existing Instances monoid_ne monoid_assoc monoid_comm
monoid_left_id monoid_right_id monoid_proper monoid_left_id monoid_right_id monoid_proper
monoid_homomorphism_rel_po monoid_homomorphism_rel_proper monoid_homomorphism_rel_po monoid_homomorphism_rel_proper
...@@ -619,36 +619,36 @@ Section homomorphisms. ...@@ -619,36 +619,36 @@ Section homomorphisms.
Lemma big_opL_commute_L {A} (h : M1 M2) Lemma big_opL_commute_L {A} (h : M1 M2)
`{!MonoidHomomorphism o1 o2 () h} (f : nat A M1) l : `{!MonoidHomomorphism o1 o2 () h} (f : nat A M1) l :
h ([^o1 list] kx l, f k x) = ([^o2 list] kx l, h (f k x)). h ([^o1 list] kx l, f k x) = ([^o2 list] kx l, h (f k x)).
Proof. unfold_leibniz. by apply big_opL_commute. Qed. Proof using Type*. unfold_leibniz. by apply big_opL_commute. Qed.
Lemma big_opL_commute1_L {A} (h : M1 M2) Lemma big_opL_commute1_L {A} (h : M1 M2)
`{!WeakMonoidHomomorphism o1 o2 () h} (f : nat A M1) l : `{!WeakMonoidHomomorphism o1 o2 () h} (f : nat A M1) l :
l [] h ([^o1 list] kx l, f k x) = ([^o2 list] kx l, h (f k x)). l [] h ([^o1 list] kx l, f k x) = ([^o2 list] kx l, h (f k x)).
Proof. unfold_leibniz. by apply big_opL_commute1. Qed. Proof using Type*. unfold_leibniz. by apply big_opL_commute1. Qed.
Lemma big_opM_commute_L `{Countable K} {A} (h : M1 M2) Lemma big_opM_commute_L `{Countable K} {A} (h : M1 M2)
`{!MonoidHomomorphism o1 o2 () h} (f : K A M1) m : `{!MonoidHomomorphism o1 o2 () h} (f : K A M1) m :
h ([^o1 map] kx m, f k x) = ([^o2 map] kx m, h (f k x)). h ([^o1 map] kx m, f k x) = ([^o2 map] kx m, h (f k x)).
Proof. unfold_leibniz. by apply big_opM_commute. Qed. Proof using Type*. unfold_leibniz. by apply big_opM_commute. Qed.
Lemma big_opM_commute1_L `{Countable K} {A} (h : M1 M2) Lemma big_opM_commute1_L `{Countable K} {A} (h : M1 M2)
`{!WeakMonoidHomomorphism o1 o2 () h} (f : K A M1) m : `{!WeakMonoidHomomorphism o1 o2 () h} (f : K A M1) m :
m h ([^o1 map] kx m, f k x) = ([^o2 map] kx m, h (f k x)). m h ([^o1 map] kx m, f k x) = ([^o2 map] kx m, h (f k x)).
Proof. unfold_leibniz. by apply big_opM_commute1. Qed. Proof using Type*. unfold_leibniz. by apply big_opM_commute1. Qed.
Lemma big_opS_commute_L `{Countable A} (h : M1 M2) Lemma big_opS_commute_L `{Countable A} (h : M1 M2)
`{!MonoidHomomorphism o1 o2 () h} (f : A M1) X : `{!MonoidHomomorphism o1 o2 () h} (f : A M1) X :
h ([^o1 set] x X, f x) = ([^o2 set] x X, h (f x)). h ([^o1 set] x X, f x) = ([^o2 set] x X, h (f x)).
Proof. unfold_leibniz. by apply big_opS_commute. Qed. Proof using Type*. unfold_leibniz. by apply big_opS_commute. Qed.
Lemma big_opS_commute1_L `{ Countable A} (h : M1 M2) Lemma big_opS_commute1_L `{ Countable A} (h : M1 M2)
`{!WeakMonoidHomomorphism o1 o2 () h} (f : A M1) X : `{!WeakMonoidHomomorphism o1 o2 () h} (f : A M1) X :
X h ([^o1 set] x X, f x) = ([^o2 set] x X, h (f x)). X h ([^o1 set] x X, f x) = ([^o2 set] x X, h (f x)).
Proof. intros. rewrite <-leibniz_equiv_iff. by apply big_opS_commute1. Qed. Proof using Type*. intros. rewrite <-leibniz_equiv_iff. by apply big_opS_commute1. Qed.
Lemma big_opMS_commute_L `{Countable A} (h : M1 M2) Lemma big_opMS_commute_L `{Countable A} (h : M1 M2)
`{!MonoidHomomorphism o1 o2 () h} (f : A M1) X : `{!MonoidHomomorphism o1 o2 () h} (f : A M1) X :
h ([^o1 mset] x X, f x) = ([^o2 mset] x X, h (f x)). h ([^o1 mset] x X, f x) = ([^o2 mset] x X, h (f x)).
Proof. unfold_leibniz. by apply big_opMS_commute. Qed. Proof using Type*. unfold_leibniz. by apply big_opMS_commute. Qed.
Lemma big_opMS_commute1_L `{Countable A} (h : M1 M2) Lemma big_opMS_commute1_L `{Countable A} (h : M1 M2)
`{!WeakMonoidHomomorphism o1 o2 () h} (f : A M1) X : `{!WeakMonoidHomomorphism o1 o2 () h} (f : A M1) X :
X h ([^o1 mset] x X, f x) = ([^o2 mset] x X, h (f x)). X h ([^o1 mset] x X, f x) = ([^o2 mset] x X, h (f x)).
Proof. intros. rewrite <-leibniz_equiv_iff. by apply big_opMS_commute1. Qed. Proof using Type*. intros. rewrite <-leibniz_equiv_iff. by apply big_opMS_commute1. Qed.
End homomorphisms. End homomorphisms.
From stdpp Require Import gmap gmultiset. From stdpp Require Import gmap gmultiset.
From iris.algebra Require Export big_op cmra. From iris.algebra Require Export big_op cmra.
Set Default Proof Using "Type*". From iris Require Import options.
(** Option *) (** Option *)
Lemma big_opL_None {M : cmraT} {A} (f : nat A option M) l : Lemma big_opL_None {M : cmraT} {A} (f : nat A option M) l :
......
From iris.algebra Require Export auth excl updates. From iris.algebra Require Export auth excl updates.
From iris.algebra Require Import local_updates. From iris.algebra Require Import local_updates.
From iris.base_logic Require Import base_logic. From iris.base_logic Require Import base_logic.
From iris Require Import options.
(** Authoritative CMRA where the fragment is exclusively owned. (** Authoritative CMRA where the fragment is exclusively owned.
This is effectively a single "ghost variable" with two views, the frament [◯E a] This is effectively a single "ghost variable" with two views, the frament [◯E a]
......
From iris.algebra Require Export frac auth updates local_updates. From iris.algebra Require Export frac auth updates local_updates.
From iris.algebra Require Import proofmode_classes. From iris.algebra Require Import proofmode_classes.
From iris Require Import options.
(** Authoritative CMRA where the NON-authoritative parts can be fractional. (** Authoritative CMRA where the NON-authoritative parts can be fractional.
This CMRA allows the original non-authoritative element [◯ a] to be split into This CMRA allows the original non-authoritative element [◯ a] to be split into
......
...@@ -19,6 +19,7 @@ difference: ...@@ -19,6 +19,7 @@ difference:
From Coq Require Import QArith Qcanon. From Coq Require Import QArith Qcanon.
From iris.algebra Require Export auth frac updates local_updates. From iris.algebra Require Export auth frac updates local_updates.
From iris.algebra Require Import ufrac proofmode_classes. From iris.algebra Require Import ufrac proofmode_classes.
From iris Require Import options.
Definition ufrac_authR (A : cmraT) : cmraT := Definition ufrac_authR (A : cmraT) : cmraT :=
authR (optionUR (prodR ufracR A)). authR (optionUR (prodR ufracR A)).
......
From iris.algebra Require Export cmra local_updates proofmode_classes. From iris.algebra Require Export cmra local_updates proofmode_classes.
From iris Require Import options.
(** ** Natural numbers with [add] as the operation. *) (** ** Natural numbers with [add] as the operation. *)
Section nat. Section nat.
......
From iris.algebra Require Export cmra. From iris.algebra Require Export cmra.
From iris.proofmode Require Export classes. From iris.proofmode Require Export classes.
From iris Require Import options.
(* There are various versions of [IsOp] with different modes: (* There are various versions of [IsOp] with different modes:
......
From iris.bi Require Export derived_connectives updates internal_eq plainly. From iris.bi Require Export derived_connectives updates internal_eq plainly.
From iris.base_logic Require Export upred. From iris.base_logic Require Export upred.
From iris Require Import options.
Import uPred_primitive. Import uPred_primitive.
(** BI instances for [uPred], and re-stating the remaining primitive laws in (** BI instances for [uPred], and re-stating the remaining primitive laws in
......
From iris.proofmode Require Import tactics. From iris.proofmode Require Import tactics.
From iris.base_logic Require Export base_logic. From iris.base_logic Require Export base_logic.
From iris Require Import options.
(* The sections add extra BI assumptions, which is only picked up with "Type"*. *)
Set Default Proof Using "Type*".
(** This file contains an alternative version of basic updates, that is (** This file contains an alternative version of basic updates, that is
expression in terms of just the plain modality [■]. *) expression in terms of just the plain modality [■]. *)
......
...@@ -4,6 +4,9 @@ laws of the view shift. *) ...@@ -4,6 +4,9 @@ laws of the view shift. *)
From stdpp Require Export coPset. From stdpp Require Export coPset.
From iris.proofmode Require Import tactics. From iris.proofmode Require Import tactics.
From iris.base_logic Require Export base_logic. From iris.base_logic Require Export base_logic.
From iris Require Import options.
(* The sections add extra BI assumptions, which is only picked up with "Type"*. *)
Set Default Proof Using "Type*". Set Default Proof Using "Type*".
Section fupd. Section fupd.
......
From iris.algebra Require Import proofmode_classes. From iris.algebra Require Import proofmode_classes.
From iris.base_logic Require Export derived. From iris.base_logic Require Export derived.
From iris Require Import options.
Import base_logic.bi.uPred. Import base_logic.bi.uPred.
......
From iris.bi Require Import interface derived_connectives updates. From iris.bi Require Import interface derived_connectives updates.
From iris.algebra Require Export ofe. From iris.algebra Require Export ofe.
From iris Require Import options.
Notation "P |- Q" := (P Q) Notation "P |- Q" := (P Q)
(at level 99, Q at level 200, right associativity, only parsing) : stdpp_scope. (at level 99, Q at level 200, right associativity, only parsing) : stdpp_scope.
......
From iris.bi Require Export interface. From iris.bi Require Export interface.
From iris.algebra Require Import monoid. From iris.algebra Require Import monoid.
From iris Require Import options.
Definition bi_iff {PROP : bi} (P Q : PROP) : PROP := ((P Q) (Q P))%I. Definition bi_iff {PROP : bi} (P Q : PROP) : PROP := ((P Q) (Q P))%I.
Arguments bi_iff {_} _%I _%I : simpl never. Arguments bi_iff {_} _%I _%I : simpl never.
......
From iris.bi Require Export derived_connectives. From iris.bi Require Export derived_connectives.
From iris.algebra Require Import monoid. From iris.algebra Require Import monoid.
From iris Require Import options.
(* The sections add [BiAffine] and the like, which is only picked up with "Type"*. *)
Set Default Proof Using "Type*".
(** Naming schema for lemmas about modalities: (** Naming schema for lemmas about modalities:
M1_into_M2: M1 P ⊢ M2 P M1_into_M2: M1 P ⊢ M2 P
......
From iris.bi Require Export derived_laws. From iris.bi Require Export derived_laws.
From iris.algebra Require Import monoid. From iris.algebra Require Import monoid.
From iris Require Import options.
Module bi. Module bi.
Import interface.bi. Import interface.bi.
......
From iris.bi Require Import interface derived_laws_later big_op. From iris.bi Require Import interface derived_laws_later big_op.
From iris.bi Require Import plainly updates internal_eq. From iris.bi Require Import plainly updates internal_eq.
From iris.algebra Require Import monoid. From iris.algebra Require Import monoid.
From iris Require Import options.
(* The sections add extra BI assumptions, which is only picked up with "Type"*. *)
Set Default Proof Using "Type*".
Class Embed (A B : Type) := embed : A B. Class Embed (A B : Type) := embed : A B.
Arguments embed {_ _ _} _%I : simpl never. Arguments embed {_ _ _} _%I : simpl never.
......
From iris.bi Require Export notation. From iris.bi Require Export notation.
From iris.algebra Require Export ofe. From iris.algebra Require Export ofe.
From iris Require Import options.
Set Primitive Projections. Set Primitive Projections.
Section bi_mixin. Section bi_mixin.
......
From iris.bi Require Import derived_laws_later big_op. From iris.bi Require Import derived_laws_later big_op.
From iris Require Import options.
Import interface.bi derived_laws.bi derived_laws_later.bi. Import interface.bi derived_laws.bi derived_laws_later.bi.
(** This file defines a type class for BIs with a notion of internal equality. (** This file defines a type class for BIs with a notion of internal equality.
......
From iris.bi Require Export bi. From iris.bi Require Export bi.
From iris.proofmode Require Import tactics. From iris.proofmode Require Import tactics.
From iris Require Import options.
(* The sections add extra BI assumptions, which is only picked up with "Type"*. *)
Set Default Proof Using "Type*". Set Default Proof Using "Type*".
(** This proves that we need the ▷ in a "Saved Proposition" construction with (** This proves that we need the ▷ in a "Saved Proposition" construction with
......
From iris.bi Require Export bi. From iris.bi Require Export bi.
From iris.proofmode Require Import tactics. From iris.proofmode Require Import tactics.
Set Default Proof Using "Type*". From iris Require Import options.
Import bi. Import bi.
(** Least and greatest fixpoint of a monotone function, defined entirely inside (** Least and greatest fixpoint of a monotone function, defined entirely inside
...@@ -35,7 +35,7 @@ Section least. ...@@ -35,7 +35,7 @@ Section least.
Context {PROP : bi} {A : ofeT} (F : (A PROP) (A PROP)) `{!BiMonoPred F}. Context {PROP : bi} {A : ofeT} (F : (A PROP) (A PROP)) `{!BiMonoPred F}.
Lemma least_fixpoint_unfold_2 x : F (bi_least_fixpoint F) x bi_least_fixpoint F x. Lemma least_fixpoint_unfold_2 x : F (bi_least_fixpoint F) x bi_least_fixpoint F x.
Proof. Proof using Type*.
rewrite /bi_least_fixpoint /=. iIntros "HF" (Φ) "#Hincl". rewrite /bi_least_fixpoint /=. iIntros "HF" (Φ) "#Hincl".
iApply "Hincl". iApply (bi_mono_pred _ Φ with "[#]"); last done. iApply "Hincl". iApply (bi_mono_pred _ Φ with "[#]"); last done.
iIntros "!>" (y) "Hy". iApply ("Hy" with "[# //]"). iIntros "!>" (y) "Hy". iApply ("Hy" with "[# //]").
...@@ -43,7 +43,7 @@ Section least. ...@@ -43,7 +43,7 @@ Section least.
Lemma least_fixpoint_unfold_1 x : Lemma least_fixpoint_unfold_1 x :
bi_least_fixpoint F x F (bi_least_fixpoint F) x. bi_least_fixpoint F x F (bi_least_fixpoint F) x.
Proof. Proof using Type*.
iIntros "HF". iApply ("HF" $! (OfeMor (F (bi_least_fixpoint F))) with "[#]"). iIntros "HF". iApply ("HF" $! (OfeMor (F (bi_least_fixpoint F))) with "[#]").
iIntros "!>" (y) "Hy /=". iApply (bi_mono_pred with "[#]"); last done. iIntros "!>" (y) "Hy /=". iApply (bi_mono_pred with "[#]"); last done.
iIntros "!>" (z) "?". by iApply least_fixpoint_unfold_2. iIntros "!>" (z) "?". by iApply least_fixpoint_unfold_2.
...@@ -51,7 +51,7 @@ Section least. ...@@ -51,7 +51,7 @@ Section least.
Corollary least_fixpoint_unfold x : Corollary least_fixpoint_unfold x :
bi_least_fixpoint F x F (bi_least_fixpoint F) x. bi_least_fixpoint F x F (bi_least_fixpoint F) x.
Proof. Proof using Type*.
apply (anti_symm _); auto using least_fixpoint_unfold_1, least_fixpoint_unfold_2. apply (anti_symm _); auto using least_fixpoint_unfold_1, least_fixpoint_unfold_2.
Qed. Qed.
...@@ -64,7 +64,7 @@ Section least. ...@@ -64,7 +64,7 @@ Section least.
Lemma least_fixpoint_strong_ind (Φ : A PROP) `{!NonExpansive Φ} : Lemma least_fixpoint_strong_ind (Φ : A PROP) `{!NonExpansive Φ} :
( y, F (λ x, Φ x bi_least_fixpoint F x) y - Φ y) - ( y, F (λ x, Φ x bi_least_fixpoint F x) y - Φ y) -
x, bi_least_fixpoint F x - Φ x. x, bi_least_fixpoint F x - Φ x.
Proof. Proof using Type*.
trans ( x, bi_least_fixpoint F x - Φ x bi_least_fixpoint F x)%I. trans ( x, bi_least_fixpoint F x - Φ x bi_least_fixpoint F x)%I.
{ iIntros "#HΦ". iApply (least_fixpoint_ind with "[]"); first solve_proper. { iIntros "#HΦ". iApply (least_fixpoint_ind with "[]"); first solve_proper.
iIntros "!>" (y) "H". iSplit; first by iApply "HΦ". iIntros "!>" (y) "H". iSplit; first by iApply "HΦ".
...@@ -97,7 +97,7 @@ Section greatest. ...@@ -97,7 +97,7 @@ Section greatest.
Lemma greatest_fixpoint_unfold_1 x : Lemma greatest_fixpoint_unfold_1 x :
bi_greatest_fixpoint F x F (bi_greatest_fixpoint F) x. bi_greatest_fixpoint F x F (bi_greatest_fixpoint F) x.
Proof. Proof using Type*.
iDestruct 1 as (Φ) "[#Hincl HΦ]". iDestruct 1 as (Φ) "[#Hincl HΦ]".
iApply (bi_mono_pred Φ (bi_greatest_fixpoint F) with "[#]"). iApply (bi_mono_pred Φ (bi_greatest_fixpoint F) with "[#]").
- iIntros "!>" (y) "Hy". iExists Φ. auto. - iIntros "!>" (y) "Hy". iExists Φ. auto.
...@@ -106,7 +106,7 @@ Section greatest. ...@@ -106,7 +106,7 @@ Section greatest.
Lemma greatest_fixpoint_unfold_2 x : Lemma greatest_fixpoint_unfold_2 x :
F (bi_greatest_fixpoint F) x bi_greatest_fixpoint F x. F (bi_greatest_fixpoint F) x bi_greatest_fixpoint F x.
Proof. Proof using Type*.
iIntros "HF". iExists (OfeMor (F (bi_greatest_fixpoint F))). iIntros "HF". iExists (OfeMor (F (bi_greatest_fixpoint F))).
iSplit; last done. iIntros "!>" (y) "Hy /=". iApply (bi_mono_pred with "[#] Hy"). iSplit; last done. iIntros "!>" (y) "Hy /=". iApply (bi_mono_pred with "[#] Hy").
iIntros "!>" (z) "?". by iApply greatest_fixpoint_unfold_1. iIntros "!>" (z) "?". by iApply greatest_fixpoint_unfold_1.
...@@ -114,7 +114,7 @@ Section greatest. ...@@ -114,7 +114,7 @@ Section greatest.
Corollary greatest_fixpoint_unfold x : Corollary greatest_fixpoint_unfold x :
bi_greatest_fixpoint F x F (bi_greatest_fixpoint F) x. bi_greatest_fixpoint F x F (bi_greatest_fixpoint F) x.
Proof. Proof using Type*.
apply (anti_symm _); auto using greatest_fixpoint_unfold_1, greatest_fixpoint_unfold_2. apply (anti_symm _); auto using greatest_fixpoint_unfold_1, greatest_fixpoint_unfold_2.
Qed. Qed.
......
...@@ -2,6 +2,10 @@ ...@@ -2,6 +2,10 @@
its reflexive transitive closure. *) its reflexive transitive closure. *)
From iris.bi.lib Require Export fixpoint. From iris.bi.lib Require Export fixpoint.
From iris.proofmode Require Import tactics. From iris.proofmode Require Import tactics.
From iris Require Import options.
(* The sections add extra BI assumptions, which is only picked up with "Type"*. *)
Set Default Proof Using "Type*".
Definition bi_rtc_pre `{!BiInternalEq PROP} Definition bi_rtc_pre `{!BiInternalEq PROP}
{A : ofeT} (R : A A PROP) {A : ofeT} (R : A A PROP)
......
From stdpp Require Import coPset. From stdpp Require Import coPset.
From iris.bi Require Import bi. From iris.bi Require Import bi.
Set Default Proof Using "Type". From iris Require Import options.
(** Definitions. *) (** Definitions. *)
Structure biIndex := Structure biIndex :=
......
From iris Require Import options.
(** Just reserve the notation. *) (** Just reserve the notation. *)
(** * Turnstiles *) (** * Turnstiles *)
......
From iris.bi Require Import derived_laws_later big_op internal_eq. From iris.bi Require Import derived_laws_later big_op internal_eq.
From iris.algebra Require Import monoid. From iris.algebra Require Import monoid.
From iris Require Import options.
Import interface.bi derived_laws.bi derived_laws_later.bi. Import interface.bi derived_laws.bi derived_laws_later.bi.
(* The sections add [BiAffine] and the like, which is only picked up with "Type"*. *)
Set Default Proof Using "Type*".
Class Plainly (A : Type) := plainly : A A. Class Plainly (A : Type) := plainly : A A.
Arguments plainly {A}%type_scope {_} _%I. Arguments plainly {A}%type_scope {_} _%I.
Hint Mode Plainly ! : typeclass_instances. Hint Mode Plainly ! : typeclass_instances.
......
From stdpp Require Export telescopes. From stdpp Require Export telescopes.
From iris.bi Require Export bi. From iris.bi Require Export bi.
Set Default Proof Using "Type*". From iris Require Import options.
Import bi. Import bi.
(* This cannot import the proofmode because it is imported by the proofmode! *) (* This cannot import the proofmode because it is imported by the proofmode! *)
......
From stdpp Require Import coPset. From stdpp Require Import coPset.
From iris.bi Require Import interface derived_laws_later big_op plainly. From iris.bi Require Import interface derived_laws_later big_op plainly.
From iris Require Import options.
Import interface.bi derived_laws.bi derived_laws_later.bi. Import interface.bi derived_laws.bi derived_laws_later.bi.
(* The sections add extra BI assumptions, which is only picked up with "Type"*. *)
Set Default Proof Using "Type*".
(* We first define operational type classes for the notations, and then later (* We first define operational type classes for the notations, and then later
bundle these operational type classes with the laws. *) bundle these operational type classes with the laws. *)
Class BUpd (PROP : Type) : Type := bupd : PROP PROP. Class BUpd (PROP : Type) : Type := bupd : PROP PROP.
......
From stdpp Require Export coPset. From stdpp Require Export coPset.
From iris.bi Require Import interface derived_connectives. From iris.bi Require Import interface derived_connectives.
From iris.program_logic Require Import language. From iris.program_logic Require Import language.
From iris Require Import options.
Inductive stuckness := NotStuck | MaybeStuck. Inductive stuckness := NotStuck | MaybeStuck.
......
...@@ -2,6 +2,7 @@ From iris.base_logic Require Export invariants. ...@@ -2,6 +2,7 @@ From iris.base_logic Require Export invariants.
From iris.program_logic Require Export weakestpre. From iris.program_logic Require Export weakestpre.
From iris.heap_lang Require Export lang proofmode notation. From iris.heap_lang Require Export lang proofmode notation.
From iris.heap_lang.lib Require Export nondet_bool.