Commit f6f5b1f2 authored by Ralf Jung's avatar Ralf Jung
Browse files

Merge branch 'ci/ralf/drop-coq-8.9' into 'master'

Drop support for Coq 8.9

Closes #318

See merge request iris/iris!489
parents b2b558ac 635ae9c8
......@@ -52,11 +52,6 @@ build-coq.8.10.2:
variables:
OPAM_PINS: "coq version 8.10.2"
build-coq.8.9.1:
<<: *template
variables:
OPAM_PINS: "coq version 8.9.1"
# Nightly job with a known-to-work Coq version
# (so failures must be caused by std++)
build-stdpp.dev-coq.8.11.2:
......
......@@ -18,11 +18,13 @@ definitions and some derived forms is available in
This version is known to compile with:
- Coq 8.9.1 / 8.10.2 / 8.11.2 / 8.12.0
- Coq 8.10.2 / 8.11.2 / 8.12.0
- A development version of [std++](https://gitlab.mpi-sws.org/iris/stdpp)
If you need to work with Coq 8.7 or Coq 8.8, please check out the
[iris-3.2 branch](https://gitlab.mpi-sws.org/iris/iris/tree/iris-3.2).
For Coq 8.9, you can use the
[iris-3.3 branch](https://gitlab.mpi-sws.org/iris/iris/tree/iris-3.3).
### Working *with* Iris
......
......@@ -2,12 +2,9 @@
# We sometimes want to locally override notation (e.g. in proofmode/base.v, bi/embedding.v), and there
# is no good way to do that with scopes.
-arg -w -arg -notation-overridden
# Non-canonical projections (https://github.com/coq/coq/pull/10076) do not exist yet in 8.9.
# Cannot use non-canonical projections as it causes massive unification failures
# (https://github.com/coq/coq/issues/6294)
-arg -w -arg -redundant-canonical-projection
# change_no_check does not exist yet in 8.9.
-arg -w -arg -convert_concl_no_check
# "Declare Scope" does not exist yet in 8.9.
-arg -w -arg -undeclared-scope
theories/algebra/monoid.v
theories/algebra/cmra.v
......
......@@ -10,7 +10,7 @@ dev-repo: "git+https://gitlab.mpi-sws.org/iris/iris.git"
synopsis: "Iris is a Higher-Order Concurrent Separation Logic Framework with support for interactive proofs"
depends: [
"coq" { (>= "8.9.1" & < "8.13~") | (= "dev") }
"coq" { (>= "8.10.2" & < "8.13~") | (= "dev") }
"coq-stdpp" { (= "dev.2020-08-07.0.67db2f24") | (= "dev") }
]
......
......@@ -5,7 +5,7 @@ From iris.base_logic.lib Require Import invariants cancelable_invariants na_inva
From iris.bi Require Import ascii.
Set Default Proof Using "Type".
Unset Printing Use Implicit Types. (* FIXME: remove once all supported Coq versions ship with <https://github.com/coq/coq/pull/11261>. *)
Unset Printing Use Implicit Types. (* FIXME: remove once we drop support for Coq <=8.11. *)
Section base_logic_tests.
Context {M : ucmraT}.
......
From iris.proofmode Require Import tactics monpred.
From iris.base_logic.lib Require Import invariants.
Unset Printing Use Implicit Types. (* FIXME: remove once all supported Coq versions ship with <https://github.com/coq/coq/pull/11261>. *)
Unset Printing Use Implicit Types. (* FIXME: remove once we drop support for Coq <=8.11. *)
Section tests.
Context {I : biIndex} {PROP : bi}.
......
From iris.algebra Require Export cmra.
From iris.algebra Require Import list.
From iris.base_logic Require Import base_logic.
Import stdpp.list. (* Make sure we use those names. FIXME: remove when we drop Coq 8.9 support. *)
Local Arguments validN _ _ _ !_ /.
Local Arguments valid _ _ !_ /.
Local Arguments op _ _ _ !_ /.
......
......@@ -794,6 +794,7 @@ Record rFunctor := RFunctor {
Existing Instances rFunctor_map_ne rFunctor_mor.
Instance: Params (@rFunctor_map) 9 := {}.
Declare Scope rFunctor_scope.
Delimit Scope rFunctor_scope with RF.
Bind Scope rFunctor_scope with rFunctor.
......@@ -866,6 +867,7 @@ Record urFunctor := URFunctor {
Existing Instances urFunctor_map_ne urFunctor_mor.
Instance: Params (@urFunctor_map) 9 := {}.
Declare Scope urFunctor_scope.
Delimit Scope urFunctor_scope with URF.
Bind Scope urFunctor_scope with urFunctor.
......
......@@ -704,6 +704,7 @@ Record oFunctor := OFunctor {
Existing Instance oFunctor_map_ne.
Instance: Params (@oFunctor_map) 9 := {}.
Declare Scope oFunctor_scope.
Delimit Scope oFunctor_scope with OF.
Bind Scope oFunctor_scope with oFunctor.
......
......@@ -26,6 +26,7 @@ Record monPred :=
monPred_mono : Proper (() ==> ()) monPred_at }.
Local Existing Instance monPred_mono.
Declare Scope monPred.
Bind Scope monPred with bi.
Implicit Types P Q : monPred.
......
......@@ -179,4 +179,5 @@ Reserved Notation "'[∗' 'mset]' x ∈ X , P"
format "[∗ mset] x ∈ X , P").
(** Define the scope *)
Declare Scope bi_scope.
Delimit Scope bi_scope with I.
......@@ -2,9 +2,6 @@ From iris.program_logic Require Import language.
From iris.heap_lang Require Export lang.
Set Default Proof Using "Type".
Delimit Scope expr_scope with E.
Delimit Scope val_scope with V.
(** Coercions to make programs easier to type. *)
Coercion LitInt : Z >-> base_lit.
Coercion LitBool : bool >-> base_lit.
......
......@@ -27,9 +27,13 @@ Structure language := Language {
prim_step : expr state list observation expr state list expr Prop;
language_mixin : LanguageMixin of_val to_val prim_step
}.
Declare Scope expr_scope.
Delimit Scope expr_scope with E.
Delimit Scope val_scope with V.
Bind Scope expr_scope with expr.
Declare Scope val_scope.
Delimit Scope val_scope with V.
Bind Scope val_scope with val.
Arguments Language {_ _ _ _ _ _ _} _.
......
......@@ -234,7 +234,7 @@ an efficient way. Concretely, we made sure that [envs_entails (Envs Γp Γs c) Q
and [envs_entails (Envs Γp Γs c') Q] are convertible for any [c] and [c']. This
way, [iFresh] can simply be implemented by changing the goal from
[envs_entails (Envs Γp Γs c) Q] into [envs_entails (Envs Γp Γs (Pos_succ c)) Q]
using the tactic [convert_concl_no_check]. This way, the generated proof term
using the tactic [change_no_check]. This way, the generated proof term
contains no additional steps for changing the counter.
For all definitions below, we first define a version that take the two contexts
......
......@@ -123,7 +123,7 @@ Ltac iFresh :=
lazymatch goal with
| |- envs_entails (Envs ?Δp ?Δs _) ?Q =>
let c' := eval vm_compute in (Pos.succ c) in
convert_concl_no_check (envs_entails (Envs Δp Δs c') Q)
change_no_check (envs_entails (Envs Δp Δs c') Q)
end in
constr:(IAnon c).
......
......@@ -2,6 +2,7 @@ From stdpp Require Export strings.
From iris.proofmode Require Import coq_tactics environments.
Set Default Proof Using "Type".
Declare Scope proof_scope.
Delimit Scope proof_scope with env.
Arguments Envs _ _%proof_scope _%proof_scope _.
Arguments Enil {_}.
......
......@@ -22,9 +22,9 @@ Declare Reduction pm_eval := cbv [
Ltac pm_eval t :=
eval pm_eval in t.
Ltac pm_reduce :=
(* Use [convert_concl_no_check] instead of [change] to avoid performing the
(* Use [change_no_check] instead of [change] to avoid performing the
conversion check twice. *)
match goal with |- ?u => let v := pm_eval u in convert_concl_no_check v end.
match goal with |- ?u => let v := pm_eval u in change_no_check v end.
Ltac pm_reflexivity := pm_reduce; exact eq_refl.
(** Called by many tactics for redexes that are created by instantiation.
......@@ -38,6 +38,6 @@ Declare Reduction pm_prettify := cbn [
bi_tforall bi_texist
].
Ltac pm_prettify :=
(* Use [convert_concl_no_check] instead of [change] to avoid performing the
(* Use [change_no_check] instead of [change] to avoid performing the
conversion check twice. *)
match goal with |- ?u => let v := eval pm_prettify in u in convert_concl_no_check v end.
match goal with |- ?u => let v := eval pm_prettify in u in change_no_check v end.
......@@ -10,6 +10,8 @@ Record siProp := SiProp {
}.
Arguments siProp_holds : simpl never.
Add Printing Constructor siProp.
Declare Scope siProp_scope.
Delimit Scope siProp_scope with SI.
Bind Scope siProp_scope with siProp.
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment