CIF to CIF Remove requirements removes too much information.
Consider the following specification:
input bool X;
event c_on;
requirement p:
plant invariant c_on needs X;
location:
initial;
end
Removing requirements results in:
input bool X;
event c_on;
Notice that the plant invariant is also removed. This should not happen.
We should add as a restriction that requirement automata may not contain kindless, plant, or supervisor invariants.
Alternatively, we could move the non-requirement invariants outside of locations to the parent group/specification. Location invariants can never be supported as the locations are removed and we cannot refer to them.
Edited by Ferdie Reijnen