coq-club AT inria.fr
Subject: The Coq mailing list
List archive
[Coq-Club] Composable proofs about analysis and operational semantics of programming languages
Chronological Thread
- From: Siddharth Bhat <siddu.druid AT gmail.com>
- To: Coq-Club Club <coq-club AT inria.fr>
- Cc: Tobias Grosser <tobias.grosser AT inf.ethz.ch>
- Subject: [Coq-Club] Composable proofs about analysis and operational semantics of programming languages
- Date: Wed, 20 Jun 2018 14:59:00 +0200
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=siddu.druid AT gmail.com; spf=Pass smtp.mailfrom=siddu.druid AT gmail.com; spf=None smtp.helo=postmaster AT mail-oi0-f44.google.com
- Ironport-phdr: 9a23:F+XvfR0GDYBWn+aCsmDT+DRfVm0co7zxezQtwd8Zse0TLfad9pjvdHbS+e9qxAeQG9mDtrQc06L/iOPJYSQ4+5GPsXQPItRndiQuroEopTEmG9OPEkbhLfTnPGQQFcVGU0J5rTngaRAGUMnxaEfPrXKs8DUcBgvwNRZvJuTyB4Xek9m72/q99pHPYwhEniaxba9vJxiqsAvdsdUbj5F/Iagr0BvJpXVIe+VSxWx2IF+Yggjx6MSt8pN96ipco/0u+dJOXqX8ZKQ4UKdXDC86PGAv5c3krgfMQA2S7XYBSGoWkx5IAw/Y7BHmW5r6ryX3uvZh1CScIMb7Vq4/Vyi84Kh3SR/okCYHOCA/8GHLkcx7kaZXrAu8qxBj34LYZYeYP+d8cKzAZ9MXXWVOUMZfWSJCH42ycZcAAvEbMupEtYTwvUcCoQe8CASqGejhyiVIhnjz3aAizuohEBzJ0xEgH90UqnTUsNX1P7oPXOC11qbI0SjIYvRN2Tf89YfHbw0hreuRUrJqbMrRyFQgGhjKjlWVs4PlPjeV2v4RvGic6uptTOSigHMkpQFpujWj2Nsgh43Tio8Wyl3I7zt1zJs2KNGiR0N2btipG4ZKuS6ALYt5WMYiTnlouCkkzr0Gvoa2fC0Qx5Qmwx7TcvuHc4mU7h76WuacLjh1iGhqeLK4gBay/kygxfPmWsao11ZKqzJJktjKtn8Tyxze8taLRud580u72juC1xrf5v9ZLU03j6bWJJEszqY1lpUJsETDGiH2mF/xjK+Tbkgk4emo5Pn6bbX7vJOTKpV0ihz/MqszgcG/DuE4PRIPX2if4+izyLrj/UjhTLVQkvI2irXZsIzdJckDuqG5BBZV3p8/5Ba7Ejepy88VnWIHLVJAYBKIlZLlO1DIIPDiDPewmU6gkDlxx6OOArq0KZLUa1PHjb2pVrJg4QYIww0qiNtb+ph8C7cbIfu1VFWn5/LCCRpsCA24z+buEsl9nqkeUH7HVrSYPK/P91OS++MjC+aJbY4R/j36Lq52tLbVkXYllApFLuGS1pwNZSX9R6w+ehTLUT/Xmt4EVFwykE87Re3uhkeFVGcKNXm3VqM4oDo8DdD/VNuRdsWWmLWEmRyDMNhOfGkfUwKDFH7pc8OPXPJeMHvPcP8kqSQNUP2ac6Fk1Ryqs1Wnmb9uL+6R/SxA8Jy/iJ564OrckRx0/jtxXZyQ
Hello everyone,
I've been looking around codebases related to programming languages in Coq
(mostly CompCert), and have done some reading around the subject.
I'm trying to design the semantics for a mini-language which has loops and
control flow, and I would like a nice way to write analyses over this language
and reason about the operational semantics.
In general, the way to "perform analysis" within the formal verification
community seems to be to translate between languages which contain different
information, along with a soundness proof.
However, coming from an LLVM perspective, the general way of structuring this
is to provide analyses over the same IR, which provides information about the
IR.
So, I would like to design some model which "changes" the operational semantics
based on available information. I give examples of what I have in mind below:
1. Consider an LLVM-like IR, where the operational semantics in the zero
information case will step through loop execution on the instruction level. But
on being provided with loop information, will "step through" loop iterations at
a higher level.
2. On performing liveness analysis, the operational semantics would "skip" dead
instructions.
3. With global value numbering, the operational semantics would lookup the
value number table, and use the precomputed value from this table if an
instruction has been pre-computed.
4. On having scalar evolution, the value of an instruction which has scalar
evolution information attached to it would be computed using the SCEV
formuation, and not the instruction's semantics.
So, if one defines their operational semantics as an inductive or coinductive
function, is there some nice way to "compose" / "use" the extra analysis
information to "drive" the operational semantics in different ways? How would I
design such a system for my IR?
I understand the question is broad / high level, so I'd appreciate any
references to prior art. If not, is this kind of design interesting to the
community as a whole?
Thanks, Siddharth
Sending this from my phone, please excuse any typos!
- [Coq-Club] Composable proofs about analysis and operational semantics of programming languages, Siddharth Bhat, 06/20/2018
- Re: [Coq-Club] Composable proofs about analysis and operational semantics of programming languages, Frédéric Besson, 06/22/2018
Archive powered by MHonArc 2.6.18.