Bonjour,
Je travaille sur un projet où l’utilisateur doit fournir des propositions logiques très simples à mon programme : (qui représentent la présence ou non de certains éléments dans le résultat final) :
Du type:
M1 => M2 and M3
M2 and M3 => M4
M1 => M4 xor M5
M2 => M5
où l’on a affaire à des variables booléennes. L’utilisateur peut choisir un seul ou plusieurs des membres de gauche, et les valeurs des autres variables sont déduites du choix de l’utilisateur. Par exemple si l’utilisateur choisit "M2 and M3", M4 sera vraie dans le résultat, et c’est tout ce qui peut être déduit.
Ces propositions doivent être compatibles et ne pas se contredire lorsqu’un seul des membres de gauche est choisi. Je veux vérifier en amont que ce fichier fourni est correct.
Par exemple ci-dessus, si l’utilisateur choisit de mettre M1 à "vrai", il y aura contradiction.
Mais je n’ai pas trouvé de bibliothèque en python permettant de réaliser simplement et en amont cette vérification. Les solutions que j’ai étudiées sont :
- Interfacer python avec prolog avec pySwip (beaucoup trop lourd ?)
- Utiliser une bibliothèque comme Kanren … mais qui me paraît beaucoup trop compliquée, mal documentée, et je n’arrive même pas à gérer une simple implication avec.
Connaissez-vous une solution simple ?
Merci d’avance,