I just come up with this question. As written in the book of Logic in Computer Science, one of the important equivalence of LTL is this: Fp=TUp. And the T means no constraints.
Yet what if I replace the T with (not p)? Does Fp=(not p)Up hold? Since in this case I actually put some constraints (not p) in the formula, but in the meantime there could be no state can satisfy (not p) and p together. And I tried with different LTL formula as p, and as long as p is satisfiable, then for every path with p, it must satisfy Fp and (not p)Up as well. Does it means that I can rewrite F in this way or there is some counter example?
The short answer:
Yes, both formulas are equivalent and you can rewrite
Fpalso with(¬p)Up.and a proof:
We can investigate the problem by looking at the definition of
pUq(I think it's defined this way in the book Model Checking by Clarke, Grumberg, Peled).A path s is a model for the formula (written
s ⊨ pUq):(With
s^ibeing the pathswith the firstisteps removed.)We have (1):
and (2):
We want to show (1) <=> (2) (I renamed the ks to
k1andk2to avoid confusion):The direction (1) => (2) is trivial.
For (2) => (1) we have to show that from
follows
We know that there exists a value for
k1(namelyk2) such thats^k1 ⊨ pholds. But what about the second part? We can now just use fork1the smallest value such thats^i ⊨ pholds. Then the second part is true, because if there would be anisuch thats^i ⊨ not pdoes not hold, we know thats^i |= pholds. But in that case we would have choosenifork1becauseiis strictly smaller thenk1.So both formulas (1) and (2) are equivalent.