From d19e8b67f33c355f76a6526b1ea57b1f9ada9049 Mon Sep 17 00:00:00 2001
From: dgelessus <dgelessus@users.noreply.github.com>
Date: Fri, 19 Jul 2024 16:03:14 +0200
Subject: [PATCH] Collect violated assumptions in DFIDModelChecker as well

---
 .../src/tlc2/tool/DFIDModelChecker.java                | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/tlatools/org.lamport.tlatools/src/tlc2/tool/DFIDModelChecker.java b/tlatools/org.lamport.tlatools/src/tlc2/tool/DFIDModelChecker.java
index c333ed588..a9cfb47b6 100644
--- a/tlatools/org.lamport.tlatools/src/tlc2/tool/DFIDModelChecker.java
+++ b/tlatools/org.lamport.tlatools/src/tlc2/tool/DFIDModelChecker.java
@@ -12,6 +12,7 @@ import tla2sany.semantic.OpDeclNode;
 import tlc2.TLCGlobals;
 import tlc2.output.EC;
 import tlc2.output.MP;
+import tlc2.output.OutputCollector;
 import tlc2.tool.fp.dfid.FPIntSet;
 import tlc2.tool.fp.dfid.MemFPIntSet;
 import tlc2.tool.impl.CallStackTool;
@@ -246,22 +247,25 @@ public class DFIDModelChecker extends AbstractChecker
     {
         ExprNode[] assumps = this.tool.getAssumptions();
         boolean[] isAxiom = this.tool.getAssumptionIsAxiom();
+        int assumptionsError = EC.NO_ERROR;
         for (int i = 0; i < assumps.length; i++)
         {
             try
             {
                 if ((!isAxiom[i]) && !this.tool.isValid(assumps[i]))
                 {
-                    return MP.printError(EC.TLC_ASSUMPTION_FALSE, assumps[i].toString());
+                    OutputCollector.addViolatedAssumption(assumps[i]);
+                    assumptionsError = MP.printError(EC.TLC_ASSUMPTION_FALSE, assumps[i].toString());
                 }
             } catch (Exception e)
             {
                 // Assert.printStack(e);
-                return MP.printError(EC.TLC_ASSUMPTION_EVALUATION_ERROR,
+                OutputCollector.addViolatedAssumption(assumps[i]);
+                assumptionsError = MP.printError(EC.TLC_ASSUMPTION_EVALUATION_ERROR,
                         new String[] { assumps[i].toString(), e.getMessage() });
             }
         }
-        return EC.NO_ERROR;
+        return assumptionsError;
     }
 
     /* Compute the set of initial states.  */
-- 
GitLab