Skip to content
mimi

Engineer for Generative Formal Code Annotations

Inria

Rennes · Hybrid Contract Mid Level From €3k/mo 3d ago

About the role

Contrat renouvelable

Oui

Niveau de diplôme exigé

Thèse ou équivalent

Fonction

Ingénieur scientifique contractuel

Niveau d'expérience souhaité

De 3 à 5 ans

À propos du centre ou de la direction fonctionnelle

Le centre Inria de l'Université de Rennes est l'un des huit centres d’Inria et compte plus d'une trentaine d’équipes de recherche. Le centre Inria est un acteur majeur et reconnu dans le domaine des sciences numériques. Il est au cœur d'un riche écosystème de R&D et d’innovation : PME fortement innovantes, grands groupes industriels, pôles de compétitivité, acteurs de la recherche et de l’enseignement supérieur, laboratoires d'excellence, institut de recherche technologique.

Contexte et atouts du poste

The Epicure team at Inria Rennes is looking for an engineer with a strong background in Artificial Intelligence (AI). The engineer will join a collaboration between Inria and Mitsubishi Electric R&D Centre Europe (MERCE) on formal reasoning applied to AI for software engineering.

Epicure is a team with a longstanding experience on formal methods, proof assistants, program semantics, static analysis and abstract interpretation.

Mission confiée

We are looking for an engineer doc candidate with a strong experience in Large Language Models (LLMs) or Reinforcement learning (RL) to propose new AI techniques to generate correct and informative formal code annotations from program source. In particular, we want to evaluate the potential of Large Language Models and Reinforcement Learning for improving the process of engineering verified software. In deductive verification, properties on the software are stated in a specific program logic and proven by automatic provers. For the proofs to be completed, the user is generally required to annotate the code with program invariants, i.e., additional logic formulas to help the automatic prover to carry out the proof. Finding an invariant that unlocks a stuck proof is a tedious, time‑consuming and non‑trivial. This problem is one of the main obstacle for a wider adoption of deductive verification techniques for the formal verification of programs.

Principales activités

