<div dir="ltr"><p style="color:rgb(0,0,0);font-family:Times;font-size:16px">Hi Haskellers, </p><p style="color:rgb(0,0,0);font-family:Times;font-size:16px">I recently joined IMDEA and looking for talented Ph.D. students and interns to work with.<br></p><h2 id="gmail-projects" style="color:rgb(0,0,0);font-family:Times"><font size="4">Projects</font></h2><p style="color:rgb(0,0,0);font-family:Times;font-size:16px">My current open projects focus on how to establish <a href="https://ucsd-progsys.github.io/liquidhaskell-blog/">Liquid Haskell</a> as a practical and useful theorem prover. Ideas I would like to explore include:</p><ul style="color:rgb(0,0,0);font-family:Times;font-size:16px"><li><p><strong>Integration with Compiler & Compiler Optimizations:</strong> The major goal of verification is to prove that your code satisfies certain correctness properties. But, once your correctness properties are proved, the compiler could use them to optimize the running times. For example properties like associativity, map fusion, and class laws could, and should, be used for provably correct compiler optimizations. The goal of this project is how the Haskell compiler can automatically take full advantage of Liquid Haskell generated proofs.</p></li><li><p><strong>Error Reporting:</strong> Error messages are terrible! This is the case in most systems that include type inference, see <code>ghc</code>, and Liquid Haskell is not an exception. <a href="https://nikivazou.github.io/static/oopsla18main-p124-p.pdf">Recently</a>, the idea of using gradual types for error explanation was explored. The goal of this project is to further explore the interaction between gradual types and error reporting, or use further concepts, such as testing to aid error explanation.</p></li><li><p><strong>Interactive Proving Environment:</strong> For theorem proving to be usable, proof generation should be interactively directed by the prover. Towards this goal, this project aims to investigate how existing techniques such as tactics and interactive environments from interactive theorem provers like Coq and Isabelle/HOL can be adapted to aid proof generation in Liquid Haskell. At the same time, proof generation can be aided by Haskell’s code generation infrastructures such as the automatic code derivation mechanisms.</p></li></ul><p style="color:rgb(0,0,0);font-family:Times;font-size:16px">My passion is functional programing and practical program verification, so I am happy to discuss new research ideas in any of these directions.</p><h2 id="gmail-requirements" style="color:rgb(0,0,0);font-family:Times"><font size="4">Requirements</font></h2><p style="color:rgb(0,0,0);font-family:Times;font-size:16px">If you want to apply for a Ph.D. position you are required to have an undergraduate degree in Computer Science or a closely related area and have strong interest in functional programming.</p><h2 id="gmail-about-imdea" style="color:rgb(0,0,0);font-family:Times"><font size="4">About IMDEA</font></h2><p style="color:rgb(0,0,0);font-family:Times;font-size:16px">The <a href="https://software.imdea.org/index.html">IMDEA Software Institute</a> is <a href="http://csrankings.org/#/index?plan&europe">ranked</a> among the best european institutes in the areas of Programming Languages and Computer Security. Located in the <a href="https://software.imdea.org/contact_and_directions/building.html">Montegancedo Science and Technology Park</a> it perfectly combines the sunny and vibrant city of Madrid with cutting edge research and competitive salaries.</p><h2 id="gmail-how-to-apply" style="color:rgb(0,0,0);font-family:Times"><font size="4">How to apply?</font></h2><p style="color:rgb(0,0,0);font-family:Times;font-size:16px">To apply send me an email at <a href="mailto:niki.vazou@imdea.org">niki.vazou@imdea.org</a> with your CV and submit an online application at IMDEA’s <a href="http://software.imdea.org/open_positions.html">open positions</a>.</p><div><br></div>Best, <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">Niki Vazou</div></div>