From bd7ebdec0f6ff03c0f512435008accdb82a1efff Mon Sep 17 00:00:00 2001 From: Robbert Krebbers <mail@robbertkrebbers.nl> Date: Sat, 13 Feb 2016 12:39:54 +0100 Subject: [PATCH] Use new Import/Export syntax everywhere. Also, make our redefinition of done more robust under different orders of Importing modules. --- algebra/agree.v | 4 ++-- algebra/auth.v | 4 ++-- algebra/base.v | 7 ++++--- algebra/cmra.v | 2 +- algebra/cmra_big_op.v | 4 ++-- algebra/cmra_tactics.v | 4 ++-- algebra/cofe.v | 2 +- algebra/cofe_solver.v | 2 +- algebra/dra.v | 2 +- algebra/excl.v | 4 ++-- algebra/fin_maps.v | 5 +++-- algebra/functor.v | 2 +- algebra/iprod.v | 4 ++-- algebra/option.v | 4 ++-- algebra/sts.v | 5 +++-- algebra/upred.v | 2 +- heap_lang/derived.v | 2 +- heap_lang/heap_lang.v | 5 +++-- heap_lang/lifting.v | 9 +++++---- heap_lang/notation.v | 4 ++-- heap_lang/substitution.v | 2 +- heap_lang/tactics.v | 4 ++-- heap_lang/tests.v | 2 +- prelude/base.v | 2 +- prelude/bsets.v | 2 +- prelude/co_pset.v | 4 ++-- prelude/collections.v | 2 +- prelude/countable.v | 2 +- prelude/decidable.v | 2 +- prelude/error.v | 2 +- prelude/fin_collections.v | 5 +++-- prelude/fin_map_dom.v | 2 +- prelude/fin_maps.v | 4 ++-- prelude/finite.v | 2 +- prelude/gmap.v | 4 ++-- prelude/hashset.v | 4 ++-- prelude/lexico.v | 2 +- prelude/list.v | 4 ++-- prelude/listset.v | 2 +- prelude/listset_nodup.v | 2 +- prelude/mapset.v | 2 +- prelude/natmap.v | 2 +- prelude/nmap.v | 4 ++-- prelude/numbers.v | 8 ++++---- prelude/option.v | 2 +- prelude/orders.v | 4 ++-- prelude/pmap.v | 5 +++-- prelude/prelude.v | 28 ++++++++++++++-------------- prelude/pretty.v | 6 +++--- prelude/proof_irrel.v | 3 ++- prelude/relations.v | 4 ++-- prelude/sets.v | 2 +- prelude/streams.v | 2 +- prelude/stringmap.v | 6 +++--- prelude/strings.v | 5 +++-- prelude/tactics.v | 6 +++--- prelude/vector.v | 2 +- prelude/zmap.v | 4 ++-- program_logic/adequacy.v | 4 ++-- program_logic/auth.v | 4 ++-- program_logic/ghost_ownership.v | 5 +++-- program_logic/hoare.v | 2 +- program_logic/hoare_lifting.v | 4 ++-- program_logic/invariants.v | 7 ++++--- program_logic/language.v | 2 +- program_logic/lifting.v | 4 ++-- program_logic/model.v | 5 +++-- program_logic/ownership.v | 2 +- program_logic/pviewshifts.v | 6 +++--- program_logic/resources.v | 4 ++-- program_logic/tests.v | 2 +- program_logic/viewshifts.v | 4 ++-- program_logic/weakestpre.v | 4 ++-- program_logic/wsat.v | 5 +++-- 74 files changed, 152 insertions(+), 139 deletions(-) diff --git a/algebra/agree.v b/algebra/agree.v index e85de4ec8..cbc33d277 100644 --- a/algebra/agree.v +++ b/algebra/agree.v @@ -1,5 +1,5 @@ -Require Export algebra.cmra. -Require Import algebra.functor. +From algebra Require Export cmra. +From algebra Require Import functor. Local Hint Extern 10 (_ ≤ _) => omega. Record agree (A : Type) : Type := Agree { diff --git a/algebra/auth.v b/algebra/auth.v index c64086068..4c74e45e1 100644 --- a/algebra/auth.v +++ b/algebra/auth.v @@ -1,5 +1,5 @@ -Require Export algebra.excl. -Require Import algebra.functor. +From algebra Require Export excl. +From algebra Require Import functor. Local Arguments validN _ _ _ !_ /. Record auth (A : Type) : Type := Auth { authoritative : excl A ; own : A }. diff --git a/algebra/base.v b/algebra/base.v index 28ba9cc27..413117f12 100644 --- a/algebra/base.v +++ b/algebra/base.v @@ -1,4 +1,5 @@ -Require Export mathcomp.ssreflect.ssreflect. -Require Export prelude.prelude. +From mathcomp.ssreflect Require Export ssreflect. +From prelude Require Export prelude. Global Set Bullet Behavior "Strict Subproofs". -Global Open Scope general_if_scope. \ No newline at end of file +Global Open Scope general_if_scope. +Ltac done := prelude.tactics.done. \ No newline at end of file diff --git a/algebra/cmra.v b/algebra/cmra.v index 934b59a5d..297c57f41 100644 --- a/algebra/cmra.v +++ b/algebra/cmra.v @@ -1,4 +1,4 @@ -Require Export algebra.cofe. +From algebra Require Export cofe. Class Unit (A : Type) := unit : A → A. Instance: Params (@unit) 2. diff --git a/algebra/cmra_big_op.v b/algebra/cmra_big_op.v index 58dfbeaab..6c6da1654 100644 --- a/algebra/cmra_big_op.v +++ b/algebra/cmra_big_op.v @@ -1,5 +1,5 @@ -Require Export algebra.cmra. -Require Import prelude.fin_maps. +From algebra Require Export cmra. +From prelude Require Import fin_maps. Fixpoint big_op {A : cmraT} `{Empty A} (xs : list A) : A := match xs with [] => ∅ | x :: xs => x ⋅ big_op xs end. diff --git a/algebra/cmra_tactics.v b/algebra/cmra_tactics.v index a9eb5bb43..2d82d3c9e 100644 --- a/algebra/cmra_tactics.v +++ b/algebra/cmra_tactics.v @@ -1,5 +1,5 @@ -Require Export algebra.cmra. -Require Import algebra.cmra_big_op. +From algebra Require Export cmra. +From algebra Require Import cmra_big_op. (** * Simple solver for validity and inclusion by reflection *) Module ra_reflection. Section ra_reflection. diff --git a/algebra/cofe.v b/algebra/cofe.v index 6d318ba4f..baef71305 100644 --- a/algebra/cofe.v +++ b/algebra/cofe.v @@ -1,4 +1,4 @@ -Require Export algebra.base. +From algebra Require Export base. (** Unbundeled version *) Class Dist A := dist : nat → relation A. diff --git a/algebra/cofe_solver.v b/algebra/cofe_solver.v index b9f8dbf5b..39034e21f 100644 --- a/algebra/cofe_solver.v +++ b/algebra/cofe_solver.v @@ -1,4 +1,4 @@ -Require Export algebra.cofe. +From algebra Require Export cofe. Record solution (F : cofeT → cofeT → cofeT) := Solution { solution_car :> cofeT; diff --git a/algebra/dra.v b/algebra/dra.v index 625978f63..703488cc5 100644 --- a/algebra/dra.v +++ b/algebra/dra.v @@ -1,4 +1,4 @@ -Require Export algebra.cmra. +From algebra Require Export cmra. (** From disjoint pcm *) Record validity {A} (P : A → Prop) : Type := Validity { diff --git a/algebra/excl.v b/algebra/excl.v index e7023685c..eea8b6b8f 100644 --- a/algebra/excl.v +++ b/algebra/excl.v @@ -1,5 +1,5 @@ -Require Export algebra.cmra. -Require Import algebra.functor. +From algebra Require Export cmra. +From algebra Require Import functor. Local Arguments validN _ _ _ !_ /. Local Arguments valid _ _ !_ /. diff --git a/algebra/fin_maps.v b/algebra/fin_maps.v index f6410f94e..d7644a7a1 100644 --- a/algebra/fin_maps.v +++ b/algebra/fin_maps.v @@ -1,5 +1,6 @@ -Require Export algebra.cmra prelude.gmap algebra.option. -Require Import algebra.functor. +From algebra Require Export cmra option. +From prelude Require Export gmap. +From algebra Require Import functor. Section cofe. Context `{Countable K} {A : cofeT}. diff --git a/algebra/functor.v b/algebra/functor.v index 52740e527..ecbd64bf1 100644 --- a/algebra/functor.v +++ b/algebra/functor.v @@ -1,4 +1,4 @@ -Require Export algebra.cmra. +From algebra Require Export cmra. (** * Functors from COFE to CMRA *) (* TODO RJ: Maybe find a better name for this? It is not PL-specific any more. *) diff --git a/algebra/iprod.v b/algebra/iprod.v index ff77fd0aa..4ccb30f08 100644 --- a/algebra/iprod.v +++ b/algebra/iprod.v @@ -1,5 +1,5 @@ -Require Export algebra.cmra. -Require Import algebra.functor. +From algebra Require Export cmra. +From algebra Require Import functor. (** * Indexed product *) (** Need to put this in a definition to make canonical structures to work. *) diff --git a/algebra/option.v b/algebra/option.v index 11c3228fd..4dd6d58ee 100644 --- a/algebra/option.v +++ b/algebra/option.v @@ -1,5 +1,5 @@ -Require Export algebra.cmra. -Require Import algebra.functor. +From algebra Require Export cmra. +From algebra Require Import functor. (* COFE *) Section cofe. diff --git a/algebra/sts.v b/algebra/sts.v index af06fd1ee..2510deefe 100644 --- a/algebra/sts.v +++ b/algebra/sts.v @@ -1,5 +1,6 @@ -Require Export algebra.cmra. -Require Import prelude.sets algebra.dra. +From algebra Require Export cmra. +From prelude Require Import sets. +From algebra Require Import dra. Local Arguments valid _ _ !_ /. Local Arguments op _ _ !_ !_ /. Local Arguments unit _ _ !_ /. diff --git a/algebra/upred.v b/algebra/upred.v index 6a44e866e..98f1f38d3 100644 --- a/algebra/upred.v +++ b/algebra/upred.v @@ -1,4 +1,4 @@ -Require Export algebra.cmra. +From algebra Require Export cmra. Local Hint Extern 1 (_ ≼ _) => etransitivity; [eassumption|]. Local Hint Extern 1 (_ ≼ _) => etransitivity; [|eassumption]. Local Hint Extern 10 (_ ≤ _) => omega. diff --git a/heap_lang/derived.v b/heap_lang/derived.v index 6ce1fad8e..1f82dd016 100644 --- a/heap_lang/derived.v +++ b/heap_lang/derived.v @@ -1,4 +1,4 @@ -Require Export heap_lang.lifting. +From heap_lang Require Export lifting. Import uPred. (** Define some derived forms, and derived lemmas about them. *) diff --git a/heap_lang/heap_lang.v b/heap_lang/heap_lang.v index be2503d78..276c0e200 100644 --- a/heap_lang/heap_lang.v +++ b/heap_lang/heap_lang.v @@ -1,5 +1,6 @@ -Require Export program_logic.language prelude.strings. -Require Import prelude.gmap. +From program_logic Require Export language. +From prelude Require Export strings. +From prelude Require Import gmap. Module heap_lang. Open Scope Z_scope. diff --git a/heap_lang/lifting.v b/heap_lang/lifting.v index a9597b39f..918810a61 100644 --- a/heap_lang/lifting.v +++ b/heap_lang/lifting.v @@ -1,7 +1,8 @@ -Require Export program_logic.weakestpre heap_lang.heap_lang. -Require Import program_logic.lifting. -Require Import program_logic.ownership. (* for ownP *) -Require Import heap_lang.tactics. +From program_logic Require Export weakestpre. +From heap_lang Require Export heap_lang. +From program_logic Require Import lifting. +From program_logic Require Import ownership. (* for ownP *) +From heap_lang Require Import tactics. Export heap_lang. (* Prefer heap_lang names over language names. *) Import uPred. Local Hint Extern 0 (language.reducible _ _) => do_step ltac:(eauto 2). diff --git a/heap_lang/notation.v b/heap_lang/notation.v index fe4affa41..f4727ae5f 100644 --- a/heap_lang/notation.v +++ b/heap_lang/notation.v @@ -1,4 +1,4 @@ -Require Export heap_lang.derived. +From heap_lang Require Export derived. (* What about Arguments for hoare triples?. *) Arguments wp {_ _} _ _%L _. @@ -62,4 +62,4 @@ Notation "'rec:' f x y := e" := (RecV f x (Lam y e%L)) Notation "'rec:' f x y z := e" := (Rec f x (Lam y (Lam z e%L))) (at level 102, f, x, y, z at level 1, e at level 200) : lang_scope. Notation "'rec:' f x y z := e" := (RecV f x (Lam y (Lam z e%L))) - (at level 102, f, x, y, z at level 1, e at level 200) : lang_scope. \ No newline at end of file + (at level 102, f, x, y, z at level 1, e at level 200) : lang_scope. diff --git a/heap_lang/substitution.v b/heap_lang/substitution.v index 74176c30b..aa17fa2c4 100644 --- a/heap_lang/substitution.v +++ b/heap_lang/substitution.v @@ -1,4 +1,4 @@ -Require Export heap_lang.derived. +From heap_lang Require Export derived. (** We define an alternative notion of substitution [gsubst e x ev] that preserves the expression [e] syntactically in case the variable [x] does not diff --git a/heap_lang/tactics.v b/heap_lang/tactics.v index b870ff35c..2f9f01103 100644 --- a/heap_lang/tactics.v +++ b/heap_lang/tactics.v @@ -1,5 +1,5 @@ -Require Export heap_lang.heap_lang. -Require Import prelude.fin_maps. +From heap_lang Require Export heap_lang. +From prelude Require Import fin_maps. Import heap_lang. (** The tactic [inv_step] performs inversion on hypotheses of the shape diff --git a/heap_lang/tests.v b/heap_lang/tests.v index 24e6b4792..69b2fb035 100644 --- a/heap_lang/tests.v +++ b/heap_lang/tests.v @@ -1,5 +1,5 @@ (** This file is essentially a bunch of testcases. *) -Require Import program_logic.ownership. +From program_logic Require Import ownership. From heap_lang Require Import substitution tactics notation. Import uPred. diff --git a/prelude/base.v b/prelude/base.v index f711649e7..63ddc6509 100644 --- a/prelude/base.v +++ b/prelude/base.v @@ -7,7 +7,7 @@ structures. *) Global Generalizable All Variables. Global Set Automatic Coercions Import. Global Set Asymmetric Patterns. -Require Export Morphisms RelationClasses List Bool Utf8 Program Setoid. +From Coq Require Export Morphisms RelationClasses List Bool Utf8 Program Setoid. Obligation Tactic := idtac. (** * General *) diff --git a/prelude/bsets.v b/prelude/bsets.v index 87e1c50ea..637666faa 100644 --- a/prelude/bsets.v +++ b/prelude/bsets.v @@ -1,7 +1,7 @@ (* Copyright (c) 2012-2015, Robbert Krebbers. *) (* This file is distributed under the terms of the BSD license. *) (** This file implements bsets as functions into Prop. *) -Require Export prelude.prelude. +From prelude Require Export prelude. Record bset (A : Type) : Type := mkBSet { bset_car : A → bool }. Arguments mkBSet {_} _. diff --git a/prelude/co_pset.v b/prelude/co_pset.v index 3b49cb373..a09f063e5 100644 --- a/prelude/co_pset.v +++ b/prelude/co_pset.v @@ -2,8 +2,8 @@ (* This file is distributed under the terms of the BSD license. *) (** This files implements an efficient implementation of finite/cofinite sets of positive binary naturals [positive]. *) -Require Export prelude.collections. -Require Import prelude.pmap prelude.gmap prelude.mapset. +From prelude Require Export collections. +From prelude Require Import pmap gmap mapset. Local Open Scope positive_scope. (** * The tree data structure *) diff --git a/prelude/collections.v b/prelude/collections.v index b34b5cdc3..afe28a10c 100644 --- a/prelude/collections.v +++ b/prelude/collections.v @@ -3,7 +3,7 @@ (** This file collects definitions and theorems on collections. Most importantly, it implements some tactics to automatically solve goals involving collections. *) -Require Export prelude.base prelude.tactics prelude.orders. +From prelude Require Export base tactics orders. Instance collection_subseteq `{ElemOf A C} : SubsetEq C := λ X Y, ∀ x, x ∈ X → x ∈ Y. diff --git a/prelude/countable.v b/prelude/countable.v index 1635bac29..c897f823c 100644 --- a/prelude/countable.v +++ b/prelude/countable.v @@ -1,6 +1,6 @@ (* Copyright (c) 2012-2015, Robbert Krebbers. *) (* This file is distributed under the terms of the BSD license. *) -Require Export prelude.list. +From prelude Require Export list. Local Open Scope positive. Class Countable A `{∀ x y : A, Decision (x = y)} := { diff --git a/prelude/decidable.v b/prelude/decidable.v index 817357de2..3e453e931 100644 --- a/prelude/decidable.v +++ b/prelude/decidable.v @@ -3,7 +3,7 @@ (** This file collects theorems, definitions, tactics, related to propositions with a decidable equality. Such propositions are collected by the [Decision] type class. *) -Require Export prelude.proof_irrel. +From prelude Require Export proof_irrel. Hint Extern 200 (Decision _) => progress (lazy beta) : typeclass_instances. diff --git a/prelude/error.v b/prelude/error.v index b2eb18522..0802af374 100644 --- a/prelude/error.v +++ b/prelude/error.v @@ -1,6 +1,6 @@ (* Copyright (c) 2012-2015, Robbert Krebbers. *) (* This file is distributed under the terms of the BSD license. *) -Require Export prelude.list. +From prelude Require Export list. Definition error (S E A : Type) : Type := S → E + (A * S). diff --git a/prelude/fin_collections.v b/prelude/fin_collections.v index 7fe252900..db14b64b8 100644 --- a/prelude/fin_collections.v +++ b/prelude/fin_collections.v @@ -3,8 +3,9 @@ (** This file collects definitions and theorems on finite collections. Most importantly, it implements a fold and size function and some useful induction principles on finite collections . *) -Require Import Permutation prelude.relations prelude.listset. -Require Export prelude.numbers prelude.collections. +From Coq Require Import Permutation. +From prelude Require Import relations listset. +From prelude Require Export numbers collections. Instance collection_size `{Elements A C} : Size C := length ∘ elements. Definition collection_fold `{Elements A C} {B} diff --git a/prelude/fin_map_dom.v b/prelude/fin_map_dom.v index 7c4e76974..66e2da568 100644 --- a/prelude/fin_map_dom.v +++ b/prelude/fin_map_dom.v @@ -3,7 +3,7 @@ (** This file provides an axiomatization of the domain function of finite maps. We provide such an axiomatization, instead of implementing the domain function in a generic way, to allow more efficient implementations. *) -Require Export prelude.collections prelude.fin_maps. +From prelude Require Export collections fin_maps. Class FinMapDom K M D `{FMap M, ∀ A, Lookup K A (M A), ∀ A, Empty (M A), ∀ A, PartialAlter K A (M A), diff --git a/prelude/fin_maps.v b/prelude/fin_maps.v index 9ed4f6986..6312bfbb0 100644 --- a/prelude/fin_maps.v +++ b/prelude/fin_maps.v @@ -4,8 +4,8 @@ finite maps and collects some theory on it. Most importantly, it proves useful induction principles for finite maps and implements the tactic [simplify_map_equality] to simplify goals involving finite maps. *) -Require Import Permutation. -Require Export prelude.relations prelude.vector prelude.orders. +From Coq Require Import Permutation. +From prelude Require Export relations vector orders. (** * Axiomatization of finite maps *) (** We require Leibniz equality to be extensional on finite maps. This of diff --git a/prelude/finite.v b/prelude/finite.v index a529a1a04..98a5602cd 100644 --- a/prelude/finite.v +++ b/prelude/finite.v @@ -1,6 +1,6 @@ (* Copyright (c) 2012-2015, Robbert Krebbers. *) (* This file is distributed under the terms of the BSD license. *) -Require Export prelude.countable prelude.list. +From prelude Require Export countable list. Class Finite A `{∀ x y : A, Decision (x = y)} := { enum : list A; diff --git a/prelude/gmap.v b/prelude/gmap.v index a3466c307..88fa0ac29 100644 --- a/prelude/gmap.v +++ b/prelude/gmap.v @@ -2,8 +2,8 @@ (* This file is distributed under the terms of the BSD license. *) (** This file implements finite maps and finite sets with keys of any countable type. The implementation is based on [Pmap]s, radix-2 search trees. *) -Require Export prelude.countable prelude.fin_maps prelude.fin_map_dom. -Require Import prelude.pmap prelude.mapset. +From prelude Require Export countable fin_maps fin_map_dom. +From prelude Require Import pmap mapset. (** * The data structure *) (** We pack a [Pmap] together with a proof that ensures that all keys correspond diff --git a/prelude/hashset.v b/prelude/hashset.v index c6327dad0..148d431b2 100644 --- a/prelude/hashset.v +++ b/prelude/hashset.v @@ -3,8 +3,8 @@ (** This file implements finite set using hash maps. Hash sets are represented using radix-2 search trees. Each hash bucket is thus indexed using an binary integer of type [Z], and contains an unordered list without duplicates. *) -Require Export prelude.fin_maps prelude.listset. -Require Import prelude.zmap. +From prelude Require Export fin_maps listset. +From prelude Require Import zmap. Record hashset {A} (hash : A → Z) := Hashset { hashset_car : Zmap (list A); diff --git a/prelude/lexico.v b/prelude/lexico.v index 31ddc33ba..c36833b9c 100644 --- a/prelude/lexico.v +++ b/prelude/lexico.v @@ -2,7 +2,7 @@ (* This file is distributed under the terms of the BSD license. *) (** This files defines a lexicographic order on various common data structures and proves that it is a partial order having a strong variant of trichotomy. *) -Require Import prelude.numbers. +From prelude Require Import numbers. Notation cast_trichotomy T := match T with diff --git a/prelude/list.v b/prelude/list.v index 34645eeb4..54fcb8019 100644 --- a/prelude/list.v +++ b/prelude/list.v @@ -2,8 +2,8 @@ (* This file is distributed under the terms of the BSD license. *) (** This file collects general purpose definitions and theorems on lists that are not in the Coq standard library. *) -Require Export Permutation. -Require Export prelude.numbers prelude.base prelude.decidable prelude.option. +From Coq Require Export Permutation. +From prelude Require Export numbers base decidable option. Arguments length {_} _. Arguments cons {_} _ _. diff --git a/prelude/listset.v b/prelude/listset.v index 147715aa2..d405dd4d1 100644 --- a/prelude/listset.v +++ b/prelude/listset.v @@ -2,7 +2,7 @@ (* This file is distributed under the terms of the BSD license. *) (** This file implements finite set as unordered lists without duplicates removed. This implementation forms a monad. *) -Require Export prelude.base prelude.decidable prelude.collections prelude.list. +From prelude Require Export base decidable collections list. Record listset A := Listset { listset_car: list A }. Arguments listset_car {_} _. diff --git a/prelude/listset_nodup.v b/prelude/listset_nodup.v index ab4341a83..b1094d453 100644 --- a/prelude/listset_nodup.v +++ b/prelude/listset_nodup.v @@ -3,7 +3,7 @@ (** This file implements finite as unordered lists without duplicates. Although this implementation is slow, it is very useful as decidable equality is the only constraint on the carrier set. *) -Require Export prelude.base prelude.decidable prelude.collections prelude.list. +From prelude Require Export base decidable collections list. Record listset_nodup A := ListsetNoDup { listset_nodup_car : list A; listset_nodup_prf : NoDup listset_nodup_car diff --git a/prelude/mapset.v b/prelude/mapset.v index 317b6fc7b..630e40547 100644 --- a/prelude/mapset.v +++ b/prelude/mapset.v @@ -3,7 +3,7 @@ (** This files gives an implementation of finite sets using finite maps with elements of the unit type. Since maps enjoy extensional equality, the constructed finite sets do so as well. *) -Require Export prelude.fin_map_dom. +From prelude Require Export fin_map_dom. Record mapset (M : Type → Type) : Type := Mapset { mapset_car: M (unit : Type) }. diff --git a/prelude/natmap.v b/prelude/natmap.v index 309520af7..9f7b0a5f5 100644 --- a/prelude/natmap.v +++ b/prelude/natmap.v @@ -3,7 +3,7 @@ (** This files implements a type [natmap A] of finite maps whose keys range over Coq's data type of unary natural numbers [nat]. The implementation equips a list with a proof of canonicity. *) -Require Import prelude.fin_maps prelude.mapset. +From prelude Require Import fin_maps mapset. Notation natmap_raw A := (list (option A)). Definition natmap_wf {A} (l : natmap_raw A) := diff --git a/prelude/nmap.v b/prelude/nmap.v index 1adc1a636..85d518d50 100644 --- a/prelude/nmap.v +++ b/prelude/nmap.v @@ -2,8 +2,8 @@ (* This file is distributed under the terms of the BSD license. *) (** This files extends the implementation of finite over [positive] to finite maps whose keys range over Coq's data type of binary naturals [N]. *) -Require Import prelude.pmap prelude.mapset. -Require Export prelude.prelude prelude.fin_maps. +From prelude Require Import pmap mapset. +From prelude Require Export prelude fin_maps. Local Open Scope N_scope. diff --git a/prelude/numbers.v b/prelude/numbers.v index e2e728b3f..2c9cf5673 100644 --- a/prelude/numbers.v +++ b/prelude/numbers.v @@ -3,9 +3,9 @@ (** This file collects some trivial facts on the Coq types [nat] and [N] for natural numbers, and the type [Z] for integers. It also declares some useful notations. *) -Require Export Eqdep PArith NArith ZArith NPeano. -Require Import QArith Qcanon. -Require Export prelude.base prelude.decidable prelude.option. +From Coq Require Export Eqdep PArith NArith ZArith NPeano. +From Coq Require Import QArith Qcanon. +From prelude Require Export base decidable option. Open Scope nat_scope. Coercion Z.of_nat : nat >-> Z. @@ -50,7 +50,7 @@ Proof. * clear nat_le_pi. intros; exfalso; auto with lia. * injection 1. intros Hy. by case (nat_le_pi x y p y' q Hy). } intros x y p q. - by apply (eq_dep_eq_dec (λ x y, decide (x = y))), aux. + by apply (Eqdep_dec.eq_dep_eq_dec (λ x y, decide (x = y))), aux. Qed. Instance nat_lt_pi: ∀ x y : nat, ProofIrrel (x < y). Proof. apply _. Qed. diff --git a/prelude/option.v b/prelude/option.v index f6e217602..ac0b1ed71 100644 --- a/prelude/option.v +++ b/prelude/option.v @@ -2,7 +2,7 @@ (* This file is distributed under the terms of the BSD license. *) (** This file collects general purpose definitions and theorems on the option data type that are not in the Coq standard library. *) -Require Export prelude.base prelude.tactics prelude.decidable. +From prelude Require Export base tactics decidable. Inductive option_reflect {A} (P : A → Prop) (Q : Prop) : option A → Type := | ReflectSome x : P x → option_reflect P Q (Some x) diff --git a/prelude/orders.v b/prelude/orders.v index 220376482..100ae3352 100644 --- a/prelude/orders.v +++ b/prelude/orders.v @@ -2,8 +2,8 @@ (* This file is distributed under the terms of the BSD license. *) (** This file collects common properties of pre-orders and semi lattices. This theory will mainly be used for the theory on collections and finite maps. *) -Require Export Sorted. -Require Export prelude.base prelude.decidable prelude.tactics prelude.list. +From Coq Require Export Sorted. +From prelude Require Export base decidable tactics list. (** * Arbitrary pre-, parial and total orders *) (** Properties about arbitrary pre-, partial, and total orders. We do not use diff --git a/prelude/pmap.v b/prelude/pmap.v index 00cd7e874..700b3df16 100644 --- a/prelude/pmap.v +++ b/prelude/pmap.v @@ -7,8 +7,9 @@ trees (uncompressed Patricia trees) and guarantees logarithmic-time operations. However, we extend Leroy's implementation by packing the trees into a Sigma type such that canonicity of representation is ensured. This is necesarry for Leibniz equality to become extensional. *) -Require Import PArith prelude.mapset. -Require Export prelude.fin_maps. +From Coq Require Import PArith. +From prelude Require Import mapset. +From prelude Require Export fin_maps. Local Open Scope positive_scope. Local Hint Extern 0 (@eq positive _ _) => congruence. diff --git a/prelude/prelude.v b/prelude/prelude.v index 020b6535b..3ffdba617 100644 --- a/prelude/prelude.v +++ b/prelude/prelude.v @@ -1,16 +1,16 @@ (* Copyright (c) 2012-2015, Robbert Krebbers. *) (* This file is distributed under the terms of the BSD license. *) -Require Export - prelude.base - prelude.tactics - prelude.decidable - prelude.orders - prelude.option - prelude.vector - prelude.numbers - prelude.relations - prelude.collections - prelude.fin_collections - prelude.listset - prelude.list - prelude.lexico. +From prelude Require Export + base + tactics + decidable + orders + option + vector + numbers + relations + collections + fin_collections + listset + list + lexico. diff --git a/prelude/pretty.v b/prelude/pretty.v index b246ec428..ac069b813 100644 --- a/prelude/pretty.v +++ b/prelude/pretty.v @@ -1,8 +1,8 @@ (* Copyright (c) 2012-2015, Robbert Krebbers. *) (* This file is distributed under the terms of the BSD license. *) -Require Export prelude.strings. -Require Import prelude.relations. -Require Import Ascii. +From prelude Require Export strings. +From prelude Require Import relations. +From Coq Require Import Ascii. Class Pretty A := pretty : A → string. Definition pretty_N_char (x : N) : ascii := diff --git a/prelude/proof_irrel.v b/prelude/proof_irrel.v index d1eab7410..7aebbb862 100644 --- a/prelude/proof_irrel.v +++ b/prelude/proof_irrel.v @@ -1,7 +1,8 @@ (* Copyright (c) 2012-2015, Robbert Krebbers. *) (* This file is distributed under the terms of the BSD license. *) (** This file collects facts on proof irrelevant types/propositions. *) -Require Export Eqdep_dec prelude.tactics. +From Coq Require Import Eqdep_dec. +From prelude Require Export tactics. Hint Extern 200 (ProofIrrel _) => progress (lazy beta) : typeclass_instances. diff --git a/prelude/relations.v b/prelude/relations.v index cd81c198f..776da9914 100644 --- a/prelude/relations.v +++ b/prelude/relations.v @@ -4,8 +4,8 @@ These are particularly useful as we define the operational semantics as a small step semantics. This file defines a hint database [ars] containing some theorems on abstract rewriting systems. *) -Require Import Wf_nat. -Require Export prelude.tactics prelude.base. +From Coq Require Import Wf_nat. +From prelude Require Export tactics base. (** * Definitions *) Section definitions. diff --git a/prelude/sets.v b/prelude/sets.v index bd80b8eeb..ada3a408a 100644 --- a/prelude/sets.v +++ b/prelude/sets.v @@ -1,7 +1,7 @@ (* Copyright (c) 2012-2015, Robbert Krebbers. *) (* This file is distributed under the terms of the BSD license. *) (** This file implements sets as functions into Prop. *) -Require Export prelude.prelude. +From prelude Require Export prelude. Record set (A : Type) : Type := mkSet { set_car : A → Prop }. Arguments mkSet {_} _. diff --git a/prelude/streams.v b/prelude/streams.v index c660562cf..cb8a15903 100644 --- a/prelude/streams.v +++ b/prelude/streams.v @@ -1,6 +1,6 @@ (* Copyright (c) 2012-2015, Robbert Krebbers. *) (* This file is distributed under the terms of the BSD license. *) -Require Export prelude.tactics. +From prelude Require Export tactics. CoInductive stream (A : Type) : Type := scons : A → stream A → stream A. Arguments scons {_} _ _. diff --git a/prelude/stringmap.v b/prelude/stringmap.v index 58c8862db..a3e90b3fb 100644 --- a/prelude/stringmap.v +++ b/prelude/stringmap.v @@ -4,8 +4,8 @@ range over Coq's data type of strings [string]. The implementation uses radix-2 search trees (uncompressed Patricia trees) as implemented in the file [pmap] and guarantees logarithmic-time operations. *) -Require Export prelude.fin_maps prelude.pretty. -Require Import prelude.gmap. +From prelude Require Export fin_maps pretty. +From prelude Require Import gmap. Notation stringmap := (gmap string). Notation stringset := (gset string). @@ -58,4 +58,4 @@ Fixpoint fresh_strings_of_set | S n => let x := fresh_string_of_set s X in x :: fresh_strings_of_set s n ({[ x ]} ∪ X) - end%nat. \ No newline at end of file + end%nat. diff --git a/prelude/strings.v b/prelude/strings.v index f2074f248..4f8b93bdb 100644 --- a/prelude/strings.v +++ b/prelude/strings.v @@ -1,7 +1,8 @@ (* Copyright (c) 2012-2015, Robbert Krebbers. *) (* This file is distributed under the terms of the BSD license. *) -Require Import Ascii. -Require Export String prelude.countable. +From Coq Require Import Ascii. +From Coq Require Export String. +From prelude Require Export countable. (** * Fix scopes *) Open Scope string_scope. diff --git a/prelude/tactics.v b/prelude/tactics.v index 357f4fbde..843644e83 100644 --- a/prelude/tactics.v +++ b/prelude/tactics.v @@ -2,9 +2,9 @@ (* This file is distributed under the terms of the BSD license. *) (** This file collects general purpose tactics that are used throughout the development. *) -Require Import Omega. -Require Export Psatz. -Require Export prelude.base. +From Coq Require Import Omega. +From Coq Require Export Psatz. +From prelude Require Export base. Lemma f_equal_dep {A B} (f g : ∀ x : A, B x) x : f = g → f x = g x. Proof. intros ->; reflexivity. Qed. diff --git a/prelude/vector.v b/prelude/vector.v index 4b11efe4a..b39ca4e45 100644 --- a/prelude/vector.v +++ b/prelude/vector.v @@ -5,7 +5,7 @@ definitions from the standard library, but renames or changes their notations, so that it becomes more consistent with the naming conventions in this development. *) -Require Import prelude.list prelude.finite. +From prelude Require Import list finite. Open Scope vector_scope. (** * The fin type *) diff --git a/prelude/zmap.v b/prelude/zmap.v index 04f016e1d..ebffda333 100644 --- a/prelude/zmap.v +++ b/prelude/zmap.v @@ -2,8 +2,8 @@ (* This file is distributed under the terms of the BSD license. *) (** This files extends the implementation of finite over [positive] to finite maps whose keys range over Coq's data type of binary naturals [Z]. *) -Require Import prelude.pmap prelude.mapset. -Require Export prelude.prelude prelude.fin_maps. +From prelude Require Import pmap mapset. +From prelude Require Export prelude fin_maps. Local Open Scope Z_scope. Record Zmap (A : Type) : Type := diff --git a/program_logic/adequacy.v b/program_logic/adequacy.v index c0a1c6b13..db71839d2 100644 --- a/program_logic/adequacy.v +++ b/program_logic/adequacy.v @@ -1,5 +1,5 @@ -Require Export program_logic.hoare. -Require Import program_logic.wsat program_logic.ownership. +From program_logic Require Export hoare. +From program_logic Require Import wsat ownership. Local Hint Extern 10 (_ ≤ _) => omega. Local Hint Extern 100 (@eq coPset _ _) => eassumption || solve_elem_of. Local Hint Extern 10 (✓{_} _) => diff --git a/program_logic/auth.v b/program_logic/auth.v index 4b87e1409..88da0d6fb 100644 --- a/program_logic/auth.v +++ b/program_logic/auth.v @@ -1,5 +1,5 @@ -Require Export algebra.auth algebra.functor. -Require Export program_logic.invariants program_logic.ghost_ownership. +From algebra Require Export auth functor. +From program_logic Require Export invariants ghost_ownership. Import uPred. Section auth. diff --git a/program_logic/ghost_ownership.v b/program_logic/ghost_ownership.v index c4dd89600..f2d83fe8f 100644 --- a/program_logic/ghost_ownership.v +++ b/program_logic/ghost_ownership.v @@ -1,5 +1,6 @@ -Require Export algebra.iprod program_logic.pviewshifts. -Require Import program_logic.ownership. +From algebra Require Export iprod. +From program_logic Require Export pviewshifts. +From program_logic Require Import ownership. Import uPred. (** Index of a CMRA in the product of global CMRAs. *) diff --git a/program_logic/hoare.v b/program_logic/hoare.v index 7a480e0a5..67950e7b8 100644 --- a/program_logic/hoare.v +++ b/program_logic/hoare.v @@ -1,4 +1,4 @@ -Require Export program_logic.weakestpre program_logic.viewshifts. +From program_logic Require Export weakestpre viewshifts. Definition ht {Λ Σ} (E : coPset) (P : iProp Λ Σ) (e : expr Λ) (Q : val Λ → iProp Λ Σ) : iProp Λ Σ := (□ (P → wp E e Q))%I. diff --git a/program_logic/hoare_lifting.v b/program_logic/hoare_lifting.v index 8037950c9..500ff6300 100644 --- a/program_logic/hoare_lifting.v +++ b/program_logic/hoare_lifting.v @@ -1,5 +1,5 @@ -Require Export program_logic.hoare program_logic.lifting. -Require Import program_logic.ownership. +From program_logic Require Export hoare lifting. +From program_logic Require Import ownership. Import uPred. Local Notation "{{ P } } ef ?@ E {{ Q } }" := diff --git a/program_logic/invariants.v b/program_logic/invariants.v index 608075029..3b118e639 100644 --- a/program_logic/invariants.v +++ b/program_logic/invariants.v @@ -1,6 +1,7 @@ -Require Export algebra.base prelude.countable prelude.co_pset. -Require Import program_logic.ownership. -Require Export program_logic.pviewshifts program_logic.weakestpre. +From algebra Require Export base. +From prelude Require Export countable co_pset. +From program_logic Require Import ownership. +From program_logic Require Export pviewshifts weakestpre. Import uPred. Local Hint Extern 100 (@eq coPset _ _) => solve_elem_of. diff --git a/program_logic/language.v b/program_logic/language.v index 4b24374ca..7be7c9266 100644 --- a/program_logic/language.v +++ b/program_logic/language.v @@ -1,4 +1,4 @@ -Require Export algebra.cofe. +From algebra Require Export cofe. Structure language := Language { expr : Type; diff --git a/program_logic/lifting.v b/program_logic/lifting.v index 72f586b2c..a7f13db10 100644 --- a/program_logic/lifting.v +++ b/program_logic/lifting.v @@ -1,5 +1,5 @@ -Require Export program_logic.weakestpre. -Require Import program_logic.wsat program_logic.ownership. +From program_logic Require Export weakestpre. +From program_logic Require Import wsat ownership. Local Hint Extern 10 (_ ≤ _) => omega. Local Hint Extern 100 (@eq coPset _ _) => solve_elem_of. Local Hint Extern 10 (✓{_} _) => diff --git a/program_logic/model.v b/program_logic/model.v index 42bddbdd2..d4f3eb610 100644 --- a/program_logic/model.v +++ b/program_logic/model.v @@ -1,5 +1,6 @@ -Require Export algebra.upred program_logic.resources. -Require Import algebra.cofe_solver. +From algebra Require Export upred. +From program_logic Require Export resources. +From algebra Require Import cofe_solver. (* The Iris program logic is parametrized by a functor from the category of COFEs to the category of CMRAs, which is instantiated with [laterC iProp]. The diff --git a/program_logic/ownership.v b/program_logic/ownership.v index e06c6e6d3..467d2391b 100644 --- a/program_logic/ownership.v +++ b/program_logic/ownership.v @@ -1,4 +1,4 @@ -Require Export program_logic.model. +From program_logic Require Export model. Definition ownI {Λ Σ} (i : positive) (P : iProp Λ Σ) : iProp Λ Σ := uPred_ownM (Res {[ i ↦ to_agree (Next (iProp_unfold P)) ]} ∅ ∅). diff --git a/program_logic/pviewshifts.v b/program_logic/pviewshifts.v index 3eaeb77d9..ce8729374 100644 --- a/program_logic/pviewshifts.v +++ b/program_logic/pviewshifts.v @@ -1,6 +1,6 @@ -Require Export prelude.co_pset. -Require Export program_logic.model. -Require Import program_logic.ownership program_logic.wsat. +From prelude Require Export co_pset. +From program_logic Require Export model. +From program_logic Require Import ownership wsat. Local Hint Extern 10 (_ ≤ _) => omega. Local Hint Extern 100 (@eq coPset _ _) => solve_elem_of. Local Hint Extern 100 (_ ∉ _) => solve_elem_of. diff --git a/program_logic/resources.v b/program_logic/resources.v index ee5ad3d63..0b25007f0 100644 --- a/program_logic/resources.v +++ b/program_logic/resources.v @@ -1,5 +1,5 @@ -Require Export algebra.fin_maps algebra.agree algebra.excl algebra.functor. -Require Export program_logic.language. +From algebra Require Export fin_maps agree excl functor. +From program_logic Require Export language. Record res (Λ : language) (Σ : iFunctor) (A : cofeT) := Res { wld : mapRA positive (agreeRA A); diff --git a/program_logic/tests.v b/program_logic/tests.v index 6cd5692a2..c5ef324a8 100644 --- a/program_logic/tests.v +++ b/program_logic/tests.v @@ -1,5 +1,5 @@ (** This file tests a bunch of things. *) -Require Import program_logic.model. +From program_logic Require Import model. Module ModelTest. (* Make sure we got the notations right. *) Definition iResTest {Λ : language} {Σ : iFunctor} diff --git a/program_logic/viewshifts.v b/program_logic/viewshifts.v index 927fcb27a..5ce4c9b88 100644 --- a/program_logic/viewshifts.v +++ b/program_logic/viewshifts.v @@ -1,5 +1,5 @@ -Require Import program_logic.ownership. -Require Export program_logic.pviewshifts program_logic.invariants program_logic.ghost_ownership. +From program_logic Require Import ownership. +From program_logic Require Export pviewshifts invariants ghost_ownership. Import uPred. Definition vs {Λ Σ} (E1 E2 : coPset) (P Q : iProp Λ Σ) : iProp Λ Σ := diff --git a/program_logic/weakestpre.v b/program_logic/weakestpre.v index 784e2290d..9be7de1c5 100644 --- a/program_logic/weakestpre.v +++ b/program_logic/weakestpre.v @@ -1,5 +1,5 @@ -Require Export program_logic.pviewshifts. -Require Import program_logic.wsat. +From program_logic Require Export pviewshifts. +From program_logic Require Import wsat. Local Hint Extern 10 (_ ≤ _) => omega. Local Hint Extern 100 (@eq coPset _ _) => eassumption || solve_elem_of. Local Hint Extern 100 (_ ∉ _) => solve_elem_of. diff --git a/program_logic/wsat.v b/program_logic/wsat.v index 7d8db791f..ab978f224 100644 --- a/program_logic/wsat.v +++ b/program_logic/wsat.v @@ -1,5 +1,6 @@ -Require Export program_logic.model prelude.co_pset. -Require Export algebra.cmra_big_op algebra.cmra_tactics. +From prelude Require Export co_pset. +From program_logic Require Export model. +From algebra Require Export cmra_big_op cmra_tactics. Local Hint Extern 10 (_ ≤ _) => omega. Local Hint Extern 10 (✓{_} _) => solve_validN. Local Hint Extern 1 (✓{_} gst _) => apply gst_validN. -- GitLab