We first want to evaluate the capabilities of existing LLMs to produce relevant code annotations, given a program source and a final property to prove on this program. We plan to compare with what can be obtained using traditional program verification techniques such as abstract interpretation. The target language is C and Frama‑C code annotations (https://frama-c.com/). MERCE has an extensive knowledge and corpus of industrial C programs. A possible stepping stone is the WhyML language with Why3 code annotations (https://www.why3.org/).

LLMs have proved successful in guessing simple invariants [5, 2, 3, 1, 4], but it remains to be determined how good they are to infer more complex invariants. This is due to the small size of the available corpus of verified/annotated programs. To overcome this limitation, the second step of the project will investigate the potential for training an ML model for generating invariants using an RL loop.

  • Sub‑task A: Implement invariant guessing on program logic tools (e.g. Frama‑C, Why3) with existing LLMs and investigate their strengths and weaknesses.
  • Sub‑task B: Building an RL loop for training a dedicated ML model to infer invariants. Generated invariants will be analyzed by automatic provers for positive scoring and counterexample generators for negative scoring. Mutation of the verified code will be used to detect and reject the weakest properties (e.g., useless tautologies).

Références

[1] Sandra Greiner, Noah B¨uhlmann, Manuel Ohrndorf, Christos Tsigkanos, Oscar Nierstrasz, and Timo Kehrer. Automated generation of code contracts: Generative ai to the rescue? In Proceedings of the 23rd ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences, pages 1–14, 2024.

[2] A. Kamath, N. Mohammed, A. Senthilnathan, S. Chakraborty, P. Deligiannis, S.-K. Lahiri, A. Lal, A. Rastogi, S. Roy, and R. Sharma. Leveraging LLMs for Program Verification. In FMCAD’24, pages 107–118. IEEE, 2024.

[3] X. Si, A. Naik, H. Dai, M. Naik, and L. Song. Code2inv: A deep Learning Framework for Program Verification. In CAV’20, volume 12225 of LNCS, pages 151–164. Springer, 2020.

[4] Samuel Teuber and Bernhard Beckert. Next steps in llm‑supported java verification. arXiv preprint arXiv:2502.01573, 2025.

[5] Haoze Wu, Clark Barrett, and Nina Narodytska. Lemur: Integrating large language models in automated program verification. arXiv preprint arXiv:2310.04870, 2023.

Compétences

Skills:

  • Strong experience in artificial intelligence
  • Solid background in software development
  • Good writing skills in english
  • Familiarity with functional programming is a plus

Avantages

  • Restauration subventionnée
  • Transports publics remboursés partiellement
  • Congés: 7 semaines de congés annuels + 10 jours de RTT (base temps plein) + possibilité d'autorisations d'absence exceptionnelle (ex : enfants malades, déménagement)
  • Possibilité de télétravail (après 6 mois d'ancienneté) et aménagement du temps de travail
  • Équipements professionnels à disposition (visioconférence, prêts de matériels informatiques, etc.)
  • Prestations sociales, culturelles et sportives (Association de gestion des œuvres sociales d'Inria)
  • Accès à la formation professionnelle
  • Sécurité sociale

Rémunération

À partir de 2695 € brut ou selon diplômes et expériences

Informations générales

  • Thème/Domaine : Preuves et vérification
  • Ville : Rennes
  • Centre Inria : Centre Inria de l'Université de Rennes
  • Date de prise de fonction souhaitée : 2026‑05‑04
  • Durée de contrat : 12 mois
  • Date limite pour postuler : 2026‑06‑01

Consignes pour postuler

Merci de déposer votre CV et lettre de motivation en ligne.

Sécurité défense

Ce poste est susceptible d’être affecté dans une zone à régime restrictif (ZRR), telle que définie dans le décret n°2011‑1425 relatif à la protection du potentiel scientifique et technique de la nation (PPST). L’autorisation d’accès à une zone est délivrée par le chef d’établissement, après avis ministériel favorable, tel que défini dans l’arrêté du 03 juillet 2012, relatif à la PPST. Un avis ministériel défavorable pour un poste affecté dans une ZRR aurait pour conséquence l’annulation du recrutement.

Politique de recrutement

Dans le cadre de sa politique diversité, tous les postes Inria sont accessibles aux personnes en situation de handicap.

Contacts

À propos d'Inria

Inria est l’institut national de recherche dédié aux sciences et technologies du numérique. Il emploie 2600 personnes. Ses 215 équipes‑projets agiles, en général communes avec des partenaires académiques, impliquent plus de 3900 scientifiques pour relever les défis du numérique, souvent à l’interface d’autres disciplines. L’institut fait appel à de nombreux talents dans plus d’une quarantaine de métiers différents. 900 personnels d’appui à la recherche et à l’innovation contribuent à faire émerger et grandir des projets scientifiques ou entrepreneuriaux qui impactent le monde. Inria travaille avec de nombreuses entreprises et a accompagné la création de plus de 200 start‑up. L'institut s’efforce ainsi de répondre aux enjeux de la transformation numérique de la science, de la société et de l'économie.

Requirements

  • Strong experience in artificial intelligence
  • Solid background in software development
  • Good writing skills in english

Responsibilities

  • Implement invariant guessing on program logic tools (e.g. Frama-C, Why3) with existing LLMs and investigate their strengthes and weaknesses.
  • Building an RL loop for training a dedicated ML model to infer invariants.

Benefits

subsidized cateringpartially reimbursed public transport7 weeks annual leave10 days RTTexceptional absence leaveprofessional equipmentsocial, cultural and sports benefitsprofessional training accesssocial security

Skills

AICFrama-CLLMRLWhy3

Don't send a generic resume

Paste this job description into Mimi and get a resume tailored to exactly what the hiring team is looking for.

Get started free