[PATCH 1/2] rv/ltl: Do not execute the Buchi automaton twice on start condition

From: Nam Cao
Date: Fri Jul 11 2025 - 09:18:15 EST


On start condition of a Buchi automaton, the automaton is executed twice.

This is fine for now, as all the current LTL operators do not care about
this. But it would break the 'next' operator, which will be introduced in a
follow-up patch.

Prepare for the introduction of the 'next' operator, only execute the
automaton once on start condition.

Signed-off-by: Nam Cao <namcao@xxxxxxxxxxxxx>
---
include/rv/ltl_monitor.h | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/include/rv/ltl_monitor.h b/include/rv/ltl_monitor.h
index 9a583125b566..67031a774e3d 100644
--- a/include/rv/ltl_monitor.h
+++ b/include/rv/ltl_monitor.h
@@ -167,8 +167,10 @@ static void ltl_atom_update(struct task_struct *task, enum ltl_atom atom, bool v
ltl_atom_set(mon, atom, value);
ltl_atoms_fetch(task, mon);

- if (!rv_ltl_valid_state(mon))
+ if (!rv_ltl_valid_state(mon)) {
ltl_attempt_start(task, mon);
+ return;
+ }

ltl_validate(task, mon);
}
--
2.39.5