diff --git a/solutions/EMFSolutionATL/src/ttc2019/TT2BDD.atl b/solutions/EMFSolutionATL/src/ttc2019/TT2BDD.atl
index 707affc7696b066e9b26ef3ec0be38ca3bf0c70a..cf3cbbe8191ddaee207116413a9b563e6f80be32 100644
--- a/solutions/EMFSolutionATL/src/ttc2019/TT2BDD.atl
+++ b/solutions/EMFSolutionATL/src/ttc2019/TT2BDD.atl
@@ -69,29 +69,29 @@ rule Cell2Subtree {
 }
 
 ---------------------------------------------------------------------------------------------------
--- Partitionner une partie de la table de vérité.
+-- Partition one part of the truth table.
 --
--- Ce helper effectue un travail préparatoire à la création d'un arbre binaire.
--- En prenant une sous-ensemble des lignes d'une table de vérité et un port de référence, il 
--- retourne deux sous-ensembles de lignes : celles pour lesquelles le port vaut faux
--- et celles pour lesquelles le port vaut vrai.
+-- This helper performs some preparatory work before the creation of a binary tree.
+-- It takes a subsequence of the rows of a truth table and a certain port, and returns
+-- two subsequences of rows: cells for which the port is false, and cells for which the
+-- port is true.
 --
--- Entrées :
---    rows : l'ensemble des lignes à traiter
---    port : le port qui doit servir de référence au partitionnement
+-- Inputs:
+--    rows : the collection of lines to be processed.
+--    port : the port which should act as a reference for the partitioning.
 --
--- Sorties :
---    un tuple contenant :
---       zeroPart : l'ensemble des lignes pour lesquelles ce port vaut zéro (faux)
---       onePart  : l'ensemble des lignes pour lesquelles ce port vaut un (vrai)
+-- Outputs:
+--    a tuple that contains:
+--       zeroPart : the collection of rows for which the port is 0 (false)
+--       onePart  : the collection of rows for which the port is 1 (true)
 --
--- Préconditions :
+-- Preconditions :
 --
---    Le port à utiliser doit être un port d'entrée :
+--    The port to be used must be an input port :
 --
 --       port.oclIsKindOf(TT!InputPort))
 --
---    Sa valeur est définie dans toutes les lignes
+--    The value is defined for all rows:
 --
 --         rows->forAll(r |
 --            r.cells->collect(c | c.port)
@@ -102,7 +102,7 @@ helper def:
    getPartition(rows : Sequence(TT!Row), port : TT!Port)
       : TupleType( zeroPart : Sequence(TT!Row) , onePart : Sequence(TT!Row) ) =
       
-      -- Sélectionner les lignes pour lesquelles ce port vaut faux
+      -- Select the rows for which the port is false
       let _zeroPart : Sequence(TT!Row) =
          rows->select(r |
             r.cells->exists(c |
@@ -110,7 +110,7 @@ helper def:
             )
          ) in
          
-      -- Sélectionner les lignes pour lesquelles ce port vaut vrai
+      -- Select the rows for which the port is true
       let _onePart : Sequence(TT!Row) =
          rows->select(r |
             r.cells->exists(c |
@@ -118,7 +118,7 @@ helper def:
             )
          ) in
 
-      -- Construire le tuple résultat
+      -- Build the resulting tuple
       Tuple{
          zeroPart = _zeroPart,
          onePart = _onePart
@@ -149,8 +149,7 @@ helper def:
    getTree(rows : Sequence(TT!Row), usablePorts : Sequence(TT!Port))
       : TupleType( cell : TT!Cell , zeroSubtree : OclAny , oneSubtree : OclAny ) =
 
-      -- Parmi tous les ports utilisables, en choisir un dont la valeur est définie
-      -- dans toutes les lignes
+      -- Among the usable ports, select one where the value is defined in all rows
       let _port : TT!Port =
          usablePorts->any(p |
             rows->forAll(r |
@@ -159,19 +158,19 @@ helper def:
             )
          ) in
       
-      -- Sélectionner une cellule qui définit une valeur pour ce port
+      -- Select a cell which defines a value for the port
       let _cell : TT!Cell =
          rows->first().cells->any(c | c.port = _port) in
          
-      -- Partitionner l'ensemble de lignes fourni
+      -- Partition the provided collection of rows
       let _part : TupleType( zeroPart : Sequence(TT!Row), onePart : Sequence(TT!Row) ) =
          thisModule.getPartition(rows, _port) in
 
-      -- Définir le nouvel ensemble de ports utilisables pour les partitionnements ultérieurs
+      -- Define the new collection of usable ports for the resulting partitionings
       let _updatedPorts : Sequence(TT!Port) =
          usablePorts->excluding(_port) in
             
-      -- Construire le tuple résultat : une structure d'arbre est construite récursivement
+      -- Build the resulting tuple : the tree structure is created recursively
       Tuple{
          cell = _cell,
          zeroSubtree =
@@ -189,9 +188,9 @@ helper def:
       };
 
 ---------------------------------------------------------------------------------------------------
--- Obtenir l'arbre représentatif d'une table de vérité complète.
+-- Obtain the tree which represents an entire trust table.
 --
--- Ce helper construit une structure d'arbre en utilisant thisModule.getTree().
+-- This helper builds a tree structure using thisModule.getTree().
 ---------------------------------------------------------------------------------------------------
 helper context TT!TruthTable def:
    getTree()
@@ -241,10 +240,10 @@ helper def:
       endif endif;
 
 ---------------------------------------------------------------------------------------------------
--- Obtenir, pour une cellule donnée d'une table de vérité, le noeud correspondant dans l'arbre
--- représentatif de cette table.
+-- Obtain, for a given truth table cell, the matching node within the corresponding
+-- binary decision tree.
 --
--- Ce helper utilise getTree et findCell.
+-- This helper uses getTree and findCell.
 ---------------------------------------------------------------------------------------------------
 helper context TT!Cell def:
    getNode()