coq-club AT inria.fr
Subject: The Coq mailing list
List archive
Re: [Coq-Club] Adding (inductive) transitivity to weak bisimilarity not sound? (was: Need help with coinductive proof)
chronological Thread
- From: Edsko de Vries <edskodevries AT gmail.com>
- To: Thorsten Altenkirch <txa AT cs.nott.ac.uk>
- Cc: Coq Club <coq-club AT pauillac.inria.fr>, Agda List <agda AT lists.chalmers.se>
- Subject: Re: [Coq-Club] Adding (inductive) transitivity to weak bisimilarity not sound? (was: Need help with coinductive proof)
- Date: Fri, 28 Aug 2009 18:35:34 +0100
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:cc:content-type; b=ry1t0cQdMVsx3xmFir9X3LpsPDqouvv6UF09KFIXql+HBJrztIOFGwJuXDGLCt4tTN 4s50eMzdaXn31vmSndOXSyBdAbZdvKYLblHowJW+4akeexD9akcH/Q1+vWZWZLS8b54g 460ldodxJxtLykG7lEsjP+c5pBNDMumA5ftH0=
- List-archive: <http://pauillac.inria.fr/pipermail/coq-club/>
So, what's left to be able to complete the proof is adding transitivity rules to the extended relation, and then presumably a translation from the extended extended relation to the extended relation, and then finally to the original bisimulation relation. Hopefully, that's not too difficult..
I thought I was almost there, when I realized that adding (inductive) transitivity to my weak bisimularity relation is not sound, as any number is now bisimilar to bottom:
------ reflexivity -------- coinduction
n ~ n n ~ _|_
---------- weak-tau-right ---------------- strong_tau
n ~ tau n tau n ~ tau _|_
------------------------------------------------- transitivity
n ~ _|_
note that this mixes coinduction and induction; the coinductive argument (n ~ _|_) in the leaf is guarded by an application of strong_tau; and the rest of the proof is finite. At least, I think that's right (would Agda accept it?); concretely, using my Coq encoding of mixed induction/coinduction with nats to limit the application of the 'inductive' rules, I had
CoInductive bisim'P : nat -> coN' -> coN' -> Prop :=
| strong_coZ'P : forall d,
bisim'P d coZ' coZ'
| strong_coS'P : forall d' d m n,
bisim'P d' m n ->
bisim'P d (coS' m) (coS' n)
| strong_tau'P : forall d' d m n,
bisim'P d' m n ->
bisim'P d (tau' m) (tau' n)
| strong_add'P : forall dm dn d m m' n n',
bisim'P dm m m' ->
bisim'P dn n n' ->
bisim'P d (add' m n) (add' m' n')
| weak_tau_left'P : forall d m n,
bisim'P d m n ->
bisim'P (S d) (tau' m) n
| weak_tau_right'P : forall d m n,
bisim'P d m n ->
bisim'P (S d) m (tau' n)
| bisim'P_trans : forall dm dn d m n p, (dm < d) -> (dn < d) ->
bisim'P dm m n ->
bisim'P dn n p ->
bisim'P d m p.
which certainly has the above problem. I find this to be an extremely subtle issue, and the solution is not clear to me. In particular, when I restrict the rule for strong_tau so that it uses the same index above and below the line
| strong_tau'P : forall d m n,
bisim'P d m n ->
bisim'P d (tau' m) (tau' n)
I can no longer prove the flattening lemma for bisimulation so I again have nothing :-(
We must somehow limit the rules that are applied as arguments to transitivity to be strong steps, not weak steps (it reminds me a bit of the problem of weak bisimulation up to weak bisimularity) -- I *think* that might be enough, but at this point I'm not really sure about anything anymore ;)
Edsko
- Re: [Coq-Club] Adding (inductive) transitivity to weak bisimilarity not sound? (was: Need help with coinductive proof), Edsko de Vries
Archive powered by MhonArc 2.6.16.