 13 Mar, 2019 1 commit


Robbert Krebbers authored

 21 Feb, 2019 1 commit


Robbert Krebbers authored

 20 Feb, 2019 1 commit


Robbert Krebbers authored

 03 Feb, 2019 1 commit


Dan Frumin authored

 24 Jan, 2019 1 commit


Maxime Dénès authored
This is in preparation for coq/coq#9274.

 12 Dec, 2018 1 commit


Robbert Krebbers authored

 01 Nov, 2018 1 commit


Dan Frumin authored

 31 Oct, 2018 2 commits


Robbert Krebbers authored

Robbert Krebbers authored

 15 Jun, 2018 3 commits


Robbert Krebbers authored

Robbert Krebbers authored

Robbert Krebbers authored

 14 Jun, 2018 1 commit


Robbert Krebbers authored

 05 Jun, 2018 1 commit


Ralf Jung authored

 29 May, 2018 1 commit


Ralf Jung authored

 05 Apr, 2018 2 commits
 21 Mar, 2018 1 commit


Ralf Jung authored

 19 Mar, 2018 1 commit


Ralf Jung authored

 04 Mar, 2018 1 commit


Robbert Krebbers authored

 03 Mar, 2018 1 commit


Robbert Krebbers authored
Based on an earlier MR by @jung.

 04 Dec, 2017 2 commits


JacquesHenri Jourdan authored

JacquesHenri Jourdan authored

 01 Nov, 2017 2 commits


JacquesHenri Jourdan authored

JacquesHenri Jourdan authored
(□ P) now means (bi_bare (bi_persistently P)). This is motivated by the fact that these two modalities are rarely used separately. In the case of an affine BI, we keep the □ notation. This means that a bi_bare is inserted each time we use □. Hence, a few adaptations need to be done in the proof mode class instances.

 30 Oct, 2017 7 commits


Robbert Krebbers authored

Robbert Krebbers authored

Aleš Bizjak authored

Robbert Krebbers authored
Otherwise, ownership of cores in our ordered RA model will not be persistent.

Robbert Krebbers authored
As Aleš observed, in the ordered RA model it is not, unless the order on the unit is timeless.

Robbert Krebbers authored

Robbert Krebbers authored

 28 Oct, 2017 1 commit


JacquesHenri Jourdan authored
This is to be used on top of stdpp's 4b5d254e.

 26 Oct, 2017 1 commit


Robbert Krebbers authored

 25 Oct, 2017 3 commits


Robbert Krebbers authored
Replace/remove some occurences of `persistently` into `persistent` where the property instead of the modality is used.

Robbert Krebbers authored

Robbert Krebbers authored

 21 Sep, 2017 1 commit


Robbert Krebbers authored

 17 Sep, 2017 1 commit


Robbert Krebbers authored

 24 Mar, 2017 1 commit


Robbert Krebbers authored
This commit fixes the issues that refolding of big operators did not work nicely in the proof mode, e.g., given: Goal forall M (P : nat → uPred M) l, ([∗ list] x ∈ 10 :: l, P x) ∗ True. Proof. iIntros (M P l) "[H1 H2]". We got: "H1" : P 10 "H2" : (fix big_opL (M0 : ofeT) (o : M0 → M0 → M0) (H : Monoid o) (A : Type) (f : nat → A → M0) (xs : list A) {struct xs} : M0 := match xs with  [] => monoid_unit  x :: xs0 => o (f 0 x) (big_opL M0 o H A (λ n : nat, f (S n)) xs0) end) (uPredC M) uPred_sep uPred.uPred_sep_monoid nat (λ _ x : nat, P x) l ∗ True The problem here is that proof mode looked for an instance of `IntoAnd` for `[∗ list] x ∈ 10 :: l, P x` and then applies the instance for separating conjunction without folding back the fixpoint. This problem is not specific to the Iris proof mode, but more of a general problem of Coq's `apply`, for example: Goal forall x l, Forall (fun _ => True) (map S (x :: l)). Proof. intros x l. constructor. Gives: Forall (λ _ : nat, True) ((fix map (l0 : list nat) : list nat := match l0 with  [] => []  a :: t => S a :: map t end) l) This commit fixes this issue by making the big operators type class opaque and instead handle them solely via corresponding type classes instances for the proof mode tactics. Furthermore, note that we already had instances for persistence and timelessness. Those were really needed; computation did not help to establish persistence when the list in question was not a ground term. In fact, the sitation was worse, to establish persistence of `[∗ list] x ∈ 10 :: l, P x` it could either use the persistence instance of big ops directly, or use the persistency instance for `∗` first. Worst case, this can lead to an exponential blow up because of back tracking.
