{"id":4299,"date":"2019-12-13T14:11:02","date_gmt":"2019-12-13T17:11:02","guid":{"rendered":"http:\/\/www.inf.ufrgs.br\/profcomp\/?page_id=4299"},"modified":"2021-07-01T19:45:27","modified_gmt":"2021-07-01T22:45:27","slug":"cmp194","status":"publish","type":"page","link":"https:\/\/www.inf.ufrgs.br\/profcomp\/lista-de-disciplinas\/cmp194\/","title":{"rendered":"CMP194"},"content":{"rendered":"<p><strong>Foundations for Rigorous Software Development<\/strong><\/p>\n<p><strong>Professor<\/strong>: \u00c1lvaro Freitas Moreira<br \/>\n<strong>Prerequisites<\/strong>: \u2013<br \/>\n<strong>Hours<\/strong>: 60 hs<br \/>\n<strong>Credits<\/strong>: 4<br \/>\n<strong>Semesters<\/strong>: First<br \/>\n<strong>Undergraduate Enrollment<\/strong>: INF05013<br \/>\n<strong>Page Link<\/strong>: \u2013<\/p>\n<p>&nbsp;<\/p>\n<p><strong>SUMMARY<\/strong><\/p>\n<p>Lambda Calculus, Simply Typed Lambda Calculus, Polymorphic Types, Dependent Types, Calculus of Constructions, Constructive Interpretation of Propositional and Predicate Logic.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>OBJECTIVES<\/strong><\/p>\n<p>Programming languages defined on top of formally defined cores together with proof assistants are fundamental tools for rigorous software development. The goals of this course are: (i) to present to the students variations of the lambda calculus, both in the untyped version and in typed versions with simple types and their extensions such as polymorphic and dependent types, (ii) understand the foundations of modern proof assistants like Coq and Agda, as well as (iii) the foundations of modern programming languages such as Haskell, Ocaml, and F#.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>PROGRAM<\/strong><\/p>\n<p>&#8211; Lambda Calculus \u2013 semantics and properties<\/p>\n<p>&#8211; Simply Typed Lambda Calculus \u2013 semantic and properties<\/p>\n<p>&#8211; Constructive Interpretation of Propositional Logic<\/p>\n<p>&#8211; Lambda Calculus with Polymorphic Types \u2013 semantics and properties<\/p>\n<p>&#8211; Lambda Calculus with Dependent Types &#8211; semantics and properties<\/p>\n<p>&#8211; Calculus of Constructions \u2013 semantics, and properties<\/p>\n<p>&#8211; Constructive Interpretation of Predicate Logic<\/p>\n<p>&nbsp;<\/p>\n<p><strong>EVALUATION<\/strong><\/p>\n<p>The evaluation will consist of a number of lists of exercises to be solved individually by the students. The final score M will be given by the arithmetic mean of the scores on the exercises. The final grade can be improved by also taking into account subjective criteria such as class participation and attendance.<\/p>\n<p>The possible grades are A (score &gt;= 9.0), B (score &gt;= 7.5 and &lt; 9.0), C (score &gt;= 6.0 and &lt; 7.5), D (failed, score&lt; 6.0) or FF (failed, the student attended less than 75% of the classes).<\/p>\n<p>&nbsp;<\/p>\n<p><strong>BIBLIOGRAPHY<\/strong><\/p>\n<ol>\n<li>Rob Nederpelt and Herman Geuvers. Type Theory and Formal Proof: An Introduction. Cambridge University Press, 2014. ISBN 9781316056349<\/li>\n<li>Benjamin Pierce. Types and programming languages. Cambridge: MIT Press, 2002. ISBN 0262162091<\/li>\n<li>Papers on the specific topics discussed will also be recommended<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Foundations for Rigorous Software Development Professor: \u00c1lvaro Freitas Moreira Prerequisites: \u2013 Hours: 60 hs Credits: 4 Semesters: First Undergraduate Enrollment: INF05013 Page Link: \u2013 &nbsp; SUMMARY Lambda Calculus, Simply Typed Lambda Calculus, Polymorphic Types, Dependent Types, Calculus of Constructions, Constructive Interpretation of Propositional and Predicate Logic. &nbsp; OBJECTIVES Programming languages defined on top of formally [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":0,"parent":462,"menu_order":194,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/www.inf.ufrgs.br\/profcomp\/wp-json\/wp\/v2\/pages\/4299"}],"collection":[{"href":"https:\/\/www.inf.ufrgs.br\/profcomp\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.inf.ufrgs.br\/profcomp\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.inf.ufrgs.br\/profcomp\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inf.ufrgs.br\/profcomp\/wp-json\/wp\/v2\/comments?post=4299"}],"version-history":[{"count":1,"href":"https:\/\/www.inf.ufrgs.br\/profcomp\/wp-json\/wp\/v2\/pages\/4299\/revisions"}],"predecessor-version":[{"id":4300,"href":"https:\/\/www.inf.ufrgs.br\/profcomp\/wp-json\/wp\/v2\/pages\/4299\/revisions\/4300"}],"up":[{"embeddable":true,"href":"https:\/\/www.inf.ufrgs.br\/profcomp\/wp-json\/wp\/v2\/pages\/462"}],"wp:attachment":[{"href":"https:\/\/www.inf.ufrgs.br\/profcomp\/wp-json\/wp\/v2\/media?parent=4299"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}