diff --git a/src/main/java/org/petriNet/Arc.java b/src/main/java/org/petriNet/Arc.java
index 0f04b62b6d812b95dba7600400e04f45c07dae9b..f2248c3cf6abc53400a2dd002ff5abcd03a756ef 100644
--- a/src/main/java/org/petriNet/Arc.java
+++ b/src/main/java/org/petriNet/Arc.java
@@ -44,6 +44,10 @@ public abstract class Arc {
     public Transition getTransition(){
         return this.transition;
     };
+
+    public void supprimerPlace(Place place) {
+        this.place = null;
+    }
 }
 
 
diff --git a/src/main/java/org/petriNet/PetriNetService.java b/src/main/java/org/petriNet/PetriNetService.java
index 95d8001148a085e9fb490f83c910247b4a991801..918fda7dfc6767fc3d8f11509cf2997ff2e46f2b 100644
--- a/src/main/java/org/petriNet/PetriNetService.java
+++ b/src/main/java/org/petriNet/PetriNetService.java
@@ -7,6 +7,12 @@ public interface PetriNetService {
 	public void ajouterTransition(Transition transition);
 	
 	public void ajouterArc(Arc arc);
+
+	public void supprimerPlace(Place place);
+
+	public void supprimerTransition(Transition transition);
+
+	public void supprimerArc(Arc arc);
 	
 	public void afficherEtat();
 
@@ -18,4 +24,5 @@ public interface PetriNetService {
 	public void afficherReseau();
 
 	public void tirer_transition(String id);
+
 }
diff --git a/src/main/java/org/petriNet/ReseauPetri.java b/src/main/java/org/petriNet/ReseauPetri.java
index 214359fc599b5d7ce5fbd8a331e7844fa31efd7d..4a15acfaa253b349a7a4cca5f3ce20c9a1ef4a8e 100644
--- a/src/main/java/org/petriNet/ReseauPetri.java
+++ b/src/main/java/org/petriNet/ReseauPetri.java
@@ -102,6 +102,36 @@ public class ReseauPetri implements PetriNetService {
 		this.arcs.add(arc);
 	}
 
+	/**
+	 * Supprimer une place entraîne la suppression de tous les arcs qui y sont liés.
+	 * Supprimer une transition entraîne la suppression de tous les arcs qui y sont liés.
+	 */
+
+	@Override
+	public void supprimerPlace(Place place) {
+		this.places.remove(place);
+		// remove all arcs linked to the place
+        this.arcs.removeIf(arc -> arc.getPlace().getId() == place.getId());
+	}
+
+	@Override
+	public void supprimerTransition(Transition transition) {
+		this.transitions.remove(transition);
+		// remove all arcs linked to the transition
+		this.arcs.removeIf(arc -> arc.getTransition().getId() == transition.getId());
+	}
+
+	@Override
+	public void supprimerArc(Arc arc) {
+		this.arcs.remove(arc);
+		// remove it from the list of arcs of the transition
+		if (arc instanceof Arc_ENTRANT) {
+			arc.getTransition().getArcs_ENTRANTS().remove(arc);
+		} else if (arc instanceof Arc_SORTANT) {
+			arc.getTransition().getArcs_SORTANTS().remove(arc);
+		}
+	}
+
 	@Override
 	public void tirer_transition(String id) {
 
@@ -129,6 +159,7 @@ public class ReseauPetri implements PetriNetService {
 
 	}
 
+
 	@Override
 	public void afficherEtat() {
 		// TODO Auto-generated method stub
diff --git a/src/test/java/org/petriNet/ReseauPetriTest.java b/src/test/java/org/petriNet/ReseauPetriTest.java
index f942ba833e22cb67d23d24aaadae4415b18db9a9..ae0c35b6de7adf3f819bb2bcfa4391ee90545f46 100644
--- a/src/test/java/org/petriNet/ReseauPetriTest.java
+++ b/src/test/java/org/petriNet/ReseauPetriTest.java
@@ -8,24 +8,11 @@ import static org.junit.jupiter.api.Assertions.*;
 
 public class ReseauPetriTest {
 
-    /**
-     * Les fonctions à tester suivantes n’affichent rien. Elles créent des objets et les retournent à la
-     * fonction de test. C’est la fonction de test qui affiche afin que les testeurs puissent observer les
-     * résultats
-     */
-
     private ReseauPetri reseauPetri;
     private List<Place> places;
     private List<Transition> transitions;
     private LinkedList<Arc> arcs;
 
-    /**
-     * Créer un reseauPetri vide sans entrée. Résultat attendu : un RdP est créé vide
-     * Créer une transition. Résultat attendu : une transition est créée (sans lien)
-     * Créer une place avec nombres de jetons. Les cas : jetons ≥0, jetons < 0.
-     * Résultat attendu : une place est créée (sans lien), aucune place n’est créée ; Erreur
-     */
-
     @BeforeEach
     public void setUp() {
         reseauPetri = new ReseauPetri();
@@ -434,4 +421,82 @@ public class ReseauPetriTest {
 
     }
 
+    // Tests de supression
+    @Test
+    public void testSupprimerTransition() {
+        ReseauPetri Supp = new ReseauPetri();
+
+        Transition T1 = new Transition("T1", Supp.generateId(2));
+        Supp.ajouterTransition(T1);
+        Supp.supprimerTransition(T1);
+        Supp.afficherReseau();
+    }
+
+    @Test
+    public void testDestruction_Place(){
+        ReseauPetri Destruction = new ReseauPetri();
+
+        // créer un réseau de petri similaire à Active dans testActiverPetri_3
+        Place P1 = new Place(2, Destruction.generateId(1));
+        Destruction.ajouterPlace(P1);
+
+        Transition T1 = new Transition("T1", Destruction.generateId(2));
+
+        // Creer l'arc entrant simple à T1 de P1
+        Arc_ENTRANT arc = new Arc_entrant_simple(T1, P1, 1, Destruction.generateId(0));
+        Destruction.ajouterArc(arc);
+
+        T1.ajouterArc_ENTRANT(arc);
+        Destruction.ajouterTransition(T1);
+
+        // Supprimer la place P1
+        Destruction.supprimerPlace(P1);
+        Destruction.afficherReseau();
+
+    }
+
+    @Test
+    public void testDestruction_Transition() {
+        ReseauPetri Destruction = new ReseauPetri();
+
+        // créer un réseau de petri similaire à Active dans testActiverPetri_3
+        Place P1 = new Place(2, Destruction.generateId(1));
+        Destruction.ajouterPlace(P1);
+
+        Transition T1 = new Transition("T1", Destruction.generateId(2));
+
+        // Creer l'arc entrant simple à T1 de P1
+        Arc_ENTRANT arc = new Arc_entrant_simple(T1, P1, 1, Destruction.generateId(0));
+        Destruction.ajouterArc(arc);
+
+        T1.ajouterArc_ENTRANT(arc);
+        Destruction.ajouterTransition(T1);
+
+        // Supprimer la transition T1
+        Destruction.supprimerTransition(T1);
+        Destruction.afficherReseau();
+    }
+
+    @Test
+    public void testDestruction_Arc() {
+        ReseauPetri Destruction = new ReseauPetri();
+
+        // créer un réseau de petri similaire à Active dans testActiverPetri_3
+        Place P1 = new Place(2, Destruction.generateId(1));
+        Destruction.ajouterPlace(P1);
+
+        Transition T1 = new Transition("T1", Destruction.generateId(2));
+
+        // Creer l'arc entrant simple à T1 de P1
+        Arc_ENTRANT arc = new Arc_entrant_simple(T1, P1, 1, Destruction.generateId(0));
+        Destruction.ajouterArc(arc);
+
+        T1.ajouterArc_ENTRANT(arc);
+        Destruction.ajouterTransition(T1);
+
+        // Supprimer l'arc
+        Destruction.supprimerArc(arc);
+        Destruction.afficherReseau();
+    }
+
 }