{"id":4402,"date":"2014-09-10T06:00:02","date_gmt":"2014-09-10T04:00:02","guid":{"rendered":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/?p=4402"},"modified":"2014-09-07T12:21:26","modified_gmt":"2014-09-07T10:21:26","slug":"resena-combining-proofs-and-programs-in-a-dependently-typed-language","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/resena-combining-proofs-and-programs-in-a-dependently-typed-language\/","title":{"rendered":"Rese\u00f1a: Combining proofs and programs in a dependently typed language"},"content":{"rendered":"<p>Se ha publicado un art\u00edculo de razonamiento formalizado en Coq titulado [Combining proofs and programs in a dependently typed language](<\/p>\n<p>Sus autores son <a href=\"http:\/\/www.seas.upenn.edu\/~ccasin\">Chris Casinghino<\/a>, <a href=\"http:\/\/www.seas.upenn.edu\/~vilhelm\">Vilhelm Sj\u00f6berg<\/a> y <a href=\"http:\/\/www.seas.upenn.edu\/~sweirich\">Stephanie Weirich<\/a> (de la Universidad de Pensilvania, EE.UU.).<\/p>\n<p>Su resumen es<\/p>\n<blockquote><p>\n  <em>Most dependently-typed programming languages either require that all expressions terminate (e.g. Coq, Agda, and Epigram), or allow infinite loops but are inconsistent when viewed as logics (e.g. Haskell, ATS, \u03a9mega. Here, we combine these two approaches into a single dependently-typed core language. The language is composed of two fragments that share a common syntax and overlapping semantics: a logic that guarantees total correctness, and a call-by-value programming language that guarantees type safety but not termination. The two fragments may interact: logical expressions may be used as programs; the logic may soundly reason about potentially nonterminating programs; programs can require logical proofs as arguments; and &#8220;mobile&#8221; program values, including proofs computed at runtime, may be used as evidence by the logic. This language allows programmers to work with total and partial functions uniformly, providing a smooth path from functional programming to dependently-typed programming.<\/em>\n<\/p><\/blockquote>\n<p>El trabajo se present\u00f3 en el <a href=\"http:\/\/popl.mpi-sws.org\/2014\">POPL 2014<\/a> (<em>41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages<\/em>).<\/p>\n<p>El c\u00f3digo de las correspondientes teor\u00edas en &#8230; se encuentra <a href=\"http:\/\/www.cis.upenn.edu\/~ccasin\/papers\/combining-coq.tgz\">aqu\u00ed<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Se ha publicado un art\u00edculo de razonamiento formalizado en Coq titulado [Combining proofs and programs in a dependently typed language]( Sus autores son Chris Casinghino, Vilhelm Sj\u00f6berg y Stephanie Weirich (de la Universidad de Pensilvania, EE.UU.). Su resumen es Most dependently-typed programming languages either require that all expressions terminate (e.g. Coq, Agda, and Epigram), or&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"footnotes":"","_jetpack_memberships_contains_paid_content":false},"categories":[1],"tags":[45,285],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_likes_enabled":false,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/4402"}],"collection":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/comments?post=4402"}],"version-history":[{"count":2,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/4402\/revisions"}],"predecessor-version":[{"id":4404,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/4402\/revisions\/4404"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/media?parent=4402"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/categories?post=4402"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/tags?post=4402"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}