Commit 14f857ba authored by Ralf Jung's avatar Ralf Jung

add comment on dec_agree in evmap

parent a50a88fc
Pipeline #3352 passed with stage
in 4 minutes
......@@ -6,6 +6,11 @@ From iris.algebra Require deprecated.
From iris.proofmode Require Import tactics.
Export deprecated.dec_agree.
(* Porting this to algebra.agree does not really work well because the
map from K to (Q * agree A) is part of the interface of this file.
This file should either be ditched or raised to a higher level
of abstraction, i.e., work on a map from K to A and use fmap
for the thing that's owned. *)
Section evmap.
Context (K A: Type) (Q: cmraT) `{Countable K, EqDecision A}.
......
  • Iet me try to fix it

  • Try not to repeat the mistakes I made in https://gitlab.mpi-sws.org/FP/iris-atomic/commits/failed-dec_agree ;-)

    If you decide you really want to keep evmap (and I am not convinced this is worth the effort), it should be raised to a higher level of abstraction so as to not expose the usage of agree. In evmap, the type worked on by the user (the type of m) and the type of the ghost state are the same. In lambdaRust, what worked really well for us is to use different types here, so e.g. the user would work on an m of type Loc -> Val, and then we fmap that though a function fun (v : val) => (1%Qp, to_agree v) to get the type needed for ghost ownership. m then still enjoys Leibniz equality and hence is nicer to work with.

    This will require quite some work, so I am not sure if that's worth it.

  • Thanks for the advice :), and it indeed became tricky to do now. Also, I am stuck in the middle of several proofs (flat.v/install_spec, flat.v/loop_iter_doOp_spec, and evmap.v/map_agree_eq'). Is that what FAIL means? or maybe partially because you are using Coq 8.6? (I am 8.5pl3)

  • I am not sure what you are asking. In the failed branch (you can look at it to see what's in there), evmap.v goes though, but the lemmas in there are too weak to support flat.v. Or rather, they become too annoying to use.

    I am indeed using Coq 8.6, but that branch doesn't compile. I did not complete the port.

  • It turns out that I am rewriting the whole stuff now :) need a bit more time

Markdown is supported
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