Here you can ask questions and find or give answers to organizational, academic and other questions about studying computer science.

1.1k questions

1.3k answers

1.7k comments

557 users

0 votes
Consider the following 2 formula-

S1 = AG(PX <-> a) , S2 = AG(a <->Xa) (P means X with an arrow on top)

To me, it looks like S1 = A(Ga | G!a) and also, S2 = A(Ga | G!a), so these 2 formular are equivalent. (a <-> b = (a & b) | (!a | !b), using this)

But i found out that S1 = AGa and S2 = A(Ga | G!a). How did we get rid of the other part in S1? Is there any logic behind this?
in * TF "Emb. Sys. and Rob." by (130 points)

1 Answer

+1 vote
It is about the initial point of time. G(a <-> Xa) means that whatever value a had on the initial point of time, that value must be kept on all the following states on the path. Since variable a is either true or false at the initial point of time, you are write that this means that we either have G(a) or G(!a) (depending on the value of a at the initial point of time).

The formula G(PWX a <-> a) means that always a must have the value it had the time before on the path. That sounds same as the formula above, however, it differs at the initial point of time. Regardless of the value of a at the initial point of time, PWX(a) is true at the initial point of time, and PSX(a) is false at the initial point of time. Since you found that S1 is AG a, you have used PWX that forced a to be true at the initial point of time, and that remains so for the rest of the path. If you would use PSX instead, your formula would become AG(!a) instead.
by (170k points)

Related questions

0 votes
1 answer
asked Aug 19, 2020 in * TF "Intelligent Systems" by Khushnood (640 points)
0 votes
1 answer
0 votes
1 answer
asked Aug 26, 2023 in * TF "Emb. Sys. and Rob." by calvet (250 points)
0 votes
1 answer
Imprint | Privacy Policy
...