Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sauzeauyannis/ls-projet
An interpreter for an imperative language and a Hoare logic prover
https://github.com/sauzeauyannis/ls-projet
coq hoare-logic imperative-language interpreter ocaml prover school-project
Last synced: about 2 months ago
JSON representation
An interpreter for an imperative language and a Hoare logic prover
- Host: GitHub
- URL: https://github.com/sauzeauyannis/ls-projet
- Owner: SauzeauYannis
- Archived: true
- Created: 2022-03-05T08:37:26.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-06-30T08:24:41.000Z (over 2 years ago)
- Last Synced: 2024-09-27T06:41:04.993Z (about 2 months ago)
- Topics: coq, hoare-logic, imperative-language, interpreter, ocaml, prover, school-project
- Language: OCaml
- Homepage:
- Size: 468 KB
- Stars: 0
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# LS-Projet
##### Table of Contents
* [Français](#fr)
* [Présentation](#fr_pr)
* [Utilisation](#fr_ut)
* [Compétences acquises](#fr_cp)
* [Résultat](#fr_rs)
* [English](#en)
* [Presentation](#en_pr)
* [Use](#en_u)
* [Skills acquired](#en_sk)
* [Result](#en_rs)## Français
### Présentation
Ce projet a été effectué en quatrième année du [CMI Informatique](http://formations.univ-poitiers.fr/fr/index/autre-diplome-niveau-master-AM/autre-diplome-niveau-master-AM/cmi-informatique-JD2XQGVY.html) à l'[UFR SFA Université de Poitiers](https://sfa.univ-poitiers.fr/) dans le cadre de l'enseignement [Logiciels sûrs](https://formations.univ-poitiers.fr/fr/index/autre-diplome-niveau-master-AM/autre-diplome-niveau-master-AM/cmi-informatique-JD2XQGVY/cmi-parcours-conception-logicielle-K56KZ5KL/specialite-s8-K5C80CME/ue-a-choix-s2-KVWH4P9T/logiciels-surs-KZSZWASS.html).
Ce projet a été développé en trinôme avec l'IDE [Visual Studio Code](https://code.visualstudio.com/).
### Utilisation
Notre code se trouve dans le fichier [projet.ml](https://github.com/SauzeauYannis/LS-Projet/blob/main/projet.ml), ce fichier peut être interprété pas à pas ou bien être exécuté.
Pour exécuter notre projet, il suffit d'utiliser la commande `make` qui compile les sources, vous pouvez ensuite lancer le projet avec la commande `./a.out`.
### Compétences acquises
* Vérification formelle de logiciels
* Introduction à l’assistant de preuves Coq
* Validation et vérification d’un programme
* Preuve de propriétés d’un programme
* Limites des techniques de tests
* Vérification par la preuve formelle de programmes
* Périmètre de la vérification formelle
* Notions d’équivalence de programmes et de transformations de programmes
* Logique de Hoare
* Triplets de Hoare
* Assertions
* Décoration de programmes
* Invariants de boucles
* Précondition la plus faible### Résultat
Nous avons obtenu la note de 20/20.
## English
### Presentation
This project was done in the fourth year of the [CMI Computer Science](http://formations.univ-poitiers.fr/fr/index/autre-diplome-niveau-master-AM/autre-diplome-niveau-master-AM/cmi-informatique-JD2XQGVY.html) at the [UFR SFA Université de Poitiers](https://sfa.univ-poitiers.fr/) in the context of the teaching [Secure software](https://formations.univ-poitiers.fr/fr/index/autre-diplome-niveau-master-AM/autre-diplome-niveau-master-AM/cmi-informatique-JD2XQGVY/cmi-parcours-conception-logicielle-K56KZ5KL/specialite-s8-K5C80CME/ue-a-choix-s2-KVWH4P9T/logiciels-surs-KZSZWASS.html).
This project was developed in trinomial with the IDE [Visual Studio Code](https://code.visualstudio.com/).
### Use
Our code is in the file [project.ml](https://github.com/SauzeauYannis/LS-Projet/blob/main/projet.ml), this file can be interpreted step by step or executed.
To execute our project, you just have to use the command `make` which compiles the sources, you can then launch the project with the command `./a.out`.
### Skills acquired
* Formal software verification
* Introduction to the Coq proof assistant
* Validation and verification of a program
* Proof of program properties
* Limits of testing techniques
* Verification by formal proof of programs
* Perimeter of formal verification
* Notions of program equivalence and program transformations
* Hoare logic
* Hoare's triplets
* Assertions
* Decoration of programs
* Loop invariants
* Weakest precondition
### Result
We obtained a score of 20/20.