Hi there,

Thanks so much for the great tool! I am having trouble understanding the disjunction on state transitions. For example, I have the following small spec:

  ASSUME {
    G (p1);
  }

  GUARANTEE {
    G ((x) && (! (y)) ||
      ((y) && (! (x))));
    G (F x);
    G (F y);
  }

From this, ltlsynt gives me:

AP: 3 "x" "y" "p1"
acc-name: all
Acceptance: 0 t
properties: trans-labels explicit-labels state-acc deterministic
--BODY--
State: 0
[!0&!1&!2 | 0&1&!2] 1
[!0&1&2] 1
State: 1
[!0&!1&!2 | 0&1&!2] 1
[0&!1&2] 0
--END--

Should I understand the "[!0&!1&!2 | 0&1&!2] 1" to mean that when !2 is true, the system is free to choose from !0&!1 or 0&1? 

On a related note, due to the ASSUME in the spec, !2 should never be true anyway. Is there a way to filter this out of the model? For context, I am really looking to get a Mealy Machine out of ltlsynt which I can then convert into program code that would run in an infinite loop. Maybe I am just going about this the wrong way?

Mark