Commit 71abda4d authored by Ralf Jung's avatar Ralf Jung

make "make quick" quick by adding hints about the used section variables

This patch was created using

  find -name *.v | xargs -L 1 awk -i inplace '{from = 0} /^From/{ from = 1; ever_from = 1} { if (from == 0 && seen == 0 && ever_from == 1) { print "Set Default Proof Using \"Type*\"."; seen = 1 } }1 '

and some minor manual editing
parent e0789039
Pipeline #3562 passed with stage
in 10 minutes and 49 seconds
From iris.algebra Require Export cmra.
From iris.algebra Require Import list.
From iris.base_logic Require Import base_logic.
(* FIXME: This file needs a 'Proof Using' hint. *)
Local Arguments validN _ _ _ !_ /.
Local Arguments valid _ _ !_ /.
Local Arguments op _ _ _ !_ /.
......
From iris.algebra Require Export excl local_updates.
From iris.base_logic Require Import base_logic.
From iris.proofmode Require Import classes.
Set Default Proof Using "Type*".
Record auth (A : Type) := Auth { authoritative : excl' A; auth_own : A }.
Add Printing Constructor auth.
......
From mathcomp Require Export ssreflect.
From iris.prelude Require Export prelude.
Set Default Proof Using "Type*".
Global Set Bullet Behavior "Strict Subproofs".
Global Open Scope general_if_scope.
Ltac done := prelude.tactics.done.
\ No newline at end of file
Ltac done := prelude.tactics.done.
From iris.algebra Require Export ofe.
Set Default Proof Using "Type*".
Class PCore (A : Type) := pcore : A option A.
Instance: Params (@pcore) 2.
......
From iris.algebra Require Export cmra list.
From iris.prelude Require Import functions gmap gmultiset.
Set Default Proof Using "Type*".
(** The operator [ [⋅] Ps ] folds [⋅] over the list [Ps]. This operator is not a
quantifier, so it binds strongly.
......
From iris.algebra Require Export cmra.
From iris.algebra Require Import cmra_big_op.
Set Default Proof Using "Type*".
(** * Simple solver for validity and inclusion by reflection *)
Module ra_reflection. Section ra_reflection.
......
From iris.algebra Require Export cmra.
From iris.algebra Require Import updates local_updates.
From iris.prelude Require Export collections coPset.
Set Default Proof Using "Type*".
(** This is pretty much the same as algebra/gset, but I was not able to
generalize the construction without breaking canonical structures. *)
......
From iris.algebra Require Export ofe.
Set Default Proof Using "Type*".
Record solution (F : cFunctor) := Solution {
solution_car :> ofeT;
......
From iris.algebra Require Export cmra.
From iris.base_logic Require Import base_logic.
From iris.algebra Require Import local_updates.
Set Default Proof Using "Type*".
Local Arguments pcore _ _ !_ /.
Local Arguments cmra_pcore _ !_ /.
Local Arguments validN _ _ _ !_ /.
......
From iris.algebra Require Import ofe cmra.
Set Default Proof Using "Type*".
(* Old notation for backwards compatibility. *)
......
From iris.algebra Require Export cmra updates.
Set Default Proof Using "Type*".
Record DRAMixin A `{Equiv A, Core A, Disjoint A, Op A, Valid A} := {
(* setoids *)
......
From iris.algebra Require Export cmra.
From iris.base_logic Require Import base_logic.
Set Default Proof Using "Type*".
Local Arguments validN _ _ _ !_ /.
Local Arguments valid _ _ !_ /.
......
From Coq.QArith Require Import Qcanon.
From iris.algebra Require Export cmra.
Set Default Proof Using "Type*".
Notation frac := Qp (only parsing).
......
......@@ -2,6 +2,7 @@ From iris.algebra Require Export cmra.
From iris.prelude Require Export gmap.
From iris.algebra Require Import updates local_updates.
From iris.base_logic Require Import base_logic.
Set Default Proof Using "Type*".
Section cofe.
Context `{Countable K} {A : ofeT}.
......
From iris.algebra Require Export cmra.
From iris.algebra Require Import updates local_updates.
From iris.prelude Require Export collections gmap mapset.
Set Default Proof Using "Type*".
(* The union CMRA *)
Section gset.
......
From iris.algebra Require Export cmra.
From iris.base_logic Require Import base_logic.
From iris.prelude Require Import finite.
Set Default Proof Using "Type*".
(** * Indexed product *)
(** Need to put this in a definition to make canonical structures to work. *)
......
......@@ -2,6 +2,7 @@ From iris.algebra Require Export cmra.
From iris.prelude Require Export list.
From iris.base_logic Require Import base_logic.
From iris.algebra Require Import updates local_updates.
Set Default Proof Using "Type*".
Section cofe.
Context {A : ofeT}.
......
From iris.algebra Require Export cmra.
Set Default Proof Using "Type*".
(** * Local updates *)
Definition local_update {A : cmraT} (x y : A * A) := n mz,
......
From iris.algebra Require Export base.
Set Default Proof Using "Type*".
(** This files defines (a shallow embedding of) the category of OFEs:
Complete ordered families of equivalences. This is a cartesian closed
......
From iris.prelude Require Export set.
From iris.algebra Require Export cmra.
From iris.algebra Require Import dra.
Set Default Proof Using "Type*".
Local Arguments valid _ _ !_ /.
Local Arguments op _ _ !_ !_ /.
Local Arguments core _ _ !_ /.
......
From iris.algebra Require Export cmra.
Set Default Proof Using "Type*".
(** * Frame preserving updates *)
(* This quantifies over [option A] for the frame. That is necessary to
......
From iris.prelude Require Export vector.
From iris.algebra Require Export ofe.
From iris.algebra Require Import list.
Set Default Proof Using "Type*".
Section ofe.
Context {A : ofeT}.
......
From iris.base_logic Require Export derived.
Set Default Proof Using "Type*".
Module Import uPred.
Export upred.uPred.
......
From iris.algebra Require Export list cmra_big_op.
From iris.base_logic Require Export base_logic.
From iris.prelude Require Import gmap fin_collections gmultiset functions.
Set Default Proof Using "Type*".
Import uPred.
(* We make use of the bigops on CMRAs, so we first define a (somewhat ad-hoc)
......
From iris.base_logic Require Import primitive.
Set Default Proof Using "Type*".
(* Deprecated 2016-11-22. Use ⌜φ⌝ instead. *)
Notation "■ φ" := (uPred_pure φ%C%type)
......
From iris.base_logic Require Export primitive.
Set Default Proof Using "Type*".
Import upred.uPred primitive.uPred.
Definition uPred_iff {M} (P Q : uPred M) : uPred M := ((P Q) (Q P))%I.
......
From iris.base_logic Require Import base_logic.
Set Default Proof Using "Type*".
(* In this file we show that the bupd can be thought of a kind of
step-indexed double-negation when our meta-logic is classical *)
......
From iris.prelude Require Export hlist.
From iris.base_logic Require Export base_logic.
Set Default Proof Using "Type*".
Import uPred.
Fixpoint uPred_hexist {M As} : himpl As (uPred M) uPred M :=
......
......@@ -3,6 +3,7 @@ From iris.algebra Require Export auth.
From iris.algebra Require Import gmap.
From iris.base_logic Require Import big_op.
From iris.proofmode Require Import tactics.
Set Default Proof Using "Type*".
Import uPred.
(* The CMRA we need. *)
......
......@@ -2,6 +2,7 @@ From iris.base_logic.lib Require Export invariants.
From iris.algebra Require Import auth gmap agree.
From iris.base_logic Require Import big_op.
From iris.proofmode Require Import tactics.
Set Default Proof Using "Type*".
Import uPred.
(** The CMRAs we need. *)
......
From iris.base_logic.lib Require Export invariants fractional.
From iris.algebra Require Export frac.
From iris.proofmode Require Import tactics.
Set Default Proof Using "Type*".
Import uPred.
Class cinvG Σ := cinv_inG :> inG Σ fracR.
......
From iris.base_logic Require Import base_logic.
From iris.proofmode Require Import tactics.
Set Default Proof Using "Type*".
Import uPred.
(** The "core" of an assertion is its maximal persistent part.
......
From iris.base_logic Require Import base_logic soundness.
From iris.proofmode Require Import tactics.
Set Default Proof Using "All".
(** This proves that we need the ▷ in a "Saved Proposition" construction with
name-dependent allocation. *)
......
......@@ -4,6 +4,7 @@ From iris.base_logic.lib Require Import wsat.
From iris.algebra Require Import gmap.
From iris.base_logic Require Import big_op.
From iris.proofmode Require Import tactics classes.
Set Default Proof Using "Type*".
Export invG.
Import uPred.
......
......@@ -2,6 +2,7 @@ From iris.prelude Require Import gmap gmultiset.
From iris.base_logic Require Export derived.
From iris.base_logic Require Import big_op.
From iris.proofmode Require Import classes class_instances.
Set Default Proof Using "Type*".
Class Fractional {M} (Φ : Qp uPred M) :=
fractional p q : Φ (p + q)%Qp ⊣⊢ Φ p Φ q.
......
......@@ -2,6 +2,7 @@ From iris.algebra Require Import auth gmap frac agree.
From iris.base_logic.lib Require Export own.
From iris.base_logic.lib Require Import fractional.
From iris.proofmode Require Import tactics.
Set Default Proof Using "Type*".
Import uPred.
Definition gen_heapUR (L V : Type) `{Countable L} : ucmraT :=
......
......@@ -2,6 +2,7 @@ From iris.base_logic.lib Require Export fancy_updates namespaces.
From iris.base_logic.lib Require Import wsat.
From iris.algebra Require Import gmap.
From iris.proofmode Require Import tactics coq_tactics intro_patterns.
Set Default Proof Using "Type*".
Import uPred.
(** Derived forms and lemmas about them. *)
......
From iris.base_logic Require Export base_logic.
From iris.algebra Require Import iprod gmap.
From iris.algebra Require cofe_solver.
Set Default Proof Using "Type*".
(** In this file we construct the type [iProp] of propositions of the Iris
logic. This is done by solving the following recursive domain equation:
......
From iris.base_logic.lib Require Export invariants.
From iris.algebra Require Export gmap gset coPset.
From iris.proofmode Require Import tactics.
Set Default Proof Using "Type*".
Import uPred.
(* Non-atomic ("thread-local") invariants. *)
......
From iris.prelude Require Export countable coPset.
From iris.algebra Require Export base.
Set Default Proof Using "Type*".
Definition namespace := list positive.
Instance namespace_eq_dec : EqDecision namespace := _.
......
......@@ -2,6 +2,7 @@ From iris.algebra Require Import iprod gmap.
From iris.base_logic Require Import big_op.
From iris.base_logic Require Export iprop.
From iris.proofmode Require Import classes.
Set Default Proof Using "Type*".
Import uPred.
(** The class [inG Σ A] expresses that the CMRA [A] is in the list of functors
......
From iris.base_logic Require Export own.
From iris.algebra Require Import agree.
From iris.prelude Require Import gmap.
Set Default Proof Using "Type*".
Import uPred.
Class savedPropG (Σ : gFunctors) (F : cFunctor) :=
......
From iris.base_logic.lib Require Export invariants.
From iris.algebra Require Export sts.
From iris.proofmode Require Import tactics.
Set Default Proof Using "Type*".
  • I think this annotation introduces a spurious dependency on the invG instance in sts_own(S)_peristent (note the spelling mistake by me!). This is especially annoying since sts_own itself does not have this dependency, so a bunch of our lemmas no longer work with Set Default Proof Using "Type".

  • Ralf already fixed that. I just fixed the typos. Thanks!

  • Oh, time to rebuild Iris then. Thanks for fixing the typos.

Please register or sign in to reply
Import uPred.
(** The CMRA we need. *)
......
From iris.base_logic.lib Require Export invariants.
From iris.proofmode Require Import tactics.
Set Default Proof Using "Type*".
Definition vs `{invG Σ} (E1 E2 : coPset) (P Q : iProp Σ) : iProp Σ :=
( (P - |={E1,E2}=> Q))%I.
......
......@@ -3,6 +3,7 @@ From iris.prelude Require Export coPset.
From iris.algebra Require Import gmap auth agree gset coPset.
From iris.base_logic Require Import big_op.
From iris.proofmode Require Import tactics.
Set Default Proof Using "Type*".
Module invG.
Class invG (Σ : gFunctors) : Set := WsatG {
......
From iris.base_logic Require Export upred.
From iris.algebra Require Export updates.
Set Default Proof Using "Type*".
Local Hint Extern 1 (_ _) => etrans; [eassumption|].
Local Hint Extern 1 (_ _) => etrans; [|eassumption].
Local Hint Extern 10 (_ _) => omega.
......
From iris.base_logic Require Export base_logic.
Set Default Proof Using "Type*".
Import uPred.
Section adequacy.
......
From iris.prelude Require Import gmap.
From iris.base_logic Require Export base_logic big_op.
Set Default Proof Using "Type*".
Import uPred.
Module uPred_reflection. Section uPred_reflection.
......
From iris.algebra Require Export cmra.
Set Default Proof Using "Type*".
Record uPred (M : ucmraT) : Type := IProp {
uPred_holds :> nat M Prop;
......
......@@ -3,6 +3,7 @@ From iris.heap_lang Require Export lifting.
From iris.algebra Require Import auth.
From iris.heap_lang Require Import proofmode notation.
From iris.proofmode Require Import tactics.
Set Default Proof Using "Type*".
Class heapPreG Σ := HeapPreG {
heap_preG_iris :> invPreG Σ;
......
......@@ -2,6 +2,7 @@ From iris.program_logic Require Export ectx_language ectxi_language.
From iris.algebra Require Export ofe.
From iris.prelude Require Export strings.
From iris.prelude Require Import gmap.
Set Default Proof Using "Type*".
Module heap_lang.
Open Scope Z_scope.
......
......@@ -2,6 +2,7 @@ From iris.program_logic Require Export weakestpre.
From iris.heap_lang Require Export lang.
From iris.proofmode Require Import tactics.
From iris.heap_lang Require Import proofmode notation.
Set Default Proof Using "Type*".
Definition assert : val :=
λ: "v", if: "v" #() then #() else #0 #0. (* #0 #0 is unsafe *)
......
From iris.heap_lang Require Export notation.
Set Default Proof Using "Type*".
Definition newbarrier : val := λ: <>, ref #false.
Definition signal : val := λ: "x", "x" <- #true.
......
......@@ -5,6 +5,7 @@ From iris.prelude Require Import functions.
From iris.base_logic Require Import big_op lib.saved_prop lib.sts.
From iris.heap_lang Require Import proofmode.
From iris.heap_lang.lib.barrier Require Import protocol.
Set Default Proof Using "Type*".
(** The CMRAs/functors we need. *)
(* Not bundling heapG, as it may be shared with other users. *)
......
From iris.algebra Require Export sts.
From iris.base_logic Require Import lib.own.
From iris.prelude Require Export gmap.
Set Default Proof Using "Type*".
(** The STS describing the main barrier protocol. Every state has an index-set
associated with it. These indices are actually [gname], because we use them
......
......@@ -2,6 +2,7 @@ From iris.program_logic Require Export hoare.
From iris.heap_lang.lib.barrier Require Export barrier.
From iris.heap_lang.lib.barrier Require Import proof.
From iris.heap_lang Require Import proofmode.
Set Default Proof Using "Type*".
Import uPred.
Section spec.
......
......@@ -4,6 +4,7 @@ From iris.heap_lang Require Export lang.
From iris.proofmode Require Import tactics.
From iris.algebra Require Import frac auth.
From iris.heap_lang Require Import proofmode notation.
Set Default Proof Using "Type*".
Definition newcounter : val := λ: <>, ref #0.
Definition incr : val := rec: "incr" "l" :=
......
From iris.heap_lang Require Export lifting notation.
From iris.base_logic.lib Require Export invariants.
Set Default Proof Using "Type*".
Structure lock Σ `{!heapG Σ} := Lock {
(* -- operations -- *)
......
From iris.heap_lang Require Export spawn.
From iris.heap_lang Require Import proofmode notation.
Set Default Proof Using "Type*".
Import uPred.
Definition parN : namespace := nroot .@ "par".
......
......@@ -4,6 +4,7 @@ From iris.heap_lang Require Export lang.
From iris.proofmode Require Import tactics.
From iris.heap_lang Require Import proofmode notation.
From iris.algebra Require Import excl.
Set Default Proof Using "Type*".
Definition spawn : val :=
λ: "f",
......
......@@ -4,6 +4,7 @@ From iris.proofmode Require Import tactics.
From iris.heap_lang Require Import proofmode notation.
From iris.algebra Require Import excl.
From iris.heap_lang.lib Require Import lock.
Set Default Proof Using "Type*".
Definition newlock : val := λ: <>, ref #false.
Definition try_acquire : val := λ: "l", CAS "l" #false #true.
......
......@@ -4,6 +4,7 @@ From iris.proofmode Require Import tactics.
From iris.heap_lang Require Import proofmode notation.
From iris.algebra Require Import auth gset.
From iris.heap_lang.lib Require Export lock.
Set Default Proof Using "Type*".
Import uPred.
Definition wait_loop: val :=
......
......@@ -5,6 +5,7 @@ From iris.heap_lang Require Export lang.
From iris.heap_lang Require Import tactics.
From iris.proofmode Require Import tactics.
From iris.prelude Require Import fin_maps.
Set Default Proof Using "Type*".
Import uPred.
(** Basic rules for language operations. *)
......
From iris.program_logic Require Import language.
From iris.heap_lang Require Export lang tactics.
Set Default Proof Using "Type*".
Coercion LitInt : Z >-> base_lit.
Coercion LitBool : bool >-> base_lit.
......
......@@ -2,6 +2,7 @@ From iris.program_logic Require Export weakestpre.
From iris.proofmode Require Import coq_tactics.
From iris.proofmode Require Export tactics.
From iris.heap_lang Require Export tactics lifting.
Set Default Proof Using "Type*".
Import uPred.
(** wp-specific helper tactics *)
......
From iris.heap_lang Require Export lang.
Set Default Proof Using "Type*".
Import heap_lang.
(** We define an alternative representation of expressions in which the
......
......@@ -9,6 +9,7 @@ Global Set Automatic Coercions Import.
Global Set Asymmetric Patterns.
Global Unset Transparent Obligations.
From Coq Require Export Morphisms RelationClasses List Bool Utf8 Setoid.
Set Default Proof Using "Type*".
Export ListNotations.
From Coq.Program Require Export Basics Syntax.
Obligation Tactic := idtac.
......
......@@ -2,6 +2,7 @@
(* This file is distributed under the terms of the BSD license. *)
(** This file implements bsets as functions into Prop. *)
From iris.prelude Require Export prelude.
Set Default Proof Using "Type*".
Record bset (A : Type) : Type := mkBSet { bset_car : A bool }.
Arguments mkBSet {_} _.
......
......@@ -13,6 +13,7 @@ Since [positive]s are bitstrings, we encode [coPset]s as trees that correspond
to the decision function that map bitstrings to bools. *)
From iris.prelude Require Export collections.
From iris.prelude Require Import pmap gmap mapset.
Set Default Proof Using "Type*".
Local Open Scope positive_scope.
(** * The tree data structure *)
......
......@@ -4,6 +4,7 @@
importantly, it implements some tactics to automatically solve goals involving
collections. *)
From iris.prelude Require Export orders list.
Set Default Proof Using "Type*".
Instance collection_equiv `{ElemOf A C} : Equiv C := λ X Y,
x, x X x Y.
......
(* Copyright (c) 2012-2015, Robbert Krebbers. *)
(* This file is distributed under the terms of the BSD license. *)
From iris.prelude Require Export list.
Set Default Proof Using "Type*".
Local Open Scope positive.
Class Countable A `{EqDecision A} := {
......
......@@ -4,6 +4,7 @@
with a decidable equality. Such propositions are collected by the [Decision]
type class. *)
From iris.prelude Require Export proof_irrel.
Set Default Proof Using "Type*".
Hint Extern 200 (Decision _) => progress (lazy beta) : typeclass_instances.
......
......@@ -6,6 +6,7 @@ principles on finite collections . *)
From Coq Require Import Permutation.
From iris.prelude Require Import relations listset.
From iris.prelude Require Export numbers collections.
Set Default Proof Using "Type*".
Instance collection_size `{Elements A C} : Size C := length elements.
Definition collection_fold `{Elements A C} {B}
......
......@@ -4,6 +4,7 @@
maps. We provide such an axiomatization, instead of implementing the domain
function in a generic way, to allow more efficient implementations. *)
From iris.prelude Require Export collections fin_maps.
Set Default Proof Using "Type*".
Class FinMapDom K M D `{FMap M,
A, Lookup K A (M A), A, Empty (M A), A, PartialAlter K A (M A),
......
......@@ -6,6 +6,7 @@ induction principles for finite maps and implements the tactic
[simplify_map_eq] to simplify goals involving finite maps. *)
From Coq Require Import Permutation.
From iris.prelude Require Export relations orders vector.
Set Default Proof Using "Type*".
(** * Axiomatization of finite maps *)
(** We require Leibniz equality to be extensional on finite maps. This of
......
(* Copyright (c) 2012-2015, Robbert Krebbers. *)
(* This file is distributed under the terms of the BSD license. *)
From iris.prelude Require Export countable vector.
Set Default Proof Using "Type*".
Class Finite A `{EqDecision A} := {
enum : list A;
......
From iris.prelude Require Export base tactics.
Set Default Proof Using "Type*".
Section definitions.
Context {A T : Type} `{EqDecision A}.
......
......@@ -4,6 +4,7 @@
type. The implementation is based on [Pmap]s, radix-2 search trees. *)
From iris.prelude Require Export countable fin_maps fin_map_dom.
From iris.prelude Require Import pmap mapset set.
Set Default Proof Using "Type*".
(** * The data structure *)
(** We pack a [Pmap] together with a proof that ensures that all keys correspond
......
(* Copyright (c) 2012-2016, Robbert Krebbers. *)
(* This file is distributed under the terms of the BSD license. *)
From iris.prelude Require Import gmap.
Set Default Proof Using "Type*".
Record gmultiset A `{Countable A} := GMultiSet { gmultiset_car : gmap A nat }.
Arguments GMultiSet {_ _ _} _.
......