{"id":558255,"date":"2019-01-03T13:11:54","date_gmt":"2019-01-03T21:11:54","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/research\/?post_type=msr-event&#038;p=558255"},"modified":"2025-08-06T11:56:40","modified_gmt":"2025-08-06T18:56:40","slug":"popl-2019","status":"publish","type":"msr-event","link":"https:\/\/www.microsoft.com\/en-us\/research\/event\/popl-2019\/","title":{"rendered":"Microsoft @ POPL 2019"},"content":{"rendered":"\n\n<p><strong>Venue: <\/strong><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/www.cascaismirage.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Hotel Cascais Miragem<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><br \/>\nAv.Marginal n.8554<br \/>\n2754-536<br \/>\nCascais\/Lisbon<br \/>\nPortugal<\/p>\n<p><strong>Website:<\/strong> <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/popl19.sigplan.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">POPL 2019<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><span id=\"label-external-link\" class=\"sr-only\" aria-hidden=\"true\">Opens in a new tab<\/span><\/p>\n<p>Microsoft is excited to be a Platinum sponsor of the 46th ACM SIGPLAN Symposium on <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/popl19.sigplan.org\/\" target=\"_blank\" rel=\"noopener\">Principles of Programming Languages<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>. Stop by our booth to learn about our latest research and find out about career opportunities with Microsoft.<\/p>\n<h3>Microsoft Attendees<\/h3>\n<p style=\"padding-left: 30px\"><a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/tball\/\">Tom Ball<\/a><br \/>\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/antdl\/\">Antoine Delignat-Lavaud<\/a><br \/>\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/chrishaw\/\">Chris Hawblitzel<\/a><br \/>\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/nlopes\/\">Nuno Lopes<\/a><br \/>\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/protz\/\">Jonathan Protzenko<\/a><br \/>\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/taramana\/\">Tahina Ramananandro<\/a><br \/>\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/rybal\/\">Andrey Rybalchenko<\/a><br \/>\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/santiago\/\">Santiago Zanella-Beguelin<\/a><br \/>\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/adg\/\">Andy Gordon<\/a><br \/>\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/nswamy\/\">Nikhil Swamy<\/a><\/p>\n<h3>Research Paper Committee<\/h3>\n<p style=\"padding-left: 30px\"><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" target=\"_blank\" href=\"http:\/\/research.microsoft.com\/people\/dimitris\">Dimitrios Vytiniotis<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/mattpark\/\">Matthew Parkinson<\/a>, <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" target=\"_blank\" href=\"https:\/\/research.microsoft.com\/~nswamy\">Nikhil Swamy<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/p>\n<h3>Artifact Evaluation Committee<\/h3>\n<p style=\"padding-left: 30px\"><a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/protz\/\">Jonathan Protzenko<\/a><\/p>\n<h3>Steering Committee<\/h3>\n<p style=\"padding-left: 30px\"><a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/adg\/\">Andrew D. Gordon<\/a><\/p>\n<h3>Co-Located Conferences<\/h3>\n<h4>Certified Programs and Proofs (CPP)<\/h4>\n<p style=\"padding-left: 30px\"><a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/chrishaw\/\">Chris Hawblitzel<\/a><\/p>\n<h4>Principles of Secure Compilation(PriSC)<\/h4>\n<p style=\"padding-left: 30px\"><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" target=\"_blank\" href=\"http:\/\/research.microsoft.com\/en-us\/um\/people\/fournet\/\">C\u00e9dric Fournet<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/p>\n<h3>Invited Speakers<\/h3>\n<p style=\"padding-left: 30px\">VMCAI 2019, co-located<br \/>\nTuesday, January 15, 2019 | 9:00 AM\u201310:30 AM<br \/>\n<a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/popl19.sigplan.org\/event\/vmcai-2019-semantics-for-compiler-irs-undefined-behavior-is-not-evil-\" target=\"_blank\" rel=\"noopener\"><strong>Semantics for Compiler IRs: Undefined Behavior is not Evil!<\/strong><span class=\"sr-only\"> (opens in new tab)<\/span><\/a><br \/>\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/nlopes\/\">Nuno Lopes<\/a><\/p>\n<p><span id=\"label-external-link\" class=\"sr-only\" aria-hidden=\"true\">Opens in a new tab<\/span><\/p>\n<h4>Wednesday, January 16, 2019 | 1:45 PM\u20132:07 PM | Probabilistic Programming and Semantics<br \/>\n<a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/arxiv.org\/abs\/1811.00890\" target=\"_blank\" rel=\"noopener\">Probabilistic Programming with Densities in SlicStan: Efficient, Flexible and Deterministic<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/h4>\n<p style=\"padding-left: 30px\"><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" target=\"_blank\" href=\"https:\/\/popl19.sigplan.org\/profile\/mariaigorinova\">Maria I. Gorinova<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/adg\/\">Andrew D. Gordon<\/a>, <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" target=\"_blank\" href=\"https:\/\/popl19.sigplan.org\/profile\/charlessutton\">Charles Sutton<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/p>\n<h4>Friday, January 18, 2019 | 5:21 PM\u20135:43 PM | Verified Compilation and Concurrency<br \/>\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/publication\/a-verified-efficient-embedding-of-a-verifiable-assembly-language\/\">A Verified, Efficient Embedding of a Verifiable Assembly Language<\/a><\/h4>\n<p style=\"padding-left: 30px\">Aymeric Fromherz, Nick Giannarakis, <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/chrishaw\/\">Chris Hawblitzel<\/a>, Bryan Parno, <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/aseemr\/\">Aseem Rastogi<\/a>, <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" target=\"_blank\" href=\"https:\/\/research.microsoft.com\/~nswamy\">Nikhil Swamy<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/p>\n<h3>Co-Located Conferences<\/h3>\n<h4>Tuesday, January 15, 2019 | 4:30 PM\u20135:00 PM | Networks and Concurrency at VMCAI<br \/>\n<a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/popl19.sigplan.org\/event\/vmcai-2019-fast-bgp-simulation-of-large-datacenters\" target=\"_blank\" rel=\"noopener\">Fast BGP Simulation of Large Datacenters<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/h4>\n<p style=\"padding-left: 30px\"><a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/nlopes\/\">Nuno Lopes<\/a>, <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/rybal\/\">Andrey Rybalchenko<\/a><\/p>\n<p><span id=\"label-external-link\" class=\"sr-only\" aria-hidden=\"true\">Opens in a new tab<\/span><\/p>\n<h4>Open Source Tools for System Correctness<\/h4>\n<p><strong>Automata:<\/strong> <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/AutomataDotNet\/Automata\" target=\"_blank\" rel=\"noopener\">Automata<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> is a .NET library that provides algorithms for composing and analyzing regular expressions, automata, and transducers. In addition to classical word automata, it also includes algorithms for analysis of tree automata and tree transducers. The library covers algorithms over finite alphabets as well as their symbolic counterparts. Predicates can be supported by an SMT solver as a plugin.<\/p>\n<p><strong>Corral Program Verifier:<\/strong>\u00a0<a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/boogie-org\/corral\" target=\"_blank\" rel=\"noopener\">Corral<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> is a whole-program analysis tool for\u00a0<a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/boogie-org\/boogie\" target=\"_blank\" rel=\"noopener\">Boogie<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>\u00a0programs. Corral uses goal-directed symbolic search techniques to find assertion violations.\u00a0It leverages the automated\u00a0theorem prover Z3. Corral, by default, does a bounded search up to a recursion depth and fixed number of context switches. Corral also supports the\u00a0<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/project\/duality\/\" target=\"_blank\" rel=\"noopener\">Duality<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>\u00a0extension for constructing\u00a0inductive proofs of correctness of programs.<\/p>\n<p><strong>Ivy:<\/strong> <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/Microsoft\/ivy\" target=\"_blank\" rel=\"noopener\">IVy<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> is a tool intended to allow interactive development of protocols and their proofs of correctness and to provide a platform for developing and experimenting with automated proof techniques. In particular, IVy provides interactive visualization of automated proofs, and supports a use model in which the human protocol designer and the automated tool interact to expose errors and prove correctness.<\/p>\n<p><strong>Lean Theorem Prover:<\/strong> <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"http:\/\/leanprover.github.io\/\" target=\"_blank\" rel=\"noopener\">Lean<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> is an open source theorem prover and programming language. Lean aims to bridge the gap between interactive and automated theorem proving, by situating automated tools and methods in a framework that supports user interaction and the construction of fully specified axiomatic proofs.<\/p>\n<p><strong>P\/P#:<\/strong> <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/p-org\" target=\"_blank\" rel=\"noopener\">P\/P#<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> are languages for asynchronous event-driven programming that allow the programmer to specify the system as a collection of interacting state machines, which communicate with each other using events. P\/P# unifies modeling and programming into one activity for the programmer. Not only can a P\/P# program be compiled into executable code, but it can also be validated using systematic testing.<\/p>\n<p><strong>Project Everest:<\/strong> <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/project-everest.github.io\/\" target=\"_blank\" rel=\"noopener\">Everest<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> is the combination of the following projects, that together are used to prove correct\/secure and generate a C library that efficiently implements TLS 1.3<\/p>\n<ul>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/fstar-lang.org\/\" target=\"_blank\" rel=\"noopener\">F*<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, a verification-oriented dialect of ML<\/li>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/mitls\/hacl-star\" target=\"_blank\" rel=\"noopener\">HACL*<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, a verified library of cryptographic primitives written in F*<\/li>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/FStarLang\/kremlin\/\" target=\"_blank\" rel=\"noopener\">KreMLin<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, a compiler from a subset of F* to C<\/li>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/mitls.org\/\" target=\"_blank\" rel=\"noopener\">miTLS<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, an implementation of the TLS protocol, written in F*<\/li>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/project-everest\/vale\" target=\"_blank\" rel=\"noopener\">Vale<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, a domain-specific language designed to implement verified cryptographic primitives in assembly<\/li>\n<\/ul>\n<p><strong>TLA+: <\/strong><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/tlaplus\/tlaplus\" target=\"_blank\" rel=\"noopener\">TLA+<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> is based on the idea that the best way to describe things formally is with simple mathematics, and that a specification language should contain as little as possible beyond what is needed to write simple mathematics precisely. TLA+ is especially well suited for writing high-level specifications of concurrent and distributed systems.<\/p>\n<p><strong>Network Verification:<\/strong>\u00a0<a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/Z3Prover\/FirewallChecker\" target=\"_blank\" rel=\"noopener\">Firewall Checker<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>\u00a0is a firewall analysis library using the Z3 SMT Solver from Microsoft Research. Includes console applications to check the equivalence of two firewalls, or analyze the action of a firewall on a single packet. It was developed for use inside Microsoft Azure to analyze changes to Windows Firewall generation logic. It is one part of much larger effort to verify aspects of data center configuration and behavior.<\/p>\n<p><strong>Verisol:<\/strong> <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/Microsoft\/verisol\" target=\"_blank\" rel=\"noopener\">VeriSol<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> (Verifier for Solidity) is a prototype formal verification and analysis system for smart contracts developed in the popular\u00a0<a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/solidity.readthedocs.io\/en\/\" target=\"_blank\" rel=\"noopener\">Solidity<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>\u00a0programming language. It is based on translating programs in Solidity language to programs in\u00a0<a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/boogie-org\/boogie\" target=\"_blank\" rel=\"noopener\">Boogie<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>\u00a0intermediate verification language, and then leveraging the verification toolchain for Boogie programs.<\/p>\n<p><strong>Z3 Theorem Prover:\u00a0<\/strong><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/Z3Prover\/z3\" target=\"_blank\" rel=\"noopener\">Z3<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> is an automated theorem prover in the satisfiability-modulo-theories (SMT) family, under research\/development for over a decade at Microsoft Research and widely deployed in the industry for a wide range of uses, from program verification to product configuration.<span id=\"label-external-link\" class=\"sr-only\" aria-hidden=\"true\">Opens in a new tab<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Microsoft is excited to be a Platinum sponsor of the 46th ACM SIGPLAN Symposium on Principles of Programming Languages. Stop by our booth to learn about our latest research and find out about career opportunities with Microsoft.<\/p>\n","protected":false},"featured_media":558522,"template":"","meta":{"msr-url-field":"","msr-podcast-episode":"","msrModifiedDate":"","msrModifiedDateEnabled":false,"ep_exclude_from_search":false,"_classifai_error":"","msr_startdate":"2019-01-13","msr_enddate":"2019-01-19","msr_location":"Cascais\/Lisbon, Portugal","msr_expirationdate":"","msr_event_recording_link":"","msr_event_link":"https:\/\/popl19.sigplan.org\/attending\/Registration","msr_event_link_redirect":false,"msr_event_time":"","msr_hide_region":false,"msr_private_event":false,"msr_hide_image_in_river":0,"footnotes":""},"research-area":[13560],"msr-region":[239178],"msr-event-type":[197941],"msr-video-type":[],"msr-locale":[268875],"msr-program-audience":[],"msr-post-option":[],"msr-impact-theme":[],"class_list":["post-558255","msr-event","type-msr-event","status-publish","has-post-thumbnail","hentry","msr-research-area-programming-languages-software-engineering","msr-region-europe","msr-event-type-conferences","msr-locale-en_us"],"msr_about":"<!-- wp:msr\/event-details {\"title\":\"Microsoft @ POPL 2019\",\"backgroundColor\":\"grey\",\"image\":{\"id\":558522,\"url\":\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2018\/12\/1920x720-header-POPL-2019.jpg\",\"alt\":\"\"}} \/-->\n\n<!-- wp:msr\/content-tabs --><!-- wp:msr\/content-tab {\"title\":\"About\"} --><!-- wp:freeform --><p><strong>Venue: <\/strong><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/www.cascaismirage.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Hotel Cascais Miragem<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><br \/>\nAv.Marginal n.8554<br \/>\n2754-536<br \/>\nCascais\/Lisbon<br \/>\nPortugal<\/p>\n<p><strong>Website:<\/strong> <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/popl19.sigplan.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">POPL 2019<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><span id=\"label-external-link\" class=\"sr-only\" aria-hidden=\"true\">Opens in a new tab<\/span><\/p>\n<p>Microsoft is excited to be a Platinum sponsor of the 46th ACM SIGPLAN Symposium on <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/popl19.sigplan.org\/\" target=\"_blank\" rel=\"noopener\">Principles of Programming Languages<\/a>. Stop by our booth to learn about our latest research and find out about career opportunities with Microsoft.<\/p>\n<h3>Microsoft Attendees<\/h3>\n<p style=\"padding-left: 30px\"><a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/tball\/\">Tom Ball<\/a><br \/>\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/antdl\/\">Antoine Delignat-Lavaud<\/a><br \/>\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/chrishaw\/\">Chris Hawblitzel<\/a><br \/>\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/nlopes\/\">Nuno Lopes<\/a><br \/>\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/protz\/\">Jonathan Protzenko<\/a><br \/>\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/taramana\/\">Tahina Ramananandro<\/a><br \/>\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/rybal\/\">Andrey Rybalchenko<\/a><br \/>\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/santiago\/\">Santiago Zanella-Beguelin<\/a><br \/>\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/adg\/\">Andy Gordon<\/a><br \/>\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/nswamy\/\">Nikhil Swamy<\/a><\/p>\n<h3>Research Paper Committee<\/h3>\n<p style=\"padding-left: 30px\"><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" target=\"_blank\" href=\"http:\/\/research.microsoft.com\/people\/dimitris\">Dimitrios Vytiniotis<\/a>, <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/mattpark\/\">Matthew Parkinson<\/a>, <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" target=\"_blank\" href=\"https:\/\/research.microsoft.com\/~nswamy\">Nikhil Swamy<\/a><\/p>\n<h3>Artifact Evaluation Committee<\/h3>\n<p style=\"padding-left: 30px\"><a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/protz\/\">Jonathan Protzenko<\/a><\/p>\n<h3>Steering Committee<\/h3>\n<p style=\"padding-left: 30px\"><a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/adg\/\">Andrew D. Gordon<\/a><\/p>\n<h3>Co-Located Conferences<\/h3>\n<h4>Certified Programs and Proofs (CPP)<\/h4>\n<p style=\"padding-left: 30px\"><a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/chrishaw\/\">Chris Hawblitzel<\/a><\/p>\n<h4>Principles of Secure Compilation(PriSC)<\/h4>\n<p style=\"padding-left: 30px\"><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" target=\"_blank\" href=\"http:\/\/research.microsoft.com\/en-us\/um\/people\/fournet\/\">C\u00e9dric Fournet<\/a><\/p>\n<h3>Invited Speakers<\/h3>\n<p style=\"padding-left: 30px\">VMCAI 2019, co-located<br \/>\nTuesday, January 15, 2019 | 9:00 AM\u201310:30 AM<br \/>\n<a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/popl19.sigplan.org\/event\/vmcai-2019-semantics-for-compiler-irs-undefined-behavior-is-not-evil-\" target=\"_blank\" rel=\"noopener\"><strong>Semantics for Compiler IRs: Undefined Behavior is not Evil!<\/strong><\/a><br \/>\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/nlopes\/\">Nuno Lopes<\/a><\/p>\n<p><span id=\"label-external-link\" class=\"sr-only\" aria-hidden=\"true\">Opens in a new tab<\/span><\/p>\n<!-- \/wp:freeform --><!-- \/wp:msr\/content-tab --><!-- wp:msr\/content-tab {\"title\":\"Accepted Papers\"} --><!-- wp:freeform --><h4>Wednesday, January 16, 2019 | 1:45 PM\u20132:07 PM | Probabilistic Programming and Semantics<br \/>\n<a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/arxiv.org\/abs\/1811.00890\" target=\"_blank\" rel=\"noopener\">Probabilistic Programming with Densities in SlicStan: Efficient, Flexible and Deterministic<\/a><\/h4>\n<p style=\"padding-left: 30px\"><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" target=\"_blank\" href=\"https:\/\/popl19.sigplan.org\/profile\/mariaigorinova\">Maria I. Gorinova<\/a>, <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/adg\/\">Andrew D. Gordon<\/a>, <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" target=\"_blank\" href=\"https:\/\/popl19.sigplan.org\/profile\/charlessutton\">Charles Sutton<\/a><\/p>\n<h4>Friday, January 18, 2019 | 5:21 PM\u20135:43 PM | Verified Compilation and Concurrency<br \/>\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/publication\/a-verified-efficient-embedding-of-a-verifiable-assembly-language\/\">A Verified, Efficient Embedding of a Verifiable Assembly Language<\/a><\/h4>\n<p style=\"padding-left: 30px\">Aymeric Fromherz, Nick Giannarakis, <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/chrishaw\/\">Chris Hawblitzel<\/a>, Bryan Parno, <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/aseemr\/\">Aseem Rastogi<\/a>, <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" target=\"_blank\" href=\"https:\/\/research.microsoft.com\/~nswamy\">Nikhil Swamy<\/a><\/p>\n<h3>Co-Located Conferences<\/h3>\n<h4>Tuesday, January 15, 2019 | 4:30 PM\u20135:00 PM | Networks and Concurrency at VMCAI<br \/>\n<a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/popl19.sigplan.org\/event\/vmcai-2019-fast-bgp-simulation-of-large-datacenters\" target=\"_blank\" rel=\"noopener\">Fast BGP Simulation of Large Datacenters<\/a><\/h4>\n<p style=\"padding-left: 30px\"><a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/nlopes\/\">Nuno Lopes<\/a>, <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/rybal\/\">Andrey Rybalchenko<\/a><\/p>\n<p><span id=\"label-external-link\" class=\"sr-only\" aria-hidden=\"true\">Opens in a new tab<\/span><\/p>\n<!-- \/wp:freeform --><!-- \/wp:msr\/content-tab --><!-- wp:msr\/content-tab {\"title\":\"Open Source Tools\"} --><!-- wp:freeform --><h4>Open Source Tools for System Correctness<\/h4>\n<p><strong>Automata:<\/strong> <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/AutomataDotNet\/Automata\" target=\"_blank\" rel=\"noopener\">Automata<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> is a .NET library that provides algorithms for composing and analyzing regular expressions, automata, and transducers. In addition to classical word automata, it also includes algorithms for analysis of tree automata and tree transducers. The library covers algorithms over finite alphabets as well as their symbolic counterparts. Predicates can be supported by an SMT solver as a plugin.<\/p>\n<p><strong>Corral Program Verifier:<\/strong>\u00a0<a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/boogie-org\/corral\" target=\"_blank\" rel=\"noopener\">Corral<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> is a whole-program analysis tool for\u00a0<a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/boogie-org\/boogie\" target=\"_blank\" rel=\"noopener\">Boogie<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>\u00a0programs. Corral uses goal-directed symbolic search techniques to find assertion violations.\u00a0It leverages the automated\u00a0theorem prover Z3. Corral, by default, does a bounded search up to a recursion depth and fixed number of context switches. Corral also supports the\u00a0<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/project\/duality\/\" target=\"_blank\" rel=\"noopener\">Duality<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>\u00a0extension for constructing\u00a0inductive proofs of correctness of programs.<\/p>\n<p><strong>Ivy:<\/strong> <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/Microsoft\/ivy\" target=\"_blank\" rel=\"noopener\">IVy<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> is a tool intended to allow interactive development of protocols and their proofs of correctness and to provide a platform for developing and experimenting with automated proof techniques. In particular, IVy provides interactive visualization of automated proofs, and supports a use model in which the human protocol designer and the automated tool interact to expose errors and prove correctness.<\/p>\n<p><strong>Lean Theorem Prover:<\/strong> <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"http:\/\/leanprover.github.io\/\" target=\"_blank\" rel=\"noopener\">Lean<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> is an open source theorem prover and programming language. Lean aims to bridge the gap between interactive and automated theorem proving, by situating automated tools and methods in a framework that supports user interaction and the construction of fully specified axiomatic proofs.<\/p>\n<p><strong>P\/P#:<\/strong> <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/p-org\" target=\"_blank\" rel=\"noopener\">P\/P#<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> are languages for asynchronous event-driven programming that allow the programmer to specify the system as a collection of interacting state machines, which communicate with each other using events. P\/P# unifies modeling and programming into one activity for the programmer. Not only can a P\/P# program be compiled into executable code, but it can also be validated using systematic testing.<\/p>\n<p><strong>Project Everest:<\/strong> <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/project-everest.github.io\/\" target=\"_blank\" rel=\"noopener\">Everest<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> is the combination of the following projects, that together are used to prove correct\/secure and generate a C library that efficiently implements TLS 1.3<\/p>\n<ul>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/fstar-lang.org\/\" target=\"_blank\" rel=\"noopener\">F*<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, a verification-oriented dialect of ML<\/li>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/mitls\/hacl-star\" target=\"_blank\" rel=\"noopener\">HACL*<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, a verified library of cryptographic primitives written in F*<\/li>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/FStarLang\/kremlin\/\" target=\"_blank\" rel=\"noopener\">KreMLin<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, a compiler from a subset of F* to C<\/li>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/mitls.org\/\" target=\"_blank\" rel=\"noopener\">miTLS<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, an implementation of the TLS protocol, written in F*<\/li>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/project-everest\/vale\" target=\"_blank\" rel=\"noopener\">Vale<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, a domain-specific language designed to implement verified cryptographic primitives in assembly<\/li>\n<\/ul>\n<p><strong>TLA+: <\/strong><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/tlaplus\/tlaplus\" target=\"_blank\" rel=\"noopener\">TLA+<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> is based on the idea that the best way to describe things formally is with simple mathematics, and that a specification language should contain as little as possible beyond what is needed to write simple mathematics precisely. TLA+ is especially well suited for writing high-level specifications of concurrent and distributed systems.<\/p>\n<p><strong>Network Verification:<\/strong>\u00a0<a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/Z3Prover\/FirewallChecker\" target=\"_blank\" rel=\"noopener\">Firewall Checker<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>\u00a0is a firewall analysis library using the Z3 SMT Solver from Microsoft Research. Includes console applications to check the equivalence of two firewalls, or analyze the action of a firewall on a single packet. It was developed for use inside Microsoft Azure to analyze changes to Windows Firewall generation logic. It is one part of much larger effort to verify aspects of data center configuration and behavior.<\/p>\n<p><strong>Verisol:<\/strong> <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/Microsoft\/verisol\" target=\"_blank\" rel=\"noopener\">VeriSol<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> (Verifier for Solidity) is a prototype formal verification and analysis system for smart contracts developed in the popular\u00a0<a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/solidity.readthedocs.io\/en\/\" target=\"_blank\" rel=\"noopener\">Solidity<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>\u00a0programming language. It is based on translating programs in Solidity language to programs in\u00a0<a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/boogie-org\/boogie\" target=\"_blank\" rel=\"noopener\">Boogie<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>\u00a0intermediate verification language, and then leveraging the verification toolchain for Boogie programs.<\/p>\n<p><strong>Z3 Theorem Prover:\u00a0<\/strong><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/Z3Prover\/z3\" target=\"_blank\" rel=\"noopener\">Z3<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> is an automated theorem prover in the satisfiability-modulo-theories (SMT) family, under research\/development for over a decade at Microsoft Research and widely deployed in the industry for a wide range of uses, from program verification to product configuration.<span id=\"label-external-link\" class=\"sr-only\" aria-hidden=\"true\">Opens in a new tab<\/span><\/p>\n<!-- \/wp:freeform --><!-- \/wp:msr\/content-tab --><!-- \/wp:msr\/content-tabs -->","tab-content":[{"id":0,"name":"About","content":"Microsoft is excited to be a Platinum sponsor of the 46th ACM SIGPLAN Symposium on <a href=\"https:\/\/popl19.sigplan.org\/\" target=\"_blank\" rel=\"noopener\">Principles of Programming Languages<\/a>. Stop by our booth to learn about our latest research and find out about career opportunities with Microsoft.\r\n<h3>Microsoft Attendees<\/h3>\r\n<p style=\"padding-left: 30px\"><a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/tball\/\">Tom Ball<\/a>\r\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/antdl\/\">Antoine Delignat-Lavaud<\/a>\r\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/chrishaw\/\">Chris Hawblitzel<\/a>\r\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/nlopes\/\">Nuno Lopes<\/a>\r\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/protz\/\">Jonathan Protzenko<\/a>\r\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/taramana\/\">Tahina Ramananandro<\/a>\r\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/rybal\/\">Andrey Rybalchenko<\/a>\r\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/santiago\/\">Santiago Zanella-Beguelin<\/a>\r\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/adg\/\">Andy Gordon<\/a>\r\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/nswamy\/\">Nikhil Swamy<\/a><\/p>\r\n\r\n<h3>Research Paper Committee<\/h3>\r\n<p style=\"padding-left: 30px\"><a href=\"http:\/\/research.microsoft.com\/people\/dimitris\">Dimitrios Vytiniotis<\/a>, <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/mattpark\/\">Matthew Parkinson<\/a>, <a href=\"https:\/\/research.microsoft.com\/~nswamy\">Nikhil Swamy<\/a><\/p>\r\n\r\n<h3>Artifact Evaluation Committee<\/h3>\r\n<p style=\"padding-left: 30px\"><a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/protz\/\">Jonathan Protzenko<\/a><\/p>\r\n\r\n<h3>Steering Committee<\/h3>\r\n<p style=\"padding-left: 30px\"><a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/adg\/\">Andrew D. Gordon<\/a><\/p>\r\n\r\n<h3>Co-Located Conferences<\/h3>\r\n<h4>Certified Programs and Proofs (CPP)<\/h4>\r\n<p style=\"padding-left: 30px\"><a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/chrishaw\/\">Chris Hawblitzel<\/a><\/p>\r\n\r\n<h4>Principles of Secure Compilation(PriSC)<\/h4>\r\n<p style=\"padding-left: 30px\"><a href=\"http:\/\/research.microsoft.com\/en-us\/um\/people\/fournet\/\">C\u00e9dric Fournet<\/a><\/p>\r\n\r\n<h3>Invited Speakers<\/h3>\r\n<p style=\"padding-left: 30px\">VMCAI 2019, co-located\r\nTuesday, January 15, 2019 | 9:00 AM\u201310:30 AM\r\n<a href=\"https:\/\/popl19.sigplan.org\/event\/vmcai-2019-semantics-for-compiler-irs-undefined-behavior-is-not-evil-\" target=\"_blank\" rel=\"noopener\"><strong>Semantics for Compiler IRs: Undefined Behavior is not Evil!<\/strong><\/a>\r\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/nlopes\/\">Nuno Lopes<\/a><\/p>"},{"id":1,"name":"Accepted Papers","content":"<h4>Wednesday, January 16, 2019 | 1:45 PM\u20132:07 PM | Probabilistic Programming and Semantics\r\n<a href=\"https:\/\/arxiv.org\/abs\/1811.00890\" target=\"_blank\" rel=\"noopener\">Probabilistic Programming with Densities in SlicStan: Efficient, Flexible and Deterministic<\/a><\/h4>\r\n<p style=\"padding-left: 30px\"><a href=\"https:\/\/popl19.sigplan.org\/profile\/mariaigorinova\">Maria I. Gorinova<\/a>, <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/adg\/\">Andrew D. Gordon<\/a>, <a href=\"https:\/\/popl19.sigplan.org\/profile\/charlessutton\">Charles Sutton<\/a><\/p>\r\n\r\n<h4>Friday, January 18, 2019 | 5:21 PM\u20135:43 PM | Verified Compilation and Concurrency\r\n<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/publication\/a-verified-efficient-embedding-of-a-verifiable-assembly-language\/\">A Verified, Efficient Embedding of a Verifiable Assembly Language<\/a><\/h4>\r\n<p style=\"padding-left: 30px\">Aymeric Fromherz, Nick Giannarakis, <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/chrishaw\/\">Chris Hawblitzel<\/a>, Bryan Parno, <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/aseemr\/\">Aseem Rastogi<\/a>, <a href=\"https:\/\/research.microsoft.com\/~nswamy\">Nikhil Swamy<\/a><\/p>\r\n\r\n<h3>Co-Located Conferences<\/h3>\r\n<h4>Tuesday, January 15, 2019 | 4:30 PM\u20135:00 PM | Networks and Concurrency at VMCAI\r\n<a href=\"https:\/\/popl19.sigplan.org\/event\/vmcai-2019-fast-bgp-simulation-of-large-datacenters\" target=\"_blank\" rel=\"noopener\">Fast BGP Simulation of Large Datacenters<\/a><\/h4>\r\n<p style=\"padding-left: 30px\"><a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/nlopes\/\">Nuno Lopes<\/a>, <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/rybal\/\">Andrey Rybalchenko<\/a><\/p>"},{"id":2,"name":"Open Source Tools","content":"<h4>Open Source Tools for System Correctness<\/h4>\r\n<strong>Automata:<\/strong> <a href=\"https:\/\/github.com\/AutomataDotNet\/Automata\" target=\"_blank\" rel=\"noopener\">Automata<\/a> is a .NET library that provides algorithms for composing and analyzing regular expressions, automata, and transducers. In addition to classical word automata, it also includes algorithms for analysis of tree automata and tree transducers. The library covers algorithms over finite alphabets as well as their symbolic counterparts. Predicates can be supported by an SMT solver as a plugin.\r\n\r\n<strong>Corral Program Verifier:<\/strong>\u00a0<a href=\"https:\/\/github.com\/boogie-org\/corral\" target=\"_blank\" rel=\"noopener\">Corral<\/a> is a whole-program analysis tool for\u00a0<a href=\"https:\/\/github.com\/boogie-org\/boogie\" target=\"_blank\" rel=\"noopener\">Boogie<\/a>\u00a0programs. Corral uses goal-directed symbolic search techniques to find assertion violations.\u00a0It leverages the automated\u00a0theorem prover Z3. Corral, by default, does a bounded search up to a recursion depth and fixed number of context switches. Corral also supports the\u00a0<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/project\/duality\/\" target=\"_blank\" rel=\"noopener\">Duality<\/a>\u00a0extension for constructing\u00a0inductive proofs of correctness of programs.\r\n\r\n<strong>Ivy:<\/strong> <a href=\"https:\/\/github.com\/Microsoft\/ivy\" target=\"_blank\" rel=\"noopener\">IVy<\/a> is a tool intended to allow interactive development of protocols and their proofs of correctness and to provide a platform for developing and experimenting with automated proof techniques. In particular, IVy provides interactive visualization of automated proofs, and supports a use model in which the human protocol designer and the automated tool interact to expose errors and prove correctness.\r\n\r\n<strong>Lean Theorem Prover:<\/strong> <a href=\"http:\/\/leanprover.github.io\/\" target=\"_blank\" rel=\"noopener\">Lean<\/a> is an open source theorem prover and programming language. Lean aims to bridge the gap between interactive and automated theorem proving, by situating automated tools and methods in a framework that supports user interaction and the construction of fully specified axiomatic proofs.\r\n\r\n<strong>P\/P#:<\/strong> <a href=\"https:\/\/github.com\/p-org\" target=\"_blank\" rel=\"noopener\">P\/P#<\/a> are languages for asynchronous event-driven programming that allow the programmer to specify the system as a collection of interacting state machines, which communicate with each other using events. P\/P# unifies modeling and programming into one activity for the programmer. Not only can a P\/P# program be compiled into executable code, but it can also be validated using systematic testing.\r\n\r\n<strong>Project Everest:<\/strong> <a href=\"https:\/\/project-everest.github.io\/\" target=\"_blank\" rel=\"noopener\">Everest<\/a> is the combination of the following projects, that together are used to prove correct\/secure and generate a C library that efficiently implements TLS 1.3\r\n<ul>\r\n \t<li><a href=\"https:\/\/fstar-lang.org\/\" target=\"_blank\" rel=\"noopener\">F*<\/a>, a verification-oriented dialect of ML<\/li>\r\n \t<li><a href=\"https:\/\/github.com\/mitls\/hacl-star\" target=\"_blank\" rel=\"noopener\">HACL*<\/a>, a verified library of cryptographic primitives written in F*<\/li>\r\n \t<li><a href=\"https:\/\/github.com\/FStarLang\/kremlin\/\" target=\"_blank\" rel=\"noopener\">KreMLin<\/a>, a compiler from a subset of F* to C<\/li>\r\n \t<li><a href=\"https:\/\/mitls.org\/\" target=\"_blank\" rel=\"noopener\">miTLS<\/a>, an implementation of the TLS protocol, written in F*<\/li>\r\n \t<li><a href=\"https:\/\/github.com\/project-everest\/vale\" target=\"_blank\" rel=\"noopener\">Vale<\/a>, a domain-specific language designed to implement verified cryptographic primitives in assembly<\/li>\r\n<\/ul>\r\n<strong>TLA+: <\/strong><a href=\"https:\/\/github.com\/tlaplus\/tlaplus\" target=\"_blank\" rel=\"noopener\">TLA+<\/a> is based on the idea that the best way to describe things formally is with simple mathematics, and that a specification language should contain as little as possible beyond what is needed to write simple mathematics precisely. TLA+ is especially well suited for writing high-level specifications of concurrent and distributed systems.\r\n\r\n<strong>Network Verification:<\/strong>\u00a0<a href=\"https:\/\/github.com\/Z3Prover\/FirewallChecker\" target=\"_blank\" rel=\"noopener\">Firewall Checker<\/a>\u00a0is a firewall analysis library using the Z3 SMT Solver from Microsoft Research. Includes console applications to check the equivalence of two firewalls, or analyze the action of a firewall on a single packet. It was developed for use inside Microsoft Azure to analyze changes to Windows Firewall generation logic. It is one part of much larger effort to verify aspects of data center configuration and behavior.\r\n\r\n<strong>Verisol:<\/strong> <a href=\"https:\/\/github.com\/Microsoft\/verisol\" target=\"_blank\" rel=\"noopener\">VeriSol<\/a> (Verifier for Solidity) is a prototype formal verification and analysis system for smart contracts developed in the popular\u00a0<a href=\"https:\/\/solidity.readthedocs.io\/en\/\" target=\"_blank\" rel=\"noopener\">Solidity<\/a>\u00a0programming language. It is based on translating programs in Solidity language to programs in\u00a0<a href=\"https:\/\/github.com\/boogie-org\/boogie\" target=\"_blank\" rel=\"noopener\">Boogie<\/a>\u00a0intermediate verification language, and then leveraging the verification toolchain for Boogie programs.\r\n\r\n<strong>Z3 Theorem Prover:\u00a0<\/strong><a href=\"https:\/\/github.com\/Z3Prover\/z3\" target=\"_blank\" rel=\"noopener\">Z3<\/a> is an automated theorem prover in the satisfiability-modulo-theories (SMT) family, under research\/development for over a decade at Microsoft Research and widely deployed in the industry for a wide range of uses, from program verification to product configuration."}],"msr_startdate":"2019-01-13","msr_enddate":"2019-01-19","msr_event_time":"","msr_location":"Cascais\/Lisbon, Portugal","msr_event_link":"https:\/\/popl19.sigplan.org\/attending\/Registration","msr_event_recording_link":"","msr_startdate_formatted":"January 13, 2019","msr_register_text":"Watch now","msr_cta_link":"https:\/\/popl19.sigplan.org\/attending\/Registration","msr_cta_text":"Watch now","msr_cta_bi_name":"Event Register","featured_image_thumbnail":"<img width=\"960\" height=\"360\" src=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2018\/12\/1920x720-header-POPL-2019.jpg\" class=\"img-object-cover\" alt=\"POPL 2019\" decoding=\"async\" loading=\"lazy\" srcset=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2018\/12\/1920x720-header-POPL-2019.jpg 1920w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2018\/12\/1920x720-header-POPL-2019-300x113.jpg 300w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2018\/12\/1920x720-header-POPL-2019-768x288.jpg 768w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2018\/12\/1920x720-header-POPL-2019-1024x384.jpg 1024w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2018\/12\/1920x720-header-POPL-2019-1600x600.jpg 1600w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/>","event_excerpt":"Microsoft is excited to be a Platinum sponsor of the 46th ACM SIGPLAN Symposium on Principles of Programming Languages. Stop by our booth to learn about our latest research and find out about career opportunities with Microsoft.","msr_research_lab":[199561,199565],"related-researchers":[],"msr_impact_theme":[],"related-academic-programs":[],"related-groups":[],"related-projects":[235367],"related-opportunities":[],"related-publications":[],"related-videos":[],"related-posts":[557352,559317,559821],"_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-event\/558255","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-event"}],"about":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/types\/msr-event"}],"version-history":[{"count":6,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-event\/558255\/revisions"}],"predecessor-version":[{"id":1147060,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-event\/558255\/revisions\/1147060"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media\/558522"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media?parent=558255"}],"wp:term":[{"taxonomy":"msr-research-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/research-area?post=558255"},{"taxonomy":"msr-region","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-region?post=558255"},{"taxonomy":"msr-event-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-event-type?post=558255"},{"taxonomy":"msr-video-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-video-type?post=558255"},{"taxonomy":"msr-locale","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-locale?post=558255"},{"taxonomy":"msr-program-audience","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-program-audience?post=558255"},{"taxonomy":"msr-post-option","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-post-option?post=558255"},{"taxonomy":"msr-impact-theme","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-impact-theme?post=558255"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}