ABCDEFGHIJKLMNOPQRSTUVWXYZ
1
Totals ==>1880766068111362793666
2
Ok?BPBSIBSQIFIGOIWUXXRVPYearAnswerIDPromptExpectedOriginRationale
3
12020F(x1 -> X(G(x2)))
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
It eventually holds translates to F. x2 being true thereafter seems to imply strictly in the future, so I translated it to X(G(x2))
4
12020F (x1 -> G(x2))
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
Eventually, x1 being true implies that x2 will always be true from that point on.
5
12020F(x1 => X(G(x2)))
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
Assuming that "it eventually holds" applies to the whole phrase after it, we use the "F" formula surrounding the rest of the statement to show that a subtrace exists in the future that satisfies this statement. Then, we want to show that, in this future subtrace, the first state should hold x1 to be true, and then x2 should be true for all states after-- to select the subtrace excluding the "now" state, we use the "X" formula, and then we use the "G" formula to ensure that all states in this subtrace set x2 as true.
6
2020
F(x1) AND (x1 => x2)
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
We break the predicate up into two parts; the fact that x1 holds eventually and that then it implies x2. The eventually is represented by the F; the implication and AND are self-explanatory.
7
12020
F(x1 |= true -> x2 |= true)
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
I am assuming that the eventuality is that of the statement, "if x1 is true then x2 is true." Hence, I put F(whole statement). The symbol "->" indicates implies (if-then) and "|=" indicates when a value becomes true.
8
12020
F(x1 := true -> x2 := true)
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
Based on the professor's notes, use F() means eventually. Since x2 being true is dependent on x1 being true, I used the implies -> to show that.
9
12020F(x1->x2)
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
There exists a point such that x1->x2 holds along the path.
10
12020F(x1 => X(G(x2)))
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
We want the condition to eventually hold (F), so that if x1 is true (x1 =>), x2 is true thereafter (I interpreted that as strictly after, and always, so X(G(x2))). The only time this wouldn't hold is if x1 were always true and we never had an infinite chain of x2 being true.
11
12020F(x1 => G(x2))
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
eventually = F, if/then = =>, thereafter = G
12
12020F(x1 -> G(X(x2)))
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
At some point, it will be the case that if x1 is true, x2 is always true in the future
13
12020
F(x1 implies G(x2))
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
Eventually is a key word for F. \nIf x1 is true, then [...] is x1 implies [...].\nx2 is true thereafter is: it is always true that x2 thereafter. G(x2)
14
2020
F(x1) => G(x1 => G(x2))
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
If x1 is eventually true, then once x1 is true, x2 will always be true.
15
112020F(x1 => X(x2))
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
F gives eventually, X(x2) says that x1 will hold in the future
16
12020F(x1 => X(G(x2)))
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
This is just a direct translation. X is required because of the thereafter.
17
112020F(x1 X(G(x2))
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
I came to this conclusion because I knew the F should nest the outside. Then, the inside is just x1 being true will say something about x2 in the next state. Specifically, we want an always case that x2 will always be true after.
18
112020F(x1 => X(x2))
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
I'm not sure if thereafter means the next state, or every state after. My interpretation here is the nexts state, which just constitutes X(). If it were every state after, then I'm not totally sure what the answer is... I think maybe you would need to use U but I can't figure it out.
19
12020F(x1 -> x2)
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
F describes eventually, and the statement I wrote shows that if x1 is true then x2 is true thereafter
20
112020F(x1 and F(x2))
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
I'm assuming x2 can be true in the same state as x1
21
12020F(x1 -> X(G(x2)))
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
G(x2) means always x2 is true. X(G(!x2)) means that in the next state, x2 is true from then on. x1 -> means that x1 being true implies this. F() means that this happens eventually.
22
12020F(~x1 v x2)
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
(~x1 v x2) is logically equivalent to implies since if x1 evaluates to True, then x2 can be whatever and the whole predicate would still be true. If x1 evaluates to False then x2 has to be True for the whole predicate to be true. \n\nI add F to the front to say that 'eventually, there exists time i such that '~x1 v x2' holds'
23
12020F(x1 -> x2)
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
24
112020F(x1 => X(x2))
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
25
12020F(x1 -> G(X(x2))
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
eventually (F) x1 being true implies that all future corresponding states has x2 being true
26
12020F(x1 -> Gx2)
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
if x1 is true, that implies that x2 is true in all subsequent states (G). If this eventually holds, we can use F to represent that
27
12020F(x1 -> F(x2))
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
I believe "thereafter" can mean sometime in the future, so that is why I decided to wrap it in the eventually along with the rest of the statement.
28
12020F(x1=>x2)
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
Eventually it is true that x1 implies x2
29
12020F(x1 => X(G(x2)))
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
F = (eventually) if x1 is true x2 will be always true starting from the next state.
30
12020F (x1 => X G x2)
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
It eventually holds means our statement is wrapped in a "eventually" operator F. We need x1 to be true for the last part of the sentence to apply, so we have "x1 =>". The "thereafter" in "x2 is true thereafter" implies 1) that x2 is true for all states after the state in which x1 is true, and 2) that x2 is not necessarily true in the state where x1 is true. The former corresponds to the "always" operator G, while the latter adds a "next" operator X before the always.
31
112020F(x1 -> X(x2))
it eventually holds that if x1 is true then x2 is true thereafter
F(x1 -> G(x2))
This is a question that Tim thought would be interesting.
The following implication is eventually (F) true: x1 being true implies that the following (X) x2 is true
32
12020
G(x1 => (- X(x1) and X(X(x1)))
whenever x1 is true, it becomes false in the next state and true again in the state after that
G(x1 => (X(!x1) and X(X(x1)))
This is a question that Tim thought would be interesting.
At any trace step i, if x1 is true at state i then it will be false in state i+1 and true in state i+2.
33
12020
G(x1 => (X(!x1) and X(X(x1)))
whenever x1 is true, it becomes false in the next state and true again in the state after that
G(x1 => (X(!x1) and X(X(x1)))
This is a question that Tim thought would be interesting.
these three conditions ensure that if x1 becomes true, then the next state must be false X(!x1) and the two states after the original one X(X(x1)) must evaluate to true.
34
12020
G(x1 => (X(~x1) ^ X(X(x1))))
whenever x1 is true, it becomes false in the next state and true again in the state after that
G(x1 => (X(!x1) and X(X(x1)))
This is a question that Tim thought would be interesting.
This is a condition that we want to always hold (G). It is a condition on x1 being true (hence "x1 =>"), and in those cases, we want ~x1 in the next state and x1 in the next next state (hence "X(~x1) ^ X(X(x1))").\n\nInterestingly, this means that as soon as x1 becomes true, it alternates true false true false ... on forever.
35
112020x1 <--> X~x1
whenever x1 is true, it becomes false in the next state and true again in the state after that
G(x1 => (X(!x1) and X(X(x1)))
This is a question that Tim thought would be interesting.
We want the alternate true false state, meaning that the state at time t+1 must be the negation of the state at time t\nx1 <--> X~x1 encode this info by saying that if x1 is true at time i ~x1 must be true at i+1 and vice versa
36
12020
G(x1 -> (X(!x1) and X(X(x1))))
whenever x1 is true, it becomes false in the next state and true again in the state after that
G(x1 => (X(!x1) and X(X(x1)))
This is a question that Tim thought would be interesting.
37
112020
x1 -> X(!x1) -> X(X(x1))
whenever x1 is true, it becomes false in the next state and true again in the state after that
G(x1 => (X(!x1) and X(X(x1)))
This is a question that Tim thought would be interesting.
X(X(x1) means the next, next state, so x1 is true in this state, false in the next - X(!x1) - and true in the next next state
38
112020
(x1 -> X!x1) AND (x1 -> XXx1)
whenever x1 is true, it becomes false in the next state and true again in the state after that
G(x1 => (X(!x1) and X(X(x1)))
This is a question that Tim thought would be interesting.
39
12020
G (x1 => (X ~x1) && (X X x1))
whenever x1 is true, it becomes false in the next state and true again in the state after that
G(x1 => (X(!x1) and X(X(x1)))
This is a question that Tim thought would be interesting.
We require that for all states, if x1 is true, we have both that ~x1 holds in the next state, and that x1 holds in the state after that.
40
12020
G(x1 -> (X(!x1) and X(X(x1))))
whenever x1 is true, it becomes false in the next state and true again in the state after that
G(x1 => (X(!x1) and X(X(x1)))
This is a question that Tim thought would be interesting.
Whenever implies G, and I use X to get at the next state and next next states
41
12020
x1 -> (X(!x1) and XX(x1))
whenever x1 is true, it becomes false in the next state and true again in the state after that
G(x1 => (X(!x1) and X(X(x1)))
This is a question that Tim thought would be interesting.
X is true in the next state, and XX is in 2 states
42
12020
G(x1 => (X(!x1) and X(X(x1))) )
whenever x1 is true, it becomes false in the next state and true again in the state after that
G(x1 => (X(!x1) and X(X(x1)))
This is a question that Tim thought would be interesting.
It always holds that if x1 is true, x1 is false in the next state and x1 is true in the state after that.
43
12020
G(x1 -> X(!x1) and X(X(x1)))
whenever x1 is true, it becomes false in the next state and true again in the state after that
G(x1 => (X(!x1) and X(X(x1)))
This is a question that Tim thought would be interesting.
It is always the case that if x1 is true implies that x1 is false in the next state and is true in the next next state
44
112020
x1 -> X(x1)^X(X(x1))
whenever x1 is true, it becomes false in the next state and true again in the state after that
G(x1 => (X(!x1) and X(X(x1)))
This is a question that Tim thought would be interesting.
This is just an implication, so when x1 is true, the next state (X(x1)) is true, and the next next state (X(X(x1))) is also true
45
12020
G(x1 -> (X(¬x1) ^ X(X(x1))))
whenever x1 is true, it becomes false in the next state and true again in the state after that
G(x1 => (X(!x1) and X(X(x1)))
This is a question that Tim thought would be interesting.
whenever := G
46
112020
x1 -> X NOT x1 -> XX x1
whenever x1 is true, it becomes false in the next state and true again in the state after that
G(x1 => (X(!x1) and X(X(x1)))
This is a question that Tim thought would be interesting.
If x1 is true in a given state, that implies that the next state should include NOT x1, which in turn implies that the next next state (XX) should be true again
47
12020
G(x1 => X(!x1) and X(X(x1)))
whenever x1 is true, it becomes false in the next state and true again in the state after that
G(x1 => (X(!x1) and X(X(x1)))
This is a question that Tim thought would be interesting.
whenever x1 is true = G(x1 => ...), false in the next state = X(!x1), true again in the state after that = X(X(x1))
48
12020
(x1 => X(not x1)) ^ (not x1 => X(x1))
whenever x1 is true, it becomes false in the next state and true again in the state after that
G(x1 => (X(!x1) and X(X(x1)))
This is a question that Tim thought would be interesting.
If x1 is true, the next state is false, and then it's true, but then the cycle keeps going, so x1 flipflops between being true and false every state transition. So, if x1 is currently true, it should be false next, and if it's not true, it should be true next.
49
12020
G(x1 implies (Xx1 AND XXx1))
whenever x1 is true, it becomes false in the next state and true again in the state after that
G(x1 => (X(!x1) and X(X(x1)))
This is a question that Tim thought would be interesting.
It is globally true that x1 implies x1 in the next and the next next state.
50
12020
x1 -> X(!x1) and X(X(x1))
whenever x1 is true, it becomes false in the next state and true again in the state after that
G(x1 => (X(!x1) and X(X(x1)))
This is a question that Tim thought would be interesting.
if x1 is true then in the next state it will be false and the next next state it will be true.
51
12020
x1, X( not x1, X(x1))
whenever x1 is true, it becomes false in the next state and true again in the state after that
G(x1 => (X(!x1) and X(X(x1)))
This is a question that Tim thought would be interesting.
I used nested operators
52
112020
x1 -> X(!x1) and !x1 -> X(x1)
whenever x1 is true, it becomes false in the next state and true again in the state after that
G(x1 => (X(!x1) and X(X(x1)))
This is a question that Tim thought would be interesting.
x1 -> X(!x1) means that if x1 is true, it is false in next state. !x1 -> X(x1) means that if x1 is false, it is true in next state.
53
12020
G(x1 -> (X(!x1) and X(X(x1))))
whenever x1 is true, it becomes false in the next state and true again in the state after that
G(x1 => (X(!x1) and X(X(x1)))
This is a question that Tim thought would be interesting.
I am using G to say this always holds. I am using X in order to refer to the next state and two X's to get two states ahead.
54
12020
G(x1 => X(!x1) and X(X(x1))
whenever x1 is true, it becomes false in the next state and true again in the state after that
G(x1 => (X(!x1) and X(X(x1)))
This is a question that Tim thought would be interesting.
Whenever means that the property always holds, so G is needed
55
12020
G(x1 U X(!x1 and X(x1)))
whenever x1 is true, it becomes false in the next state and true again in the state after that
G(x1 => (X(!x1) and X(X(x1)))
This is a question that Tim thought would be interesting.
Enforces that globally, if x1 then one state later !x1 and two states later x1
56
12020
G(~x1 \\/ (~X(x1) /\\ X(X(x1))))
whenever x1 is true, it becomes false in the next state and true again in the state after that
G(x1 => (X(!x1) and X(X(x1)))
This is a question that Tim thought would be interesting.
Pretty straightforward.
57
112020
x1:= true -> ◯ x1:= false ^ ◯ x1:= true
whenever x1 is true, it becomes false in the next state and true again in the state after that
G(x1 => (X(!x1) and X(X(x1)))
This is a question that Tim thought would be interesting.
I used implies because its an if-then statement and ◯ means next state (from online resource)
58
2020F(omega^4) |= x1
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
The trace must eventually satisfy x1 after 4 or more transitions, so we apply the eventually rule to the trace starting after the fourth transition.
59
12020FXXXX(x1)
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
x1 is true sometime after 4 or more transitions means that there exists state S where 4 states after state S will make x1 true.
60
12020
XXXXx1 or XXXX!x1 -> F(x1)
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
I was trying to portray "4 or more transitions", however I was unsure how to so without the variable after. "x is true sometime after" i interpreted as eventually
61
12020
!x1 and X(!x1) and X(X(!x1)) and X(X(X(!x1))) and F(x1)
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
x1 is false for the current state and the next three states, but eventually it will be true
62
12020Fx1
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
F represents the fact that x1 should eventually be true. However, I do not believe there is a way to represent the x1 will be true specifically after a certain number of transitions in LTL
63
12020X(X(X(X(F(x1)))))
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
64
12020F(X(X(X(X(x1)))))
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
X(X(X(X(x1)))) skips 4 transitions ahead, F evaluates to true sometime in the subsequence.
65
12020X(X(X(X(F(x1)))))
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
note: I assume here that by "transitions" they meant state
66
12020F(XXXXx1)
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
There will eventually be some state such that x1 is true four states down the line. This ensures that x1 is true in some state from four transitions onward.
67
12020XXXXFx1
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
since W_i |= Xp mean that p is true in trace w_{i+1}, w_{i+2}, ....\nW_i |= XXXXp mean p is true in trace w_{i+4}, w_{i+5}, ....\nand W_i |= Fx1 means x1 is true for some j>=i in w_i\nTherefore, W_i |= XXXXFx1 means x1 is true for some j>=i+4 in w_i\nwhich is exactly what the question asks for.
68
12020X(X(X(X(F(x1)))))
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
We first chop off the first four states with X and then do a normal eventually
69
112020
!x1 and X!x1 and XX!!x and XXX!x1 iff F(x1)
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
I hard code out 4 states where x1 is false. If these all hold, that means that x1 can be true at some point after. I use IFF instead if implies because I wanted to specify this is the only case for F(x1). IF it were only implies, then FTFTT could be valid (each boolean is a different state of the same variable x1)
70
12020X(X(X(X(F(x1)))))
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
If we wanted x1 to be true sometime after 0 or more transitions, this would just be F(x1). If we want to enforce a certain number of transitions, we can ignore the first n states by using X^n. So, X(X(X(X(F(x1)))) will only consider at least four transitions.
71
12020X(X(X(X(F(x1)))))
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
I don\'t really know how to express "four or more transitions", but I know that X refers to the next state, so I put four Xs to represent the next next next next state and then inside of that I put F(x1) since F means that the expression will eventually or sometimes be true.
72
12020X(X(X(X(F(x1)))))
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
x1 is eventually true after 4 states.
73
12020F(XXXXx1)
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
XXXX is after 4 iteration from the current state.\nIf you add F (eventually). Inductively, F(XXXXx1) is x1 is true after 4 or more iterations.
74
2020X^4(x1) -> x1
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
X^4(x1) means x1 has 4 or more transitions, the imply x1 is true
75
12020XXXX(F(x1))
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
Four states later (XXXX), x1 has to be true at some point (F)
76
12020X(X(X(X(F(x1))))
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
x1 is true sometime = F(x1), after 4 or more transitions = X(X(X(X(...))))
77
2020F>=4(x1 |= true)
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
F represents eventuality. I put ">=4" to indicate the next 4 or more transitions. Hence it is eventually true that x1 is true after 4 or more transitions.
78
12020XXXX(F(x1))
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
The X symbol enforces that something will be satisfied after one transition, so I'm using four Xs to indicate that after four transitions eventually x1 will be true.
79
2020x1 = true -> A^=4
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
I interpreted "sometime" as eventually and the A (from an online LTL syntax source) means states so I thought of specifying that there will be 4 states/transitions
80
2020
(¬x1)->(¬x1)->(¬x1)->(¬x1)->(¬x1)->(¬x1)->(x1)ω ⊢ F(N(N(N(N(x1)))))
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
First we truncate the trace by four transitions, then x1 will eventually be true
81
12020F(X(X(X(X(x1)))))
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
F means eventually and X(X(X(X(x1)))) means 4 after the current x1 is true
82
12020X(X(X(X(F(x1)))))
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
X(X(X(X(...)))) shift by 4. F(x1) is eventually x1.
83
12020XXXXF(x1)
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
X means in the next step, or transition. F means eventually. Therefore, XXXXFx1 means that in 4 iterations, x1 will eventually be true.
84
12020F(X(X(X(x1)))
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
Eventually, x1 is true in the next, next, next step. This skip of three states means that it could occur three next states after the first state, or eventually in the subsequent path after that
85
12020
(X(X(X(X(x1))) U X(X(X(X(!x1)))) => F(x1)
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
whether or not x1 is true on the first 4 iterations, following this it will be true.
86
12020
X(X(X(X(x1 or F(x1)))))
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
After 4 transitions (X), either x1 is true or it will be true in the future
87
12020F(X(X(X(X(x1)))))
x1 is true sometime after 4 or more transitions
XXXXFx1
This is a question that Tim thought would be interesting.
Eventually (F), the fourth-next (XXXX) state of x1 becomes true
88
12020
F(x1 and G(X(!x2)))
at some point x1 is true and x2 is false thereafter
F(x1 and G(X(!x2)))
This is a question that Tim thought would be interesting.
F means eventually true. The "and" means that both must be true. So x1 is true, and G(X(!x2)) is true. G means that X(!x2) is always true, and the X means the x2 is false in the next state. I am unsure if the X is needed due to the wording of the question because G means always true which would constrain x2 to be false in the state that x1 is true, while X means that it is only the states after.
89
112020
F(x1 -> G NOT x2)
at some point x1 is true and x2 is false thereafter
F(x1 and G(X(!x2)))
This is a question that Tim thought would be interesting.
If x1 is true, that implies that NOT x2 should be true in all subsequent states. Since this happens "at some point," then we must put the F on the outside of the expression
90
112020
Fx1 AND x1 implies G(NOTx2)
at some point x1 is true and x2 is false thereafter
F(x1 and G(X(!x2)))
This is a question that Tim thought would be interesting.
Eventually x1 is true, and if x1 is true, x2 is not true globally thereafter
91
12020
F(x1 and G(X(!x2)))
at some point x1 is true and x2 is false thereafter
F(x1 and G(X(!x2)))
This is a question that Tim thought would be interesting.
Eventually there will be a state where x1 is true, and all its future states has x2 equals to false
92
12020
F (x1 /\\ (X G ~x2))
at some point x1 is true and x2 is false thereafter
F(x1 and G(X(!x2)))
This is a question that Tim thought would be interesting.
At some point indicates the statement is wrapped in an "eventually" operator F. At the eventual state, we need both x1 to be true and the statement regarding x2 to hold, so we and (/\\) x1 with that statement. The "thereafter" in "x2 is false thereafter" implies 1) that x2 is false for all states after the state in which x1 is true, and 2) that x2 is not necessarily false in the state where x1 is true. The former corresponds to the "always" operator G, while the latter adds a "next" operator X before the always.
93
12020F(x1 and X(!x2))
at some point x1 is true and x2 is false thereafter
F(x1 and G(X(!x2)))
This is a question that Tim thought would be interesting.
x1 and X(!x2) describes a state where x1 is true and x2 will be false in the next state. Wrapping this in F means that state occurs at some point.
94
12020
F(x1 and X(G(not x2)))
at some point x1 is true and x2 is false thereafter
F(x1 and G(X(!x2)))
This is a question that Tim thought would be interesting.
F(x1 and X(G(not x2))) means in words that there is eventually a state where x1 is true and in the next state x2 is always false
95
12020
Fx1 ^ (x1 --> XG~x2)
at some point x1 is true and x2 is false thereafter
F(x1 and G(X(!x2)))
This is a question that Tim thought would be interesting.
at some point x1 is true => Fx1\nafter x1 is true x2 is false all the time after that afterword (x1 --> XG~x2)
96
1112020F(x1) -> -x2
at some point x1 is true and x2 is false thereafter
F(x1 and G(X(!x2)))
This is a question that Tim thought would be interesting.
I at some point x1 is true means it's eventually true and then I took x2 is false thereafter as an implies statement
97
12020F(x1 ^ X(G(~x2)))
at some point x1 is true and x2 is false thereafter
F(x1 and G(X(!x2)))
This is a question that Tim thought would be interesting.
We want this to be true eventually (F), that x1 is true and (x1 ^) x2 is false there after. I interpret "there after" as strictly in the future, and so X(G(~x2)).
98
1112020X(x1 and !x2)
at some point x1 is true and x2 is false thereafter
F(x1 and G(X(!x2)))
This is a question that Tim thought would be interesting.
According to "at some point" and "thereafter", this formula is to describe\n (x1 is true and x2 is false) holds along the path starting at some state s_i.
99
12020F(x1) U G(!x2)
at some point x1 is true and x2 is false thereafter
F(x1 and G(X(!x2)))
This is a question that Tim thought would be interesting.
at some point = F, x2 is false = !x2, false thereafter = U G
100
112020F(x1 ^ (~x2))
at some point x1 is true and x2 is false thereafter
F(x1 and G(X(!x2)))
This is a question that Tim thought would be interesting.
x1 means x1 is true and ~x2 means x2 is false. Since it says "thereafter", we should use F.
101
2020
F(x1 = True) --> x2 |= False if x1 = True
at some point x1 is true and x2 is false thereafter
F(x1 and G(X(!x2)))
This is a question that Tim thought would be interesting.
F(x1 = True) means that x1 will eventually be true. |= is the satisfaction relation, meaning that x2 becomes false if x1 becomes True.
102
112020F(x1-> ¬x2)
at some point x1 is true and x2 is false thereafter
F(x1 and G(X(!x2)))
This is a question that Tim thought would be interesting.
As Professor Nelson described in lecture, eventually/finally could be denoted as F, which is essentially the same thing as saying "at some point". From my understanding of the wording of question, once x1 is true, then x2 is false, which is what I denoted when I put x1->¬x2. To represent false, I used the ¬ symbol.
103
112020
F(x1 and x1=>G(!x2))
at some point x1 is true and x2 is false thereafter
F(x1 and G(X(!x2)))
This is a question that Tim thought would be interesting.
F = (eventually), so F(x1 and x1=>G(!x2)) means that at some point x1 is true and if x1 is true x2 becomes always false.
104
12020F (x1 -> G(¬x2))
at some point x1 is true and x2 is false thereafter
F(x1 and G(X(!x2)))
This is a question that Tim thought would be interesting.
Eventually, x1 being true implies x2 will always be false thereafter.
105
12020F(x1 ^ X(!x2))
at some point x1 is true and x2 is false thereafter
F(x1 and G(X(!x2)))
This is a question that Tim thought would be interesting.
Eventually (F), x1 is true, and then the next x2's (X) are false (!)
106
1112020F(x1) => !x2
at some point x1 is true and x2 is false thereafter
F(x1 and G(X(!x2)))
This is a question that Tim thought would be interesting.
when x1 becomes true, x2 is no longer true
107
12020F(x1)->X(G(~x2))
at some point x1 is true and x2 is false thereafter
F(x1 and G(X(!x2)))
This is a question that Tim thought would be interesting.
eventually x1 being true implies that from the next step x2 is false forever
108
12020
F(x1) ^ G(x1 -> G(X(not x2)))
at some point x1 is true and x2 is false thereafter
F(x1 and G(X(!x2)))
This is a question that Tim thought would be interesting.
x1 is true at some point, and same rationale as the last problem, x1 ever being true implies consequent states have x2 being false
109
12020
F(x1 and X(G(!x2)))
at some point x1 is true and x2 is false thereafter
F(x1 and G(X(!x2)))
This is a question that Tim thought would be interesting.
At some point translates to F, and thereafter seems to imply strictly in the future so I use X before G(!x2)
110
12020F(x1)X(G(-x2))
at some point x1 is true and x2 is false thereafter
F(x1 and G(X(!x2)))
This is a question that Tim thought would be interesting.
This expression is my answer because eventually x1 is true "F(x1)", then the next thing "X( )" is always "G( )" not x2 "-x2". I am using "-" to represent the not logical operator.
111
12020
F(x1) and G(X(!x2))
at some point x1 is true and x2 is false thereafter
F(x1 and G(X(!x2)))
This is a question that Tim thought would be interesting.
112
2020
not possible in LTL
at some point x1 is true and x2 is false thereafter
F(x1 and G(X(!x2)))
This is a question that Tim thought would be interesting.
I am actually not sure if such an LTL is possible, since it sounds like availability.
113
12020
G(x1-> ○¬x1 U ◊x2->x1)
whenever x1 is true, x1 must be false in the future until x2 holds (and x2 will hold at some point in the future)
G(x1 => X(!x1 U x2))
This is a question that Tim thought would be interesting.
G indicates always (whenever). When x1 is true, in the next state (○), x1 is false until (U) eventually, x2 holds, which implies(->) that x1 is true.
114
12020
G(x1 => X(!x1 U x2))
whenever x1 is true, x1 must be false in the future until x2 holds (and x2 will hold at some point in the future)
G(x1 => X(!x1 U x2))
This is a question that Tim thought would be interesting.
X refers to future states.
115
112020
x1 -> (NOT x1) U x2
whenever x1 is true, x1 must be false in the future until x2 holds (and x2 will hold at some point in the future)
G(x1 => X(!x1 U x2))
This is a question that Tim thought would be interesting.
x1 being true implies that NOT x2 should be true until (U) we get x2
116
112020
(x1 => X(!x1 U x2)) and F(x2)
whenever x1 is true, x1 must be false in the future until x2 holds (and x2 will hold at some point in the future)
G(x1 => X(!x1 U x2))
This is a question that Tim thought would be interesting.
F(x2) : means that x2 will hold at some point\nx1 => X(!x1 U x2) : means that starting at the next state, x1 must be false until x2 hold\n
117
112020
x1implies G((NOT x1) U x2))
whenever x1 is true, x1 must be false in the future until x2 holds (and x2 will hold at some point in the future)
G(x1 => X(!x1 U x2))
This is a question that Tim thought would be interesting.
whenever x1 is true, then [...] is equivalent to: if x1 is true, then always [....]. That is: x1 implies G([...]).\n (...) in the future until x2. is (...) until x2. So in this case, NOTx1 until x2. Combining these, my guess is the above.
118
1112020
x1 => F(!x U x2) and F(x2)
whenever x1 is true, x1 must be false in the future until x2 holds (and x2 will hold at some point in the future)
G(x1 => X(!x1 U x2))
This is a question that Tim thought would be interesting.
x1 implies that x1 will be false until x2 and eventually x2
119
12020
G(¬x1 ∨ (¬x1 U x2))
whenever x1 is true, x1 must be false in the future until x2 holds (and x2 will hold at some point in the future)
G(x1 => X(!x1 U x2))
This is a question that Tim thought would be interesting.
This says that for all states, either x1 is not true or x1 is false until x2 is true
120
11112020
x1 -> X(G(~x1 -> ~x1 \\/ x2) /\\ F(x2))
whenever x1 is true, x1 must be false in the future until x2 holds (and x2 will hold at some point in the future)
G(x1 => X(!x1 U x2))
This is a question that Tim thought would be interesting.
x1 being true implies that x1 will continue to be false until x2 is true, which will happen
121
112020
(x1:= true -> F(x1:= false U x2:= true))
whenever x1 is true, x1 must be false in the future until x2 holds (and x2 will hold at some point in the future)
G(x1 => X(!x1 U x2))
This is a question that Tim thought would be interesting.
first I used the U symbol for how x2:= true is the point where x1 becomes false, and all this is implied by whenever x1 is true.
122
12020G(x1 -> !x1 U x2)
whenever x1 is true, x1 must be false in the future until x2 holds (and x2 will hold at some point in the future)
G(x1 => X(!x1 U x2))
This is a question that Tim thought would be interesting.
always, if x1 is true, x1 remains false until x2 is true
123
112020
(x1 --> ~x1Ux2)^Fx2
whenever x1 is true, x1 must be false in the future until x2 holds (and x2 will hold at some point in the future)
G(x1 => X(!x1 U x2))
This is a question that Tim thought would be interesting.
Fx2 => x2 will hold at some point in the future\nwhenever x1 hold ~x1 until x2(x1 --> ~x1Ux2)
124
112020x1 -> F(-x1) U x2
whenever x1 is true, x1 must be false in the future until x2 holds (and x2 will hold at some point in the future)
G(x1 => X(!x1 U x2))
This is a question that Tim thought would be interesting.
whenever x1 is true clues me in that this must be an implication, and then from there -x1 is x1 false in the future until x2 is true
125
1112020
x1 -> (F(!x1) U x2) and F(x2)
whenever x1 is true, x1 must be false in the future until x2 holds (and x2 will hold at some point in the future)
G(x1 => X(!x1 U x2))
This is a question that Tim thought would be interesting.
x1 being true implies that x1 is eventually false (using F) until (U) x2 holds, which is combined with F(x2) to show it's eventually true
126
12020
G(x1 -> X(!x1 U x2))
whenever x1 is true, x1 must be false in the future until x2 holds (and x2 will hold at some point in the future)
G(x1 => X(!x1 U x2))
This is a question that Tim thought would be interesting.
G gives us the 'whenever', and I use X to get into the future and U for the 'until x2 holds and will hold at some point'
127
2020
F(x1=>X(!x1)) xor (F(x2) => x1)
whenever x1 is true, x1 must be false in the future until x2 holds (and x2 will hold at some point in the future)
G(x1 => X(!x1 U x2))
This is a question that Tim thought would be interesting.
F(x1=>X(!x1)) states that when x1 becomes true, the next condition states that if x2 becomes true then x1 becomes false. the xor condition ensures that neither can be true at the same time.
128
12020
G(x1 => X(~x1 U x2))
whenever x1 is true, x1 must be false in the future until x2 holds (and x2 will hold at some point in the future)
G(x1 => X(!x1 U x2))
This is a question that Tim thought would be interesting.
This is a condition that must always hold (G). We want it so that, if x1 is true in a state (hence "x1 =>"), then ~x1 holds until x2 holds. This is precisely what (~x1 U x2) does, and we include X in order to say that this condition starts holding in the next state (because its says "in the future"). The "U" operator already enforces that x2 eventually holds.
129
12020
w ⊨ G(x1 ⟹ X(¬x1 U x2) ∧ X(F(x2)))
whenever x1 is true, x1 must be false in the future until x2 holds (and x2 will hold at some point in the future)
G(x1 => X(!x1 U x2))
This is a question that Tim thought would be interesting.
The piece where x1 is false until x2 holds becomes ¬x1 U x2, because this says that for all traces before x2 is true, x1 is false. We need that to be true in the future, so we use X to get the traces starting from the next state. We also need x2 to hold at some point in the future, so we want there to eventually be a state where x2 is true, giving us F(x2), in the future, so we use X again to get X(F(x2)). So, x1 is false until x2 holds and x2 will eventually hold means X(¬x1 U x2) ∧ X(F(x2)). This should be true when x1 is true, so we have x1 ⟹ X(¬x1 U x2) ∧ X(F(x2)), but it should also be true whenever x1 is true, so this implication should hold for all steps in the trace, meaning we have w ⊨ G(x1 ⟹ X(¬x1 U x2) ∧ X(F(x2))).
130
112020
G(x1 => (!x1 U x2 and F(x2)))
whenever x1 is true, x1 must be false in the future until x2 holds (and x2 will hold at some point in the future)
G(x1 => X(!x1 U x2))
This is a question that Tim thought would be interesting.
whenever is enforced by G. The until is enforced by U and F(x2) means x2 will hold at some point in the future.
131
112020
x1 -> F(!x1 UNTIL x2)
whenever x1 is true, x1 must be false in the future until x2 holds (and x2 will hold at some point in the future)
G(x1 => X(!x1 U x2))
This is a question that Tim thought would be interesting.
x1 being true means that there is eventually a position in the path at which x1 is false until x2 becomes true (which will occur under the UNTIL operator)
132
12020
G (x1 -> (¬x1 U x2))
whenever x1 is true, x1 must be false in the future until x2 holds (and x2 will hold at some point in the future)
G(x1 => X(!x1 U x2))
This is a question that Tim thought would be interesting.
It is always the case that x1 being true implies x1 must from that point on be false until x2 is true.
133
12020
G(x1 -> G((X(!x1))U(X(x2))))
whenever x1 is true, x1 must be false in the future until x2 holds (and x2 will hold at some point in the future)
G(x1 => X(!x1 U x2))
This is a question that Tim thought would be interesting.
it is always the case that x1 implies in the future, x1 will always be false until x2
134
112020
(x1 AND F(!x1 UNTIL x2))
whenever x1 is true, x1 must be false in the future until x2 holds (and x2 will hold at some point in the future)
G(x1 => X(!x1 U x2))
This is a question that Tim thought would be interesting.
x1 is AND'ed with the case in the future that x1 is false until x2 holds true, this is because x1's status changes in the future, paralleled with a change in x2.
135
112020
x1 -> X(!x1) U F(x2)
whenever x1 is true, x1 must be false in the future until x2 holds (and x2 will hold at some point in the future)
G(x1 => X(!x1 U x2))
This is a question that Tim thought would be interesting.
x1 being true implies (->) that the following (X) x1 are false until eventually (F) x2 becomes true
136
112020
G(x1 -> not x1 U x2 ^ F(x2))
whenever x1 is true, x1 must be false in the future until x2 holds (and x2 will hold at some point in the future)
G(x1 => X(!x1 U x2))
This is a question that Tim thought would be interesting.
it's always true that when x1 is true, x1 is false until x2 and x2 is true at some point
137
12020
G((not x1) v ((not x1) U x2))
whenever x1 is true, x1 must be false in the future until x2 holds (and x2 will hold at some point in the future)
G(x1 => X(!x1 U x2))
This is a question that Tim thought would be interesting.
Globally it must be true that, if x1 is true, then to satisfy the formula, x1 must be false until the (first) state (which exists) where x2 is true, which is what "U" means.
138
12020
G(x1 => (!x1 U x2))
whenever x1 is true, x1 must be false in the future until x2 holds (and x2 will hold at some point in the future)
G(x1 => X(!x1 U x2))
This is a question that Tim thought would be interesting.
139
112020
x1 => (!X(x1) and !X(X(x)) ) and F(x2)
whenever x1 is true, x1 must be false in the future until x2 holds (and x2 will hold at some point in the future)
G(x1 => X(!x1 U x2))
This is a question that Tim thought would be interesting.
whenever x1 is true means that x1 is implying something, and since both x1 must be false in the future for x2 holds that means both X(x1) and X(X(x1)) must be false. Lastly you must AND this with F(x2) to signify that x2 will hold at some point in the future.
140
12020
(x1 /\\ (G(~x1) U x2)) \\/ G(~x1)
whenever x1 is true, x1 must be false in the future until x2 holds (and x2 will hold at some point in the future)
G(x1 => X(!x1 U x2))
This is a question that Tim thought would be interesting.
x1 is true and (x1 is never true until x2 is true) or x1 is never true
141
12020F(x1) and G(!x2)
x1 is true at some point and x2 is always false
F(x1) and G(!x2)
This is a question that Tim thought would be interesting.
Direct translation.
142
12020F(x1) ^ G(!x2)
x1 is true at some point and x2 is always false
F(x1) and G(!x2)
This is a question that Tim thought would be interesting.
x1 is eventually (F) true, and x2 is always (G) false (!)
143
12020F(x1) ^ G(~x2)
x1 is true at some point and x2 is always false
F(x1) and G(!x2)
This is a question that Tim thought would be interesting.
x1 true at some point = There exists a state where x1 is true = F(x1)\nx2 always false => not (x2) always true = not (x2) is true in every state
144
12020
Fx1 AND (G NOT x2)
x1 is true at some point and x2 is always false
F(x1) and G(!x2)
This is a question that Tim thought would be interesting.
x1 must eventually be true and n2 is never true
145
12020F(x1) and G(!x2)
x1 is true at some point and x2 is always false
F(x1) and G(!x2)
This is a question that Tim thought would be interesting.
eventually x1 is true. globally x2 is false
146
12020
F(x1 |= true) AND G(x2 |= false)
x1 is true at some point and x2 is always false
F(x1) and G(!x2)
This is a question that Tim thought would be interesting.
F indicates eventually and |= means is. Therefore, F(x1 |= true) means that x1 is eventually true. This part of the statement is AND with G(x2 |= false) where G means always. Therefore, it is always true, that x2 is (|=) false.
147
12020(F x1) ∧ (G ¬x2)
x1 is true at some point and x2 is always false
F(x1) and G(!x2)
This is a question that Tim thought would be interesting.
F x1 means x1 is eventually true, intersected with the traces where (G ¬x2), which means x2 is always false.
148
12020F(x1) and G(!x2)
x1 is true at some point and x2 is always false
F(x1) and G(!x2)
This is a question that Tim thought would be interesting.
At some point = F, always = G
149
12020F(x1) and G(!x2)
x1 is true at some point and x2 is always false
F(x1) and G(!x2)
This is a question that Tim thought would be interesting.
F = (eventually), so F(x1) means that x1 is eventually true. G = (always), so G(!x2) means that x2 is always false
150
12020F(x1) and G(!x2)
x1 is true at some point and x2 is always false
F(x1) and G(!x2)
This is a question that Tim thought would be interesting.
F means that the expressions eventually holds and since the x1 is at some point true I put x1 inside of F. Since G means that the expression always holds and x2 is always supposed to be false, I put !x2 inside of G.
151
12020F(x1) and G(!x2)
x1 is true at some point and x2 is always false
F(x1) and G(!x2)
This is a question that Tim thought would be interesting.
F(x1) means that x1 is true somewhere in the trace and G(!x2) means that x2 is always false
152
12020x1 and G(!x2)
x1 is true at some point and x2 is always false
F(x1) and G(!x2)
This is a question that Tim thought would be interesting.
The first part describes x1 holds.\nThe second part describes !x2 holds globally in the future.
153
12020F(x1) ^ G(not x2)
x1 is true at some point and x2 is always false
F(x1) and G(!x2)
This is a question that Tim thought would be interesting.
two separate propositions joined together with and
154
12020
F(x1) AND G(not(x2))
x1 is true at some point and x2 is always false
F(x1) and G(!x2)
This is a question that Tim thought would be interesting.
F means finally, or eventually; basically just that, at some point in time in the future, x1 must be true. G means globally.
155
12020G(!x2 and F(x1))
x1 is true at some point and x2 is always false
F(x1) and G(!x2)
This is a question that Tim thought would be interesting.
x2 is always false and x1 is always eventually true
156
12020¬G(¬x1) ∧ G(¬x2)
x1 is true at some point and x2 is always false
F(x1) and G(!x2)
This is a question that Tim thought would be interesting.
x1 is true at some point is equivalent to "x1 is not always false"
157
12020(!x2) and F(x1)
x1 is true at some point and x2 is always false
F(x1) and G(!x2)
This is a question that Tim thought would be interesting.
x1 is true at some point interpreted as "x1 will eventually become and remain true (F(x1))" and F(x1) interpreted as "x1 at some point will become true and will remain true for the rest of the sequence", and not as "x1 will eventually be true, but may become false again after that"
158
12020
Fx1 AND G(NOT x2)
x1 is true at some point and x2 is always false
F(x1) and G(!x2)
This is a question that Tim thought would be interesting.
Eventually x1 is true AND globally x2 is not true
159
12020F(x1) and G(!x2)
x1 is true at some point and x2 is always false
F(x1) and G(!x2)
This is a question that Tim thought would be interesting.
If x1 is true at some point then we should use the F operator to indicate "eventually" (i.e. x1 is eventually true). If x2 is always false then we use the G operator to indicate that it\'s global. Therefore F(x1) and G(!x2).
160
12020F(x1) and G(!x2)
x1 is true at some point and x2 is always false
F(x1) and G(!x2)
This is a question that Tim thought would be interesting.
161
12020F(x1) and G(!x2)
x1 is true at some point and x2 is always false
F(x1) and G(!x2)
This is a question that Tim thought would be interesting.
F means eventually, or at "some point", and G means always. ! means false.
162
12020G(!x2) and F(x1)
x1 is true at some point and x2 is always false
F(x1) and G(!x2)
This is a question that Tim thought would be interesting.
This formula technically satisfies the text, but if they mean that at some point there exist a state where x1 is true, I don't think this can be written in LTL since it is an example of an availability property.
163
12020F(x1) AND G(-x2)
x1 is true at some point and x2 is always false
F(x1) and G(!x2)
This is a question that Tim thought would be interesting.
eventually x1 is true "F(x1)" and "AND (using this to represent the logical and operator)" x2 is always false "G(-x2)"
164
12020F(x1) ^ G(~x2)
x1 is true at some point and x2 is always false
F(x1) and G(!x2)
This is a question that Tim thought would be interesting.
We want both conditions to hold (hence ^), where one of them is x1 to be eventually true (F(x1)), and the other is x2 to always be false (G(~x2)).
165
12020F(x1) and G(!x2)
x1 is true at some point and x2 is always false
F(x1) and G(!x2)
This is a question that Tim thought would be interesting.
166
12020F(x1) => G(x2)
if x1 is ever true at some point, x2 must always be true
F(x1) => G(x2)
This is a question that Tim thought would be interesting.
x1 being true at some point (F) implies x2 is always true (G)
167
12020F(x1) -> G(x2)
if x1 is ever true at some point, x2 must always be true
F(x1) => G(x2)
This is a question that Tim thought would be interesting.
if x1 is eventually true at some point, it implies that x2 is always true
168
12020x1 -> Gx2
if x1 is ever true at some point, x2 must always be true
F(x1) => G(x2)
This is a question that Tim thought would be interesting.
if x1 is true, then x2 should always be true (G)
169
12020F(x1) -> G(x2)
if x1 is ever true at some point, x2 must always be true
F(x1) => G(x2)
This is a question that Tim thought would be interesting.
if finally x1 is true, the later x2 will always be true
170
12020F(x1) -> G(x2)
if x1 is ever true at some point, x2 must always be true
F(x1) => G(x2)
This is a question that Tim thought would be interesting.
F(x1) means x eventually being true at a point. G(x2) means x2 is always true. -> means that x1 becoming true implies that x2 is always true.
171
12020G(x1 U G(x2))
if x1 is ever true at some point, x2 must always be true
F(x1) => G(x2)
This is a question that Tim thought would be interesting.
The second globally/always should ignore states passed through by the first
172
12020F(x1) and G(x2)
if x1 is ever true at some point, x2 must always be true
F(x1) => G(x2)
This is a question that Tim thought would be interesting.
I think this means that x1 eventually true must happen with x2 always being true. Again, not sure how to quantify the "if then" statement because there is no => operator.
173
12020x1 => G(x2)
if x1 is ever true at some point, x2 must always be true
F(x1) => G(x2)
This is a question that Tim thought would be interesting.
This is saying that if there is an instance of x1 being true, we must say for always (G) that x2 is true. I use an implies to link these two observations together.
174
12020Fx1 implies Gx2
if x1 is ever true at some point, x2 must always be true
F(x1) => G(x2)
This is a question that Tim thought would be interesting.
eventually x1 implies globally x2
175
12020(F x1) => (G x2)
if x1 is ever true at some point, x2 must always be true
F(x1) => G(x2)
This is a question that Tim thought would be interesting.
Finally x1 implies global x2
176
12020F(x1) => G(x2)
if x1 is ever true at some point, x2 must always be true
F(x1) => G(x2)
This is a question that Tim thought would be interesting.
The if... then... structure gives us "=>", and we just have to interpret the hypothesis and conclusion. The hypothesis is x1 being true at some point (F), and the conclusion is x2 being true always (G).
177
12020F(x1) => G(x2)
if x1 is ever true at some point, x2 must always be true
F(x1) => G(x2)
This is a question that Tim thought would be interesting.
if x1 is eventually true, x2 will always be true.
178
12020F(x1) => G(x2)
if x1 is ever true at some point, x2 must always be true
F(x1) => G(x2)
This is a question that Tim thought would be interesting.
If we eventually encounter x1, x2 is always true.
179
12020F(x1) => G(x2)
if x1 is ever true at some point, x2 must always be true
F(x1) => G(x2)
This is a question that Tim thought would be interesting.
180
12020F(x1) => G(X2)
if x1 is ever true at some point, x2 must always be true
F(x1) => G(x2)
This is a question that Tim thought would be interesting.
simple combination of F and G
181
12020
G(x1 implies G(x2))
if x1 is ever true at some point, x2 must always be true
F(x1) => G(x2)
This is a question that Tim thought would be interesting.
G goes through all the states, and if at any of them x1 is true, then x2 is true globally.
182
12020F(x1) -> G(x2)
if x1 is ever true at some point, x2 must always be true
F(x1) => G(x2)
This is a question that Tim thought would be interesting.
Importantly, the '-> G(x2)' is outside of the F, since we want x2 to hold even in the states before x1 is true
183
12020F(x1) => G(x2)
if x1 is ever true at some point, x2 must always be true
F(x1) => G(x2)
This is a question that Tim thought would be interesting.
If x1 is eventually true (this will hold as long as x1 is ever true in some state), then x2 must be true globally (always).
184
12020F(x1) -> G(x1)
if x1 is ever true at some point, x2 must always be true
F(x1) => G(x2)
This is a question that Tim thought would be interesting.
The above is my answer because F( ) means eventually true and G( ) means globally/always true. I used the implication arrow to show that something eventually being true means it is always true for the set of traces defined by this LTL statement.
185
12020G(x2) /\\ F(x1)
if x1 is ever true at some point, x2 must always be true
F(x1) => G(x2)
This is a question that Tim thought would be interesting.
For traces where x1 is eventually true, or true at some point, you must also have that x2 is always true.
186
12020F(x1) => G(x2)
if x1 is ever true at some point, x2 must always be true
F(x1) => G(x2)
This is a question that Tim thought would be interesting.
F(x1) states that at some point x1 becomes true, G(x2) states that x2 is always true.
187
12020F(x1) => G(x2)
if x1 is ever true at some point, x2 must always be true
F(x1) => G(x2)
This is a question that Tim thought would be interesting.
If x1 is eventually true F(x1) that implies that x2 is always true G(x2).
188
12020F(x1 -> G(x2))
if x1 is ever true at some point, x2 must always be true
F(x1) => G(x2)
This is a question that Tim thought would be interesting.
I'm trying to say that eventually (F) if x1 is true then it implies that x2 is always (G) true
189
12020G(x1 => F(x2))
whenever x1 is true, x2 will be true at some point in the future
G(x1 => F(x2))
This is a question that Tim thought would be interesting.
190
12020G(x1 -> F(x2))
whenever x1 is true, x2 will be true at some point in the future
G(x1 => F(x2))
This is a question that Tim thought would be interesting.
It is always true that if x1 being true means that x2 must eventually become true. F(x2) means x2 eventually becomes true. x1 means x1 is true. -> means implies. G() means always.
191
12020G(x1 -> F(x2))
whenever x1 is true, x2 will be true at some point in the future
G(x1 => F(x2))
This is a question that Tim thought would be interesting.
x2 will be true at some point in the future interpreted as "x2 will eventually become and stay true"
192
112020x1 <-> F(x2)
whenever x1 is true, x2 will be true at some point in the future
G(x1 => F(x2))
This is a question that Tim thought would be interesting.
This is my answer because their is a bi-implication between x1 being true and x2 eventually being true. x1 being true can be expressed simply as x1, bi-implication can be expressed as "<->", and x2 eventually being true can be expressed as F(x2).
193
12020G(x1 => F(x2))
whenever x1 is true, x2 will be true at some point in the future
G(x1 => F(x2))
This is a question that Tim thought would be interesting.
F(x2) is true if x2 is true at some point in the future. We want this if x1 is true.
194
12020G(x1 => X(F(x2)))
whenever x1 is true, x2 will be true at some point in the future
G(x1 => F(x2))
This is a question that Tim thought would be interesting.
This is a condition that we want to always hold (G). Specifically, we want it to hold when x1 is true (x1 =>). When that is the case, we want x2 to be true eventually (F(x2)), but specifically in the future (X(F(x2))). This discounts x2 being true in the world in which x1 is true.
195
12020G(x1 => F(x2))
whenever x1 is true, x2 will be true at some point in the future
G(x1 => F(x2))
This is a question that Tim thought would be interesting.
whenever necessitates G
196
12020G(~x1 \\/ F(x2))
whenever x1 is true, x2 will be true at some point in the future
G(x1 => F(x2))
This is a question that Tim thought would be interesting.
Straightforward.
197
12020G(x1 -> F(X(x2)))
whenever x1 is true, x2 will be true at some point in the future
G(x1 => F(x2))
This is a question that Tim thought would be interesting.
It is always the case that x1 implies x2 will eventually be true in the future
198
12020x1 -> F(x2)
whenever x1 is true, x2 will be true at some point in the future
G(x1 => F(x2))
This is a question that Tim thought would be interesting.
x1 implies that x2 will eventually be true (F function)
199
112020
G(F(x1 U X(F(x1))))
whenever x1 is true, x2 will be true at some point in the future
G(x1 => F(x2))
This is a question that Tim thought would be interesting.
x1 must be true "in the future", so its eventually is wrapped in a next
200
12020G(x1 => F(x2))
whenever x1 is true, x2 will be true at some point in the future
G(x1 => F(x2))
This is a question that Tim thought would be interesting.
whenever x1 is true = G(x1 => ...), x2 will be true at some point in the future = F(x2)
201
12020G(x1 -> X(F(x2)))
whenever x1 is true, x2 will be true at some point in the future
G(x1 => F(x2))
This is a question that Tim thought would be interesting.
Whenever translates to G, and I used X(F(x2)) to get at the strictly in the future notion that seems to be implied
202
12020x1->F(x2)
whenever x1 is true, x2 will be true at some point in the future
G(x1 => F(x2))
This is a question that Tim thought would be interesting.
Whenever is somewhat similar to saying if then, which is represented by using the arrow (->). Since F means eventually, that is why I put x2 inside of it because the question said that it would eventually be true. When this is taken together, I then get the answer I have written above.
203
12020G(x1 -> F(x2))
whenever x1 is true, x2 will be true at some point in the future
G(x1 => F(x2))
This is a question that Tim thought would be interesting.
G means that this implication is always true, the implication is x1 is true implies eventually (F) x2 is true
204
12020G(x1 implies Fx2)
whenever x1 is true, x2 will be true at some point in the future
G(x1 => F(x2))
This is a question that Tim thought would be interesting.
It is globally true that if x1 then eventually x2
205
12020x1 -> F(x2)
whenever x1 is true, x2 will be true at some point in the future
G(x1 => F(x2))
This is a question that Tim thought would be interesting.
206
12020G(x1 => F(x2))
whenever x1 is true, x2 will be true at some point in the future
G(x1 => F(x2))
This is a question that Tim thought would be interesting.
207
12020x1 -> F(x2)
whenever x1 is true, x2 will be true at some point in the future
G(x1 => F(x2))
This is a question that Tim thought would be interesting.
208
12020G(x1 => F(x2))
whenever x1 is true, x2 will be true at some point in the future
G(x1 => F(x2))
This is a question that Tim thought would be interesting.
just realized we can use the implies operator, messed up some previous questions. this one is pretty straight forward.
209
12020x1 -> F(x2)
whenever x1 is true, x2 will be true at some point in the future
G(x1 => F(x2))
This is a question that Tim thought would be interesting.
if x1 is true, x2 is true at some point after
210
12020
F(x1) => (X(x1)* => X(x2)-)
Whenever x1 holds, it cannot hold again until x2 does
I think this is interesting because the 'cannot hold again until x2 does' is not quite the same as saying !x1 U x2 since that requires that x2 does in fact hold at some point. To write a correct formula, one has to think of this and allow for the possibility of G(!x2)
My answer uses an implication that establishes that if x1 holds, then if there is some time step in the future where x1 holds again then it is implied that x2 must have held in those previous statements prior to the time step where x1 held for the second time.
211
12020
G(x1=> (F(x2=>x1))
Whenever x1 holds, it cannot hold again until x2 does
I think this is interesting because the 'cannot hold again until x2 does' is not quite the same as saying !x1 U x2 since that requires that x2 does in fact hold at some point. To write a correct formula, one has to think of this and allow for the possibility of G(!x2)
This one was tricky and I don't think my answer is right. I believe that if G(x1 => states that whenever x1 is true, (F(x2=>x1)) states that whenever x2 becomes true, x1 must become true.
212
112020x1 => (!x1 U x2)
Whenever x1 holds, it cannot hold again until x2 does
I think this is interesting because the 'cannot hold again until x2 does' is not quite the same as saying !x1 U x2 since that requires that x2 does in fact hold at some point. To write a correct formula, one has to think of this and allow for the possibility of G(!x2)
x1 is false until x2, whenever x1 is true
213
2020
▢(x1 -> ○(¬x1)) U (x2 -> x1)
Whenever x1 holds, it cannot hold again until x2 does
I think this is interesting because the 'cannot hold again until x2 does' is not quite the same as saying !x1 U x2 since that requires that x2 does in fact hold at some point. To write a correct formula, one has to think of this and allow for the possibility of G(!x2)
I am basing my symbols from: http://www.cds.caltech.edu/~murray/courses/afrl-sp12/L3_ltl-24Apr12.pdf, and http://cs.brown.edu/courses/cs195y/2020/pages/pdf/LTL.pdf. From what I understand, ○ represents next state. Therefore, I stated that whenever(▢) x1 holds, it implies that in the next state, x1 would not hold. "U" indicates until. Hence, I continue the statement with "U" saying that "x2->x1". In other words, I state that when x2 holds, x1 can also hold.
214
12020G(x1->X(!x1Ux2))
Whenever x1 holds, it cannot hold again until x2 does
I think this is interesting because the 'cannot hold again until x2 does' is not quite the same as saying !x1 U x2 since that requires that x2 does in fact hold at some point. To write a correct formula, one has to think of this and allow for the possibility of G(!x2)
always, if x1 holds, in the next state, it cannot hold until x2 holds
215
12020
G(x1 => X(~x1 U x2))
Whenever x1 holds, it cannot hold again until x2 does
I think this is interesting because the 'cannot hold again until x2 does' is not quite the same as saying !x1 U x2 since that requires that x2 does in fact hold at some point. To write a correct formula, one has to think of this and allow for the possibility of G(!x2)
This is a condition that should always hold (G). It is a condition on x1 being true (hence "x1 =>"), and we want it so that ~x1 holds until x2 holds after that (hence (~x1 U x2)). We include the X because we want the until condition to only hold after the current state, since x1 is true in the current state.
216
12020G(x1->(¬x1)Ux2)
Whenever x1 holds, it cannot hold again until x2 does
I think this is interesting because the 'cannot hold again until x2 does' is not quite the same as saying !x1 U x2 since that requires that x2 does in fact hold at some point. To write a correct formula, one has to think of this and allow for the possibility of G(!x2)
If sometimes x1 holds, then x1 would be fixed to be false until x2 occurs to be true.
217
112020
x1:= true -> x1:=false U x2:=true
Whenever x1 holds, it cannot hold again until x2 does
I think this is interesting because the 'cannot hold again until x2 does' is not quite the same as saying !x1 U x2 since that requires that x2 does in fact hold at some point. To write a correct formula, one has to think of this and allow for the possibility of G(!x2)
I used implies because it is an if-then statement, and since U represents something holds up until something else (from online syntax resource) I used that to show "until x2 does"
218
12020
G(x1 -> X(!x1 U x2))
Whenever x1 holds, it cannot hold again until x2 does
I think this is interesting because the 'cannot hold again until x2 does' is not quite the same as saying !x1 U x2 since that requires that x2 does in fact hold at some point. To write a correct formula, one has to think of this and allow for the possibility of G(!x2)
I am using G to say this always holds. I am using X to get the trace starting at the next step and I am using U to say that x1 will be false until x2 is true.
219
112020x1 => (!x1 U x2)
Whenever x1 holds, it cannot hold again until x2 does
I think this is interesting because the 'cannot hold again until x2 does' is not quite the same as saying !x1 U x2 since that requires that x2 does in fact hold at some point. To write a correct formula, one has to think of this and allow for the possibility of G(!x2)
x1 holding implies that it will not hold again until x2 holds. I translated the whenever into an if via implies.
220
1112020
x1, G(X(not x1)) U x2
Whenever x1 holds, it cannot hold again until x2 does
I think this is interesting because the 'cannot hold again until x2 does' is not quite the same as saying !x1 U x2 since that requires that x2 does in fact hold at some point. To write a correct formula, one has to think of this and allow for the possibility of G(!x2)
I tried to say that if x1 holds, then always the next state x1 will be false until x2 is true.
221
12020
G(x1 -> G(X(not x1) U X(x2))))
Whenever x1 holds, it cannot hold again until x2 does
I think this is interesting because the 'cannot hold again until x2 does' is not quite the same as saying !x1 U x2 since that requires that x2 does in fact hold at some point. To write a correct formula, one has to think of this and allow for the possibility of G(!x2)
it's always true that if x1 is true, x1 can't be true in subsequent states until x2 is
222
1112020
x1 implies F(x1) iff x2
Whenever x1 holds, it cannot hold again until x2 does
I think this is interesting because the 'cannot hold again until x2 does' is not quite the same as saying !x1 U x2 since that requires that x2 does in fact hold at some point. To write a correct formula, one has to think of this and allow for the possibility of G(!x2)
We know that x1 might hold, which means it must imply the condition for it to occur again. Basically, x1 will eventually hold in the future only if x2 also holds. One piece of nuance that my statement might not totally account for is that I'm not sure with the syntax that i'm using, if it's saying that x2 will be true in the same time that x1 was originally true, or some time in the future where x2 is true. I'm afraid if it's the former, my statement might not be correct.
223
112020
x1 -> (!x2 U x2) U x1
Whenever x1 holds, it cannot hold again until x2 does
I think this is interesting because the 'cannot hold again until x2 does' is not quite the same as saying !x1 U x2 since that requires that x2 does in fact hold at some point. To write a correct formula, one has to think of this and allow for the possibility of G(!x2)
when x1 is true, that implies that the next x1 is only true when x2 is true (U function for the second part)
224
1112020x1 -> G(¬x1) U x2
Whenever x1 holds, it cannot hold again until x2 does
I think this is interesting because the 'cannot hold again until x2 does' is not quite the same as saying !x1 U x2 since that requires that x2 does in fact hold at some point. To write a correct formula, one has to think of this and allow for the possibility of G(!x2)
unti := U
225
12020
G(x1 U X(!x1 W x2)
Whenever x1 holds, it cannot hold again until x2 does
I think this is interesting because the 'cannot hold again until x2 does' is not quite the same as saying !x1 U x2 since that requires that x2 does in fact hold at some point. To write a correct formula, one has to think of this and allow for the possibility of G(!x2)
Wikipedia lists a "weak until" operator that can be constructed from the existing ones to enforce that something must be true until a condition is met.
226
12020
G(not x1 v X((not x1) U x2))
Whenever x1 holds, it cannot hold again until x2 does
I think this is interesting because the 'cannot hold again until x2 does' is not quite the same as saying !x1 U x2 since that requires that x2 does in fact hold at some point. To write a correct formula, one has to think of this and allow for the possibility of G(!x2)
Inside the "G" is an implication, saying that if x1 holds then x1 cannot hold in the next state, and it will not hold until x2 holds.
227
12020
(!x1 U x2) or G(!x1 and !x2)
Whenever x1 holds, it cannot hold again until x2 does
I think this is interesting because the 'cannot hold again until x2 does' is not quite the same as saying !x1 U x2 since that requires that x2 does in fact hold at some point. To write a correct formula, one has to think of this and allow for the possibility of G(!x2)
Two cases should be considered.\n1. x2 does hold at some point. According to the question, x1 cannot hold until then.\n2. x2 never holds. Therefore, x1 also cannot hold.
228
12020
G(x1 => X(!x1 U x2))
Whenever x1 holds, it cannot hold again until x2 does
I think this is interesting because the 'cannot hold again until x2 does' is not quite the same as saying !x1 U x2 since that requires that x2 does in fact hold at some point. To write a correct formula, one has to think of this and allow for the possibility of G(!x2)
Whenever x1 = G(x1 => ...), it cannot hold again [starting from the next step] = X(!x1 ...), until x2 = U x2
229
12020x1 -> X(!x1) U x2
Whenever x1 holds, it cannot hold again until x2 does
I think this is interesting because the 'cannot hold again until x2 does' is not quite the same as saying !x1 U x2 since that requires that x2 does in fact hold at some point. To write a correct formula, one has to think of this and allow for the possibility of G(!x2)
x1 being true implies that the next state of x1 is false (X(!x1)) until (U) x2 is true
230
2020
G(x1 -> X((!x1 U x2) v G(!x1 and !x2)))
Whenever x1 holds, it cannot hold again until x2 does
I think this is interesting because the 'cannot hold again until x2 does' is not quite the same as saying !x1 U x2 since that requires that x2 does in fact hold at some point. To write a correct formula, one has to think of this and allow for the possibility of G(!x2)
I wrote this. Whenever x1 holds 'G(x1 ->', in the future it is either the case that x1 is false until x2 is true (and x2 does in fact hold at some point) or that all states make x1 and x2 false, in which case the U would not be satisfied but the English would be
231
112020
x1 -> (NOT x1) U x2
Whenever x1 holds, it cannot hold again until x2 does
I think this is interesting because the 'cannot hold again until x2 does' is not quite the same as saying !x1 U x2 since that requires that x2 does in fact hold at some point. To write a correct formula, one has to think of this and allow for the possibility of G(!x2)
If x1 is true, that implies that NOT x1 should be true at least until x2 is true (U)
232
12020
(F(x1) and x1) => x2 U x1
Whenever x1 holds, it cannot hold again until x2 does
I think this is interesting because the 'cannot hold again until x2 does' is not quite the same as saying !x1 U x2 since that requires that x2 does in fact hold at some point. To write a correct formula, one has to think of this and allow for the possibility of G(!x2)
x1 holding true and eventually x1 holding true again implies that there exists an event where x2 occurred before x1
233
12020G(F(x2 -> x1))
Whenever x1 holds, it cannot hold again until x2 does
I think this is interesting because the 'cannot hold again until x2 does' is not quite the same as saying !x1 U x2 since that requires that x2 does in fact hold at some point. To write a correct formula, one has to think of this and allow for the possibility of G(!x2)
x1 will eventually hold when x2 holds, always will hold
234
12020
G(x1 implies (NOT x1 U x2))
Whenever x1 holds, it cannot hold again until x2 does
I think this is interesting because the 'cannot hold again until x2 does' is not quite the same as saying !x1 U x2 since that requires that x2 does in fact hold at some point. To write a correct formula, one has to think of this and allow for the possibility of G(!x2)
Whenever x1 holds, [...] is equivalent to G(x1 implies [...]).\nit cannot hold again until x2 is Not x1 until x2.
235
12020x1 -> G(x2 U !x3)
If x1, then it is always the case that x2 is true until x3 is false.
I think people used a lot of whenever x1 is true, then ... But I think there is a tricky difference between "whenever x1 is true",.. and "x1, then ..." because according to the definition, the proposition p is evaluated by whether w(0) maps p to true. That is: they are only concerned about i=0. However, "whenever x1" implies to all i
G is always true and x U y means x is true until y is true
236
12020
x1 -> x2 U (NOT)x3
If x1, then it is always the case that x2 is true until x3 is false.
I think people used a lot of whenever x1 is true, then ... But I think there is a tricky difference between "whenever x1 is true",.. and "x1, then ..." because according to the definition, the proposition p is evaluated by whether w(0) maps p to true. That is: they are only concerned about i=0. However, "whenever x1" implies to all i
If x1 is true, that implies that x2 must be true. We know that x2 is true until NOT x3, so we can use the U operator here
237
12020x1->G(x2U¬x3)
If x1, then it is always the case that x2 is true until x3 is false.
I think people used a lot of whenever x1 is true, then ... But I think there is a tricky difference between "whenever x1 is true",.. and "x1, then ..." because according to the definition, the proposition p is evaluated by whether w(0) maps p to true. That is: they are only concerned about i=0. However, "whenever x1" implies to all i
It is a little confusing to me. I guess it means that if the initial x1 is true, then until x3 becomes false, x2 would be true.
238
12020
x1 => G(x2 U ~x3)
If x1, then it is always the case that x2 is true until x3 is false.
I think people used a lot of whenever x1 is true, then ... But I think there is a tricky difference between "whenever x1 is true",.. and "x1, then ..." because according to the definition, the proposition p is evaluated by whether w(0) maps p to true. That is: they are only concerned about i=0. However, "whenever x1" implies to all i
We only consider x1 in the current state by the wording, and we want the conclusion to hold if x1 is true, hence "x1 =>". We\'re told that it\'s always the case (G), and we want x2 to hold until x3 doesn\'t (x2 U ~x3).\n\nThis is an odd one, really. If it\'s always the case that x2 is true until x3 is false, then x2 must be true whenever x3 is not false (i.e. x3 is true), so we can write this as G(x3 => x2) as well.
239
12020x1->G(x2 U !x3)
If x1, then it is always the case that x2 is true until x3 is false.
I think people used a lot of whenever x1 is true, then ... But I think there is a tricky difference between "whenever x1 is true",.. and "x1, then ..." because according to the definition, the proposition p is evaluated by whether w(0) maps p to true. That is: they are only concerned about i=0. However, "whenever x1" implies to all i
So since it says "if x1 then, this basically means writing x1->. Then G means that the expression always holds, which is why I put the expression to the right of the arrow inside of G and the U means until, which is why I put x2 U !x3, since ! means false.
240
12020x1 -> x2 U !x3
If x1, then it is always the case that x2 is true until x3 is false.
I think people used a lot of whenever x1 is true, then ... But I think there is a tricky difference between "whenever x1 is true",.. and "x1, then ..." because according to the definition, the proposition p is evaluated by whether w(0) maps p to true. That is: they are only concerned about i=0. However, "whenever x1" implies to all i
if x1 is true, this implies (->) x2 is true until (U) x3 is false (!)
241
12020x1 => G(x2 U !x3)
If x1, then it is always the case that x2 is true until x3 is false.
I think people used a lot of whenever x1 is true, then ... But I think there is a tricky difference between "whenever x1 is true",.. and "x1, then ..." because according to the definition, the proposition p is evaluated by whether w(0) maps p to true. That is: they are only concerned about i=0. However, "whenever x1" implies to all i
If/then = =>, always = G, until = U
242
12020x1 => G(x2 U !x3)
If x1, then it is always the case that x2 is true until x3 is false.
I think people used a lot of whenever x1 is true, then ... But I think there is a tricky difference between "whenever x1 is true",.. and "x1, then ..." because according to the definition, the proposition p is evaluated by whether w(0) maps p to true. That is: they are only concerned about i=0. However, "whenever x1" implies to all i
x1 implies that G=(always) always x2 is true U=(until) until x3 is false.
243
12020x1 -> G(x2 U !x3)
If x1, then it is always the case that x2 is true until x3 is false.
I think people used a lot of whenever x1 is true, then ... But I think there is a tricky difference between "whenever x1 is true",.. and "x1, then ..." because according to the definition, the proposition p is evaluated by whether w(0) maps p to true. That is: they are only concerned about i=0. However, "whenever x1" implies to all i
if x1, we can imply that, always, x2 is true until x3 is false
244
12020¬x1 ∨ G(x2 U x3)
If x1, then it is always the case that x2 is true until x3 is false.
I think people used a lot of whenever x1 is true, then ... But I think there is a tricky difference between "whenever x1 is true",.. and "x1, then ..." because according to the definition, the proposition p is evaluated by whether w(0) maps p to true. That is: they are only concerned about i=0. However, "whenever x1" implies to all i
This says that if x1 is not true then x2 until x3 is always true.
245
12020x1 -> G(x2 U !x3)
If x1, then it is always the case that x2 is true until x3 is false.
I think people used a lot of whenever x1 is true, then ... But I think there is a tricky difference between "whenever x1 is true",.. and "x1, then ..." because according to the definition, the proposition p is evaluated by whether w(0) maps p to true. That is: they are only concerned about i=0. However, "whenever x1" implies to all i
x1 means that x1 is true, G means always, x2 U !x3 means that x2 is true until x3 is not true
246
12020w ⊨ x1 ⟹ x2 U ¬x3
If x1, then it is always the case that x2 is true until x3 is false.
I think people used a lot of whenever x1 is true, then ... But I think there is a tricky difference between "whenever x1 is true",.. and "x1, then ..." because according to the definition, the proposition p is evaluated by whether w(0) maps p to true. That is: they are only concerned about i=0. However, "whenever x1" implies to all i
If x1 is true, then we want x2 to always be true until x3 is false. So, at some point x3 is false, which means that there exists an i such that w^i ⊨ ¬x3, and forall j which are between 0 and that i w^j ⊨ x2 (because those traces come before the one where x3 is false and we want x2 to be true in all of them). This translates into x2 U ¬x3, but we also need the if x1 then x2 U ¬x3, so we have w ⊨ x1 ⟹ x2 U ¬x3.
247
12020x1 -> G(x2 U !x3)
If x1, then it is always the case that x2 is true until x3 is false.
I think people used a lot of whenever x1 is true, then ... But I think there is a tricky difference between "whenever x1 is true",.. and "x1, then ..." because according to the definition, the proposition p is evaluated by whether w(0) maps p to true. That is: they are only concerned about i=0. However, "whenever x1" implies to all i
If x1, the -> means implies. x2 U !x3 means that x2 is true until x3 becomes false. This is implied by x1. The G means it is always the case.
248
2020
x1 => (F(-x3) => X(x2)-)
If x1, then it is always the case that x2 is true until x3 is false.
I think people used a lot of whenever x1 is true, then ... But I think there is a tricky difference between "whenever x1 is true",.. and "x1, then ..." because according to the definition, the proposition p is evaluated by whether w(0) maps p to true. That is: they are only concerned about i=0. However, "whenever x1" implies to all i
x1 holding implies that if eventually x3 is false, x2 will hold until then.
249
12020x1 -> G(x2 U !x3)
If x1, then it is always the case that x2 is true until x3 is false.
I think people used a lot of whenever x1 is true, then ... But I think there is a tricky difference between "whenever x1 is true",.. and "x1, then ..." because according to the definition, the proposition p is evaluated by whether w(0) maps p to true. That is: they are only concerned about i=0. However, "whenever x1" implies to all i
250
12020G(x1 -> (x2 U !x3))
If x1, then it is always the case that x2 is true until x3 is false.
I think people used a lot of whenever x1 is true, then ... But I think there is a tricky difference between "whenever x1 is true",.. and "x1, then ..." because according to the definition, the proposition p is evaluated by whether w(0) maps p to true. That is: they are only concerned about i=0. However, "whenever x1" implies to all i
251
2020
G(x1 U (x2 W !x3))
If x1, then it is always the case that x2 is true until x3 is false.
I think people used a lot of whenever x1 is true, then ... But I think there is a tricky difference between "whenever x1 is true",.. and "x1, then ..." because according to the definition, the proposition p is evaluated by whether w(0) maps p to true. That is: they are only concerned about i=0. However, "whenever x1" implies to all i
This is another use of the "weak until" operator
252
12020
G(x1 -> G(x2 U !x3))
If x1, then it is always the case that x2 is true until x3 is false.
I think people used a lot of whenever x1 is true, then ... But I think there is a tricky difference between "whenever x1 is true",.. and "x1, then ..." because according to the definition, the proposition p is evaluated by whether w(0) maps p to true. That is: they are only concerned about i=0. However, "whenever x1" implies to all i
I am using G to say that this always holds. I am using U to express x2 being true until x3 is false.
253
12020
x1:=true -> G( x2:= true U x3:= false)
If x1, then it is always the case that x2 is true until x3 is false.
I think people used a lot of whenever x1 is true, then ... But I think there is a tricky difference between "whenever x1 is true",.. and "x1, then ..." because according to the definition, the proposition p is evaluated by whether w(0) maps p to true. That is: they are only concerned about i=0. However, "whenever x1" implies to all i
I used the implies because it is an if-then relationship, and the next condition is always the case, and I used U because it means that something holds until another condition.
254
12020x1 => G(x2 U !x3)
If x1, then it is always the case that x2 is true until x3 is false.
I think people used a lot of whenever x1 is true, then ... But I think there is a tricky difference between "whenever x1 is true",.. and "x1, then ..." because according to the definition, the proposition p is evaluated by whether w(0) maps p to true. That is: they are only concerned about i=0. However, "whenever x1" implies to all i
The implies is direct. The until is a little bit unclear, but how I am interpreting it, I am using U.
255
112020
~x1 v (x2 v F(~x3))
If x1, then it is always the case that x2 is true until x3 is false.
I think people used a lot of whenever x1 is true, then ... But I think there is a tricky difference between "whenever x1 is true",.. and "x1, then ..." because according to the definition, the proposition p is evaluated by whether w(0) maps p to true. That is: they are only concerned about i=0. However, "whenever x1" implies to all i
we start with subpredicate 'x2 is true until x3 is False'\nx2 v F(x3) means x2 is True until x3 is True, so F(~x3) means until F3 is False. \nso we have x2 v F(~x3)\nnow if-then is equivalent to implies, but LTL does not have implies, so we use \nlogically equivalent statement p->q <=> ~p v q
256
12020
x1 -> G(x2 F(X(-x3)))
If x1, then it is always the case that x2 is true until x3 is false.
I think people used a lot of whenever x1 is true, then ... But I think there is a tricky difference between "whenever x1 is true",.. and "x1, then ..." because according to the definition, the proposition p is evaluated by whether w(0) maps p to true. That is: they are only concerned about i=0. However, "whenever x1" implies to all i
this is my answer because x1 implies "->" that it is always the case "G( )" that x2 is true, and then eventually "F( )" the next thing is "X( )" x3 is false. I used the " - " operator to represent the not operator because I didn\'t know how to type the not logical operator
257
12020
G(x1=>F(x2) ∧ ¬X(x3))
Every time x1 is true, eventually x2 is true or the next x3 is false
I think this is somewhat interesting since it's somewhat counterintuitive to think about next states among different variables. Also, this is interesting because it mixes eventually, and implies (x1 -> F(x2 V X(!x3)))
It requires for every x1, either "eventually x2" is true or "the next x3" is false
258
12020
G(x1 => F(x2) or X(!x2))
Every time x1 is true, eventually x2 is true or the next x3 is false
I think this is somewhat interesting since it's somewhat counterintuitive to think about next states among different variables. Also, this is interesting because it mixes eventually, and implies (x1 -> F(x2 V X(!x3)))
Every time x1 is true = G(x1 => ...), eventually = F, next = X
259
12020
G(x1 => (F(x2) or !X(x3)))
Every time x1 is true, eventually x2 is true or the next x3 is false
I think this is somewhat interesting since it's somewhat counterintuitive to think about next states among different variables. Also, this is interesting because it mixes eventually, and implies (x1 -> F(x2 V X(!x3)))
Globally accounts for "every time", F(x2) gives eventually x2 and X(x3) gives the next x3.
260
112020
x1 -> F(x2) and X(x3)
Every time x1 is true, eventually x2 is true or the next x3 is false
I think this is somewhat interesting since it's somewhat counterintuitive to think about next states among different variables. Also, this is interesting because it mixes eventually, and implies (x1 -> F(x2 V X(!x3)))
X can express "next"
261
12020
G(x1 -> (F(x2) or X(!x3)))
Every time x1 is true, eventually x2 is true or the next x3 is false
I think this is somewhat interesting since it's somewhat counterintuitive to think about next states among different variables. Also, this is interesting because it mixes eventually, and implies (x1 -> F(x2 V X(!x3)))
Every time x1 is true means the formula has to start with a G and an x1. Eventually means F, so "eventually x2 is true" translates to F(x2). We can encode the next x3 being false using the X operator, i.e. X(!x3). Thus G(x1 -> (F(x2) or X(!x3))).
262
12020
G(x1 -> (F(x2) or X(!x3)))
Every time x1 is true, eventually x2 is true or the next x3 is false
I think this is somewhat interesting since it's somewhat counterintuitive to think about next states among different variables. Also, this is interesting because it mixes eventually, and implies (x1 -> F(x2 V X(!x3)))
Always, x1 implies eventually (F) x2 is true, or next (X) x3 is false
263
12020
G(~x1 \\/ (F(x2) \\/ X(x3)))
Every time x1 is true, eventually x2 is true or the next x3 is false
I think this is somewhat interesting since it's somewhat counterintuitive to think about next states among different variables. Also, this is interesting because it mixes eventually, and implies (x1 -> F(x2 V X(!x3)))
We need to use all of G, F, and X.
264
12020
G(x1=>(F(x2) or X(!x3)))
Every time x1 is true, eventually x2 is true or the next x3 is false
I think this is somewhat interesting since it's somewhat counterintuitive to think about next states among different variables. Also, this is interesting because it mixes eventually, and implies (x1 -> F(x2 V X(!x3)))
G(x1=> implies that whenever x1 becomes true, (F(x2) or X(!x3)) implies that eventually x2 is true, or the next x3 is false.
265
12020
G(x1=>(F(x2) or X(!x3)))
Every time x1 is true, eventually x2 is true or the next x3 is false
I think this is somewhat interesting since it's somewhat counterintuitive to think about next states among different variables. Also, this is interesting because it mixes eventually, and implies (x1 -> F(x2 V X(!x3)))
G = (always), so G(x1 => b) means that every time x1 is true b should happen. In this case, b is F(x2) or X(!x3): F = (eventually), so either b is eventually true or X = (next) the next x3 is false.
266
12020
G(x1 => (F(x2) or X(x3))
Every time x1 is true, eventually x2 is true or the next x3 is false
I think this is somewhat interesting since it's somewhat counterintuitive to think about next states among different variables. Also, this is interesting because it mixes eventually, and implies (x1 -> F(x2 V X(!x3)))
G is for every time, F is for eventually and X is next. Otherwise it follows directly.
267
12020
x1 -> (F(x2) or X(!x3))
Every time x1 is true, eventually x2 is true or the next x3 is false
I think this is somewhat interesting since it's somewhat counterintuitive to think about next states among different variables. Also, this is interesting because it mixes eventually, and implies (x1 -> F(x2 V X(!x3)))
268
12020
x1 implies F(x2) or X(!x3)
Every time x1 is true, eventually x2 is true or the next x3 is false
I think this is somewhat interesting since it's somewhat counterintuitive to think about next states among different variables. Also, this is interesting because it mixes eventually, and implies (x1 -> F(x2 V X(!x3)))
My idea is to think of the instance when x1 is true, we have two options: F(x2), meaning that x2 is true, or that X(!x3), the next x3 is false. One thing that I\'m a little bit unsure about is how the wording "Every time" affects the LTL statement. If x1 is true once, that will always be the case that the things after will follow, but I just assumed it wouldn\'t affect it? But I\'m not completely sure.
269
112020
x1 -> F(x2) OR X(x3)
Every time x1 is true, eventually x2 is true or the next x3 is false
I think this is somewhat interesting since it's somewhat counterintuitive to think about next states among different variables. Also, this is interesting because it mixes eventually, and implies (x1 -> F(x2 V X(!x3)))
My answer is somewhat self-explanatory here : x1 beings true implies that x2 is eventually true (F function) or the next x3 is false (X function)
270
12020
x1-> F(x2) OR X(-x3)
Every time x1 is true, eventually x2 is true or the next x3 is false
I think this is somewhat interesting since it's somewhat counterintuitive to think about next states among different variables. Also, this is interesting because it mixes eventually, and implies (x1 -> F(x2 V X(!x3)))
x1 being true "x1" implies "->" x2 is eventually true "F(x2) or "OR (using this to represent the logical or operator)" the next "X( )" x3 is false "-x3". I was a little unclear if "the next x3 is false" meant that the next part of the trace was a false x3, or eventually there was an x3 and that x3 was false, but I went with the first assumption.
271
12020x1 -> F(x2) or !x3
Every time x1 is true, eventually x2 is true or the next x3 is false
I think this is somewhat interesting since it's somewhat counterintuitive to think about next states among different variables. Also, this is interesting because it mixes eventually, and implies (x1 -> F(x2 V X(!x3)))
272
12020
G(x1) => F(x2) U X(!x3)
Every time x1 is true, eventually x2 is true or the next x3 is false
I think this is somewhat interesting since it's somewhat counterintuitive to think about next states among different variables. Also, this is interesting because it mixes eventually, and implies (x1 -> F(x2 V X(!x3)))
Every time can be translated to always x1 implies the last portion of the expression.
273
112020
x1 => (F(x2) OR XX(!x3))
Every time x1 is true, eventually x2 is true or the next x3 is false
I think this is somewhat interesting since it's somewhat counterintuitive to think about next states among different variables. Also, this is interesting because it mixes eventually, and implies (x1 -> F(x2 V X(!x3)))
x1 implies that eventually (F) x2 is true, or the subsequent (XX) x3 is false
274
12020
G( (x1 -> ( F(x2)) or X(!x3) ) )
Every time x1 is true, eventually x2 is true or the next x3 is false
I think this is somewhat interesting since it's somewhat counterintuitive to think about next states among different variables. Also, this is interesting because it mixes eventually, and implies (x1 -> F(x2 V X(!x3)))
The G() means it is always true. x1 -> means that x1 being true implies something. F(x2) means eventually x2 is true. X(!x3) means the next x3 is false.
275
12020
G(x1 => (F(x2) or X(!x3))
Every time x1 is true, eventually x2 is true or the next x3 is false
I think this is somewhat interesting since it's somewhat counterintuitive to think about next states among different variables. Also, this is interesting because it mixes eventually, and implies (x1 -> F(x2 V X(!x3)))
276
12020
x1 -> (Fx2 OR (X NOT x3))
Every time x1 is true, eventually x2 is true or the next x3 is false
I think this is somewhat interesting since it's somewhat counterintuitive to think about next states among different variables. Also, this is interesting because it mixes eventually, and implies (x1 -> F(x2 V X(!x3)))
whenever x1 is true, that implies that either (OR) x2 should be true at some point (F), or NOT x3 should be true in the next state (X)
277
12020
x1 -> ((F x2) ∨ (X ¬x3))
Every time x1 is true, eventually x2 is true or the next x3 is false
I think this is somewhat interesting since it's somewhat counterintuitive to think about next states among different variables. Also, this is interesting because it mixes eventually, and implies (x1 -> F(x2 V X(!x3)))
x1 being true implies that, from that point on, x2 is eventually true or x3 is false in the next state.
278
12020
G(x1 => (F(x2) v X(~x3)))
Every time x1 is true, eventually x2 is true or the next x3 is false
I think this is somewhat interesting since it's somewhat counterintuitive to think about next states among different variables. Also, this is interesting because it mixes eventually, and implies (x1 -> F(x2 V X(!x3)))
This is really just translation. It\'s a condition "every time x1 is true", so "G(x1 => ... )", and we want either x2 to eventually be true (F(x2)), or the next x3 to be false (X(~x3)).
279
12020
G(x1 -> F(x2 or X(!x3)))
Every time x1 is true, eventually x2 is true or the next x3 is false
I think this is somewhat interesting since it's somewhat counterintuitive to think about next states among different variables. Also, this is interesting because it mixes eventually, and implies (x1 -> F(x2 V X(!x3)))
It always holds that if x1 is true then eventually x2 is true or the state after will have x3 as false.
280
12020
G(x1 => F(x2) or X(!x3))
Every time x1 is true, eventually x2 is true or the next x3 is false
I think this is somewhat interesting since it's somewhat counterintuitive to think about next states among different variables. Also, this is interesting because it mixes eventually, and implies (x1 -> F(x2 V X(!x3)))
At all times, we want x1 to imply that F(x2) and that X(X3)
281
12020
G (!( x1 and X(x1) and X(X(x1)) ))
x1 cannot be true three states in a row
in a row is an interesting concept
The statement just says that the case in which x1 is true 3 states in a row, is always never true
282
12020
G( ! (x1 and Xx1 and XXx1))
x1 cannot be true three states in a row
in a row is an interesting concept
I put a G on the outside to apply it to a rule to all states. Basically, I hard coded that there can't be a case where x1 is true for one state, the state after, and the state after.
283
12020
G((x1 and X(x1)) => X(X(!x1)))
x1 cannot be true three states in a row
in a row is an interesting concept
If x1 is true 2 states in a row, it should be false in the next state.
284
12020
G (¬(x1 ∧ X x1 ∧ XX x1))
x1 cannot be true three states in a row
in a row is an interesting concept
It is always the case that x1 AND the next x1 AND the next next x1 is false (at least one must be false).
285
12020
!F(x1 ^ X(x1) ^ X(X(x1)))
x1 cannot be true three states in a row
in a row is an interesting concept
There is never eventually a state where (x1) is true, and the next state X(x1) is true, and the next next state X(X(x1)) is true
286
12020
G(~(x1 ^ X(x1) ^ X(X(x1))))
x1 cannot be true three states in a row
in a row is an interesting concept
This is a condition that we want to be true at all states (G). We use (x1 ^ X(x1) ^ X(X(x1))) to mean that x1 is true in this state, the next state, and the state after the next state. So, the negation of this says that x1 is not true in all three consecutive states.
287
12020
G(~(x1 /\\ X(x1) /\\ X(X(x1)) )
x1 cannot be true three states in a row
in a row is an interesting concept
(x1 /\\ X(x1) /\\ X(X(x1) = current_state x1 and next_state x1 and state_after_next x1\nAdd global operator so that it applies to all states and not the initial state.\nSo every state is not a state where x1 is true and true for the next three states.
288
12020
G(!x1 or X(!x1) X(X(!x1))
x1 cannot be true three states in a row
in a row is an interesting concept
289
12020
G((x1 and X(x1) => X(X(!x1)))
x1 cannot be true three states in a row
in a row is an interesting concept
Multiple ways to formulate this one. My interpretation: whenever (G) x1 is true two states in a row (x1 and X(x1)), it is false the following state (X(X(!x1))). This implies it can't be true three states in a row.
290
12020
~(F(x1 and X(x1) and X(X(x1)))
x1 cannot be true three states in a row
in a row is an interesting concept
it is not the case that there is an x1 state such that the successor and successor's successor are also x1
291
12020
G(x1 ∧ X(x1) =>¬X(X(x1)))
x1 cannot be true three states in a row
in a row is an interesting concept
the statment is equivalent to\n for any x1 is true and its next state is true, its next of next state should be false.
292
12020
G(!(x1 and X(x1) and X(X(x1))))
x1 cannot be true three states in a row
in a row is an interesting concept
x1 and X(x1) and X(X(x1)) is x1 being true 3 times. G(!(...)) negates and applies always.
293
2020!G(x1)
x1 cannot be true three states in a row
in a row is an interesting concept
x1 cannot be always true
294
12020
x1:=false | ◯ x1:=false | ◯ x1:=false
x1 cannot be true three states in a row
in a row is an interesting concept
Referencing http://www.cds.caltech.edu/~murray/courses/afrl-sp12/L3_ltl-24Apr12.pdf a LTL syntax resource, I think using ◯ references the next state (not sure how to constraint the next 3 states specifically) so I did next's next's next
295
12020
G(x1 /\\ X(x1) /\\ X(X(x1)))
x1 cannot be true three states in a row
in a row is an interesting concept
296
12020
G( ! (x1 -> X(x1) -> X(X(x1)) ) )
x1 cannot be true three states in a row
in a row is an interesting concept
x1 -> X(x1) -> X(X(x1)) was my attempt to represent three states in a now where x1 is true. I negate that since I do not want that to be the case and add the G in front as I want this to be the case at any point in the trace
297
12020
!(x1 and X(x1) and X(X(x1)))
x1 cannot be true three states in a row
in a row is an interesting concept
298
12020
x1 -> (X(¬x1) v X(X(¬x1)))
x1 cannot be true three states in a row
in a row is an interesting concept
X() means next state, X(X()) means next of the next state
299
12020
G(x1 and X(x1) and X(X(x1)))
x1 cannot be true three states in a row
in a row is an interesting concept
x1 and X(x1) and X(X(x1))) would only evaluate True if the all three terms of the sequence evaluate to True, the G in front stands that this must always hold.
300
12020
G(x1 -> (X NOT x1) -> (XX NOT x1))
x1 cannot be true three states in a row
in a row is an interesting concept
if x1 is true, that implies that, in the next state, NOT x2 should be true, and in the state after that (XX), NOT x1 should also be true. This should be globally true, since it is not necessarily true that x1 will always be true in the first state.
301
12020G(-(XXXx1))
x1 cannot be true three states in a row
in a row is an interesting concept
I have that it is always not true that x1 is true in 3 states in a row. I believe this is the correct use of X?
302
12020
x1 |= true -> ○¬x1 /\\ ○○¬x1 /\\ ○○○¬x1
x1 cannot be true three states in a row
in a row is an interesting concept
x1|=true indicates when x1 holds true. "->" means imply (if-then statement). ○¬x1 /\\ ○○¬x1 /\\ ○○○¬x1 is my attempt to show that x1 has to be false for 3 states in a row. "○" indicates the next state. I am referring to http://cs.brown.edu/courses/cs195y/2020/pages/pdf/LTL.pdf and http://www.cds.caltech.edu/~murray/courses/afrl-sp12/L3_ltl-24Apr12.pdf in order to write these answers.
303
12020
G(x1 AND Xx1 AND XXx1)
x1 cannot be true three states in a row
in a row is an interesting concept
It is globally true that x1, x1 for the next, and x1 for the next next iteration
304
112020X(X(X(!x1)))
x1 cannot be true three states in a row
in a row is an interesting concept
Three states in a row can be represented as 3 X's.
305
12020
F(x1) and G(x1 -> ~X(F(x1)))
x1 is true in exactly one state.
I think it corresponds to G(x1 -> G(X(!x1))). If that's correct, then it is interesting because the implies achieves the 'exactly one' in the prompt.
It must be true that x1 holds at some point (F(x1)) and that after it holds it doesn't anymore. This second part is achieved by requiring that no state in the future satisfies x1.
306
12020
F(x1) ^ G(x1 => X(G(~x1)))
x1 is true in exactly one state.
I think it corresponds to G(x1 -> G(X(!x1))). If that's correct, then it is interesting because the implies achieves the 'exactly one' in the prompt.
F(x1) enforces that x1 is true in at least one state. We further want it so that, in that state, no state thereafter makes x1 true, so we want it that, in any state where x1 is true, all following state have ~x1. So, X(G(~x1)) enforces that all future states have ~x1, and x1 => X(G(~x1)) says for this to happen when x1 is true. Wrapping it in G makes it a global condition, which will then only be enforced in the one state where x1 is true. If x1 were true in two states, then the right condition would not hold in that first state.
307
12020
F(x1) and G(x1=>!F(x1))
x1 is true in exactly one state.
I think it corresponds to G(x1 -> G(X(!x1))). If that's correct, then it is interesting because the implies achieves the 'exactly one' in the prompt.
F(x1) is that it is true in some state. G(x1=>!F(x1)) is that after any state in which it is true, it is never true again. This implies that x1 is true exactly once.
308
112020
!x1 U x1 and (x1 => !F(x1))
x1 is true in exactly one state.
I think it corresponds to G(x1 -> G(X(!x1))). If that's correct, then it is interesting because the implies achieves the 'exactly one' in the prompt.
!x1 U x1 means that x1 must hold in some state, and that x1 is false in all prior states. x1 => !F(x1) means that in the state x1 holds, it is not the case that x1 will eventually hold again. So, x1 is true exactly once, and never before or after that state.
309
12020G(x1 -> X(G(!x1)))
x1 is true in exactly one state.
I think it corresponds to G(x1 -> G(X(!x1))). If that's correct, then it is interesting because the implies achieves the 'exactly one' in the prompt.
In all cases, once x1 becomes true, it means in the next case is x1 is false, and x1 will be false forever at that point.
310
112020x1 & !Xx1
x1 is true in exactly one state.
I think it corresponds to G(x1 -> G(X(!x1))). If that's correct, then it is interesting because the implies achieves the 'exactly one' in the prompt.
x1 only true once
311
2020
This cannot be encode in LTL
x1 is true in exactly one state.
I think it corresponds to G(x1 -> G(X(!x1))). If that's correct, then it is interesting because the implies achieves the 'exactly one' in the prompt.
312
2020x1:=true -> A^1
x1 is true in exactly one state.
I think it corresponds to G(x1 -> G(X(!x1))). If that's correct, then it is interesting because the implies achieves the 'exactly one' in the prompt.
Not sure how to account for the exactly one state so I just used A (from an online resources).
313
12020G(x1 -> G(X(!x1)))
x1 is true in exactly one state.
I think it corresponds to G(x1 -> G(X(!x1))). If that's correct, then it is interesting because the implies achieves the 'exactly one' in the prompt.
it's always true that if x1 is true, then the next state can never be true again
314
2020I am not sure
x1 is true in exactly one state.
I think it corresponds to G(x1 -> G(X(!x1))). If that's correct, then it is interesting because the implies achieves the 'exactly one' in the prompt.
I am not sure how to count how many times a variable is true in a trace
315
112020
G(x1 -> X(!x1) ^ (!x1 U x1))
x1 is true in exactly one state.
I think it corresponds to G(x1 -> G(X(!x1))). If that's correct, then it is interesting because the implies achieves the 'exactly one' in the prompt.
Always, x1 being true implies that the next (X) state is false, and, x1 is false up until x1 is true in this state.
316
12020
F(¬x1Ux1) ∧ G(F(x1)U¬x1)
x1 is true in exactly one state.
I think it corresponds to G(x1 -> G(X(!x1))). If that's correct, then it is interesting because the implies achieves the 'exactly one' in the prompt.
317
12020x1 and G(X(!x1))
x1 is true in exactly one state.
I think it corresponds to G(x1 -> G(X(!x1))). If that's correct, then it is interesting because the implies achieves the 'exactly one' in the prompt.
x1 holds at some state and x1 is false along the entire subsequence path starting at the next state
318
12020
F(x1 and X(G(!x1)))
x1 is true in exactly one state.
I think it corresponds to G(x1 -> G(X(!x1))). If that's correct, then it is interesting because the implies achieves the 'exactly one' in the prompt.
Once x1 is true, for all the states after, x1 is false
319
12020
Fx1 ^ (x1--> XG~x1)
x1 is true in exactly one state.
I think it corresponds to G(x1 -> G(X(!x1))). If that's correct, then it is interesting because the implies achieves the 'exactly one' in the prompt.
firstly Fx1 means x1 have to be true at some point (x1--> XG~x1) means that when x1 is true, the state after that cannot have x1 as true
320
12020F(x1)
x1 is true in exactly one state.
I think it corresponds to G(x1 -> G(X(!x1))). If that's correct, then it is interesting because the implies achieves the 'exactly one' in the prompt.
x1 is eventually true
321
112020x1->G(X(!x1))
x1 is true in exactly one state.
I think it corresponds to G(x1 -> G(X(!x1))). If that's correct, then it is interesting because the implies achieves the 'exactly one' in the prompt.
I really couldn\'t find anything in the notes on how to write "exactly one state" so basically my logic behind this statement is that when x1 is true then it always has to hold that the next state has to be false, which might mean that it holds in exactly one but like I said I wasn\'t really sure.
322
12020
F(x1 AND G(NOT Xx1))
x1 is true in exactly one state.
I think it corresponds to G(x1 -> G(X(!x1))). If that's correct, then it is interesting because the implies achieves the 'exactly one' in the prompt.
It is eventually true that x1 and that always true that x1 is false in the next iteration thereafter
323
2020
G(x1!) U x1 -> G(!x1)
x1 is true in exactly one state.
I think it corresponds to G(x1 -> G(X(!x1))). If that's correct, then it is interesting because the implies achieves the 'exactly one' in the prompt.
x1 is always false until it is true which then implies that its always false again
324
12020
G(~x1) U (x1 /\\ X(G(~x1)))
x1 is true in exactly one state.
I think it corresponds to G(x1 -> G(X(!x1))). If that's correct, then it is interesting because the implies achieves the 'exactly one' in the prompt.
x1 is never true until x1 becomes true and in the next state, x1 is never true.
325
112020
G(F(x1 and G(X(!x1))))
x1 is true in exactly one state.
I think it corresponds to G(x1 -> G(X(!x1))). If that's correct, then it is interesting because the implies achieves the 'exactly one' in the prompt.
there exists an a sequence where x1 is true and the all the following states are all false, holds for all subsequences.
326
2020
(x1 => X(G(!x1))) and (!x1 => F(x1))
x1 is true in exactly one state.
I think it corresponds to G(x1 -> G(X(!x1))). If that's correct, then it is interesting because the implies achieves the 'exactly one' in the prompt.
So I'm having some trouble here again conceptualizing how recursive/retroactive LTL is. What I'm trying to say above is that if x1 is currently true, then it will never be true again, and if it's false, then it will eventually be true. I think this should cover things, but wanted to acknowledge I'm not 100% sure in case that's helpful.
327
2020
G(not(x1)) U x1 and X(not(x1)) U G(not(x1))
x1 is true in exactly one state.
I think it corresponds to G(x1 -> G(X(!x1))). If that's correct, then it is interesting because the implies achieves the 'exactly one' in the prompt.
In order to express the idea of "exactly one state" I started with the global (always) statement that x1 is not true, until x1 is true, but then in the immediately subsequent state (X operator), not x1 is true again, until x1 is again always not true. I\'m not sure whether these last two expressions are redundant, but it seemed important to use the next operator to incorporate the idea of x1 being true for only one state.
328
2020
U(-x1) I(x1) (-x1)^(omega)
x1 is true in exactly one state.
I think it corresponds to G(x1 -> G(X(!x1))). If that's correct, then it is interesting because the implies achieves the 'exactly one' in the prompt.
x1 is true at an arbitrary i-th entry in the sequence I(x1). Up until that i-th entry, -x1 is true "U(-x1)" and after the i-th entry -x1 is always true "(-x1)^(omega)"
329
12020
G( x1->!x2 and x2->!x1)
Considering x1 and x2 as two threads both attempting to add lock on a variable. describe the rule that "No more than one thread can have that lock". Take true as success on locking and false as failure.
It uses LTL to simulate an essential rule in synchronization.
G means that this always holds, x1->!x2 means that if x1 is true then x2 is false and x2->!x1 means that if x2 is true then x1 is false
330
12020G(!x1 or !x2)
Considering x1 and x2 as two threads both attempting to add lock on a variable. describe the rule that "No more than one thread can have that lock". Take true as success on locking and false as failure.
It uses LTL to simulate an essential rule in synchronization.
No more than one thread can have the lock, so always (G), one doesn't have it (!x1) or the other (!x2)
331
12020G(¬(x1 ^ x2))
Considering x1 and x2 as two threads both attempting to add lock on a variable. describe the rule that "No more than one thread can have that lock". Take true as success on locking and false as failure.
It uses LTL to simulate an essential rule in synchronization.
x1 and x2 cannot be true at the same state
332
12020
G((x1 U x2) and (x2 U x1))
Considering x1 and x2 as two threads both attempting to add lock on a variable. describe the rule that "No more than one thread can have that lock". Take true as success on locking and false as failure.
It uses LTL to simulate an essential rule in synchronization.
It always true that x1 will be followed by x2 and x2 will be followed by x2
333
12020G(!(x1 and x2))
Considering x1 and x2 as two threads both attempting to add lock on a variable. describe the rule that "No more than one thread can have that lock". Take true as success on locking and false as failure.
It uses LTL to simulate an essential rule in synchronization.
334
12020
G((x1 and !x2) or (!x1 and x2) or (!x1 and !x2))
Considering x1 and x2 as two threads both attempting to add lock on a variable. describe the rule that "No more than one thread can have that lock". Take true as success on locking and false as failure.
It uses LTL to simulate an essential rule in synchronization.
This simply excludes all states where x1 and x2 would be true at the same time
335
12020G ~(x1 && x2)
Considering x1 and x2 as two threads both attempting to add lock on a variable. describe the rule that "No more than one thread can have that lock". Take true as success on locking and false as failure.
It uses LTL to simulate an essential rule in synchronization.
We simply state that for all states, x1 and x2 cannot both be true (i.e. x1 and x2 cannot both have the lock).
336
112020
(x1 AND (!x2)) OR (x2 AND (!x1))
Considering x1 and x2 as two threads both attempting to add lock on a variable. describe the rule that "No more than one thread can have that lock". Take true as success on locking and false as failure.
It uses LTL to simulate an essential rule in synchronization.
A thread can be successful on locking only when the other thread has not locked the variable.
337
12020w ⊨ ¬F(x1 ∧ x2)
Considering x1 and x2 as two threads both attempting to add lock on a variable. describe the rule that "No more than one thread can have that lock". Take true as success on locking and false as failure.
It uses LTL to simulate an essential rule in synchronization.
We want it never to be true that more than 1 thread to hold this lock. This means don't want there to ever be a point where x1 and x2 both are satisfied. This means we want it to not be true that there eventually is a state where x1 ∧ x2 is true. F(x1 ∧ x2) means that there is some i such that w ⊨ (x1 ∧ x2), so we want F(x1 ∧ x2) to not be true, which means we have w ⊨ ¬F(x1 ∧ x2).
338
12020
G(x1=>!x2 and x2=>x1)
Considering x1 and x2 as two threads both attempting to add lock on a variable. describe the rule that "No more than one thread can have that lock". Take true as success on locking and false as failure.
It uses LTL to simulate an essential rule in synchronization.
It always holds that if x1 is true x2 is false and if x2 is true x1 is false.
339
112020
(x1 & !x2) | (!x1 & x2)
Considering x1 and x2 as two threads both attempting to add lock on a variable. describe the rule that "No more than one thread can have that lock". Take true as success on locking and false as failure.
It uses LTL to simulate an essential rule in synchronization.
only one can have the lock
340
2020G(~x1 \\/ ~x2)
Considering x1 and x2 as two threads both attempting to add lock on a variable. describe the rule that "No more than one thread can have that lock". Take true as success on locking and false as failure.
It uses LTL to simulate an essential rule in synchronization.
It is always the case that either x1 or x2 does not have the lock.
341
12020G(¬(x1 ^ x2))
Considering x1 and x2 as two threads both attempting to add lock on a variable. describe the rule that "No more than one thread can have that lock". Take true as success on locking and false as failure.
It uses LTL to simulate an essential rule in synchronization.
This says it is always the case that x1 and x2 aren't both true in the same state
342
12020
G(x1 -> X!x2 AND x2 -> X!x1)
Considering x1 and x2 as two threads both attempting to add lock on a variable. describe the rule that "No more than one thread can have that lock". Take true as success on locking and false as failure.
It uses LTL to simulate an essential rule in synchronization.
343
12020
G(x1->!x2 U !x1 -> (x2 or !x2))
Considering x1 and x2 as two threads both attempting to add lock on a variable. describe the rule that "No more than one thread can have that lock". Take true as success on locking and false as failure.
It uses LTL to simulate an essential rule in synchronization.
The statement is described that this condition, only x1 can be true, or x2 at a time, can be true.. So that means that if x1 is true, this implies that x2 is false. And this will be true until x1 becomes false.
344
12020
G((x1 and !x2) or (!x1 and x2))
Considering x1 and x2 as two threads both attempting to add lock on a variable. describe the rule that "No more than one thread can have that lock". Take true as success on locking and false as failure.
It uses LTL to simulate an essential rule in synchronization.
Always (G), only one of x1 and x2 are true.
345
12020
G((x1 and !x2) or (!x1 and x2) or (!x1 and !x2))
Considering x1 and x2 as two threads both attempting to add lock on a variable. describe the rule that "No more than one thread can have that lock". Take true as success on locking and false as failure.
It uses LTL to simulate an essential rule in synchronization.
346
12020G(!x1 or !x2)
Considering x1 and x2 as two threads both attempting to add lock on a variable. describe the rule that "No more than one thread can have that lock". Take true as success on locking and false as failure.
It uses LTL to simulate an essential rule in synchronization.
!x1 or !x2 states that only x1 or x2 must be true at the same time.
347
12020
G((x1 /\\ ~x2) \\/ (~x1 /\\ x2))
Considering x1 and x2 as two threads both attempting to add lock on a variable. describe the rule that "No more than one thread can have that lock". Take true as success on locking and false as failure.
It uses LTL to simulate an essential rule in synchronization.
It is always the case that either x1 or x2 is successful, but not both
348
2020
G ((x1 && (X G ~x1)) => X G x2)
Make x2 hold in any and only those states which come after the last state in which x1 holds.
I think the notion of the last state in which something holds is an interesting idea. With our version of LTL, we usually think of forward flowing time and the start of things, but this gets at the other side of time, looking backwards from the end. It doesn't require a very complicated formula, but it isn't something that directly translates into LTL just from the language, and does require some amount of thinking to come up with.
We require that for all states, if there is a state where x1 holds in that state but not in any (G) following (X) states, then x2 holds for all (G) following (X) states.
349
2020G(x1 => x2)
Make x2 hold in any and only those states which come after the last state in which x1 holds.
I think the notion of the last state in which something holds is an interesting idea. With our version of LTL, we usually think of forward flowing time and the start of things, but this gets at the other side of time, looking backwards from the end. It doesn't require a very complicated formula, but it isn't something that directly translates into LTL just from the language, and does require some amount of thinking to come up with.
The any and only idea was a bit confusing. The G means that all traces should hold that implication, which should allow for sequences where they both evaluate to false, completing the "only" idea of the statement.
350
2020
x1 ^ G~x1 --> XGx2
Make x2 hold in any and only those states which come after the last state in which x1 holds.
I think the notion of the last state in which something holds is an interesting idea. With our version of LTL, we usually think of forward flowing time and the start of things, but this gets at the other side of time, looking backwards from the end. It doesn't require a very complicated formula, but it isn't something that directly translates into LTL just from the language, and does require some amount of thinking to come up with.
x1 ^ G~x will only be true for the last state where x1 holds true\nx1 ^ G~x1 --> XGx2 if x2 is always true after the last state where x1 holds true
351
2020G(x2 => G(!x1))
Make x2 hold in any and only those states which come after the last state in which x1 holds.
I think the notion of the last state in which something holds is an interesting idea. With our version of LTL, we usually think of forward flowing time and the start of things, but this gets at the other side of time, looking backwards from the end. It doesn't require a very complicated formula, but it isn't something that directly translates into LTL just from the language, and does require some amount of thinking to come up with.
Whenever x2 is false, then we can allow x1 to be anything. If x2 is true, then x1 must be false in this state and thereafter.
352
2020
F(x1 U G(!x1 and x2))
Make x2 hold in any and only those states which come after the last state in which x1 holds.
I think the notion of the last state in which something holds is an interesting idea. With our version of LTL, we usually think of forward flowing time and the start of things, but this gets at the other side of time, looking backwards from the end. It doesn't require a very complicated formula, but it isn't something that directly translates into LTL just from the language, and does require some amount of thinking to come up with.
G(!x1 and x2) means there will be a time where x1 is always false and x2 is always true. x1 U means this time comes after x1 stops being true. F() means this must happen eventually.
353
2020
((x2 U x1)^(x1 U x2))
Make x2 hold in any and only those states which come after the last state in which x1 holds.
I think the notion of the last state in which something holds is an interesting idea. With our version of LTL, we usually think of forward flowing time and the start of things, but this gets at the other side of time, looking backwards from the end. It doesn't require a very complicated formula, but it isn't something that directly translates into LTL just from the language, and does require some amount of thinking to come up with.
in any and only' is 'if and only if', so we can rewrite the english sentence as \n'x2 holds until x1 holds' and 'x1 holds until x2 holds'\n\nU is 'the right hand side holds until the left hand side holds', so x2 U x1 is \nx1 holds until x2 holds\n\nso we have \n(x1 U x2)^(x2 U x1)
354
2020
x1 UNTIL (F(!x1 and x2))
Make x2 hold in any and only those states which come after the last state in which x1 holds.
I think the notion of the last state in which something holds is an interesting idea. With our version of LTL, we usually think of forward flowing time and the start of things, but this gets at the other side of time, looking backwards from the end. It doesn't require a very complicated formula, but it isn't something that directly translates into LTL just from the language, and does require some amount of thinking to come up with.
after x1 is no longer true, utilize the UNTIL, and say in a future state x1 is no longer true and x2 is true
355
2020G(F(x1) U x2)
Make x2 hold in any and only those states which come after the last state in which x1 holds.
I think the notion of the last state in which something holds is an interesting idea. With our version of LTL, we usually think of forward flowing time and the start of things, but this gets at the other side of time, looking backwards from the end. It doesn't require a very complicated formula, but it isn't something that directly translates into LTL just from the language, and does require some amount of thinking to come up with.
356
2020x1 U x2
Make x2 hold in any and only those states which come after the last state in which x1 holds.
I think the notion of the last state in which something holds is an interesting idea. With our version of LTL, we usually think of forward flowing time and the start of things, but this gets at the other side of time, looking backwards from the end. It doesn't require a very complicated formula, but it isn't something that directly translates into LTL just from the language, and does require some amount of thinking to come up with.
x1 must be true until x2 occurs (x2 can't occur before). Since we are starting with x1, x2 will not be true until after the last state in which x1 holds
357
2020x1 -> X(x2)
Make x2 hold in any and only those states which come after the last state in which x1 holds.
I think the notion of the last state in which something holds is an interesting idea. With our version of LTL, we usually think of forward flowing time and the start of things, but this gets at the other side of time, looking backwards from the end. It doesn't require a very complicated formula, but it isn't something that directly translates into LTL just from the language, and does require some amount of thinking to come up with.
If x1 holds at some state, then x2 holds starting at the next state
358
2020
G((x1 and !x2) U (!x1 and x2))
Make x2 hold in any and only those states which come after the last state in which x1 holds.
I think the notion of the last state in which something holds is an interesting idea. With our version of LTL, we usually think of forward flowing time and the start of things, but this gets at the other side of time, looking backwards from the end. It doesn't require a very complicated formula, but it isn't something that directly translates into LTL just from the language, and does require some amount of thinking to come up with.
By doing (x1 and !x2) U (!x1 and x2)), I ensure that x1 holds and x2 doesn\'t until the point where they "switch". By making this always true, x2 only holds in the states after x1 no longer holds.
359
2020x1 -> F(x2)
Make x2 hold in any and only those states which come after the last state in which x1 holds.
I think the notion of the last state in which something holds is an interesting idea. With our version of LTL, we usually think of forward flowing time and the start of things, but this gets at the other side of time, looking backwards from the end. It doesn't require a very complicated formula, but it isn't something that directly translates into LTL just from the language, and does require some amount of thinking to come up with.
If x1 is true, it implies that eventually (F), x2 is true. I am assuming that "eventually" is similar to "any and only those states which come after a state").
360
2020
G(x2 and !x1) and G(x1->!x2)
Make x2 hold in any and only those states which come after the last state in which x1 holds.
I think the notion of the last state in which something holds is an interesting idea. With our version of LTL, we usually think of forward flowing time and the start of things, but this gets at the other side of time, looking backwards from the end. It doesn't require a very complicated formula, but it isn't something that directly translates into LTL just from the language, and does require some amount of thinking to come up with.
it always holds that x1 implies not x2. \nwhen x2 then not x1.
361
2020
(x1 /\\ ~x2) U G(~x1)
Make x2 hold in any and only those states which come after the last state in which x1 holds.
I think the notion of the last state in which something holds is an interesting idea. With our version of LTL, we usually think of forward flowing time and the start of things, but this gets at the other side of time, looking backwards from the end. It doesn't require a very complicated formula, but it isn't something that directly translates into LTL just from the language, and does require some amount of thinking to come up with.
x2 can only occur after the last x1, so x1 and not x2 has to hold up until a point, after that point x1 must be false (since the point is after the last state in which x1 holds) and x2 could be anything since it could hold in any or none of the states that follow, it just cant hold until after the last x1.
362
2020(x1 U !x1) -> x2
Make x2 hold in any and only those states which come after the last state in which x1 holds.
I think the notion of the last state in which something holds is an interesting idea. With our version of LTL, we usually think of forward flowing time and the start of things, but this gets at the other side of time, looking backwards from the end. It doesn't require a very complicated formula, but it isn't something that directly translates into LTL just from the language, and does require some amount of thinking to come up with.
Let x1 be true until it becomes false, then the x2 will be true
363
2020
x2 W (x1 and x(G(!x1)))
Make x2 hold in any and only those states which come after the last state in which x1 holds.
I think the notion of the last state in which something holds is an interesting idea. With our version of LTL, we usually think of forward flowing time and the start of things, but this gets at the other side of time, looking backwards from the end. It doesn't require a very complicated formula, but it isn't something that directly translates into LTL just from the language, and does require some amount of thinking to come up with.
Another use of the weak until operator. x1 must be true and, from the next state on, globally false
364
2020
~x2 U (x1 and X(G(~x1 and x2))
Make x2 hold in any and only those states which come after the last state in which x1 holds.
I think the notion of the last state in which something holds is an interesting idea. With our version of LTL, we usually think of forward flowing time and the start of things, but this gets at the other side of time, looking backwards from the end. It doesn't require a very complicated formula, but it isn't something that directly translates into LTL just from the language, and does require some amount of thinking to come up with.
not x2 holds until some point where x1 holds, but it never does again and x2 always does after
365
2020
!x2 U (G(!x1 and x2))
Make x2 hold in any and only those states which come after the last state in which x1 holds.
I think the notion of the last state in which something holds is an interesting idea. With our version of LTL, we usually think of forward flowing time and the start of things, but this gets at the other side of time, looking backwards from the end. It doesn't require a very complicated formula, but it isn't something that directly translates into LTL just from the language, and does require some amount of thinking to come up with.
x2 must be false until x1 is always false and x2 is always true.
366
2020
(x1 and !x2) U (G(x2 and !x1))
Make x2 hold in any and only those states which come after the last state in which x1 holds.
I think the notion of the last state in which something holds is an interesting idea. With our version of LTL, we usually think of forward flowing time and the start of things, but this gets at the other side of time, looking backwards from the end. It doesn't require a very complicated formula, but it isn't something that directly translates into LTL just from the language, and does require some amount of thinking to come up with.
Until all states set x2 true and x1 false ("G(x2 and !x1)"), x1 should be true and x2 should be false ("x1 and !x2").
367
112020x1 -> F(x2)
One interesting use of LTL is too represent the sending and receiving of signals: that is, that given a request signal x1, the grant signal x2 should eventually be asserted.
I think this is an interesting formula because it really shows how useful LTL can be in terms of showing cause/effect relations, especially when it comes to concepts that are important in the real world.
when x1 holds as true, x2 eventually (F) will be true
368
12020G(x1 => F(Xx2))
One interesting use of LTL is too represent the sending and receiving of signals: that is, that given a request signal x1, the grant signal x2 should eventually be asserted.
I think this is an interesting formula because it really shows how useful LTL can be in terms of showing cause/effect relations, especially when it comes to concepts that are important in the real world.
Using always to express that the condition x1 => F(x2) that if x1 is true, meaning that the signal has been received then x2 will be true is some state following that one.
369
112020X1->F(X2)
One interesting use of LTL is too represent the sending and receiving of signals: that is, that given a request signal x1, the grant signal x2 should eventually be asserted.
I think this is an interesting formula because it really shows how useful LTL can be in terms of showing cause/effect relations, especially when it comes to concepts that are important in the real world.
If X1 is true in the first state of the trace (eg. the request signal has been sent), eventually the grant signal, X2, will happen
370
12020G(x1=>F(x2))
One interesting use of LTL is too represent the sending and receiving of signals: that is, that given a request signal x1, the grant signal x2 should eventually be asserted.
I think this is an interesting formula because it really shows how useful LTL can be in terms of showing cause/effect relations, especially when it comes to concepts that are important in the real world.
371
12020G(x1) U F(x2)
One interesting use of LTL is too represent the sending and receiving of signals: that is, that given a request signal x1, the grant signal x2 should eventually be asserted.
I think this is an interesting formula because it really shows how useful LTL can be in terms of showing cause/effect relations, especially when it comes to concepts that are important in the real world.
This is a fairly simple sequence of states: first, the x1 signal remains "on", until, finally, x2 turns "on" (becomes true).
372
112020x1 -> F(x2)
One interesting use of LTL is too represent the sending and receiving of signals: that is, that given a request signal x1, the grant signal x2 should eventually be asserted.
I think this is an interesting formula because it really shows how useful LTL can be in terms of showing cause/effect relations, especially when it comes to concepts that are important in the real world.
x1 implies that x2 eventually will happen
373
12020G(x1 U F(x2))
One interesting use of LTL is too represent the sending and receiving of signals: that is, that given a request signal x1, the grant signal x2 should eventually be asserted.
I think this is an interesting formula because it really shows how useful LTL can be in terms of showing cause/effect relations, especially when it comes to concepts that are important in the real world.
I'm assuming x2 can be true in the same state
374
112020(x1 => F(x2))
One interesting use of LTL is too represent the sending and receiving of signals: that is, that given a request signal x1, the grant signal x2 should eventually be asserted.
I think this is an interesting formula because it really shows how useful LTL can be in terms of showing cause/effect relations, especially when it comes to concepts that are important in the real world.
The prompt doesnt ensure that x1 is true, but when it is, the x2 signal is eventually implied by x1's status\n
375
112020x1 => F(x2)
One interesting use of LTL is too represent the sending and receiving of signals: that is, that given a request signal x1, the grant signal x2 should eventually be asserted.
I think this is an interesting formula because it really shows how useful LTL can be in terms of showing cause/effect relations, especially when it comes to concepts that are important in the real world.
the reception is signal x1 implies that x2 will eventually be true
376
112020x1 -> F(x2)
One interesting use of LTL is too represent the sending and receiving of signals: that is, that given a request signal x1, the grant signal x2 should eventually be asserted.
I think this is an interesting formula because it really shows how useful LTL can be in terms of showing cause/effect relations, especially when it comes to concepts that are important in the real world.
If x1 is true, then x2 will eventually be true. Not sure about the request and grant signal
377
112020x1 => F(x2)
One interesting use of LTL is too represent the sending and receiving of signals: that is, that given a request signal x1, the grant signal x2 should eventually be asserted.
I think this is an interesting formula because it really shows how useful LTL can be in terms of showing cause/effect relations, especially when it comes to concepts that are important in the real world.
x1 implies eventually x2
378
112020x1 => F(x2)
One interesting use of LTL is too represent the sending and receiving of signals: that is, that given a request signal x1, the grant signal x2 should eventually be asserted.
I think this is an interesting formula because it really shows how useful LTL can be in terms of showing cause/effect relations, especially when it comes to concepts that are important in the real world.
I think this means that if x1 is true, then x2 will eventually be true. This can be written as x1 => F(x2), since x1 is implying that x2 is eventually (or finally) true with the F operator.
379
112020x1 implies F(x2)
One interesting use of LTL is too represent the sending and receiving of signals: that is, that given a request signal x1, the grant signal x2 should eventually be asserted.
I think this is an interesting formula because it really shows how useful LTL can be in terms of showing cause/effect relations, especially when it comes to concepts that are important in the real world.
If x1 is true, (the request signal), then x2 (the grant signal) , will be eventually true (thus using F).
380
12020G(x1 => F(x2))
One interesting use of LTL is too represent the sending and receiving of signals: that is, that given a request signal x1, the grant signal x2 should eventually be asserted.
I think this is an interesting formula because it really shows how useful LTL can be in terms of showing cause/effect relations, especially when it comes to concepts that are important in the real world.
x1 => F(x2) means that if x1 is true, x2 should eventually be true. This should always happen
381
112020x1 -> F(x2)
One interesting use of LTL is too represent the sending and receiving of signals: that is, that given a request signal x1, the grant signal x2 should eventually be asserted.
I think this is an interesting formula because it really shows how useful LTL can be in terms of showing cause/effect relations, especially when it comes to concepts that are important in the real world.
if x1 is happens, x2 will eventually be happened
382
112020x1 -> F(x2)
One interesting use of LTL is too represent the sending and receiving of signals: that is, that given a request signal x1, the grant signal x2 should eventually be asserted.
I think this is an interesting formula because it really shows how useful LTL can be in terms of showing cause/effect relations, especially when it comes to concepts that are important in the real world.
This is saying that x1 being true implies that eventually, x2 is true
383
2020
Fx4 ^ (~x4UX(G~F~(x1-->x2^x3)))
It is never eventually false that if x1 is true then x2 and x3 are true, but only after x4 is true (which will happen).
I think this formula is interesting because it utilizes a lot of the temporal operators (global, until, eventually) while also bringing in the logical operator of "and" and "implies". Also, the way it's phrased by putting "but only after" at the end could require a bit more thought. Also, never eventually false is just a round about way of saying always :)
Firstly we know that x4 will eventually be true -> Fx4\nAnd let's consider (It is never eventually false that if x1 is true then x2 and x3 are true)\nwhich can be written as G~F~(x1-->x2^x3) (never p means for all time ~p => (G~p) ) (Eventually false that p is F~p)\nBut this condition only occurs after x4 is true. The other to say this is that ~x4 until the next time step G~F~(x1-->x2^x3).\nTherefore, Fx4 ^ (~x4UX(G~F~(x1-->x2^x3))) would encode everything.
384
2020
X(X(X(X( !F( !(x1 -> (x2 and x3) )) ) ) ) ) implies !F( !(x1 -> (x2 and x3) ))
It is never eventually false that if x1 is true then x2 and x3 are true, but only after x4 is true (which will happen).
I think this formula is interesting because it utilizes a lot of the temporal operators (global, until, eventually) while also bringing in the logical operator of "and" and "implies". Also, the way it's phrased by putting "but only after" at the end could require a bit more thought. Also, never eventually false is just a round about way of saying always :)
So the main internal statement with the !F... means that "It is never eventually false that if x1 is true then x2 and x3 are true" . That main statement after x4 implies the statement itself to fulfill the property "but only after x4 is true"
385
2020
(F x4) U (G (x1 -> x2 ∧ x3))
It is never eventually false that if x1 is true then x2 and x3 are true, but only after x4 is true (which will happen).
I think this formula is interesting because it utilizes a lot of the temporal operators (global, until, eventually) while also bringing in the logical operator of "and" and "implies". Also, the way it's phrased by putting "but only after" at the end could require a bit more thought. Also, never eventually false is just a round about way of saying always :)
x4 is eventually true up until some state, after which is it always true that x2 and x3 are true if x1 is true.
386
2020
G(F(x1 => (x2 AND x3) U (x4))
It is never eventually false that if x1 is true then x2 and x3 are true, but only after x4 is true (which will happen).
I think this formula is interesting because it utilizes a lot of the temporal operators (global, until, eventually) while also bringing in the logical operator of "and" and "implies". Also, the way it's phrased by putting "but only after" at the end could require a bit more thought. Also, never eventually false is just a round about way of saying always :)
Never eventually false is equivalent to always eventually true, so I nested the entire statement in G(F()). x1 implies that x2 and x3 are true, the U x4 makes it so that x4 being true must happen first.
387
2020
! F(!( x4 -> X(x1 -> (x2 and x3))) and G(x4)
It is never eventually false that if x1 is true then x2 and x3 are true, but only after x4 is true (which will happen).
I think this formula is interesting because it utilizes a lot of the temporal operators (global, until, eventually) while also bringing in the logical operator of "and" and "implies". Also, the way it's phrased by putting "but only after" at the end could require a bit more thought. Also, never eventually false is just a round about way of saying always :)
I tried to express this using F for eventually, X to check the states after x4 is true, and G to say that x4 will be true. However, I am confused about this one.
388
2020
x4=>F(¬(x1=>x2 ∧ x3)\n¬x4=>F(x1=>x2 ∧ x3))
It is never eventually false that if x1 is true then x2 and x3 are true, but only after x4 is true (which will happen).
I think this formula is interesting because it utilizes a lot of the temporal operators (global, until, eventually) while also bringing in the logical operator of "and" and "implies". Also, the way it's phrased by putting "but only after" at the end could require a bit more thought. Also, never eventually false is just a round about way of saying always :)
This expression is actually equivalent to \n the statement "if x1 is true then x2 and x3 are true" is true iff x4 is true.
389
2020
G(Fx4 U (x1 -> (x2 AND x3)))
It is never eventually false that if x1 is true then x2 and x3 are true, but only after x4 is true (which will happen).
I think this formula is interesting because it utilizes a lot of the temporal operators (global, until, eventually) while also bringing in the logical operator of "and" and "implies". Also, the way it's phrased by putting "but only after" at the end could require a bit more thought. Also, never eventually false is just a round about way of saying always :)
We know that x4 must be true, hence the F. Then, we know that if x4 is true, then the next thing to happens should be that x1 is true, and if x1 is true (hence the implication), then both x2 and x3 should be true. Finally, we put a G around the whole expression because "never eventually false" is the same as always.
390
2020
x4 => G( x1 => (x2 and x3))
It is never eventually false that if x1 is true then x2 and x3 are true, but only after x4 is true (which will happen).
I think this formula is interesting because it utilizes a lot of the temporal operators (global, until, eventually) while also bringing in the logical operator of "and" and "implies". Also, the way it's phrased by putting "but only after" at the end could require a bit more thought. Also, never eventually false is just a round about way of saying always :)
This means that it is always true that if x1 is true, then x2 and x3 are true. But only after x4 is true. Therefore, x4 implies that in the trace following the state where x4 is true, the other part should always be true. \n\nx1 -> (x2 and x3): means that if x1 is true and x2 and x3 are true
391
2020
!G(F(G((x1 => (x2 and x2)) <=> x4)))
It is never eventually false that if x1 is true then x2 and x3 are true, but only after x4 is true (which will happen).
I think this formula is interesting because it utilizes a lot of the temporal operators (global, until, eventually) while also bringing in the logical operator of "and" and "implies". Also, the way it's phrased by putting "but only after" at the end could require a bit more thought. Also, never eventually false is just a round about way of saying always :)
I had a bit of a hard time translating this one -- I think I got confused about the second half, where something is true only after x4 is true which will happen. I used the G operator to account for this, but not sure if I put it in the right place. I used bi-implication to show that (x1 => (x2 and x2)) iff x4 is true. The whole thing is wrapped in a !GF because we know that the formula is never eventually false.
392
2020
G( ((x1 => (x2 and x3)) U x4) and F(x4) )
It is never eventually false that if x1 is true then x2 and x3 are true, but only after x4 is true (which will happen).
I think this formula is interesting because it utilizes a lot of the temporal operators (global, until, eventually) while also bringing in the logical operator of "and" and "implies". Also, the way it's phrased by putting "but only after" at the end could require a bit more thought. Also, never eventually false is just a round about way of saying always :)
It is never eventually false is the same as it is always true, so I used the G symbol for that and then I expressed that x1 implies x2 and x3 until x4 is true and used F(x4) to ensure that eventually x4 will be true.
393
2020
F(x4) | G(F(x1 ^ x2 ^ x3 iff x4))
It is never eventually false that if x1 is true then x2 and x3 are true, but only after x4 is true (which will happen).
I think this formula is interesting because it utilizes a lot of the temporal operators (global, until, eventually) while also bringing in the logical operator of "and" and "implies". Also, the way it's phrased by putting "but only after" at the end could require a bit more thought. Also, never eventually false is just a round about way of saying always :)
We know that x4 will eventually become true: F(x4). I translated "never eventually false" to "always eventually true" which if G(F()).\nThen I know that if x1 is true then x2 and x3 are also true, which is x1^x2^x3. They are only true if x4 is true, which is iff x4.
394
2020
F(x4 and X(G(!F(!(x1 -> (x2 and x3))))))
It is never eventually false that if x1 is true then x2 and x3 are true, but only after x4 is true (which will happen).
I think this formula is interesting because it utilizes a lot of the temporal operators (global, until, eventually) while also bringing in the logical operator of "and" and "implies". Also, the way it's phrased by putting "but only after" at the end could require a bit more thought. Also, never eventually false is just a round about way of saying always :)
Eventually x4 will be true and, from the next state onward, globally it is not eventually false that if x1 then x2 and x3
395
2020
F(x4) U G(not(F(x1 => (x2 and x3))))
It is never eventually false that if x1 is true then x2 and x3 are true, but only after x4 is true (which will happen).
I think this formula is interesting because it utilizes a lot of the temporal operators (global, until, eventually) while also bringing in the logical operator of "and" and "implies". Also, the way it's phrased by putting "but only after" at the end could require a bit more thought. Also, never eventually false is just a round about way of saying always :)
x4 WILL at some moment be true; this can be expressed by F (finally). after that, (until), it will always be true that it is NOT the case that, eventually, x1 being true implies x2 and x3 being true.
396
2020
G(x4 U x1 => x2, x3)
It is never eventually false that if x1 is true then x2 and x3 are true, but only after x4 is true (which will happen).
I think this formula is interesting because it utilizes a lot of the temporal operators (global, until, eventually) while also bringing in the logical operator of "and" and "implies". Also, the way it's phrased by putting "but only after" at the end could require a bit more thought. Also, never eventually false is just a round about way of saying always :)
never eventually false == always
397
2020
!F(!(x4 W (x1 => x2 and x3)) and F(x4)
It is never eventually false that if x1 is true then x2 and x3 are true, but only after x4 is true (which will happen).
I think this formula is interesting because it utilizes a lot of the temporal operators (global, until, eventually) while also bringing in the logical operator of "and" and "implies". Also, the way it's phrased by putting "but only after" at the end could require a bit more thought. Also, never eventually false is just a round about way of saying always :)
negating the eventually clause -> this is not true: x4 is true until at least (weak until used here) x1's trueness implies x2 and x3's trueness\n\nthis one was honestly very confusing but i think these line up?
398
2020
x1->x4->x2 AND x3
It is never eventually false that if x1 is true then x2 and x3 are true, but only after x4 is true (which will happen).
I think this formula is interesting because it utilizes a lot of the temporal operators (global, until, eventually) while also bringing in the logical operator of "and" and "implies". Also, the way it's phrased by putting "but only after" at the end could require a bit more thought. Also, never eventually false is just a round about way of saying always :)
Something being never eventually false means that it is true. x1 being true implies that x2 and x3 are true, but x4 must be true before x2 and x3. So x1 implies x4 which then implies x2 and x3.
399
2020
G(!F(x4-> x1 -> x2 and x3))
It is never eventually false that if x1 is true then x2 and x3 are true, but only after x4 is true (which will happen).
I think this formula is interesting because it utilizes a lot of the temporal operators (global, until, eventually) while also bringing in the logical operator of "and" and "implies". Also, the way it's phrased by putting "but only after" at the end could require a bit more thought. Also, never eventually false is just a round about way of saying always :)
It always will hold that it won't eventually hold that x4 is true will imply that x1 implies that x2 and x3 are true
400
2020
G(!F(x1->F(x4) U (x2 and x3))
It is never eventually false that if x1 is true then x2 and x3 are true, but only after x4 is true (which will happen).
I think this formula is interesting because it utilizes a lot of the temporal operators (global, until, eventually) while also bringing in the logical operator of "and" and "implies". Also, the way it's phrased by putting "but only after" at the end could require a bit more thought. Also, never eventually false is just a round about way of saying always :)
Never eventually can be expressed as G(!F(x)) and "after" can be expressed with Until.
401
2020
(c1_writing => x1) and (c2_writing => x2) and (c1_reading=>x3) and (c2_reading=>x4) and not(x1 and x2) and not(x2 and x3) and not(x3 and x4) and not (x4 and x1) and not(x2 and x4)
There are 2 clients who perform read/write on the same file. Only one client can write at a time and while writing no one can read the file. x1 is true if client 1 is writing, x2 is true if client 2 is writing, x3 is true is true if client 1 is reading, x4 is true if client 2 is reading.
This formula represent a real-life problem of preserving consistency of a file with concurrent reads and writes. The traces would reflect how transactions might be performed in a way that prevents read/write and write/write conflicts.
I'm unsure here because the question doesn't seem to imply a temporal sequence of states, i.e, whether reading or writing happen before or after one another. I tried to express the idea of mutually exclusive states with a series of and..not statements that show that none of the states x1 ...x4 can happen at the same time.
402
2020not G(x1 and x2)
There are 2 clients who perform read/write on the same file. Only one client can write at a time and while writing no one can read the file. x1 is true if client 1 is writing, x2 is true if client 2 is writing, x3 is true is true if client 1 is reading, x4 is true if client 2 is reading.
This formula represent a real-life problem of preserving consistency of a file with concurrent reads and writes. The traces would reflect how transactions might be performed in a way that prevents read/write and write/write conflicts.
The problem does not mention if both clients can read at the same time.
403
2020
(x1 U x2) or (x1 U x3) or ( x1 U x4) or (x2 U x3) or (x2 U x4) or (x3 U x4)
There are 2 clients who perform read/write on the same file. Only one client can write at a time and while writing no one can read the file. x1 is true if client 1 is writing, x2 is true if client 2 is writing, x3 is true is true if client 1 is reading, x4 is true if client 2 is reading.
This formula represent a real-life problem of preserving consistency of a file with concurrent reads and writes. The traces would reflect how transactions might be performed in a way that prevents read/write and write/write conflicts.
try to get two variables being true at one time.
404
2020
G((w1 => x1) and (w2 =>x2) and (r1 => x3) and (r2 => x4))
There are 2 clients who perform read/write on the same file. Only one client can write at a time and while writing no one can read the file. x1 is true if client 1 is writing, x2 is true if client 2 is writing, x3 is true is true if client 1 is reading, x4 is true if client 2 is reading.
This formula represent a real-life problem of preserving consistency of a file with concurrent reads and writes. The traces would reflect how transactions might be performed in a way that prevents read/write and write/write conflicts.
Here I represent the different conditionals with implies, where w1/w2 represents writing, and r1/r2 represents writing
405
2020
(x1<-> -x3 AND -x4 AND -x2) AND (x2<-> -x1 AND -x3 AND -x4) AND (x3 <-> -x1 AND -x2) AND (x4<-> -x1 AND -x2)
There are 2 clients who perform read/write on the same file. Only one client can write at a time and while writing no one can read the file. x1 is true if client 1 is writing, x2 is true if client 2 is writing, x3 is true is true if client 1 is reading, x4 is true if client 2 is reading.
This formula represent a real-life problem of preserving consistency of a file with concurrent reads and writes. The traces would reflect how transactions might be performed in a way that prevents read/write and write/write conflicts.
Someone is writing (x1 or x2) iff "<->" the other person is not writing and no one is reading. Someone is reading (x3 or x4) if no one is writing "-x1 AND -x2"
406
2020
G(((x1 and !x2) or (!x1 and x2) or (!x1 and !x2)) and ((x1 or x2) => (!x3 and !x4)))
There are 2 clients who perform read/write on the same file. Only one client can write at a time and while writing no one can read the file. x1 is true if client 1 is writing, x2 is true if client 2 is writing, x3 is true is true if client 1 is reading, x4 is true if client 2 is reading.
This formula represent a real-life problem of preserving consistency of a file with concurrent reads and writes. The traces would reflect how transactions might be performed in a way that prevents read/write and write/write conflicts.
407
2020
((x1) U (x2) U (x3) U (x4)) (all possible permutations of this)
There are 2 clients who perform read/write on the same file. Only one client can write at a time and while writing no one can read the file. x1 is true if client 1 is writing, x2 is true if client 2 is writing, x3 is true is true if client 1 is reading, x4 is true if client 2 is reading.
This formula represent a real-life problem of preserving consistency of a file with concurrent reads and writes. The traces would reflect how transactions might be performed in a way that prevents read/write and write/write conflicts.
Since only one client can write/read at a time, it makes sense to use the until operator. I did not know how to express the fact that there are many different orders in which reading/writing could happen, but essentially only one would happen at a time because of the until operator.
408
2020
G((~x1 \\/ ~x2) /\\ (~x1 \\/ ~x3) /\\ (~x2 \\/ ~x4))
There are 2 clients who perform read/write on the same file. Only one client can write at a time and while writing no one can read the file. x1 is true if client 1 is writing, x2 is true if client 2 is writing, x3 is true is true if client 1 is reading, x4 is true if client 2 is reading.
This formula represent a real-life problem of preserving consistency of a file with concurrent reads and writes. The traces would reflect how transactions might be performed in a way that prevents read/write and write/write conflicts.
The first clause is the writing constraint. The last two are the reading constraints.
409
2020
G(x1 -> !(x2 AND x4) AND x4 -> !(x1 AND x3) )
There are 2 clients who perform read/write on the same file. Only one client can write at a time and while writing no one can read the file. x1 is true if client 1 is writing, x2 is true if client 2 is writing, x3 is true is true if client 1 is reading, x4 is true if client 2 is reading.
This formula represent a real-life problem of preserving consistency of a file with concurrent reads and writes. The traces would reflect how transactions might be performed in a way that prevents read/write and write/write conflicts.
410
2020
G(x1 => (!x2, !x3, !x4) AND x2 => (!x1, !x2, !x3) AND (x4 or x3) U (x1 or x2))
There are 2 clients who perform read/write on the same file. Only one client can write at a time and while writing no one can read the file. x1 is true if client 1 is writing, x2 is true if client 2 is writing, x3 is true is true if client 1 is reading, x4 is true if client 2 is reading.
This formula represent a real-life problem of preserving consistency of a file with concurrent reads and writes. The traces would reflect how transactions might be performed in a way that prevents read/write and write/write conflicts.
If either client 1 or client 2 is writing, it will always hold that the opposite client is writing and neither of them should be reading. It also always holds that if either client is reading, then either client 1 or client 2 has written before.
411
2020
!(x1 && x2), (x1) => (!x3 && !x4 && !x2), (x2) => (!x3 && !x4 && !x1)
There are 2 clients who perform read/write on the same file. Only one client can write at a time and while writing no one can read the file. x1 is true if client 1 is writing, x2 is true if client 2 is writing, x3 is true is true if client 1 is reading, x4 is true if client 2 is reading.
This formula represent a real-life problem of preserving consistency of a file with concurrent reads and writes. The traces would reflect how transactions might be performed in a way that prevents read/write and write/write conflicts.
It's not true that both are writing at the same time. If the first person is writing, that's the only thing happening. If the second person is writing, that's the only thing happening.
412
2020
(x1:=true -> x2: false ^ x3:= false ^ x4:= false)^(x2:=true -> x1:=false ^ x3:= false ^ x4:=false)
There are 2 clients who perform read/write on the same file. Only one client can write at a time and while writing no one can read the file. x1 is true if client 1 is writing, x2 is true if client 2 is writing, x3 is true is true if client 1 is reading, x4 is true if client 2 is reading.
This formula represent a real-life problem of preserving consistency of a file with concurrent reads and writes. The traces would reflect how transactions might be performed in a way that prevents read/write and write/write conflicts.
Since x1 and x2 are writing permissions, if any one of the client writes it implies that no one can read and the other client cannot write.
413
2020
G(x1 or x2 => !x3 and !x4) and G(x1 => !x2) and G(x2 => !x1)
There are 2 clients who perform read/write on the same file. Only one client can write at a time and while writing no one can read the file. x1 is true if client 1 is writing, x2 is true if client 2 is writing, x3 is true is true if client 1 is reading, x4 is true if client 2 is reading.
This formula represent a real-life problem of preserving consistency of a file with concurrent reads and writes. The traces would reflect how transactions might be performed in a way that prevents read/write and write/write conflicts.
If either person is writing, no one can read, and if one person is writing, the other cannot write
414
2020
x1 or x2 -> !x3 and !x4\nx1 -> !x2\nx2 -> !x1
There are 2 clients who perform read/write on the same file. Only one client can write at a time and while writing no one can read the file. x1 is true if client 1 is writing, x2 is true if client 2 is writing, x3 is true is true if client 1 is reading, x4 is true if client 2 is reading.
This formula represent a real-life problem of preserving consistency of a file with concurrent reads and writes. The traces would reflect how transactions might be performed in a way that prevents read/write and write/write conflicts.
Honestly, not really sure how to do this one using the LTL functions, this makes sense but does not fully utilize LTL
415
2020
G((x1->(¬x2∧¬x3∧¬x4))∧(x1->¬x2∧¬x3∧¬x4))
There are 2 clients who perform read/write on the same file. Only one client can write at a time and while writing no one can read the file. x1 is true if client 1 is writing, x2 is true if client 2 is writing, x3 is true is true if client 1 is reading, x4 is true if client 2 is reading.
This formula represent a real-life problem of preserving consistency of a file with concurrent reads and writes. The traces would reflect how transactions might be performed in a way that prevents read/write and write/write conflicts.
The system wants to make sure the safety of global writing properties. Actually reading behavior does not actively affect writing. However, when someone is writing, no one could read or write such a file besides the writing person.
416
2020
(x1 => !x4) AND (x2 => !x3)
There are 2 clients who perform read/write on the same file. Only one client can write at a time and while writing no one can read the file. x1 is true if client 1 is writing, x2 is true if client 2 is writing, x3 is true is true if client 1 is reading, x4 is true if client 2 is reading.
This formula represent a real-life problem of preserving consistency of a file with concurrent reads and writes. The traces would reflect how transactions might be performed in a way that prevents read/write and write/write conflicts.
Client 1 writing implies that client 2 is not reading; client 2 writing implies that client 1 is not reading. Beyond those scopes, we do not mind what happens, so we do not have to specify anything more.
417
2020
G((x1 ∧ ¬x2 ∧ ¬x3 ∧ ¬x4) ∨ (x2 ∧ ¬x1 ∧ ¬x3 ∧ ¬x4) ∨ (x3 ∧ ¬x1 ∧ ¬x2 ∧ ¬x4) ∨ (x4 ∧ ¬x1 ∧ ¬x2 ∧ ¬x3) ∨ (x3 ∧ x4 ∧ ¬x1 ∧ ¬x2))
There are 2 clients who perform read/write on the same file. Only one client can write at a time and while writing no one can read the file. x1 is true if client 1 is writing, x2 is true if client 2 is writing, x3 is true is true if client 1 is reading, x4 is true if client 2 is reading.
This formula represent a real-life problem of preserving consistency of a file with concurrent reads and writes. The traces would reflect how transactions might be performed in a way that prevents read/write and write/write conflicts.
It is always the case that either one person is writing, one person is reading, or two people are reading.
418
2020
(w1 -> x1 and w2 -> x2 and r1 -> x3 and r2 -> x4) and G(x1->!x2 and x2->!x1) and G((x1 or x2)->(!x3 and !x4))
There are 2 clients who perform read/write on the same file. Only one client can write at a time and while writing no one can read the file. x1 is true if client 1 is writing, x2 is true if client 2 is writing, x3 is true is true if client 1 is reading, x4 is true if client 2 is reading.
This formula represent a real-life problem of preserving consistency of a file with concurrent reads and writes. The traces would reflect how transactions might be performed in a way that prevents read/write and write/write conflicts.
w1 means client1 is writing, r1 means client2 is reading, etc. It is always true that if one client is writing, the other client must not be writing, which is: G(x1->!x2 and x2->!x1). It is also always true that if either client is writing, neither can read: ((x1 or x2)->(!x3 and !x4)).
419
2020G(x1 and F(!x1))
It is always true that x1 is true and that x1 will eventually become false.
No trace satisfies this description because a variable can't always be true, and yet eventually be false.
This trace is unsatisfiable because x1 cannot be always true and eventually be false.
420
2020G(x1 and F(!x1))
It is always true that x1 is true and that x1 will eventually become false.
No trace satisfies this description because a variable can't always be true, and yet eventually be false.
Can something like this actually happen? Or do we get a contradiction.
421
2020G(x1) /\\ F(~x1)
It is always true that x1 is true and that x1 will eventually become false.
No trace satisfies this description because a variable can't always be true, and yet eventually be false.
x1 must always be true and (not x1) must eventually be true.
422
2020
w ⊨ G(x1 ∧ F(¬x1))
It is always true that x1 is true and that x1 will eventually become false.
No trace satisfies this description because a variable can't always be true, and yet eventually be false.
If x1 eventually becomes false, there must be some state where ¬x1 is true, so we have F(¬x1). We want this to be true and x1 to be true, so we get x1 ∧ F(¬x1). But it should always be true that x1 is true and x1 eventually becomes false, so it must be true in all states, meaning overall we have w ⊨ G(x1 ∧ F(¬x1)).
423
2020G(x1 and F(!x1))
It is always true that x1 is true and that x1 will eventually become false.
No trace satisfies this description because a variable can't always be true, and yet eventually be false.
I'm not sure whether this is equivalent to G(x1) and F(!x1), but my intuition is that it would be equivalent.
424
2020G(x1 and F(!x1))
It is always true that x1 is true and that x1 will eventually become false.
No trace satisfies this description because a variable can't always be true, and yet eventually be false.
I used G to say this is always true and F to say eventually x1 becomes false
425
2020G(x1 and F(!x1))
It is always true that x1 is true and that x1 will eventually become false.
No trace satisfies this description because a variable can't always be true, and yet eventually be false.
G is always true, and F is eventually
426
2020Gx1 /\\ F(~x1)
It is always true that x1 is true and that x1 will eventually become false.
No trace satisfies this description because a variable can't always be true, and yet eventually be false.
This can't be true
427
2020G(x1 and F(!x1))
It is always true that x1 is true and that x1 will eventually become false.
No trace satisfies this description because a variable can't always be true, and yet eventually be false.
it always (G) holds that x1 is true and x1 is eventually (F) false.
428
2020G(x1 and F(!x1))
It is always true that x1 is true and that x1 will eventually become false.
No trace satisfies this description because a variable can't always be true, and yet eventually be false.
Always refers to "G", and eventually refers to "F"
429
2020G(x1 ^ Fx1)
It is always true that x1 is true and that x1 will eventually become false.
No trace satisfies this description because a variable can't always be true, and yet eventually be false.
G tells us that the following formula is true in any state. Since the enclosed formula is a conjunction, this means that "x1" and "Fx1" is true in every state, i.e. for any state x1 is true in that state and there is at least one (or even infinitely many) future states where x1 is true.
430
2020G(x1) and F(!x1)
It is always true that x1 is true and that x1 will eventually become false.
No trace satisfies this description because a variable can't always be true, and yet eventually be false.
G means always and F means eventually.
431
2020G(~x1 v F(~x1))
It is always true that x1 is true and that x1 will eventually become false.
No trace satisfies this description because a variable can't always be true, and yet eventually be false.
The english statement is equivalent to the following logic:\n"is it always true that (\'x1 is true implies x1 will eventually become False\')"\n\'x1 is true is just x1\'\n\'x1 eventually becomes False\' is F(~x1)\n\'implies\' doesn\'t exist in LTL but we can use ~p v q which is equivalent to p->q \n\'is it always true\' is G the always true operation\n\nso we put everything together: \nG(x1 -> F(~x1)) <=> G(~x1 v F(~x1))
432
2020no solution
It is always true that x1 is true and that x1 will eventually become false.
No trace satisfies this description because a variable can't always be true, and yet eventually be false.
looks like the problem no solution
433
2020
F(x1) and F(!x1) and x1 U !x1
It is always true that x1 is true and that x1 will eventually become false.
No trace satisfies this description because a variable can't always be true, and yet eventually be false.
F(x1) means x1 will be true at some point, F(!x1) means x1 will be false at some point and x1 U !x1 means that x1 will be true before it is false.
434
2020G(x1) AND F(!x1)
It is always true that x1 is true and that x1 will eventually become false.
No trace satisfies this description because a variable can't always be true, and yet eventually be false.
Always translates into global and eventually translates into F; the "false" is represented by the ! in the "!x1".
435
2020G(x1 and F(!x1))
It is always true that x1 is true and that x1 will eventually become false.
No trace satisfies this description because a variable can't always be true, and yet eventually be false.
x1 holding and eventually x1 not holding is wrapped in a global operator
436
2020G(x1 /\\ F(~x1))
It is always true that x1 is true and that x1 will eventually become false.
No trace satisfies this description because a variable can't always be true, and yet eventually be false.
This one is pretty cool.
437
2020G(x1 and F(~x1))
It is always true that x1 is true and that x1 will eventually become false.
No trace satisfies this description because a variable can't always be true, and yet eventually be false.
direct translation
438
2020
(x1 /\\ X(x1) /\\ X(X(x1))) \\/ (~x1 /\\ X(~x1) /\\ X(X(~x1)))
The pattern of true and false of x1 in the first 3 entries repeats.
The solution to this can be simple and it generalizes reasonablely nicely for all n. But it requires some thought. Here is my solution: G(x1 <=> X(X(X(x1))))
Brute force.
439
2020
G(x1 -> Xx1 -> XXx1)
The pattern of true and false of x1 in the first 3 entries repeats.
The solution to this can be simple and it generalizes reasonablely nicely for all n. But it requires some thought. Here is my solution: G(x1 <=> X(X(X(x1))))
I am really not sure how to do this one. I believe this has something to do with next but I am not sure how to "get" the truth value of x1 at a given step
440
2020
(x1 ∧ X(x1) ∧ XX(x1)) || (¬x1 ∧ ¬X(x1) ∧ ¬XX(x1))
The pattern of true and false of x1 in the first 3 entries repeats.
The solution to this can be simple and it generalizes reasonablely nicely for all n. But it requires some thought. Here is my solution: G(x1 <=> X(X(X(x1))))
Due to the fact that x1 in LTL logic represents the initialization state, then if the first 3 entries repeat, it means all first three states are all true or all false.
441
2020
x1 and G(x1 => X(!x1) and X(X(!x1)) and X(X(X(x1))))
The pattern of true and false of x1 in the first 3 entries repeats.
The solution to this can be simple and it generalizes reasonablely nicely for all n. But it requires some thought. Here is my solution: G(x1 <=> X(X(X(x1))))
I got a nearly identical question earlier; x1 is true in the first state, false in the second and third, and then true again and repeating.
442
2020
(x1 ∧ X(x1) ∧ X(X(x1))) ∨ (!x1 ∧ !X(x1) ∧ !X(X(x1)))
The pattern of true and false of x1 in the first 3 entries repeats.
The solution to this can be simple and it generalizes reasonablely nicely for all n. But it requires some thought. Here is my solution: G(x1 <=> X(X(X(x1))))
x1, X(x1), X(X(x1)) should all be true or all be false
443
2020x1 -> X(X(X(x1))))
The pattern of true and false of x1 in the first 3 entries repeats.
The solution to this can be simple and it generalizes reasonablely nicely for all n. But it requires some thought. Here is my solution: G(x1 <=> X(X(X(x1))))
x1 implies that x1 holds in the first 3 states
444
2020
G(x1 => X(not(x1)) and X(not(x1))) and X(x1))
The pattern of true and false of x1 in the first 3 entries repeats.
The solution to this can be simple and it generalizes reasonablely nicely for all n. But it requires some thought. Here is my solution: G(x1 <=> X(X(X(x1))))
I think that this question is the same as the question above, where x1 is true and then x1 is not true for two states, so my formula is the same as the answer to that question?
445
2020
G((x1 OR NOT x1) AND (Xx1 OR NOT x1) AND (XXx1 OR NOT x1))
The pattern of true and false of x1 in the first 3 entries repeats.
The solution to this can be simple and it generalizes reasonablely nicely for all n. But it requires some thought. Here is my solution: G(x1 <=> X(X(X(x1))))
x1 can be true or false in the first state, true or false in the second state, and true or false in the state after that. Each of those things must be repeated globally, hence the ANDs joining the individual clauses
446
2020
G( X(X(x1)) -> ( X(!x1) and x1 ) or X(X(!x1)) -> ( X(x1) and !x1 )
The pattern of true and false of x1 in the first 3 entries repeats.
The solution to this can be simple and it generalizes reasonablely nicely for all n. But it requires some thought. Here is my solution: G(x1 <=> X(X(X(x1))))
447
2020
G(Xx1 and XXx1 and XXXx1)
The pattern of true and false of x1 in the first 3 entries repeats.
The solution to this can be simple and it generalizes reasonablely nicely for all n. But it requires some thought. Here is my solution: G(x1 <=> X(X(X(x1))))
I'm not sure how to express a pattern :(
448
2020
G((x1 <=> X(X(X(x1)))) and (!x1 <=> X(X(X(!x1)))))
The pattern of true and false of x1 in the first 3 entries repeats.
The solution to this can be simple and it generalizes reasonablely nicely for all n. But it requires some thought. Here is my solution: G(x1 <=> X(X(X(x1))))
449
2020
x1 and X(!x1) and X(X(x1))
The pattern of true and false of x1 in the first 3 entries repeats.
The solution to this can be simple and it generalizes reasonablely nicely for all n. But it requires some thought. Here is my solution: G(x1 <=> X(X(X(x1))))
Im not completely sure what to put. At first, I interpreted this as alternating true and false but im not entirely sure.
450
2020
G(x1 <=> x(x(x(x1))))
The pattern of true and false of x1 in the first 3 entries repeats.
The solution to this can be simple and it generalizes reasonablely nicely for all n. But it requires some thought. Here is my solution: G(x1 <=> X(X(X(x1))))
Since the pattern is three states long, for it to repeat, the x1 in the third state after the current state must be the same as the current state.
451
2020
G(x1 iff X(X(X(x1))))
The pattern of true and false of x1 in the first 3 entries repeats.
The solution to this can be simple and it generalizes reasonablely nicely for all n. But it requires some thought. Here is my solution: G(x1 <=> X(X(X(x1))))
The truth value of x1 at step i will be the same as the truth value of x1 at step i+3.
452
2020
(x1 and X(!x1) and XX(x1))
The pattern of true and false of x1 in the first 3 entries repeats.
The solution to this can be simple and it generalizes reasonablely nicely for all n. But it requires some thought. Here is my solution: G(x1 <=> X(X(X(x1))))
Confused by what the question is asking but I alternate between x1 being true and false for 3 states by setting the next and next next
453
2020
G(((not x1) v XXx1) ^ (x1 v not XXx1))
The pattern of true and false of x1 in the first 3 entries repeats.
The solution to this can be simple and it generalizes reasonablely nicely for all n. But it requires some thought. Here is my solution: G(x1 <=> X(X(X(x1))))
The statement inside the "G" is meant to represent a bi-implication, saying that, the first state\'s x1 value should match the next-next (i.e. the third) state\'s x1 value. Since it is inside "G", this should be true for all statements.
454
12020x1 and X(G(!x1))
x1 starts true, and then never again becomes true.
x1 and G(X(!x1)). I think this is interesting because it leads to unreachability back to the true condition.
We use the bare literal x1 to enforce that x1 "starts true" (which is taken to mean that the first state of the trace sets x1 as true), and then use the "X" formula to select the subtrace excluding the "now" state with the nested "G" function to select all states of that subtrace to set x1 to false for all states after the first.
455
12020x1 ∧ G(N(¬x1))
x1 starts true, and then never again becomes true.
x1 and G(X(!x1)). I think this is interesting because it leads to unreachability back to the true condition.
Once we truncate off the first term, it is always true that x1 is false.
456
12020x1 ^ XG ~x1
x1 starts true, and then never again becomes true.
x1 and G(X(!x1)). I think this is interesting because it leads to unreachability back to the true condition.
x1 starts true=> x1\nx1 never again becomes true => G ~x1 for next step after t=0 => XG ~x1
457
12020x1, G(X(not x1))
x1 starts true, and then never again becomes true.
x1 and G(X(!x1)). I think this is interesting because it leads to unreachability back to the true condition.
x1 means that it starts true, and then we say that globally the next state would be not x1
458
12020
x1 and X(G(not x1))
x1 starts true, and then never again becomes true.
x1 and G(X(!x1)). I think this is interesting because it leads to unreachability back to the true condition.
This means that x1 is true and in the next state x1 is not true forever
459
12020x1 X (G ¬x1)
x1 starts true, and then never again becomes true.
x1 and G(X(!x1)). I think this is interesting because it leads to unreachability back to the true condition.
x1 is true in the first state, and starting in the next state, it is always not true.
460
12020x1 ^ G(X-x1)
x1 starts true, and then never again becomes true.
x1 and G(X(!x1)). I think this is interesting because it leads to unreachability back to the true condition.
I believe this says that x1 is true and it is always true that the next state of x1 is false
461
12020x1 and G(X(!x1))
x1 starts true, and then never again becomes true.
x1 and G(X(!x1)). I think this is interesting because it leads to unreachability back to the true condition.
462
12020x1 AND G(X(!x1))
x1 starts true, and then never again becomes true.
x1 and G(X(!x1)). I think this is interesting because it leads to unreachability back to the true condition.
The start value of x1 is the same as when the next time x1 is never true.
463
12020x1 && (X G ~x1)
x1 starts true, and then never again becomes true.
x1 and G(X(!x1)). I think this is interesting because it leads to unreachability back to the true condition.
We require both that 1) x1 is true in the first state and 2) starting from the next state (X), ~x1 is true for all states (G).
464
12020x1 and X(G(!x1))
x1 starts true, and then never again becomes true.
x1 and G(X(!x1)). I think this is interesting because it leads to unreachability back to the true condition.
The first part is initially true. X shift by one and then G(!x1) is always false.
465
1112020F(x1 -> !x1)
x1 starts true, and then never again becomes true.
x1 and G(X(!x1)). I think this is interesting because it leads to unreachability back to the true condition.
Eventually, x1 becomes false forever
466
12020x1 -> G(X(!x1))
x1 starts true, and then never again becomes true.
x1 and G(X(!x1)). I think this is interesting because it leads to unreachability back to the true condition.
x1 being true at the first step implies that the subsequent path always has x as false in the next step?
467
112020x1 -> G NOT x1
x1 starts true, and then never again becomes true.
x1 and G(X(!x1)). I think this is interesting because it leads to unreachability back to the true condition.
x1 is true implies that NOT x1 should be true for all subsequent states
468
2020x1(-x1)^(omega)
x1 starts true, and then never again becomes true.
x1 and G(X(!x1)). I think this is interesting because it leads to unreachability back to the true condition.
This describes a trace where x1 is true, then x1 is false "(-x1)" is always true (represented by "^(omega)")
469
2020x1 U F(G(!x1))
x1 starts true, and then never again becomes true.
x1 and G(X(!x1)). I think this is interesting because it leads to unreachability back to the true condition.
x1 means x1 starts true. U means it eventually stops being true and becomes false. F(G()) means that it is eventually always false.
470
112020G(X(x1))
x1 starts true, and then never again becomes true.
x1 and G(X(!x1)). I think this is interesting because it leads to unreachability back to the true condition.
The answer means X(x1) must be true always. We also know that each state status x1 could be present as its precedent state's X(x1) besides the initial state.
471
12020x1 and X(!x1)
x1 starts true, and then never again becomes true.
x1 and G(X(!x1)). I think this is interesting because it leads to unreachability back to the true condition.
x1 indicates x1 is true in the current time step, X(!x1) indicates x1 is false in all timesteps follwoing
472
1112020
x1:=true -> F( G(x1:=false) )
x1 starts true, and then never again becomes true.
x1 and G(X(!x1)). I think this is interesting because it leads to unreachability back to the true condition.
x1 is true means that eventually and always that x1 will be false.
473
12020
G ((¬x2 ∧ ¬x3) -> x1)
x1 will always be true if x2 is false, unless x3 is also true
I think this would be an interesting case because x1 as a variable will be dependent on two other variables
It is always the case that x1 is true if both x2 and x3 are false.
474
2020
G(x1 <=> !x2 and !x3)
x1 will always be true if x2 is false, unless x3 is also true
I think this would be an interesting case because x1 as a variable will be dependent on two other variables
The question didn't really specify what x1 is if x3 is true but I took it to mean false.
475
2020G((x2∧¬x3)->x1)
x1 will always be true if x2 is false, unless x3 is also true
I think this would be an interesting case because x1 as a variable will be dependent on two other variables
Rephrase the sentence, then we have: If x2 is false and x3 is not true, then x1 must always be true.
476
2020G(x1) |= !x2 ∧ !x3
x1 will always be true if x2 is false, unless x3 is also true
I think this would be an interesting case because x1 as a variable will be dependent on two other variables
G(x1) means that x1 will always be true, but the satisfaction relation |= means that G(x1) will only occur as long as !x2 (meaning x2 is false) and as long as x3 is false. The fact that x1 will always be true as long as x2 is false and x3 is false is captured by the statement !x2 ∧ !x3.
477
2020
G(x1) and not x2 and not x3
x1 will always be true if x2 is false, unless x3 is also true
I think this would be an interesting case because x1 as a variable will be dependent on two other variables
G(x1) means in words that x1 is always true. Together, this means that G(x1) always true if x2 is false and x2 is false
478
2020
G(!x1 and !x3 => x1)
x1 will always be true if x2 is false, unless x3 is also true
I think this would be an interesting case because x1 as a variable will be dependent on two other variables
We need a Global quantifier and an implication.
479
2020
G(!x2 => (x1 or x3))
x1 will always be true if x2 is false, unless x3 is also true
I think this would be an interesting case because x1 as a variable will be dependent on two other variables
We use the "G" formula to enforce that the following formula will always be true, and then "!x2 => (x1 or x3)" to encode that, if x2 is false, then either x1 is true, or x3 was also true.
480
2020
G(-x2 => (x1 or x3))
x1 will always be true if x2 is false, unless x3 is also true
I think this would be an interesting case because x1 as a variable will be dependent on two other variables
Whenever x2 is false, x1 will be true or x3 will be true.
481
2020G((!x2 ∧ !x3) -> x1)
x1 will always be true if x2 is false, unless x3 is also true
I think this would be an interesting case because x1 as a variable will be dependent on two other variables
always, if x2 is false and x3 is false, x1 will be true
482
2020
NOT(x2) AND NOT(x3) -> G(x1)
x1 will always be true if x2 is false, unless x3 is also true
I think this would be an interesting case because x1 as a variable will be dependent on two other variables
When x2 is false and x3 is false (equivalent to "unless x3 is also true"), x1 will always be true.
483
2020G(!x2 -> x1) or x3
x1 will always be true if x2 is false, unless x3 is also true
I think this would be an interesting case because x1 as a variable will be dependent on two other variables
if x3 is true, x1 won't always be true. If x2 is false, then x1 will always be true.
484
2020
(!x2 and !x3) => G(x1)
x1 will always be true if x2 is false, unless x3 is also true
I think this would be an interesting case because x1 as a variable will be dependent on two other variables
485
2020
G(!x2 and !x3 => x1)\nEquivalently:\nG(!(!x2 and !x3) or x1)
x1 will always be true if x2 is false, unless x3 is also true
I think this would be an interesting case because x1 as a variable will be dependent on two other variables
I am interpreting this statement as Always x1 is true if ....\nIt may also be interpreted as x1 is always true if ... ever occurs.\nOther than the "always" the statement can be interpreted as !x2 and !x3 => x1 which is equivalent to !(!x2 and !x3) or x1.
486
2020
G((!x2 and !x3) => x1)
x1 will always be true if x2 is false, unless x3 is also true
I think this would be an interesting case because x1 as a variable will be dependent on two other variables
The relationship between x2 and x3 implies the status of x1
487
2020
NOT x2 -> x3 OR G x2
x1 will always be true if x2 is false, unless x3 is also true
I think this would be an interesting case because x1 as a variable will be dependent on two other variables
if NOT x2 is true, that implies that either x3 is true OR x2 is always true (G).
488
2020
G((!x2 => x1) or x3)
x1 will always be true if x2 is false, unless x3 is also true
I think this would be an interesting case because x1 as a variable will be dependent on two other variables
I\'m not sure if I expressed the idea of "unless" correctly here. The formula starts with (!x2 => x1) because it always holds that x1 is true if x2 is false (i.e. x2 being false implies that x1 is true). We then have "or x3" because this is true unless x3 is also true. The whole thing is wrapped in a G because it always holds.
489
112020x1 and XXX(x1)
x1 starts true and is true exactly every third state
Not directly translatable to LTL syntax, requires clever interpretation
Again, I feel bad just using X, because i feel like when we "advance" the modulus gets reset? But that could be wrong.
490
2020Undoable
x1 starts true and is true exactly every third state
Not directly translatable to LTL syntax, requires clever interpretation
I don't think this is doable in LTL. Because LTL lacks some mechanics on checking multiples.
491
1112020
x1 -> (X(¬x1) ^ X(X(x1)))
x1 starts true and is true exactly every third state
Not directly translatable to LTL syntax, requires clever interpretation
492
12020
x1 and X(!x1) and G(x1 <=> X(X(x1)))
x1 starts true and is true exactly every third state
Not directly translatable to LTL syntax, requires clever interpretation
493
112020
x1 AND X(X(X(x1)))
x1 starts true and is true exactly every third state
Not directly translatable to LTL syntax, requires clever interpretation
x1 is true when its third state is true.
494
112020
x1 and G(x1 U X(!x1 and X(!x1 and X(x1))))
x1 starts true and is true exactly every third state
Not directly translatable to LTL syntax, requires clever interpretation
The initial x1 ensures that the loop starts with it true. The second
495
2020No answer
x1 starts true and is true exactly every third state
Not directly translatable to LTL syntax, requires clever interpretation
I am unsure how to specify every third state.
496
12020
x1 and G(X(X(X(x1))))
x1 starts true and is true exactly every third state
Not directly translatable to LTL syntax, requires clever interpretation
G(X(X(X(x1)))) ensures that every third state is true, x1 ensures that the first state is true
497
112020
x1 and (x1 implies X(X(X(x1))))
x1 starts true and is true exactly every third state
Not directly translatable to LTL syntax, requires clever interpretation
x1 is true now and x1 being true implies that x1 is also true in the next, next, next state
498
112020XXXx1
x1 starts true and is true exactly every third state
Not directly translatable to LTL syntax, requires clever interpretation
I am not really sure how to express "every third state" but I imagine it is using next in some way
499
112020
G(x1 => (X(not(x1)) and X(not(x1) and X(x1))
x1 starts true and is true exactly every third state
Not directly translatable to LTL syntax, requires clever interpretation
I think that my expression describes a kind of "recursive" state, where x1 implies the sequence of "next" states not(x1) and then not(x1) and then x1. And since I wrapped this in a "global", the last state, x1 being true, would imply that this sequence of states is repeated.
500
12020
(x1 |= true) AND (G^(=3)(x1 |= true))
x1 starts true and is true exactly every third state
Not directly translatable to LTL syntax, requires clever interpretation
(x1 |= true) means that x1 is true and (G^(=3)(x1 |= true)) means that x1 is always true every third state.
501
12020
x1 and G(x1 => X(!x1) and X(X(!x1)) and X(X(X(x1))))
x1 starts true and is true exactly every third state
Not directly translatable to LTL syntax, requires clever interpretation
502
12020
x1 and X(!x1) and X(X(x1)) and X(G((!x1 and X(!x1) and X(X(x1))) or (!x1 and X(x1) and X(X(!x1))) or (x1 and X(!x1) and X(X(!x1))))
x1 starts true and is true exactly every third state
Not directly translatable to LTL syntax, requires clever interpretation
The first part is first, second, and third state. After that we ensure that the variable is true exactly every third state (starting at the second state).
503
12020
x1 and G(X(X(X(x1))
x1 starts true and is true exactly every third state
Not directly translatable to LTL syntax, requires clever interpretation
So since x1 starts true that is why I put just x1. I was very confused at how to say "exactly every third state" and I wasn\'t able to get any suggestions from lecture or my question on Piazza by the time I needed to do this, so I know that X refers to the next state so I thought by putting it inside G, which means that the expression always holds, that x1 in the next next next state would always be true, which I think somewhat similar to saying every third state.
504
12020
x1 && G (x1 => ((X ~x1) && (X X ~x1) && (X X X x1)))
x1 starts true and is true exactly every third state
Not directly translatable to LTL syntax, requires clever interpretation
I achieved this by stating that, for all states, whenever x1 is true it must be followed by the sequence ~x1, ~x1, x1. Requiring the final x1 state ensures that the pattern will repeat without spaces between repeats, and ensuring that the first state has x1 true (with the x1 && ...) ensures the cycle will start.
505
112020
(x1 AND Xx1) ->G(NOT x1)
if x1 is true two times in a row, it is never true again.
I think this is interesting, because I found it tricky to conceptualize the idea of "twice in a row" until I saw some examples of it.
Since X is the "next state" operator, both x1 and Xx1 have to be true. Finally, we can use implication for the "if" part so that if both x1 and Xx1 are true, then in all subsequent states (G), x1 shouldn\'t be true.
506
12020
(x1 and X(x1)) -> X(X(G(!x1))
if x1 is true two times in a row, it is never true again.
I think this is interesting, because I found it tricky to conceptualize the idea of "twice in a row" until I saw some examples of it.
x1 holding in this state and the next implies that from the next, next state onward, x1 is always false
507
12020
G((x1 and Xx1) => !F(x1))
if x1 is true two times in a row, it is never true again.
I think this is interesting, because I found it tricky to conceptualize the idea of "twice in a row" until I saw some examples of it.
Applied globally, the condition (x1 and Xx1) (x1 is true in the current state and the next state, or twice in a row) implies !F(x1) (x1 will never be true again).
508
12020
(x1 and X(x1)) U (G(not(x1))
if x1 is true two times in a row, it is never true again.
I think this is interesting, because I found it tricky to conceptualize the idea of "twice in a row" until I saw some examples of it.
The U/until operator expresses that the LHS is true first, and then the RHS. The LHS uses the X (next) operator to express two contiguous states of x1 being true. the RHS expresses the global/always state of x1 being NOT true.
509
12020
G((x1 and X(x1)) => X(X(G(!x1))))
if x1 is true two times in a row, it is never true again.
I think this is interesting, because I found it tricky to conceptualize the idea of "twice in a row" until I saw some examples of it.
x1 and X(x1) is x1 being true twice in the row. This implies that 2 after (using X(X(...))) then x1 is always false (using G(!x1))
510
12020
G((x1 and X(x1)) -> X(X(G(!x1))))
if x1 is true two times in a row, it is never true again.
I think this is interesting, because I found it tricky to conceptualize the idea of "twice in a row" until I saw some examples of it.
Globablly, if x1 is true in the current state and the next state, globablly from the next next state it is false
511
112020
F((x1 ∧ N(x1))∧G(N(N(¬x1))))
if x1 is true two times in a row, it is never true again.
I think this is interesting, because I found it tricky to conceptualize the idea of "twice in a row" until I saw some examples of it.
Eventually x1 will be true two times in a row, and in the following states x1 will be false
512
112020
(x1:=true ^ ◯ x1:= true) -> G( x1:= false)
if x1 is true two times in a row, it is never true again.
I think this is interesting, because I found it tricky to conceptualize the idea of "twice in a row" until I saw some examples of it.
I used implies because it's an if-then statement and G() to show that x1 will always be false
513
112020x1 U x1 => F(!x1)
if x1 is true two times in a row, it is never true again.
I think this is interesting, because I found it tricky to conceptualize the idea of "twice in a row" until I saw some examples of it.
According to the 8th rule under "2 Semantics" U accounts for the ith and the jth entry for the sequences where j = i+1 (so it represents "two times in a row") and x1 is true for both of these times. Then, I made it so that this implies that eventually x1 will not be true if x1 U x1
514
1112020(XXx1) -> G(-x1)
if x1 is true two times in a row, it is never true again.
I think this is interesting, because I found it tricky to conceptualize the idea of "twice in a row" until I saw some examples of it.
I am still uncertain about the "two times in a row" concept but i believe the last part of always not x would satisfy the second part of the statement
515
2020
G((x1 and X(x1)) => X(X(!x2)))U(!x2))
if x1 is true two times in a row, it is never true again.
I think this is interesting, because I found it tricky to conceptualize the idea of "twice in a row" until I saw some examples of it.
I'm not totally sure about how to extract the i state where x1 is true two times in a row, and say x1 is false after state i. I tried using U, which has some sense of this progression, where x1 and X(x1) will be true, but then for all states after x1 will be false, but I don't think it actually works...
516
12020
(x1 & X(x1)) -> !X^2(x1)
if x1 is true two times in a row, it is never true again.
I think this is interesting, because I found it tricky to conceptualize the idea of "twice in a row" until I saw some examples of it.
If x1 and x1's next state are true, then the follower states must be false
517
112020x1 U x1 -> G(!x1)
if x1 is true two times in a row, it is never true again.
I think this is interesting, because I found it tricky to conceptualize the idea of "twice in a row" until I saw some examples of it.
I think that the U function accounts for twice in a row, and then g function with not ensures it never happens again
518
12020
(x1 and X(x1)) => G(X(X(!x1))
if x1 is true two times in a row, it is never true again.
I think this is interesting, because I found it tricky to conceptualize the idea of "twice in a row" until I saw some examples of it.
x1 and X(x1) : means that x1 is true two times in a row\nG(X(X(!x1)) : means that in all states starting from the two in a row, x1 will be false
519
12020
((x1 and !x2 and !x3) -> (!x1 and x2 and !x3) -> (!x1 and !x2 and x3))
There are three people running a relay race. Person x1 will go first, then eventually person x2 will go, then finally x3 will go until the end of the race. Only one person is running in the relay race at once.
I think this is interesting because it is a real world application of a linear trace. I also think it is interesting because it makes use of common LTL semantics like eventually "F( )"
Since only one person can be running the race, this means that only one of the variables can be true, which is what I expressed in the expressions like (x1 and !x2 and !x3). Then since we know the order that they are running and -> means then, I just put the expression where x1 was true first and then used the arrow to point to the expression where x2 is true and then another arrow to point to the expression where x3 is true.
520
12020
(x1 -> (!x2 and !x3)) -> X(x2 -> (!x1 and !x3)) -> X(X(x3 -> (!x1and !x2)))
There are three people running a relay race. Person x1 will go first, then eventually person x2 will go, then finally x3 will go until the end of the race. Only one person is running in the relay race at once.
I think this is interesting because it is a real world application of a linear trace. I also think it is interesting because it makes use of common LTL semantics like eventually "F( )"
Basically I explicitly state how the first state of x1 being true implies that x2 and x3 are both not running, which implies how in the next state that x2 running implies that x1 and x3 are not running, and that implies that in the x2 state that x3 running implies that x1 and x2 are not running.
521
2020
x1 and !x2 and !x3 and X(!x1) and X(x2) and X(!x3) and X(X( G(x3) )) and X(X( G(!x1) )) and X(X( G(!x2) ))
There are three people running a relay race. Person x1 will go first, then eventually person x2 will go, then finally x3 will go until the end of the race. Only one person is running in the relay race at once.
I think this is interesting because it is a real world application of a linear trace. I also think it is interesting because it makes use of common LTL semantics like eventually "F( )"
The first three are making sure x1 is true at the first time step and x2 and x3 are false. The second three are making sure that only x2 is true at the second time step. The last three are saying that after the first two time steps, x3 is always true and x1 and x2 are both always false
522
2020
(x1 -> F(x2) -> F(x3)) AND ((x1 AND (not x2) AND (not x3)) OR (((not x1) AND (x2) AND (not x3)) OR (((not x1) AND (not x2) AND (x3)))
There are three people running a relay race. Person x1 will go first, then eventually person x2 will go, then finally x3 will go until the end of the race. Only one person is running in the relay race at once.
I think this is interesting because it is a real world application of a linear trace. I also think it is interesting because it makes use of common LTL semantics like eventually "F( )"
(x1 -> F(x2) -> F(x3)) indicates that when x1 holds, then eventually x2 holds. Furthermore, when x2 holds, then eventually x3 would hold. This statement is ANDed with ((x1 AND (not x2) AND (not x3)) OR (((not x1) AND (x2) AND (not x3)) OR (((not x1) AND (not x2) AND (x3))) which attempts to show that only one person is running in the relay at once.
523
2020
((x1 ∧ ¬x2 ∧ ¬x3) U (¬x1 ∧ x2 ∧ ¬x3)) ∧ ((¬x1 ∧ x2 ∧ ¬x3) U (¬x1 ∧ ¬x2 ∧ x3))
There are three people running a relay race. Person x1 will go first, then eventually person x2 will go, then finally x3 will go until the end of the race. Only one person is running in the relay race at once.
I think this is interesting because it is a real world application of a linear trace. I also think it is interesting because it makes use of common LTL semantics like eventually "F( )"
We start with some state where only x1 is true until only x2 is true, then we have some state where only x2 is true until only x3 is true
524
2020
(x1 U F(x2)) U f(x3) and !(x1^x2^x3)
There are three people running a relay race. Person x1 will go first, then eventually person x2 will go, then finally x3 will go until the end of the race. Only one person is running in the relay race at once.
I think this is interesting because it is a real world application of a linear trace. I also think it is interesting because it makes use of common LTL semantics like eventually "F( )"
F means eventually and U means after. no intersection among x1, x2 and x3.
525
2020x1 U (x2 U x3)
There are three people running a relay race. Person x1 will go first, then eventually person x2 will go, then finally x3 will go until the end of the race. Only one person is running in the relay race at once.
I think this is interesting because it is a real world application of a linear trace. I also think it is interesting because it makes use of common LTL semantics like eventually "F( )"
A person\'s variable is true if they are currently running and false otherwise. Thus, we use the "until" operator U to designate that different people run during disjoint sections of the trace. Specifically, "x2 U x3" says that x2 is running (is true) up to some state i, and x3 is running for all subsequent states after i. Similarly, x1 U (x2 U x3) says that x1 is running up to some state i, and the rest of the relay race (involving x2 and x3) occurs in the states after state i. Thus only one person is running at a time, and all eventually run in the trace.
526
2020
x1 and F(x2) and F(G(x3)) and G(!(x1 and x2) and !(x2 and x3) and !(x3 and x1) and (x1 or x2 or x3))
There are three people running a relay race. Person x1 will go first, then eventually person x2 will go, then finally x3 will go until the end of the race. Only one person is running in the relay race at once.
I think this is interesting because it is a real world application of a linear trace. I also think it is interesting because it makes use of common LTL semantics like eventually "F( )"
x1 says x1 goes first. F(x2) checks that x2 eventually goes. F(G(x3)) checks that eventually always x3 will go. the next part says that no overlap occurs
527
2020
F(x3 U x2 U x1) ∧ G((x1 ∧ !x2 ∧ !x3 ) ∨ (!x1 ∧ x2 ∧ !x3 ) ∨ (!x1 ∧ !x2 ∧ x3 ))
There are three people running a relay race. Person x1 will go first, then eventually person x2 will go, then finally x3 will go until the end of the race. Only one person is running in the relay race at once.
I think this is interesting because it is a real world application of a linear trace. I also think it is interesting because it makes use of common LTL semantics like eventually "F( )"
eventually, x3 holds until x2, and x2 holds until x1. Also, there's always only on holds in x1, x2, x3
528
2020
(x1 /\\ ~x2 /\\ ~x3) -> F(~x1 /\\ x2 /\\ ~x3) -> F(~x1 /\\ ~x2 /\\ x3)
There are three people running a relay race. Person x1 will go first, then eventually person x2 will go, then finally x3 will go until the end of the race. Only one person is running in the relay race at once.
I think this is interesting because it is a real world application of a linear trace. I also think it is interesting because it makes use of common LTL semantics like eventually "F( )"
The first state where only x1 is running implies an eventual state where only x2 is running, which implies an eventual state where only x3 is running
529
2020x1 U x2 U x3
There are three people running a relay race. Person x1 will go first, then eventually person x2 will go, then finally x3 will go until the end of the race. Only one person is running in the relay race at once.
I think this is interesting because it is a real world application of a linear trace. I also think it is interesting because it makes use of common LTL semantics like eventually "F( )"
x1 is true until x2 is true, which in turn will be true until x3 becomes true. I do not believe the desired formula can be expressed using LTL, but this is an attempt
530
2020x1 U x2 U Gx3
There are three people running a relay race. Person x1 will go first, then eventually person x2 will go, then finally x3 will go until the end of the race. Only one person is running in the relay race at once.
I think this is interesting because it is a real world application of a linear trace. I also think it is interesting because it makes use of common LTL semantics like eventually "F( )"
we know that x1 is true first, so x1 should be true until x2 goes. Then, x2 should be true, until final x3 goes, and x3 should be going until the end (G)
531
2020
(x1 and !x2 and !x3) U x2) and X(!x1 and x2 and !x3) U x3) and X(X(!x1 and !x2 and x3))
There are three people running a relay race. Person x1 will go first, then eventually person x2 will go, then finally x3 will go until the end of the race. Only one person is running in the relay race at once.
I think this is interesting because it is a real world application of a linear trace. I also think it is interesting because it makes use of common LTL semantics like eventually "F( )"
Assuming running the race means the variable is true
532
2020
x1 !x2 !x3 and X!x1 Xx2 X!x3 and XX!x1 XX!x2 XXx3
There are three people running a relay race. Person x1 will go first, then eventually person x2 will go, then finally x3 will go until the end of the race. Only one person is running in the relay race at once.
I think this is interesting because it is a real world application of a linear trace. I also think it is interesting because it makes use of common LTL semantics like eventually "F( )"
Define running as being true. Only one x is true at any step. At step 0 only x1 is true (meaning x1 is running) and the next are false, in the next step x2 is true and the others are false, and in the next step x3 is true and the others are false.
533
112020
F x2\nX (~(x1 /\\ x2)
For a while, it is never the case that x1 is true and x2 is false at the same time, but after a certain point, x2 will eventually always be true.
I considered the formula interesting because it contains a variety of operations and involves nested F's and G's.
not sure how to say 'for a while'
534
12020
(x1 and !x2) U F(G(x2))
For a while, it is never the case that x1 is true and x2 is false at the same time, but after a certain point, x2 will eventually always be true.
I considered the formula interesting because it contains a variety of operations and involves nested F's and G's.
For a while and "after a certain point" made it seem like this x1 was true and x2 was false until something happened, which is why I put them on the left side of the U symbol. Since after the certain point, it will eventually will always hold that x2 is true, I put this on the right side of the U and put the expression inside of F and then a G because F means that it will eventually occur and G means that it will always occur.
535
12020
~(x1 and ~x2) U G(x2)
For a while, it is never the case that x1 is true and x2 is false at the same time, but after a certain point, x2 will eventually always be true.
I considered the formula interesting because it contains a variety of operations and involves nested F's and G's.
not the first condition until the second
536
12020
G(not(x1 and (not(x2))) U F((G(x2)))
For a while, it is never the case that x1 is true and x2 is false at the same time, but after a certain point, x2 will eventually always be true.
I considered the formula interesting because it contains a variety of operations and involves nested F's and G's.
the binary operator "U" (until) expresses the idea that the LHS is true until the RHS is true. So first, it is always the case that x1 and x2 cannot be true at the same time, UNTIL, eventually (F), it is always true that x2 is true.
537
1112020
~(x1^~x2)U(x1^~x2) ^ F(x1^~x2) ^ FGx2
For a while, it is never the case that x1 is true and x2 is false at the same time, but after a certain point, x2 will eventually always be true.
I considered the formula interesting because it contains a variety of operations and involves nested F's and G's.
after a certain point, x2 will eventually always be true. FGx2\nFor a while, it is never the case that x1 is true and x2 is false at the same time => there is a time where ~(x1^~x2) true for all that time\n=> F(x1^~x2) (the condition have to be violated in the future) ^ ~(x1^~x2)U(x1^~x2) (before that ~(x1^~x2) must strictly hold)
538
112020
G(!(x1 and !x2) and (F(x2)))
For a while, it is never the case that x1 is true and x2 is false at the same time, but after a certain point, x2 will eventually always be true.
I considered the formula interesting because it contains a variety of operations and involves nested F's and G's.
Globally, it is never the case that (x1 is true and x2 is false) and eventually x2 holds true
539
2020
( !(F(x2)) -> (x1 and !x2)) and G(F(x2))
For a while, it is never the case that x1 is true and x2 is false at the same time, but after a certain point, x2 will eventually always be true.
I considered the formula interesting because it contains a variety of operations and involves nested F's and G's.
This basically says that x2 is not eventually true it implies that it is not the case that x1 is true and x2 is false at the same time, but AND that x2 will eventually always be true.
540
112020
(G(~(x1 and ~x2))) U (G(x2))
For a while, it is never the case that x1 is true and x2 is false at the same time, but after a certain point, x2 will eventually always be true.
I considered the formula interesting because it contains a variety of operations and involves nested F's and G's.
Up until a certain point it should always be the case that (x1 and ~x2) is false and then after that point x2 should always be true. The U represents that up to some point the first half is true and then after that point the second part is true.
541
12020
~(x1 && ~x2) U (F G x2)
For a while, it is never the case that x1 is true and x2 is false at the same time, but after a certain point, x2 will eventually always be true.
I considered the formula interesting because it contains a variety of operations and involves nested F's and G's.
We use the until operator U to divide the trace into two sets. The first expression, which is true for all states up to some state i, simply requires that x1 cannot be true when x2 is false. The second expression, which holds for the trace after state i, states exactly what is given: eventually (F) x2 will be true for all subsequent states (G).
542
112020!(x1 && !x2), F(x2)
For a while, it is never the case that x1 is true and x2 is false at the same time, but after a certain point, x2 will eventually always be true.
I considered the formula interesting because it contains a variety of operations and involves nested F's and G's.
My answer is comprised of two parts, one specifying that x1 true and x2 false will never happen, and one that x2 will be finally true
543
2020
F(F(x1 and !x2) -> F(G(x2)))
For a while, it is never the case that x1 is true and x2 is false at the same time, but after a certain point, x2 will eventually always be true.
I considered the formula interesting because it contains a variety of operations and involves nested F's and G's.
F means eventually, so the above is saying that eventually x1 will be true and x2 will be false, and when thats the case, eventually it will always be true that x2 is true.
544
12020
G(!(x1 and !x2)) U F(G(x2))
For a while, it is never the case that x1 is true and x2 is false at the same time, but after a certain point, x2 will eventually always be true.
I considered the formula interesting because it contains a variety of operations and involves nested F's and G's.
I interpret "for a while" and "but" as a while operator. So x1 and !x2 is always false, until x2 will eventually always be true.
545
112020
G(not (x1 and x2!) U G(x2))
For a while, it is never the case that x1 is true and x2 is false at the same time, but after a certain point, x2 will eventually always be true.
I considered the formula interesting because it contains a variety of operations and involves nested F's and G's.
It is always true that we can't have x1 and x2! until x2 will always be true
546
2020x1 -> F(G(x2))
if x1 is true at the beginning then x2 is true at the end
I think this is interesting for two reasons. 1: what it means for x1 to be true at the beginning is a little ambiguous and 2: what is means for x2 to be true at the end is also ambiguous
I am trying to check if x1 is true at the beginning by using "x1" alone. Then, I am checking that x2 is true at the end by seeing if x2 is eventually always true.
547
2020
x2 |= ! if x1 ∧ F(!x1)
if x1 is true at the beginning then x2 is true at the end
I think this is interesting for two reasons. 1: what it means for x1 to be true at the beginning is a little ambiguous and 2: what is means for x2 to be true at the end is also ambiguous
X2 becomes false if the condition on the right of the satisfiability symbol is satisfied, which is that eventually (or at the end) x1 is false.
548
2020x1 => F(x2)
if x1 is true at the beginning then x2 is true at the end
I think this is interesting for two reasons. 1: what it means for x1 to be true at the beginning is a little ambiguous and 2: what is means for x2 to be true at the end is also ambiguous
x1 holding true implies that eventually x2 is true. x1 on its own means x1 in the first state.
549
2020-
if x1 is true at the beginning then x2 is true at the end
I think this is interesting for two reasons. 1: what it means for x1 to be true at the beginning is a little ambiguous and 2: what is means for x2 to be true at the end is also ambiguous
-
550
2020
(x1 /\\ Fx2) \\/ ~x1
if x1 is true at the beginning then x2 is true at the end
I think this is interesting for two reasons. 1: what it means for x1 to be true at the beginning is a little ambiguous and 2: what is means for x2 to be true at the end is also ambiguous
x1 is true and eventually x2 is true or x1 is not true.
551
2020x1 -> F(x2)
if x1 is true at the beginning then x2 is true at the end
I think this is interesting for two reasons. 1: what it means for x1 to be true at the beginning is a little ambiguous and 2: what is means for x2 to be true at the end is also ambiguous
F means it will eventually be true
552
2020x1 -> F(G(x2))
if x1 is true at the beginning then x2 is true at the end
I think this is interesting for two reasons. 1: what it means for x1 to be true at the beginning is a little ambiguous and 2: what is means for x2 to be true at the end is also ambiguous
the "end" is just a state of stability, so if x1 starts as true it implies that eventually the trace is such that x2 is always true
553
2020~x1 v F(x2)
if x1 is true at the beginning then x2 is true at the end
I think this is interesting for two reasons. 1: what it means for x1 to be true at the beginning is a little ambiguous and 2: what is means for x2 to be true at the end is also ambiguous
just x1 means x1(0) is true, which is x1 is true ath the beginning\nF(x2) means eventually true, which is the closest we can get to 'true at the end' since LTL is an infinite sequence that does not really have an end\n'if then' is equivalent to implies ->\nso we have\nx1 -> F(x2)\nbut LTL does not have implies so we will use a logically equivalent statement in place which is\np->q <=> ~p v q
554
2020F(x1 -> x2)
if x1 is true at the beginning then x2 is true at the end
I think this is interesting for two reasons. 1: what it means for x1 to be true at the beginning is a little ambiguous and 2: what is means for x2 to be true at the end is also ambiguous
if x1 is true then x2 is true eventually
555
2020x1 => F(X(x2)*)
if x1 is true at the beginning then x2 is true at the end
I think this is interesting for two reasons. 1: what it means for x1 to be true at the beginning is a little ambiguous and 2: what is means for x2 to be true at the end is also ambiguous
If x1 is true for the first time, then there will be a point where x2 is just true forever.
556
2020x1 -> F(x2)
if x1 is true at the beginning then x2 is true at the end
I think this is interesting for two reasons. 1: what it means for x1 to be true at the beginning is a little ambiguous and 2: what is means for x2 to be true at the end is also ambiguous
x2 is true at the end interpreted as "x2 will be true from a point on"
557
2020x1 and F(x2)
if x1 is true at the beginning then x2 is true at the end
I think this is interesting for two reasons. 1: what it means for x1 to be true at the beginning is a little ambiguous and 2: what is means for x2 to be true at the end is also ambiguous
bare variables apply at the beginning, F says that x2 will be true at the end
558
12020
w ⊨ G((¬x1 ∧ ¬x3) ⟹ x2)
x2 always holds if x1 and x3 do not hold
I think it is interesting because it tests different LTL related symbols. This could be used as a starter question.
We always want x2 to be true if x1 and x3 are not true. To get both x1 and x3 to be false, we use ¬x1 ∧ ¬x3. That should imply that x2 is true, so we add (¬x1 ∧ ¬x3) ⟹ x2. This should always be true, so it should be true in all states, which means we have w ⊨ G((¬x1 ∧ ¬x3) ⟹ x2).
559
12020
NOT(x1 AND x3) -> Gx2
x2 always holds if x1 and x3 do not hold
I think it is interesting because it tests different LTL related symbols. This could be used as a starter question.
If x1 and x3 do not both hold, the x2 must be always true (G)
560
12020G(x1 v x3 v x2)
x2 always holds if x1 and x3 do not hold
I think it is interesting because it tests different LTL related symbols. This could be used as a starter question.
x1 and x3 do not hold is (~x1^~x3)\nx2 always holds if "x1 and x3 do not hold" is "x1 and x3 do not hold" implies x2 \nG((~x1^~x3)->x2)\nwe substitute implies with ~p v q which is logically equivalent \nG(~(~x1^~x3) v x2)\nusing De Morgan\'s law we can simplify the above equation as \nG(x1 v x3 v x2)
561
12020
(!x1 and !x3) -> G(x2)
x2 always holds if x1 and x3 do not hold
I think it is interesting because it tests different LTL related symbols. This could be used as a starter question.
(!x1 and !x3) means that x1 and x3 do not hold at the first step and G(x2) means that x2 always holds.
562
12020
(!x1 and !x3) -> G(x2)
x2 always holds if x1 and x3 do not hold
I think it is interesting because it tests different LTL related symbols. This could be used as a starter question.
563
12020
(!x1 and !x3) => G(x2)
x2 always holds if x1 and x3 do not hold
I think it is interesting because it tests different LTL related symbols. This could be used as a starter question.
since x2 was prefaced with always and not x1 or x3, I only put the G around x2.
564
12020
G((!x1 AND !x3) -> x2)
x2 always holds if x1 and x3 do not hold
I think it is interesting because it tests different LTL related symbols. This could be used as a starter question.
565
12020G(x1\\/x3\\/x2)
x2 always holds if x1 and x3 do not hold
I think it is interesting because it tests different LTL related symbols. This could be used as a starter question.
I believe that the question is equivalent to saying it is always the case that one of the three variables must hold
566
112020
G(!(x1 and x3) => x2)
x2 always holds if x1 and x3 do not hold
I think it is interesting because it tests different LTL related symbols. This could be used as a starter question.
567
12020
G(!(x1 and x3) => x2)
x2 always holds if x1 and x3 do not hold
I think it is interesting because it tests different LTL related symbols. This could be used as a starter question.
x1 and x3's complement imply that x2 is true, this relationship always holds
568
12020
G(X2 \\/ (X1 \\/ X3))
x2 always holds if x1 and x3 do not hold
I think it is interesting because it tests different LTL related symbols. This could be used as a starter question.
Globally, if both x1 and x3 do not hold, x2 must hold (whereas if either x1 or x3 holds, we have no reason to care about x2, because the statement doesn't care about that scenario)
569
112020G(!x1 and !x3)
x2 always holds if x1 and x3 do not hold
I think it is interesting because it tests different LTL related symbols. This could be used as a starter question.
If not x1 and not x3 then x2 always holds (G function)
570
12020
G(~(~x1 and ~x3) or x2)
x2 always holds if x1 and x3 do not hold
I think it is interesting because it tests different LTL related symbols. This could be used as a starter question.
it is always the case that when both x1 and x3 do not hold, x2 does
571
12020
G ((¬x1 ∧ ¬x3) -> x2)
x2 always holds if x1 and x3 do not hold
I think it is interesting because it tests different LTL related symbols. This could be used as a starter question.
It is always the case that, if x1 and x3 are false, x2 is true.
572
12020G(x2) U (x1 U !x1)
x2 is always true, whereas x1 is only sometimes true.
This seems like a simple question, but I think the trickiest thing for me, with LTL, is how to express individual states being true vs. a state always being true (whereas the idea of temporal succession seems pretty clear to me). So I wanted to write a question with a fairly simple concept that would elucidate this difference.
Because x2 is always true, it is nested in G, and the state of x1 does not depend on x2 so the expressions are union'ed.
573
12020G(x2) and F(x1)
x2 is always true, whereas x1 is only sometimes true.
This seems like a simple question, but I think the trickiest thing for me, with LTL, is how to express individual states being true vs. a state always being true (whereas the idea of temporal succession seems pretty clear to me). So I wanted to write a question with a fairly simple concept that would elucidate this difference.
G(x2) means x2 is always true and F(x1) means that x1 is eventually true somewhere in the trace
574
12020G(x2) and F(x1)
x2 is always true, whereas x1 is only sometimes true.
This seems like a simple question, but I think the trickiest thing for me, with LTL, is how to express individual states being true vs. a state always being true (whereas the idea of temporal succession seems pretty clear to me). So I wanted to write a question with a fairly simple concept that would elucidate this difference.
G(x2) means x2 is true at each state, while "sometimes true" means there is at least one state where x1 is true, so F(x1)
575
12020G(x2)∧¬G(x1)
x2 is always true, whereas x1 is only sometimes true.
This seems like a simple question, but I think the trickiest thing for me, with LTL, is how to express individual states being true vs. a state always being true (whereas the idea of temporal succession seems pretty clear to me). So I wanted to write a question with a fairly simple concept that would elucidate this difference.
576
12020G(x2) and F(x1)
x2 is always true, whereas x1 is only sometimes true.
This seems like a simple question, but I think the trickiest thing for me, with LTL, is how to express individual states being true vs. a state always being true (whereas the idea of temporal succession seems pretty clear to me). So I wanted to write a question with a fairly simple concept that would elucidate this difference.
G means that the expression always holds, which is why I put x2 inside of G since it must always be true. Since x1 is only sometimes true, this is essentially the same thing as saying that x1 will eventually be true, which is expressed by using the F symbol and hence why I included x1 inside of F.
577
12020
G(x2) and F(x1) and F(!x1)
x2 is always true, whereas x1 is only sometimes true.
This seems like a simple question, but I think the trickiest thing for me, with LTL, is how to express individual states being true vs. a state always being true (whereas the idea of temporal succession seems pretty clear to me). So I wanted to write a question with a fairly simple concept that would elucidate this difference.
x1 has to be true sometimes and false sometimes. This is expressed via F(x1) and F(!x1). x2 is always true is expressed by G(x2).
578
12020
G(x2) and F(x1) and F(-x1)
x2 is always true, whereas x1 is only sometimes true.
This seems like a simple question, but I think the trickiest thing for me, with LTL, is how to express individual states being true vs. a state always being true (whereas the idea of temporal succession seems pretty clear to me). So I wanted to write a question with a fairly simple concept that would elucidate this difference.
x2 is always true, and for some trace steps i and j, x1 will be true at i and false at j.
579
12020
w ⊨ G(x2)\nw ⊨ F(x1)
x2 is always true, whereas x1 is only sometimes true.
This seems like a simple question, but I think the trickiest thing for me, with LTL, is how to express individual states being true vs. a state always being true (whereas the idea of temporal succession seems pretty clear to me). So I wanted to write a question with a fairly simple concept that would elucidate this difference.
x2 is always true so at any point in trace w, x2 should be satisfied, which means that forall i, w^i ⊨ x2, so we have w ⊨ G(x2).\nx1 is only sometimes true, which means that it must be true at some point, so there exists an i such that w^i ⊨ x1, so we have w ⊨ F(x1).
580
112020
G(x2) U ((x1 U !x1) AND (!x1 U x1))
x2 is always true, whereas x1 is only sometimes true.
This seems like a simple question, but I think the trickiest thing for me, with LTL, is how to express individual states being true vs. a state always being true (whereas the idea of temporal succession seems pretty clear to me). So I wanted to write a question with a fairly simple concept that would elucidate this difference.
G was used to represent always, while U represents sometimes / whereas.
581
12020G(x2) ∨ x1
x2 is always true, whereas x1 is only sometimes true.
This seems like a simple question, but I think the trickiest thing for me, with LTL, is how to express individual states being true vs. a state always being true (whereas the idea of temporal succession seems pretty clear to me). So I wanted to write a question with a fairly simple concept that would elucidate this difference.
G is always. the ∨ allows for an inclusive or that accounts for cases where x1 may be true, but may be false
582
12020G(x2) and F(x1)
x2 is always true, whereas x1 is only sometimes true.
This seems like a simple question, but I think the trickiest thing for me, with LTL, is how to express individual states being true vs. a state always being true (whereas the idea of temporal succession seems pretty clear to me). So I wanted to write a question with a fairly simple concept that would elucidate this difference.
583
12020G(x2) and F(x1)
x2 is always true, whereas x1 is only sometimes true.
This seems like a simple question, but I think the trickiest thing for me, with LTL, is how to express individual states being true vs. a state always being true (whereas the idea of temporal succession seems pretty clear to me). So I wanted to write a question with a fairly simple concept that would elucidate this difference.
G means something is always true (x2) and F means it eventually will be
584
12020
X(x1) -> (x2 & X(!x2))
If x1 is true, then x2 must have just transitioned from true to false.
Expected LTL: G (X x1 => (x2 && X ~x2)) I think this is interesting because it seems that LTL is oriented towards talking about "this occurs after this" relationships between states, as opposed to "this occurs before this," so it's easier to transcribe the former into LTL. This expression describes an event being predicated on a previous event, which requires you to change perspective a lit bit to fit in to the LTL model. Specifically, in LTL you need to consider the first state of interest instead of the final state, so that you can use LTL to specify what subsequent states look like (because LTL has no "look backwards in time" operator).
Use the next state of x1 and then it implies that x2 is true and the next state of x2 is false
585
12020
X(x1) -> (x2 and X(!x2))
If x1 is true, then x2 must have just transitioned from true to false.
Expected LTL: G (X x1 => (x2 && X ~x2)) I think this is interesting because it seems that LTL is oriented towards talking about "this occurs after this" relationships between states, as opposed to "this occurs before this," so it's easier to transcribe the former into LTL. This expression describes an event being predicated on a previous event, which requires you to change perspective a lit bit to fit in to the LTL model. Specifically, in LTL you need to consider the first state of interest instead of the final state, so that you can use LTL to specify what subsequent states look like (because LTL has no "look backwards in time" operator).
I'm a little confused about this one since I'm a little unclear on the concept of previous states in LTL, which seems necessary for the second half of the sentence. To handle this I decided to start with x1 being true on the NEXT state, i.e. X(x1). This implies that x2 is true and also X(!x2), which I think translates to x2 being true on the previous state and false on the state after that (i.e. x2 transitioning from true to false).
586
2020
(x2 U x1) and G(x2 and !x1)
If x1 is true, then x2 must have just transitioned from true to false.
Expected LTL: G (X x1 => (x2 && X ~x2)) I think this is interesting because it seems that LTL is oriented towards talking about "this occurs after this" relationships between states, as opposed to "this occurs before this," so it's easier to transcribe the former into LTL. This expression describes an event being predicated on a previous event, which requires you to change perspective a lit bit to fit in to the LTL model. Specifically, in LTL you need to consider the first state of interest instead of the final state, so that you can use LTL to specify what subsequent states look like (because LTL has no "look backwards in time" operator).
x2 must be true until x1 is true, and x1 is false when x2 is true
587
12020
X(x1) => x2 and X(!x2)
If x1 is true, then x2 must have just transitioned from true to false.
Expected LTL: G (X x1 => (x2 && X ~x2)) I think this is interesting because it seems that LTL is oriented towards talking about "this occurs after this" relationships between states, as opposed to "this occurs before this," so it's easier to transcribe the former into LTL. This expression describes an event being predicated on a previous event, which requires you to change perspective a lit bit to fit in to the LTL model. Specifically, in LTL you need to consider the first state of interest instead of the final state, so that you can use LTL to specify what subsequent states look like (because LTL has no "look backwards in time" operator).
by using next, we are able to get this idea of previous - if after removing t0 then x1 is true then x2 must have been true in the now (which to the next is the previous) and x2 is false in the next
588
12020x1 -> x2 U !x2
If x1 is true, then x2 must have just transitioned from true to false.
Expected LTL: G (X x1 => (x2 && X ~x2)) I think this is interesting because it seems that LTL is oriented towards talking about "this occurs after this" relationships between states, as opposed to "this occurs before this," so it's easier to transcribe the former into LTL. This expression describes an event being predicated on a previous event, which requires you to change perspective a lit bit to fit in to the LTL model. Specifically, in LTL you need to consider the first state of interest instead of the final state, so that you can use LTL to specify what subsequent states look like (because LTL has no "look backwards in time" operator).
The u function is for the transition from true to false, and x1 being true implies that must be true
589
12020
G(X(x1) => (x2 and !X(x2)))
If x1 is true, then x2 must have just transitioned from true to false.
Expected LTL: G (X x1 => (x2 && X ~x2)) I think this is interesting because it seems that LTL is oriented towards talking about "this occurs after this" relationships between states, as opposed to "this occurs before this," so it's easier to transcribe the former into LTL. This expression describes an event being predicated on a previous event, which requires you to change perspective a lit bit to fit in to the LTL model. Specifically, in LTL you need to consider the first state of interest instead of the final state, so that you can use LTL to specify what subsequent states look like (because LTL has no "look backwards in time" operator).
G means always true. X(x1) means true in the next state, and if its true the in the current state x2 is true and the next x2 is false
590
12020
G(X(x1) => (!x2 and X(x2)))
If x1 is true, then x2 must have just transitioned from true to false.
Expected LTL: G (X x1 => (x2 && X ~x2)) I think this is interesting because it seems that LTL is oriented towards talking about "this occurs after this" relationships between states, as opposed to "this occurs before this," so it's easier to transcribe the former into LTL. This expression describes an event being predicated on a previous event, which requires you to change perspective a lit bit to fit in to the LTL model. Specifically, in LTL you need to consider the first state of interest instead of the final state, so that you can use LTL to specify what subsequent states look like (because LTL has no "look backwards in time" operator).
I'm interpreting an implicit global scope here, since without it the interpretation would be the first state, which doesn't make sense because there x2 couldn't have just transitioned from true to false. Since there is no operator for looking backwards, I make the next state X() the 'present' state, and use no operators to express the past state with !x2.
591
12020
~x1 /\\ G(~X(x1) \\/ (x2 /\\ ~X(x2)))
If x1 is true, then x2 must have just transitioned from true to false.
Expected LTL: G (X x1 => (x2 && X ~x2)) I think this is interesting because it seems that LTL is oriented towards talking about "this occurs after this" relationships between states, as opposed to "this occurs before this," so it's easier to transcribe the former into LTL. This expression describes an event being predicated on a previous event, which requires you to change perspective a lit bit to fit in to the LTL model. Specifically, in LTL you need to consider the first state of interest instead of the final state, so that you can use LTL to specify what subsequent states look like (because LTL has no "look backwards in time" operator).
In the first state, x1 cannot be true. In all states, whenever x1 will be true next, x2 needs to be true in present and false next.
592
12020Xx1 -> x2 ^ X~x2
If x1 is true, then x2 must have just transitioned from true to false.
Expected LTL: G (X x1 => (x2 && X ~x2)) I think this is interesting because it seems that LTL is oriented towards talking about "this occurs after this" relationships between states, as opposed to "this occurs before this," so it's easier to transcribe the former into LTL. This expression describes an event being predicated on a previous event, which requires you to change perspective a lit bit to fit in to the LTL model. Specifically, in LTL you need to consider the first state of interest instead of the final state, so that you can use LTL to specify what subsequent states look like (because LTL has no "look backwards in time" operator).
x2 ^ X~x2 means the transition of x2 from true to false. \nXx1 -> x2 ^ X~x2 (if the next step x, x2 have to transition now)
593
12020
X(x1) -> (x2 and X(!x2))
If x1 is true, then x2 must have just transitioned from true to false.
Expected LTL: G (X x1 => (x2 && X ~x2)) I think this is interesting because it seems that LTL is oriented towards talking about "this occurs after this" relationships between states, as opposed to "this occurs before this," so it's easier to transcribe the former into LTL. This expression describes an event being predicated on a previous event, which requires you to change perspective a lit bit to fit in to the LTL model. Specifically, in LTL you need to consider the first state of interest instead of the final state, so that you can use LTL to specify what subsequent states look like (because LTL has no "look backwards in time" operator).
Consider state 1. If x1 is true then, then x2 was true in state 0 and now false in 1.
594
112020x1 -> (x2 U !x2)
If x1 is true, then x2 must have just transitioned from true to false.
Expected LTL: G (X x1 => (x2 && X ~x2)) I think this is interesting because it seems that LTL is oriented towards talking about "this occurs after this" relationships between states, as opposed to "this occurs before this," so it's easier to transcribe the former into LTL. This expression describes an event being predicated on a previous event, which requires you to change perspective a lit bit to fit in to the LTL model. Specifically, in LTL you need to consider the first state of interest instead of the final state, so that you can use LTL to specify what subsequent states look like (because LTL has no "look backwards in time" operator).
U means transition from true to false
595
12020x1 => !x2
If x1 is true, then x2 must have just transitioned from true to false.
Expected LTL: G (X x1 => (x2 && X ~x2)) I think this is interesting because it seems that LTL is oriented towards talking about "this occurs after this" relationships between states, as opposed to "this occurs before this," so it's easier to transcribe the former into LTL. This expression describes an event being predicated on a previous event, which requires you to change perspective a lit bit to fit in to the LTL model. Specifically, in LTL you need to consider the first state of interest instead of the final state, so that you can use LTL to specify what subsequent states look like (because LTL has no "look backwards in time" operator).
The transition idea is confusing, but I think guaranteeing that it will be false through the implies will fulfill the statement.
596
12020
G( ( !x2 -and X(x2)) ->X( x1) ) and G( (x2 and X(!x2) ->X(x1 )) and G( (x2 and X(x2) ->X(!x1 )) and G( (!x2 and X(!x2) ->X(!x1 ))
If x1 is true, then x2 must have just transitioned from true to false.
Expected LTL: G (X x1 => (x2 && X ~x2)) I think this is interesting because it seems that LTL is oriented towards talking about "this occurs after this" relationships between states, as opposed to "this occurs before this," so it's easier to transcribe the former into LTL. This expression describes an event being predicated on a previous event, which requires you to change perspective a lit bit to fit in to the LTL model. Specifically, in LTL you need to consider the first state of interest instead of the final state, so that you can use LTL to specify what subsequent states look like (because LTL has no "look backwards in time" operator).
G( ( !x2 -and X(x2)) ->X( x1) ) says that if x2 went from false to true, then x1 is true. "G( (x2 and X(!x2) ->X(x1 ))" says that if x2 went from true to false then x holds.\n"G( (x2 and X(x2) ->X(!x1 )) G( (!x2 and X(!x2) ->X(!x1 ))" says that if x2 stayed the same, then x1 is false.
597
2020x1 => (x1=
trace of x1 is repeated with with the period of 5 (x at time t+5 will always be x at t)
This seems like an interesting way to model oscillation which might be useful when we have a bit that flip after certain time.
Sorry I have no idea how to represent x at time t and x at time t + 5.
598
112020
x1 => X(X(X(X(X(x1)))))
trace of x1 is repeated with with the period of 5 (x at time t+5 will always be x at t)
This seems like an interesting way to model oscillation which might be useful when we have a bit that flip after certain time.
Whatever x1 is at its starting point, the status 5 times later is the same.
599
12020
G(((not x1) v XXXXx1) ^ (x1 v XXXX(not x1)))
trace of x1 is repeated with with the period of 5 (x at time t+5 will always be x at t)
This seems like an interesting way to model oscillation which might be useful when we have a bit that flip after certain time.
The "G" means that in any state, the inner formula is true. The inner formula is a bi-implication. Therefore in any state, if "x1" is true, then the next-next-next-next (i.e. fifth) value of x1 will be true, and vice versa.
600
12020
x1 & X(x1) & XX(x1) & XXX(x1) & XXXX(x1)
trace of x1 is repeated with with the period of 5 (x at time t+5 will always be x at t)
This seems like an interesting way to model oscillation which might be useful when we have a bit that flip after certain time.
Just in the following 5 states, x1 will be true
601
112020
G(X(X(X(X(X(x1)))))) and x1.
trace of x1 is repeated with with the period of 5 (x at time t+5 will always be x at t)
This seems like an interesting way to model oscillation which might be useful when we have a bit that flip after certain time.
Each X represents one state ahead of time t. With 5 X's, I'm representing t+5. And then I have plain x1 for the initial condition at time 0.
602
112020
F(x1 ∧ N(N(N(N(N(x1))))))
trace of x1 is repeated with with the period of 5 (x at time t+5 will always be x at t)
This seems like an interesting way to model oscillation which might be useful when we have a bit that flip after certain time.
Still can't figure out the explicit time step, so using eventually
603
2020
XXXXX(x1)* \\/ XXXXX(-x1)
trace of x1 is repeated with with the period of 5 (x at time t+5 will always be x at t)
This seems like an interesting way to model oscillation which might be useful when we have a bit that flip after certain time.
x1 can be false for every five time periods or x2 can be true for every five time periods.
604
12020G(X(X(X(X(x1)))))
trace of x1 is repeated with with the period of 5 (x at time t+5 will always be x at t)
This seems like an interesting way to model oscillation which might be useful when we have a bit that flip after certain time.
This means in words that it is always the case that the next next next next state is x1
605
2020
G(x1) => X(X(X(X(X(x1)))))
trace of x1 is repeated with with the period of 5 (x at time t+5 will always be x at t)
This seems like an interesting way to model oscillation which might be useful when we have a bit that flip after certain time.
x1 is always true implies that, 5 steps from now, x1 will be true.
606
112020X(X(X(X(X(x1)))))
trace of x1 is repeated with with the period of 5 (x at time t+5 will always be x at t)
This seems like an interesting way to model oscillation which might be useful when we have a bit that flip after certain time.
I use 5 X operators to indicate the period of 5, with x1!
607
12020
G(x1<->XXXXXx1)
trace of x1 is repeated with with the period of 5 (x at time t+5 will always be x at t)
This seems like an interesting way to model oscillation which might be useful when we have a bit that flip after certain time.
By definition, it means it is always that current state x1 would be exactly the same with the x1 5 states after.
608
12020
G(x1 => X(X(X(X(X(x1))))))
trace of x1 is repeated with with the period of 5 (x at time t+5 will always be x at t)
This seems like an interesting way to model oscillation which might be useful when we have a bit that flip after certain time.
609
12020
x1 => X(X(X(X(X(x1))))) and !x1 => X(X(X(X(X(!x1)))))
trace of x1 is repeated with with the period of 5 (x at time t+5 will always be x at t)
This seems like an interesting way to model oscillation which might be useful when we have a bit that flip after certain time.
if x1 is true then five nexts, x1 is true again. But if its false, then its false 5 later
610
12020(!x1) or F(x1)
x1 will never be true or it'll keep being true, at least occasionally, forever
This can be written as a single expression (`always (x1 => eventually (x1))`) which actually covers both cases of the "or".
it\'ll keep being true, at least occasionally, forever interpreted as "x1 will eventually become true"
611
12020
G(~x1) \\/ G(F(x1))
x1 will never be true or it'll keep being true, at least occasionally, forever
This can be written as a single expression (`always (x1 => eventually (x1))`) which actually covers both cases of the "or".
x1 is either globally always false or will always eventually be true (which I think describes the cyclical nature of the statement correctly, that it will continue to eventually be true?)
612
12020G(-x1) or G(F(x1))
x1 will never be true or it'll keep being true, at least occasionally, forever
This can be written as a single expression (`always (x1 => eventually (x1))`) which actually covers both cases of the "or".
x1 is always false or x1 is always eventually true.
613
12020G(!x1) or G(F(x1))
x1 will never be true or it'll keep being true, at least occasionally, forever
This can be written as a single expression (`always (x1 => eventually (x1))`) which actually covers both cases of the "or".
G(!x1) means that x1 is never true, G(F(x1)) means that it always holds that x1 is eventually true
614
2020F(x1) => X(x1)*
x1 will never be true or it'll keep being true, at least occasionally, forever
This can be written as a single expression (`always (x1 => eventually (x1))`) which actually covers both cases of the "or".
I initially used G to represent the first part of the disjunction that establishes x1 will never be true but instead used an implication to claim that if x1 is true eventually then it will be true forever after that. This allows for traces where x1 is never true to be defined with this LTL.
615
12020
G(~x1) \\/ G(F(x1))
x1 will never be true or it'll keep being true, at least occasionally, forever
This can be written as a single expression (`always (x1 => eventually (x1))`) which actually covers both cases of the "or".
Either x1 is false globally or x1 it is always the case that x1 is true sometimes, or true eventually.
616
12020G(!x1) or G(x1)
x1 will never be true or it'll keep being true, at least occasionally, forever
This can be written as a single expression (`always (x1 => eventually (x1))`) which actually covers both cases of the "or".
its either always true or false
617
12020G(!x1) or G(F(x1))
x1 will never be true or it'll keep being true, at least occasionally, forever
This can be written as a single expression (`always (x1 => eventually (x1))`) which actually covers both cases of the "or".
Either x1 is globally false or x1 is eventually true forever
618
12020
G(!x1) OR G(F(x1))
x1 will never be true or it'll keep being true, at least occasionally, forever
This can be written as a single expression (`always (x1 => eventually (x1))`) which actually covers both cases of the "or".
G means always, so the first condition in the OR formula says that x1 will be always be false (or will never be true). The second means that it is always true that x1 will be eventually true.
619
12020G(!x1) or F(x1)
x1 will never be true or it'll keep being true, at least occasionally, forever
This can be written as a single expression (`always (x1 => eventually (x1))`) which actually covers both cases of the "or".
maybe could also have just said, !G(x1)
620
12020G(!x1) or G(x1)
x1 will never be true or it'll keep being true, at least occasionally, forever
This can be written as a single expression (`always (x1 => eventually (x1))`) which actually covers both cases of the "or".
This should capture both outcomes, conveniently divided by the or.
621
12020
G(!x1) or F(!x1 U x1)
x1 will never be true or it'll keep being true, at least occasionally, forever
This can be written as a single expression (`always (x1 => eventually (x1))`) which actually covers both cases of the "or".
G function would be the case that x1 never true, I think that the f function guarantees that there will always be a future occurrence where x1 switches from false to true
622
12020G(!x1) or F(x1)
x1 will never be true or it'll keep being true, at least occasionally, forever
This can be written as a single expression (`always (x1 => eventually (x1))`) which actually covers both cases of the "or".
never be true: G(!x1) \noccasionally true: F(x1)
623
2020
G((X1 and X(not x1 and x2)) or (X2 and X(x1 and not x2)))
Whenever x1 is true, x1 is false and x2 is true in the state after; whenever x2 is true, x1 is false and x1 is true in the state after
tests the relationship between two variables and successor states
The G means that it is always the case. The argument of G means that it is always the case that either of two things happen: x1 is true and (not x1 and x2) is true in the next state, or x2 is true and (x1 and not x2) is true in the next state
624
2020
G((not x1) v X(x2 and not x1)) ^ G((not x2) v X(x1 and not x1))
Whenever x1 is true, x1 is false and x2 is true in the state after; whenever x2 is true, x1 is false and x1 is true in the state after
tests the relationship between two variables and successor states
I think this one is a contradiction in the second half of the conjunction depending on how you interpret the location of the parentheses. However, I believe that in LTL a contradiction is still a legal formula, so I just translated it as literally as possible using "G" plus implication to mean "whenever" and using "X" to represent something being true in the next state.
625
2020
(~x1 v (X(~x1)^X(x2))) ^(~x2)
Whenever x1 is true, x1 is false and x2 is true in the state after; whenever x2 is true, x1 is false and x1 is true in the state after
tests the relationship between two variables and successor states
I couldn't think how to write 'in the state after' so I am using X(var) to mean that.\n(x1 -> (X(~x1)^X(x2))) ^(x2 -> (X(~x1)^X(x1)))\nWe then replace implies p->q with logically equivalent ~p v q\n(~x1 v (X(~x1)^X(x2))) ^(~x2 v (X(~x1)^X(x1)))\nbut (X(~x1)^X(x1)) is a contradiction so we have (~x2 v F) on the right hand side, which we can simplify to ~x2\nso in total we have \n(~x1 v (X(~x1)^X(x2))) ^(~x2)
626
2020
G(x1 -> X((!x1) and x2)) and G(x2 -> X((!x2) and x1))
Whenever x1 is true, x1 is false and x2 is true in the state after; whenever x2 is true, x1 is false and x1 is true in the state after
tests the relationship between two variables and successor states
whenever x2 is true, x1 is false and x1 is true in the state after interpreted as " whenever x2 is true, x*2* is false and x1 is true in the state after"
627
2020
x1 => X(!x1 and x2) and x2 => (!x1 and X(x1))
Whenever x1 is true, x1 is false and x2 is true in the state after; whenever x2 is true, x1 is false and x1 is true in the state after
tests the relationship between two variables and successor states
There may be an error here since it is unclear which conditions are included in "in the state after". Regardless, if x1 is true, it implies in the next state (!x1 and x2). If x2 is true, x1 is false, then x2 is true in the next state (!x1 and X(x1))
628
2020
G(x1 -> X(!x1 ∧ x2)) ∧ G(x2 -> X(x1 ∧ x2))
Whenever x1 is true, x1 is false and x2 is true in the state after; whenever x2 is true, x1 is false and x1 is true in the state after
tests the relationship between two variables and successor states
always, if x1 is true, next is that x1 is false and x2 is true; if x2 is true, next is that x1 is false and x2 is true. I think there\'s error in description, it should be " x1 is false and x2 is true in the state after"
629
2020
x1 |= X!x1 and Xx2\nx2 |= X!x1
Whenever x1 is true, x1 is false and x2 is true in the state after; whenever x2 is true, x1 is false and x1 is true in the state after
tests the relationship between two variables and successor states
|= is the satisfiability relation, therefore the first conditions means that x1 is true if in the next step x1 is false and x2 is true, and the second means that x2 is true when x1 is false is in the next step.
630
2020
(x1 => X(!x1 and x2)) U (x2 => (!x1 and X(x1)))
Whenever x1 is true, x1 is false and x2 is true in the state after; whenever x2 is true, x1 is false and x1 is true in the state after
tests the relationship between two variables and successor states
x1 implies the future state of itself and x2, and x2 implies the future and current state of x1
631
2020
G(x1=>¬X(x1) ∧X(x2))\nG(x2=>¬x1 ∧X(x1))
Whenever x1 is true, x1 is false and x2 is true in the state after; whenever x2 is true, x1 is false and x1 is true in the state after
tests the relationship between two variables and successor states
632
2020
(x1, X(not x1, x2)), (x2, X(not x1, X(x1)))
Whenever x1 is true, x1 is false and x2 is true in the state after; whenever x2 is true, x1 is false and x1 is true in the state after
tests the relationship between two variables and successor states
I tried to nest operations. If x1 is true in current time, then x1 is not true and x2 is true in the state after; if x2 is true, x1 is false in the state after, and x1 is true in the state after that.
633
2020FALSE
Whenever x1 is true, x1 is false and x2 is true in the state after; whenever x2 is true, x1 is false and x1 is true in the state after
tests the relationship between two variables and successor states
x1 cannot be both true and false in the same state
634
2020
x1 -> X(!x1 and x2) and x2 -> !x1 and X(x1)
Whenever x1 is true, x1 is false and x2 is true in the state after; whenever x2 is true, x1 is false and x1 is true in the state after
tests the relationship between two variables and successor states
If x1, then in the next state x1 is false and x2 is true. And if x2, then x1 is false in the same state and in the next state x1 is true.
635
2020F(x2 U x1)
Write a trace that describes that if it at least rains once, or on alternating days, (rain being the boolean x1), the bean will eventually sprout (x2).
I think the interesting part about the instance that I wrote is that I specified that the only way for x2 to be true is for x1 to operate under two conditions -- the existence of x1 being true at some point, or always alternating beforehand, which I think can be fun to think about how to succinctly declare in LTL.
It will eventually (F) hold that x2 is true if there is an entry in the sequence prior to x2 being true where x1 is true.
636
2020F(x1) -> F(x2)
Write a trace that describes that if it at least rains once, or on alternating days, (rain being the boolean x1), the bean will eventually sprout (x2).
I think the interesting part about the instance that I wrote is that I specified that the only way for x2 to be true is for x1 to operate under two conditions -- the existence of x1 being true at some point, or always alternating beforehand, which I think can be fun to think about how to succinctly declare in LTL.
If it eventually rains, then a bean will eventually sprout.
637
2020
F(x1 or (!x1 and X(x1)) => F(x2)
Write a trace that describes that if it at least rains once, or on alternating days, (rain being the boolean x1), the bean will eventually sprout (x2).
I think the interesting part about the instance that I wrote is that I specified that the only way for x2 to be true is for x1 to operate under two conditions -- the existence of x1 being true at some point, or always alternating beforehand, which I think can be fun to think about how to succinctly declare in LTL.
If it eventually rains, then the bean will sprout
638
2020F(x1) -> F(x2)
Write a trace that describes that if it at least rains once, or on alternating days, (rain being the boolean x1), the bean will eventually sprout (x2).
I think the interesting part about the instance that I wrote is that I specified that the only way for x2 to be true is for x1 to operate under two conditions -- the existence of x1 being true at some point, or always alternating beforehand, which I think can be fun to think about how to succinctly declare in LTL.
finally, if x1 occurs, x2 will occur
639
2020(F(x1)) U x2
Write a trace that describes that if it at least rains once, or on alternating days, (rain being the boolean x1), the bean will eventually sprout (x2).
I think the interesting part about the instance that I wrote is that I specified that the only way for x2 to be true is for x1 to operate under two conditions -- the existence of x1 being true at some point, or always alternating beforehand, which I think can be fun to think about how to succinctly declare in LTL.
If up until a certain point it rains eventually, or at least once, then at that point it switches to the second part being satisfied, or x2 being true. If it rains on alternating days then it has also rained at least once so the minimum condition for making the bean sprout is that it rains at least once.
640
2020w ⊨ (F(x1) ⟹ F(x2))
Write a trace that describes that if it at least rains once, or on alternating days, (rain being the boolean x1), the bean will eventually sprout (x2).
I think the interesting part about the instance that I wrote is that I specified that the only way for x2 to be true is for x1 to operate under two conditions -- the existence of x1 being true at some point, or always alternating beforehand, which I think can be fun to think about how to succinctly declare in LTL.
First we need to express that it rains at least once or on alternating days. Luckily, since it can't rain on alternating days without first raining at least once, we need to say that it rains at least once. So, there exists an i such that w^i ⊨ x1, which is F(x1). Then, we need to show that the bean will eventually sprout i.e. there exists an i such that w^i ⊨ x2, which is F(x2). We then need the implication that if it rains the bean will eventually sprout, so we have w ⊨ (F(x1) ⟹ F(x2)).
641
2020
F(x1) or ((x1 -> X(!x1)) and (!x1 -> X(x1))) => F(x2)
Write a trace that describes that if it at least rains once, or on alternating days, (rain being the boolean x1), the bean will eventually sprout (x2).
I think the interesting part about the instance that I wrote is that I specified that the only way for x2 to be true is for x1 to operate under two conditions -- the existence of x1 being true at some point, or always alternating beforehand, which I think can be fun to think about how to succinctly declare in LTL.
not sure if the alternating is necessary
642
2020F(x1) ^ F(x2)
Write a trace that describes that if it at least rains once, or on alternating days, (rain being the boolean x1), the bean will eventually sprout (x2).
I think the interesting part about the instance that I wrote is that I specified that the only way for x2 to be true is for x1 to operate under two conditions -- the existence of x1 being true at some point, or always alternating beforehand, which I think can be fun to think about how to succinctly declare in LTL.
If it rains, then the bean will eventually sprout.
643
2020
(F(x1) /\\ F(x2)) \\/ G(~x1)
Write a trace that describes that if it at least rains once, or on alternating days, (rain being the boolean x1), the bean will eventually sprout (x2).
I think the interesting part about the instance that I wrote is that I specified that the only way for x2 to be true is for x1 to operate under two conditions -- the existence of x1 being true at some point, or always alternating beforehand, which I think can be fun to think about how to succinctly declare in LTL.
sometimes x1 and sometimes x2 or never x1.
644
2020
x1 or (x1 and X(!x1)) => F(x2)
Write a trace that describes that if it at least rains once, or on alternating days, (rain being the boolean x1), the bean will eventually sprout (x2).
I think the interesting part about the instance that I wrote is that I specified that the only way for x2 to be true is for x1 to operate under two conditions -- the existence of x1 being true at some point, or always alternating beforehand, which I think can be fun to think about how to succinctly declare in LTL.
I have no idea what this is asking to be honest. x1 means that if it rains the or means that it rains or (x1 and X(!x1)) is true which means that it rains one day and not the next. If either of those predicates are true then F(x2) is true which means eventually the bean sprouts
645
2020
(x1 or G((x1 => X(!x1)) and (!x1 => X(x1))) => F(x2)
Write a trace that describes that if it at least rains once, or on alternating days, (rain being the boolean x1), the bean will eventually sprout (x2).
I think the interesting part about the instance that I wrote is that I specified that the only way for x2 to be true is for x1 to operate under two conditions -- the existence of x1 being true at some point, or always alternating beforehand, which I think can be fun to think about how to succinctly declare in LTL.
Starting with the second half of the sentence, we can express the bean eventually sprouting using the F operator: F(x2). For the first half, the bare variable x1 represents it raining at least once (I think), while we express rain happening on alternate days using the formula (x1 => X(!x1)) and (!x1 => X(x1)). This means that rain happening on one day implies no rain on the next days, and vice versa. We wrap this in a G operator to say that this pattern is always the case.
646
12020
~x1 U (x1 && X ((x1 && X G ~x1) || (~x1 U (x1 && X G ~x1))))
x1 is true exactly twice
Since LTL deals with infinite sequences, restricting a specific number of a specific type of entry (of variables being a certain value) seems to be pretty difficult
We essentially need to enforce that the set of states is partitioned into to 5 sets of states: a set where ~x1 holds, a single state where x1 holds, an optionally empty set where ~x1 holds, a single state where x1 holds, and the remainder of the trace where ~x1 holds. We constrain the first set with ~x1 U (...), then designate the first single state where x1 holds with (x1 && X (...)), where the ... here enforces that x1 is true exactly once in that (remaining) state trace. Note that the single state where x1 is true can occur either as the first state or in some later state, so we split into two ORed conditions: 1) (x1 && X G ~x1) states that the state right after the previous state where x1 was true has x1 true as well, following by ~x1 holding for all future states. 2) (~x1 U (x1 && X G ~x1)) states that there is a non-zero length region where ~x1 holds, followed by a region holding to the same formula as in 1), describing a single state where x1 holds followed by ~x1 holding in all future states. Note eventually does not help us in this case because it makes no guarantee that the state chosen is the _first_ state that satisfies the predicate following the eventually.
647
112020
F(x1 and F(x1 and G(!x1)))
x1 is true exactly twice
Since LTL deals with infinite sequences, restricting a specific number of a specific type of entry (of variables being a certain value) seems to be pretty difficult
F(x1 and ...) means eventually true that x1 is true and ... is true. F(x1 and G(!x1)) means that it is eventually true that x1 is true and x1 is false thereafter. So eventually x1 is true and then at some point in the future x1 is true again and it is false following the second true. I don't think that this is correct because there could be 3 x1 truth values and the eventually would skip over it, but I don't know a better way to approach this problem
648
12020
F(x1 -> F(x1 -> X(G(~x1))))
x1 is true exactly twice
Since LTL deals with infinite sequences, restricting a specific number of a specific type of entry (of variables being a certain value) seems to be pretty difficult
Eventually it will be true that x1 is true once, and then eventually true again, and then false forever
649
2020
~x1 M (F ((x1 /\\ ~Xx1) /\\ F(x1 /\\ ~Xx1) /\\ ) ) \nG ~x1
x1 is true exactly twice
Since LTL deals with infinite sequences, restricting a specific number of a specific type of entry (of variables being a certain value) seems to be pretty difficult
x1 not true until it's true once and then not true and true once then not true then it's not true
650
12020
x1 and (X!x1 => F( x1) or Xx1 => G(X !x1))
x1 is true exactly twice
Since LTL deals with infinite sequences, restricting a specific number of a specific type of entry (of variables being a certain value) seems to be pretty difficult
This one, I am certain isn\'t completely right but I can discuss a bit of my thought process. What I\'m saying is that x1 is true at some point, and and then after, it\'s either in the next state, x1 will be false, which means x1 will eventually be true at some point. On the other hand, there is the case that the next state x1 will be true, which means every state after should indicate that x1 is false. I think my issue is with the phrase X!x1 => F( x1), which isn\'t exactly getting to what we want in regards to "exactly true twice", because this could have x2 occur multiple times? But I wasn\'t sure exactly how to constrain it beyond that.
651
12020X(!x1 U x1)
x1 is true exactly twice
Since LTL deals with infinite sequences, restricting a specific number of a specific type of entry (of variables being a certain value) seems to be pretty difficult
The ith x1 (from U function) and i+1st x1 will be true (X function)
652
112020
x1 -> (F(x1) U G(¬x1))
x1 is true exactly twice
Since LTL deals with infinite sequences, restricting a specific number of a specific type of entry (of variables being a certain value) seems to be pretty difficult
search until found the first x1 that is true then x1 will be true until after that x1 will always be false
653
2020
I am not sure how to express this
x1 is true exactly twice
Since LTL deals with infinite sequences, restricting a specific number of a specific type of entry (of variables being a certain value) seems to be pretty difficult
I am not sure how to express this because I am not sure how to count the number of times a variable is true in a trace in ltl
654
12020
F(x1 and X(F(x1 and X(G(!x1)))))
x1 is true exactly twice
Since LTL deals with infinite sequences, restricting a specific number of a specific type of entry (of variables being a certain value) seems to be pretty difficult
Once x1 is true, in the rest of the states, once x1 is true again, in all the rest of those states x1 is not true
655
12020x1 & Xx1 & !XXx1
x1 is true exactly twice
Since LTL deals with infinite sequences, restricting a specific number of a specific type of entry (of variables being a certain value) seems to be pretty difficult
the first time is true, the second time is true, the third time is false
656
12020
G(not(x1)) U x1 U G(not(x1)) U x1 U G(not(x1))
x1 is true exactly twice
Since LTL deals with infinite sequences, restricting a specific number of a specific type of entry (of variables being a certain value) seems to be pretty difficult
I used a series of "until" statements to separate the trace into moments when x1 is true and x1 is not true. I think that using x1 without the "G"/global describes only one state, whereas global describes a potentially longer sequence of states.
657
12020
F (~x2 /\\ ~x3 => x1)
It is eventually true that x1 is always true when x2 and x3 false.
This question is designed to illustrate the difference between "it is eventually true that x1 is always true when x2 and x3 false" and "it is always true that x1 is eventually true when x2 and x3 false"
finally, not x2 and x3 implies x1
658
12020F(x2 v x3 v x1)
It is eventually true that x1 is always true when x2 and x3 false.
This question is designed to illustrate the difference between "it is eventually true that x1 is always true when x2 and x3 false" and "it is always true that x1 is eventually true when x2 and x3 false"
The english statement can be translate literally into logic as \nF(~x2^~x3 ->x1)\nwe eliminate p -> q with ~p v q instead\nwe get\nF(~(~x2^~x3) v x1)\nwhich can be simplified to \nF((x2 v x3) v x1) <=> F(x2 v x3 v x1)
659
12020
F(!x2 and !x3 -> G(x1))
It is eventually true that x1 is always true when x2 and x3 false.
This question is designed to illustrate the difference between "it is eventually true that x1 is always true when x2 and x3 false" and "it is always true that x1 is eventually true when x2 and x3 false"
it eventually (F) holds, that x2/x3 being false implies that x1 is always (G) true
660
12020
F((~x2) ^ (~x3) -> G(x1))
It is eventually true that x1 is always true when x2 and x3 false.
This question is designed to illustrate the difference between "it is eventually true that x1 is always true when x2 and x3 false" and "it is always true that x1 is eventually true when x2 and x3 false"
when x2 and x3 false implies x1 is always true
661
12020
(!x2 and !x3) -> F(G(x1))
It is eventually true that x1 is always true when x2 and x3 false.
This question is designed to illustrate the difference between "it is eventually true that x1 is always true when x2 and x3 false" and "it is always true that x1 is eventually true when x2 and x3 false"
G means always and F means eventually. -> means when.
662
12020
F(x1 /\\ -x2 /\\ -x3)
It is eventually true that x1 is always true when x2 and x3 false.
This question is designed to illustrate the difference between "it is eventually true that x1 is always true when x2 and x3 false" and "it is always true that x1 is eventually true when x2 and x3 false"
There is eventually a time step when the provided conjunction holds.
663
12020
F((!x2 and !x3) => x1)
It is eventually true that x1 is always true when x2 and x3 false.
This question is designed to illustrate the difference between "it is eventually true that x1 is always true when x2 and x3 false" and "it is always true that x1 is eventually true when x2 and x3 false"
Eventually, !x2 and !x3 implies x1 is true. I believe the "always" is explicit (and doesn\'t need a G) since F implies an always from state i and after.
664
12020
F(G(!(x2 and x3) => x1))
It is eventually true that x1 is always true when x2 and x3 false.
This question is designed to illustrate the difference between "it is eventually true that x1 is always true when x2 and x3 false" and "it is always true that x1 is eventually true when x2 and x3 false"
F gives eventually, G gives always, and the implication shows the relation between x1 and (x2 and x3)
665
12020
F(G((!x2 and !x3) -> x1))
It is eventually true that x1 is always true when x2 and x3 false.
This question is designed to illustrate the difference between "it is eventually true that x1 is always true when x2 and x3 false" and "it is always true that x1 is eventually true when x2 and x3 false"
We need to start with the F operator since the sentence is "eventually" true. We know that x1 is always true when x2 and x3 are false, which means that x2 and x3 being false implies that x1 is true. We can write this is (!x2 and !x3) -> x1. We wrap this in a G to account for the fact that it\'s "always" true.
666
2020
x1 => (!x2 && !x3), (x2 || x3) => !x1
for every state if x1 is true, then x2 and x3 should be false, if x2 or x3 is true, x1 is false.
it's actually a read/write lock implementation, if write lock is owned, there cannot be any read lock to lock the file, if the read lock is owned it can still be lock by some other read lock but cannot be locked by the write lock.
This is made of two parts: x1 being true implies neither x2 nor x3 are true, and either x2 or x3 being true implies x1 is false.
667
2020
G(~x1 v (~x2 ^ ~x3))
for every state if x1 is true, then x2 and x3 should be false, if x2 or x3 is true, x1 is false.
it's actually a read/write lock implementation, if write lock is owned, there cannot be any read lock to lock the file, if the read lock is owned it can still be lock by some other read lock but cannot be locked by the write lock.
if x1 is true, then x2 and x3 should be false and "if x2 or x3 is true, x1 is false" mean the same thing, since it stands for every state, we should use G to indicate that
668
2020
G((~x1 v (x2 v x3)) ^ ((~x2 ^ ~x3) v ~x1))
for every state if x1 is true, then x2 and x3 should be false, if x2 or x3 is true, x1 is false.
it's actually a read/write lock implementation, if write lock is owned, there cannot be any read lock to lock the file, if the read lock is owned it can still be lock by some other read lock but cannot be locked by the write lock.
The english statement is equivalent to \n(always) "x1 implies x2 is False and x3 is False and x2 or x3 is true implies x1 is False"\nG((x1 -> (~x2^~x3)) ^ ((x2 v x3) -> ~x1))\nSince LTL does not have implies, we will use logically equivalent statement p->q <=> ~p v q\nG((~x1 v ~(~x2^~x3)) ^ (~(x2 v x3) v ~x1))\nwe can then simplifies the logical statement above with De Morgan\'s logical law \nG((~x1 v (x2 v x3)) ^ ((~x2 ^ ~x3) v ~x1))
669
2020
G(x1 => (!x2 and !x3) and (x2 or X3) => !x1)
for every state if x1 is true, then x2 and x3 should be false, if x2 or x3 is true, x1 is false.
it's actually a read/write lock implementation, if write lock is owned, there cannot be any read lock to lock the file, if the read lock is owned it can still be lock by some other read lock but cannot be locked by the write lock.
I got this in the LTL to English. G means for every state. x1 => (!x2 and !x3) means that if x1 is true then x2 and x3 are false. And (x2 or X3) => !x1 means that if x2 or x3 are true then x1 is false
670
2020
(x1 -> !x2 and !x3) OR ((x2 OR x3) -> !x1)
for every state if x1 is true, then x2 and x3 should be false, if x2 or x3 is true, x1 is false.
it's actually a read/write lock implementation, if write lock is owned, there cannot be any read lock to lock the file, if the read lock is owned it can still be lock by some other read lock but cannot be locked by the write lock.
I pretty much just encoded what the prompt was saying word for word.
671
2020
G((x1=> !x2 and !x3) and ((x2 or x3)=> !x1))
for every state if x1 is true, then x2 and x3 should be false, if x2 or x3 is true, x1 is false.
it's actually a read/write lock implementation, if write lock is owned, there cannot be any read lock to lock the file, if the read lock is owned it can still be lock by some other read lock but cannot be locked by the write lock.
for every state is G and then each if statement becomes an implies
672
2020
G(x1 => !(x2 and x3) and !(x2 and x3) => x1)
for every state if x1 is true, then x2 and x3 should be false, if x2 or x3 is true, x1 is false.
it's actually a read/write lock implementation, if write lock is owned, there cannot be any read lock to lock the file, if the read lock is owned it can still be lock by some other read lock but cannot be locked by the write lock.
We can express each "if" as an implication. We use the G to enforce the "for every state"
673
2020
(x1->(!x2 & !x3)) &((x2 | x3)->!x1)
for every state if x1 is true, then x2 and x3 should be false, if x2 or x3 is true, x1 is false.
it's actually a read/write lock implementation, if write lock is owned, there cannot be any read lock to lock the file, if the read lock is owned it can still be lock by some other read lock but cannot be locked by the write lock.
Two conditions, we need to satisfied
674
2020
G( (x1 => (~x2 /\\ ~x3)) /\\ ((x2 \\/ x3) => ~x1))
for every state if x1 is true, then x2 and x3 should be false, if x2 or x3 is true, x1 is false.
it's actually a read/write lock implementation, if write lock is owned, there cannot be any read lock to lock the file, if the read lock is owned it can still be lock by some other read lock but cannot be locked by the write lock.
(x1 => (~x2 /\\ ~x3)) = x1 implies x2 and x3 are both false\n((x2 \\/ x3) => ~x1) = if x2 or x3 is true, x1 is false.
675
2020
G((x1 <=> (!x2 AND !x3))
for every state if x1 is true, then x2 and x3 should be false, if x2 or x3 is true, x1 is false.
it's actually a read/write lock implementation, if write lock is owned, there cannot be any read lock to lock the file, if the read lock is owned it can still be lock by some other read lock but cannot be locked by the write lock.
Not sure what this was trying to say; assuming it meant to and the two if's. In that case, then x1 being true depends on both x2 and x3 being false, and vice versa. This vice versa quality indicated an iff to me.
676
2020
G(F(x1)) or (!x2 and X(x3))
x1 is always eventually true unless x2 is false and x3's next state is true
I think this is interesting because it combined all the different versions of the states (always, eventually, next time) and relationships between x1 x2 and x3, and perhaps their complements.
G(F(x1)) means x1 is always eventually true, the or means that is true unless the right side is true in which case unknown. The right side means x2 is fals and x3 is true in the next state
677
2020
(!x2 && X(x3)) => !F(x1)
x1 is always eventually true unless x2 is false and x3's next state is true
I think this is interesting because it combined all the different versions of the states (always, eventually, next time) and relationships between x1 x2 and x3, and perhaps their complements.
I'm not sure if this really encodes what's described, but I also don't think what's described can be encoded. Right now what I have says if x2 is false and x3's next state is true, that implies that x1 doesn't end up finally true.
678
2020
G( F(x1) ∨ (¬x2 ^ X(x3)))
x1 is always eventually true unless x2 is false and x3's next state is true
I think this is interesting because it combined all the different versions of the states (always, eventually, next time) and relationships between x1 x2 and x3, and perhaps their complements.
The outer G says that the inner expression always holds. The inner expression says either x1 is eventually true or x2 is not true and x3 is true in the next state.
679
2020
G(F(x1) U (!x2 and X(x3))
x1 is always eventually true unless x2 is false and x3's next state is true
I think this is interesting because it combined all the different versions of the states (always, eventually, next time) and relationships between x1 x2 and x3, and perhaps their complements.
G is always true, F is eventually true, and x U y means x is true until y is true
680
2020
!(!x2 & X(x3)) -> G(F(x1))
x1 is always eventually true unless x2 is false and x3's next state is true
I think this is interesting because it combined all the different versions of the states (always, eventually, next time) and relationships between x1 x2 and x3, and perhaps their complements.
if x2 is not true and x3 in the next state is true, the x1 will always be true eventually
681
2020
G(F(x1) U (!x2 and X(x3)))
x1 is always eventually true unless x2 is false and x3's next state is true
I think this is interesting because it combined all the different versions of the states (always, eventually, next time) and relationships between x1 x2 and x3, and perhaps their complements.
globally, eventually x1 unless not x2 and next state x3 is true
682
2020F(x1) - !x2 and x3
x1 is always eventually true unless x2 is false and x3's next state is true
I think this is interesting because it combined all the different versions of the states (always, eventually, next time) and relationships between x1 x2 and x3, and perhaps their complements.
Sorry I have no idea how to interpret unless and the next state of x3.
683
2020
G( ~(!x2 and X(x3)) -> F(x1))
x1 is always eventually true unless x2 is false and x3's next state is true
I think this is interesting because it combined all the different versions of the states (always, eventually, next time) and relationships between x1 x2 and x3, and perhaps their complements.
if x2 is false and x3 is true in the next state then x1 will not eventually be true. So if the negation of the first condition holds then x1 will eventually be true.
684
12020
G(((~x1) /\\ ~X(x2)) \\/ (x1 /\\ X(x2)))
It is always the case that x1 happens immediately before x2.
It needs to use both G and X and to represent implication using not and or.
Two cases corresponding to x1 happen or not.
685
12020G(x1 -> X(x2))
It is always the case that x1 happens immediately before x2.
It needs to use both G and X and to represent implication using not and or.
I am assuming here that x1 in a state i, while X(x2) gives me that state after the one where x1 is set to true.
686
12020
G((x1 => X(x2)) and (!x1 => X(!x2))
It is always the case that x1 happens immediately before x2.
It needs to use both G and X and to represent implication using not and or.
Whenever x1 is true, x2 is true in the state after that; whenever x1 is false, then x2 cannot be true in the state after.
687
12020G( x1 and Xx2)
It is always the case that x1 happens immediately before x2.
It needs to use both G and X and to represent implication using not and or.
I am assuming that 'happens' is a boolean that means true, and 'not happens' is false. Thus, it will always happen, hence I use the G.
688
12020G(~x1 or X(x2))
It is always the case that x1 happens immediately before x2.
It needs to use both G and X and to represent implication using not and or.
for any state, if x1 is true, at the next state x2 is true
689
12020G(~x1 v X(x2))
It is always the case that x1 happens immediately before x2.
It needs to use both G and X and to represent implication using not and or.
I honestly don't know how to write 'next timestep' in LTL so I'm using X here which probably is wrong.\nThe rest of the statement is that\nIt is always true(G) that after x1 happens, x2 happens\nso if x1 doesn't happen ~x1 would evaluate to True\nbut when x1 happens, x2 should evaluate to true at the next time step
690
12020x2 U x1
It is always the case that x1 happens immediately before x2.
It needs to use both G and X and to represent implication using not and or.
Saying that x1 happens immediately before x2 is like saying that x2 happens immediately after x1. If we define "happens" as becoming true, then the above says that x1 doesn\'t become true until x2 does.
691
12020G(x1 => X(x2))
It is always the case that x1 happens immediately before x2.
It needs to use both G and X and to represent implication using not and or.
I feel like I\'m missing something for this - what does "happens" mean?
692
12020G(x1 <=> Xx2)
It is always the case that x1 happens immediately before x2.
It needs to use both G and X and to represent implication using not and or.
It's globally true that x1 iff x2 in the next state
693
12020X(x1) => F(x1)
If x1 is true in the next step then x1 will always eventually be true.
This statement tests the understanding of X (in the next step), G (always), and F (eventually). In addition, is it interesting to see how "then" is written, whether it is via -> or otherwise.
Using X to represent next step and F to represent eventually.
694
12020X(x1) /\\ G(F(x1))
If x1 is true in the next step then x1 will always eventually be true.
This statement tests the understanding of X (in the next step), G (always), and F (eventually). In addition, is it interesting to see how "then" is written, whether it is via -> or otherwise.
Traces must have both that the next step is true and that x1 is always eventually true.
695
12020X(x1) => X(x1)*
If x1 is true in the next step then x1 will always eventually be true.
This statement tests the understanding of X (in the next step), G (always), and F (eventually). In addition, is it interesting to see how "then" is written, whether it is via -> or otherwise.
Implying that if x1 holds in the next time, then x1 will hold in all following time steps.
696
12020X(x1) -> F(x1)
If x1 is true in the next step then x1 will always eventually be true.
This statement tests the understanding of X (in the next step), G (always), and F (eventually). In addition, is it interesting to see how "then" is written, whether it is via -> or otherwise.
Supposing that X(x1) means that x1 is true in the next step, and not x1 is true *starting* next step, then it will eventually be true. If X(x1) means that x1 is true *starting* next step, then the rest is redundant.
697
12020
¬ (X(x1) ^ ¬G(F((x1)))
If x1 is true in the next step then x1 will always eventually be true.
This statement tests the understanding of X (in the next step), G (always), and F (eventually). In addition, is it interesting to see how "then" is written, whether it is via -> or otherwise.
This expression says that it is not the case that x1 is true in the next step, but not always eventually true. G does the always, and F does the eventually.
698
12020X(x1) => F(x1)
If x1 is true in the next step then x1 will always eventually be true.
This statement tests the understanding of X (in the next step), G (always), and F (eventually). In addition, is it interesting to see how "then" is written, whether it is via -> or otherwise.
if x1 is true in the next state, then eventually x1 will hold as true
699
12020
X(x1) and G(F(x1))
If x1 is true in the next step then x1 will always eventually be true.
This statement tests the understanding of X (in the next step), G (always), and F (eventually). In addition, is it interesting to see how "then" is written, whether it is via -> or otherwise.
In words X(x1) means in the next step x1 is true. G(F(x1)) means x1 is always eventually true. Together they mean that if x1 is true in the next step then x1 will always eventually be true. I\'m not sure if I correctly codified the "if" because I think this might be saying it is the case that x1 is true in the next step and x1 will always eventually be true, rather than "if" this is the case...
700
12020
G(X(X(X(X(X(x2)))) or X(X(X(x3))))
Either for every 5th time step x1 and x2 is true or for every 3rd time step x3 is true.
This is interesting for me because for each trace defined one would have to model that either for every 5th time step some property holds or for every 3rd time step some different property holds. It would be interesting to see how X would be used with G because a proposition has to be globally true for EVERY ith time step rather than just for every time step.
This would imply that for every subdivided sequence, although I don't think it gets at exactly what the original statement is going for.
701
12020
G(XXXX(x1 and x2)) or G(XX(x3))
Either for every 5th time step x1 and x2 is true or for every 3rd time step x3 is true.
This is interesting for me because for each trace defined one would have to model that either for every 5th time step some property holds or for every 3rd time step some different property holds. It would be interesting to see how X would be used with G because a proposition has to be globally true for EVERY ith time step rather than just for every time step.
Unsure if the desired formula can be expressed in LTL.
702
12020
X(X(X(x3))) OR X(X(X(X(X(x1 AND x2)))))
Either for every 5th time step x1 and x2 is true or for every 3rd time step x3 is true.
This is interesting for me because for each trace defined one would have to model that either for every 5th time step some property holds or for every 3rd time step some different property holds. It would be interesting to see how X would be used with G because a proposition has to be globally true for EVERY ith time step rather than just for every time step.
Each x represents a step; x3 is true in 3 steps OR x1 and x2 are true every 5 steps.
703
12020
((x1/\\ x2) /\\ XXXXX(x1 /\\ x2)) \\/ (x3 /\\ XXX(x3))
Either for every 5th time step x1 and x2 is true or for every 3rd time step x3 is true.
This is interesting for me because for each trace defined one would have to model that either for every 5th time step some property holds or for every 3rd time step some different property holds. It would be interesting to see how X would be used with G because a proposition has to be globally true for EVERY ith time step rather than just for every time step.
If at the current step x1 and x2 are true and if the step in 5 next's has x1 and x2 as true, then x1 and x2 are true at every fifth time step, the same applies for every third timestep.
704
12020
G(X(X(X(X(x1 or x2)))) or G(X(X(x3)))
Either for every 5th time step x1 and x2 is true or for every 3rd time step x3 is true.
This is interesting for me because for each trace defined one would have to model that either for every 5th time step some property holds or for every 3rd time step some different property holds. It would be interesting to see how X would be used with G because a proposition has to be globally true for EVERY ith time step rather than just for every time step.
G(X(X(X(X(x1 or x2)))) means every 5th timestep has x1 or x2 true, and G(X(X(x3))) means every 3rd timestep x3 is true.
705
12020
F(N(N(N(N(N(x1 ∧ x2)))))) ∨ F(N(N(N(x3))))
Either for every 5th time step x1 and x2 is true or for every 3rd time step x3 is true.
This is interesting for me because for each trace defined one would have to model that either for every 5th time step some property holds or for every 3rd time step some different property holds. It would be interesting to see how X would be used with G because a proposition has to be globally true for EVERY ith time step rather than just for every time step.
Couldn't figure out how to explicitly define every nth time step, so created a loose description
706
12020
(F(x1 and x2) and G(x1 and x2 => X(X(X(X(x1 and x2)))))) or ( F(x3) and G(x3 => X(X(x3))))
Either for every 5th time step x1 and x2 is true or for every 3rd time step x3 is true.
This is interesting for me because for each trace defined one would have to model that either for every 5th time step some property holds or for every 3rd time step some different property holds. It would be interesting to see how X would be used with G because a proposition has to be globally true for EVERY ith time step rather than just for every time step.
This one I am particularly not confident about. I had trouble with the idea of "for every xth time" because I\'m not sure how LTL could be used like that. I think the above says "once ___ is true, then it will be true every xth time", which I know is not exactly the same.
707
12020
XXXXX(x1 and x2) or XXX(x3)
Either for every 5th time step x1 and x2 is true or for every 3rd time step x3 is true.
This is interesting for me because for each trace defined one would have to model that either for every 5th time step some property holds or for every 3rd time step some different property holds. It would be interesting to see how X would be used with G because a proposition has to be globally true for EVERY ith time step rather than just for every time step.
There\'s probably a better way of doing this, as this doesn\'t really work if one thinks about "stepping" forward (I think)
708
2020
w ⊨ G(x1 ⟹ X(¬x1 ∧ x2)) ∧ G(x2 ⟹ X(x1 ∧ ¬x2))
Whenever x1 is true, x1 is false and x2 is true in the state after; whenever x2 is true, x1 is false and x1 is true in the state after
tests the relationship between two variables and successor states
If x1 is true, then in the next state it will be false and x2 will be true. We use X to get to the next state, so this is expressed as x1 ⟹ X(¬x1 ∧ x2). This should be true whenever x1 is true, so this implication must always be true, meaning we use G so we have G(x1 ⟹ X(¬x1 ∧ x2)). But then, this same expression should hold about x2, so we flip the variables and make both versions true, giving us w ⊨ G(x1 ⟹ X(¬x1 ∧ x2)) ∧ G(x2 ⟹ X(x1 ∧ ¬x2)).
709
2020
G(x1 -> X(!x1 and x2) and G(x2 -> X(!x1 and x1)
Whenever x1 is true, x1 is false and x2 is true in the state after; whenever x2 is true, x1 is false and x1 is true in the state after
tests the relationship between two variables and successor states
Whenever means that it always will hold that when x1 is true, x1 will be false and x2 will be true in the next state, and the same for when x2 is true
710
2020
(x1 => X(!x1 and x2)) and (x2 => (!x1 and X(x1)))
Whenever x1 is true, x1 is false and x2 is true in the state after; whenever x2 is true, x1 is false and x1 is true in the state after
tests the relationship between two variables and successor states
x1 implies that the next state has !x1 and x2; x2 implies !x1 and the next state has x1
711
2020
G(x1 => X(!x1 and x2)) and G(x2 => X(!x1 and x1))
Whenever x1 is true, x1 is false and x2 is true in the state after; whenever x2 is true, x1 is false and x1 is true in the state after
tests the relationship between two variables and successor states
I think there\'s a typo in this, as the second half says "whenever x2 is true, x1 is false and x1 is true in the state after", which seems like a logical fallacy since x1 can\'t be both true and false in the same state, but I expressed it in the equation anyway. We start with x1 => X(!x1 and x2) because we know that x1 being true implies that in the next state, x1 is false and x2 is true. This is wrapped in a G because it always holds. The second half is very similar; x2 => X(!x1 and x1) because x2 being true implies that "x1 is false and x1 is true" in the next state, which also always holds.
712
2020
G(x1 -> X(!x1 and x2) and x2 -> X( !x1 and x1 ))
Whenever x1 is true, x1 is false and x2 is true in the state after; whenever x2 is true, x1 is false and x1 is true in the state after
tests the relationship between two variables and successor states
Since the term whenever is used (meaning always) everything is wrapped in a G. Both the internal statements use implies to show how the state of x1 and x2 imply something about the next state of x1 and x2.
713
2020G(!x1 and !x2)
Whenever x1 is true, x1 is false and x2 is true in the state after; whenever x2 is true, x1 is false and x1 is true in the state after
tests the relationship between two variables and successor states
x1 => (X(!x1 and x2)) : means that if x1 is true, x1 is false and x2 is true in the state after\nx2 => X(!x1 and x1) : means that if x2 is true, x1 is both true and false in the state after. \n\nHowever, this cannot happen so x2 cannot be true (it is a contradiction). Therefore, x1 must also be false because\nit being true implies that x2 is true in the state after. So x1 and x1 must always be false
714
2020
x1 => X(!x1 and x2), x2 => !x1 and X(x1)
Whenever x1 is true, x1 is false and x2 is true in the state after; whenever x2 is true, x1 is false and x1 is true in the state after
tests the relationship between two variables and successor states
when x1 is true, that implies in the next state !x1 and x2. when x2 is true, that implies !x1 and in the next state x1.
715
2020
(x1 -> X(!x1 and x2)) and (x2 -> !x1 and X(x1))
Whenever x1 is true, x1 is false and x2 is true in the state after; whenever x2 is true, x1 is false and x1 is true in the state after
tests the relationship between two variables and successor states
the state after is denoted by X, and the two parts of the LTL expression are when x1 is true and when x2 is true
716
2020
x1 => (X(!x1) && X(x2)), x2=> (!x1 && X(x1))
Whenever x1 is true, x1 is false and x2 is true in the state after; whenever x2 is true, x1 is false and x1 is true in the state after
tests the relationship between two variables and successor states
This description is sort of goofy, but what I have above should be the only valid interpretation.
717
2020
G(x1 U (!x2 and x3))
It always holds that x1 is true until x2 is false and x3 is true
This question is good because it makes sure that people have a firm understanding of some of the key parts of an LTL formula, such as always and until, that are needed in order to write more complicated expressions.
Need G for "always holds".
718
2020
G(x1 UNTIL (!x2 and x3))
It always holds that x1 is true until x2 is false and x3 is true
This question is good because it makes sure that people have a firm understanding of some of the key parts of an LTL formula, such as always and until, that are needed in order to write more complicated expressions.
The entire formula is wrapped in a "globally" operator to mean that whatever is inside always holds, so always, x1 will be true until both x2 is false and x3 is true
719
2020
G(x1 <=> !x2 and x3)
It always holds that x1 is true until x2 is false and x3 is true
This question is good because it makes sure that people have a firm understanding of some of the key parts of an LTL formula, such as always and until, that are needed in order to write more complicated expressions.
double arrow means until
720
2020
G(x1 U (x2! and x3))
It always holds that x1 is true until x2 is false and x3 is true
This question is good because it makes sure that people have a firm understanding of some of the key parts of an LTL formula, such as always and until, that are needed in order to write more complicated expressions.
x1 must always be true until either x2 is false or x3 is true
721
2020G(x1 U (!x2 & x3))
It always holds that x1 is true until x2 is false and x3 is true
This question is good because it makes sure that people have a firm understanding of some of the key parts of an LTL formula, such as always and until, that are needed in order to write more complicated expressions.
It is always x1 is true until x2 is false and x3 is true
722
2020
(x1,x2,x3)->(x1,¬x2, ¬x3)->(¬x1,¬x2, x3)->(x1,¬x2, ¬x3)->(¬x1,¬x2, x3)->(x1,¬x2, ¬x3)ω ⊢ G(x1 U ¬x2 ∧ x3)
It always holds that x1 is true until x2 is false and x3 is true
This question is good because it makes sure that people have a firm understanding of some of the key parts of an LTL formula, such as always and until, that are needed in order to write more complicated expressions.
In the trace, x1 is true until x2 is false and x3 is true, and this is true at any point in the trace (no matter where you truncate it)
723
2020
G(x1 U (not x2 and x3))
It always holds that x1 is true until x2 is false and x3 is true
This question is good because it makes sure that people have a firm understanding of some of the key parts of an LTL formula, such as always and until, that are needed in order to write more complicated expressions.
I said that always if x1 is true until (not x2 and x3)
724
2020
G(x1 U(!x2 AND x3))
It always holds that x1 is true until x2 is false and x3 is true
This question is good because it makes sure that people have a firm understanding of some of the key parts of an LTL formula, such as always and until, that are needed in order to write more complicated expressions.
725
12020G(x1) U x2 /\\ x3
x1 is always true until both x2 and x3 once to be true.
It is quite easy to make mistakes take the conjunction of x2 and x3 after the "until" clause. However, such predicates imply that x2 and x3 must be true at the same state, which is not what we want in the English sentence.
x1 is always true until x2 and x3 are true
726
12020x1 U (x2 and x3)
x1 is always true until both x2 and x3 once to be true.
It is quite easy to make mistakes take the conjunction of x2 and x3 after the "until" clause. However, such predicates imply that x2 and x3 must be true at the same state, which is not what we want in the English sentence.
I guess until implies U.
727
12020x1 U (x2 and x3)
x1 is always true until both x2 and x3 once to be true.
It is quite easy to make mistakes take the conjunction of x2 and x3 after the "until" clause. However, such predicates imply that x2 and x3 must be true at the same state, which is not what we want in the English sentence.
We can use the until operator to say that x1 is true until x2 and x3 are.
728
12020
G(x1 U (F(x2) and F(x3)))
x1 is always true until both x2 and x3 once to be true.
It is quite easy to make mistakes take the conjunction of x2 and x3 after the "until" clause. However, such predicates imply that x2 and x3 must be true at the same state, which is not what we want in the English sentence.
not sure "once" means in this sentence; I interpreted as "wants"
729
12020
G(x1) AND !G(x2 AND x3)
x1 is always true until both x2 and x3 once to be true.
It is quite easy to make mistakes take the conjunction of x2 and x3 after the "until" clause. However, such predicates imply that x2 and x3 must be true at the same state, which is not what we want in the English sentence.
Once to be true seems to translate to x2 and x3 never always being true.
730
12020
G(x1 -> (x1 \\/ (x2 /\\ x3)))
x1 is always true until both x2 and x3 once to be true.
It is quite easy to make mistakes take the conjunction of x2 and x3 after the "until" clause. However, such predicates imply that x2 and x3 must be true at the same state, which is not what we want in the English sentence.
x1 either implies more truth of x1 to follow or x1 is false in the event that both x2 and x3 are true? this was difficult for my brain
731
12020
G(x1 U (x2 and x3))
x1 is always true until both x2 and x3 once to be true.
It is quite easy to make mistakes take the conjunction of x2 and x3 after the "until" clause. However, such predicates imply that x2 and x3 must be true at the same state, which is not what we want in the English sentence.
732
12020x1 U (F(x2 & x3))
x1 is always true until both x2 and x3 once to be true.
It is quite easy to make mistakes take the conjunction of x2 and x3 after the "until" clause. However, such predicates imply that x2 and x3 must be true at the same state, which is not what we want in the English sentence.
Once x2 and x3 is true, x1 is always true
733
12020G(¬(x1 ^ X(x2)))
x1 is only true when x2 in the next next state is not true.
x1 <=> X(X(!x2)) : This expression is interesting because one variable's truth value depends on another variable's next next state, which seems to be similar to something that might be expressed while iterating through a collection in a standard programming language.
This says that it is always true that it is not the case that x1 is true and x2 in the next state is also is true
734
112020X(!x2) -> x1
x1 is only true when x2 in the next next state is not true.
x1 <=> X(X(!x2)) : This expression is interesting because one variable's truth value depends on another variable's next next state, which seems to be similar to something that might be expressed while iterating through a collection in a standard programming language.
if x2 in the next state (using X) is false, x1 holds
735
12020x1 -> X(X(!x2)
x1 is only true when x2 in the next next state is not true.
x1 <=> X(X(!x2)) : This expression is interesting because one variable's truth value depends on another variable's next next state, which seems to be similar to something that might be expressed while iterating through a collection in a standard programming language.
This statement shows how x1 is true when the next next state of x2 is false
736
112020G(X(!x2) => x1)
x1 is only true when x2 in the next next state is not true.
x1 <=> X(X(!x2)) : This expression is interesting because one variable's truth value depends on another variable's next next state, which seems to be similar to something that might be expressed while iterating through a collection in a standard programming language.
Its always true that if in the next state X, x2 is false, x1 is true in the current one
737
12020x1 => XX!x2
x1 is only true when x2 in the next next state is not true.
x1 <=> X(X(!x2)) : This expression is interesting because one variable's truth value depends on another variable's next next state, which seems to be similar to something that might be expressed while iterating through a collection in a standard programming language.
I encoded it word for word XX means next next, I think?
738
12020X(X(x2)) => !x1
x1 is only true when x2 in the next next state is not true.
x1 <=> X(X(!x2)) : This expression is interesting because one variable's truth value depends on another variable's next next state, which seems to be similar to something that might be expressed while iterating through a collection in a standard programming language.
This means that x1 must be false in the case where x2 in the next next state is true. Otherwise, it can be either true or false\nX(X(x2)) : means that x2 is false in the next next state
739
12020G(x1 => -X(X(x2)))
x1 is only true when x2 in the next next state is not true.
x1 <=> X(X(!x2)) : This expression is interesting because one variable's truth value depends on another variable's next next state, which seems to be similar to something that might be expressed while iterating through a collection in a standard programming language.
When x1 is true in state i, x2 will be false in state i+2
740
2020
x1 -> X(!x2) and F(x2)
when x1 is true, x2 will eventually (but not immediately) be true
While answering questions I had to google a lot of things and I ended up on this caltech powerpoint that made more sense to me so I spent some time with that--they had a cool example about traffic lights that I didn't see represented in the 10 questions I answered but seemed relevant, where there is some mandatory resting time between steps, so the formula cannot allow immediate change
if x1 is true then in the next state x2 has to be false but eventually, it will be true.
741
112020
x1 => (X(!x2) and F(x2))
when x1 is true, x2 will eventually (but not immediately) be true
While answering questions I had to google a lot of things and I ended up on this caltech powerpoint that made more sense to me so I spent some time with that--they had a cool example about traffic lights that I didn't see represented in the 10 questions I answered but seemed relevant, where there is some mandatory resting time between steps, so the formula cannot allow immediate change
when is handled by implication, X(!x2) handles "not immediately" and F(x2) makes x2 eventually true.
742
112020x1 => F(x2)
when x1 is true, x2 will eventually (but not immediately) be true
While answering questions I had to google a lot of things and I ended up on this caltech powerpoint that made more sense to me so I spent some time with that--they had a cool example about traffic lights that I didn't see represented in the 10 questions I answered but seemed relevant, where there is some mandatory resting time between steps, so the formula cannot allow immediate change
F represents eventually, and the two expressions are connected by implies.
743
112020x1 -> F(X(x2))
when x1 is true, x2 will eventually (but not immediately) be true
While answering questions I had to google a lot of things and I ended up on this caltech powerpoint that made more sense to me so I spent some time with that--they had a cool example about traffic lights that I didn't see represented in the 10 questions I answered but seemed relevant, where there is some mandatory resting time between steps, so the formula cannot allow immediate change
x2 will eventually be true after next state
744
12020
G(x1 => F(x2) and X(!x2))
when x1 is true, x2 will eventually (but not immediately) be true
While answering questions I had to google a lot of things and I ended up on this caltech powerpoint that made more sense to me so I spent some time with that--they had a cool example about traffic lights that I didn't see represented in the 10 questions I answered but seemed relevant, where there is some mandatory resting time between steps, so the formula cannot allow immediate change
745
12020
x1 => x2! and F(x2)
when x1 is true, x2 will eventually (but not immediately) be true
While answering questions I had to google a lot of things and I ended up on this caltech powerpoint that made more sense to me so I spent some time with that--they had a cool example about traffic lights that I didn't see represented in the 10 questions I answered but seemed relevant, where there is some mandatory resting time between steps, so the formula cannot allow immediate change
x1 being true implies that x2 will eventually be but, currently it is false.
746
1112020
x2 -> G(X(!x1) -> X(X(x1)))
It's always true that if x1 is true that in the previous state x1 is false, and that x1 was true 2 states ago
There is no way to backtrace to a previous state, so must use X instead
If x2 is true, then it will always hold that the next state of x1 is false implies that the next next state of x1 is true
747
12020
G( x1 => X(!x1) and XX(x1))
It's always true that if x1 is true that in the previous state x1 is false, and that x1 was true 2 states ago
There is no way to backtrace to a previous state, so must use X instead
I'm really uncertain about this what I think I'm conveying is that for all states if x1 is true then a transition later it will be false and two transitions later it will be true again using the X(!x1) and XX(x1) notations. This sets it up such that if x1 is true then it was false in the previous state and true two states ago.
748
12020
G( (X(x1) -> !x1) and 2StatesAgo(x1)
It's always true that if x1 is true that in the previous state x1 is false, and that x1 was true 2 states ago
There is no way to backtrace to a previous state, so must use X instead
It's globally true that is x1 is true in the next state, then it is false in the current (if there's a previous equivalent to X() then I would've used that) and IDK how to say 2 state ago.
749
12020
G(XX(x1) => (X(!x1) and XX(x1))
It's always true that if x1 is true that in the previous state x1 is false, and that x1 was true 2 states ago
There is no way to backtrace to a previous state, so must use X instead
This is a little funky, because we\'re dealing with the "past" by going into the future, but the more I think about it the more it makes sense.
750
12020
G(x1 and X(!x1) and X(X(x1)))
It's always true that if x1 is true that in the previous state x1 is false, and that x1 was true 2 states ago
There is no way to backtrace to a previous state, so must use X instead
I think this represents just x1 flipping from true to false each turn, but my formula represents the spirit of the wording, marking "2 states ago" as plain x1, and then using X(X(x1)) to represent the "present" state.
751
12020
G((x1 /\\ ~Xx1 /\\ XXx1) \\/ (~x1 /\\ Xx1 /\\ ~XXx1)) \\/ G(~x1)
It's always true that if x1 is true that in the previous state x1 is false, and that x1 was true 2 states ago
There is no way to backtrace to a previous state, so must use X instead
It's always the case that x1 is true and x1 is true two states from now, and the intermediate state is false, or vice versa, or x1 is never true.
752
12020
G(x1 <=> (X(!x1) and X(X(x1))))
It's always true that if x1 is true that in the previous state x1 is false, and that x1 was true 2 states ago
There is no way to backtrace to a previous state, so must use X instead
Always true that x1 is true if and only if the next state has !x1 and that the next, next state has x1
753
2020
(x1 & x2 & !x3) | (x1 & !x2 & x3) | (!x1 & x2 & x3)
At any point, exactly 2 of x1, x2, and x3 have the same truth value, and the variables that have the same truth value switch at each step.
This statement is tricky to encode because we do not specify which variables have to be true and/or false at each step, and between steps, we cannot just swap the truth values of each variable. Additionally, it seems easy to overconstrain.
Even though the value will switch, since they're exactly two value with true, their values are not changed
754
2020
G( (¬(x1 ^ x2 ^ x3) ^ ¬(¬x1 ^ ¬x2 ^ ¬x3)) ^ ¬(x1 ^ X(x1)) )
At any point, exactly 2 of x1, x2, and x3 have the same truth value, and the variables that have the same truth value switch at each step.
This statement is tricky to encode because we do not specify which variables have to be true and/or false at each step, and between steps, we cannot just swap the truth values of each variable. Additionally, it seems easy to overconstrain.
The outer G says the inner statement should always be true. The first clause of the inner statement makes sure that all three variables aren't the same, which gaurentees that exactly two will be the same. The second clause makes sure that the value of x1 changes in the next step, stopping everything from staying the same.
755
2020I dont know
At any point, exactly 2 of x1, x2, and x3 have the same truth value, and the variables that have the same truth value switch at each step.
This statement is tricky to encode because we do not specify which variables have to be true and/or false at each step, and between steps, we cannot just swap the truth values of each variable. Additionally, it seems easy to overconstrain.
The problem statement is not very clear. The second part of the statement says "the variables that have the same truth value switch at each step". It is unclear what switching means here.
756
2020
G(((x1 and x2 and !x3) or (x1 and !x2 and x3) or (!x1 and x2 and x3)) and ((x1 and x2 and !x3) => X(x1 and !x2 and x3) or X(!x1 and x2 and x3)) or ((x1 and !x2 and x3) => X(x1 and x2 and !x3) or X(!x1 and x2 and x3)) and ((!x1 and x2 and x3) => X(x1 and !x2 and x3) or X(x1 and x2 and !x3)))
At any point, exactly 2 of x1, x2, and x3 have the same truth value, and the variables that have the same truth value switch at each step.
This statement is tricky to encode because we do not specify which variables have to be true and/or false at each step, and between steps, we cannot just swap the truth values of each variable. Additionally, it seems easy to overconstrain.
Always, either x1,x2,!x3 or x1,!x2,x3 or !x1,x2,x3 and each one of those implies the next state is one of the other ones.
757
2020
G(x1 and x2 => !X(x1) and !X(x2) and !x3 or x2 and x3 => !X(x2) and !X(x3) and !x1 and x1 or x3 => !X(x1) and !X(x3) and !x1)
At any point, exactly 2 of x1, x2, and x3 have the same truth value, and the variables that have the same truth value switch at each step.
This statement is tricky to encode because we do not specify which variables have to be true and/or false at each step, and between steps, we cannot just swap the truth values of each variable. Additionally, it seems easy to overconstrain.
The phrase "at any point" means we need a global operator, the exactly 2 of 3 can be handled via 3 part implication, and the switching can be handled with the X operator.
758
2020
G( (x1 and x2 and !x3) or (x1 and x3 and !x2) or (x2 and x3 and !x1) and \n(!x3 -> X(x3) and !x2 -> X(x2) and !x1 -> X(x1)))
At any point, exactly 2 of x1, x2, and x3 have the same truth value, and the variables that have the same truth value switch at each step.
This statement is tricky to encode because we do not specify which variables have to be true and/or false at each step, and between steps, we cannot just swap the truth values of each variable. Additionally, it seems easy to overconstrain.
Consists of two parts that always holds. First, I just enumerated all the possibilities for 2 variables out of 3 to be set to true. \nThe second part includes the constraint that if a variable is set to false in current state, it should be true in the subsequent. \n
759
2020
G(((x1 <=> x2) and ~X(x1 <=> x2)) or ((x1 <=> x3) and ~X(x1 <=> x3)) or ((x3 <=> x2) and ~X(x3 <=> x2)))
At any point, exactly 2 of x1, x2, and x3 have the same truth value, and the variables that have the same truth value switch at each step.
This statement is tricky to encode because we do not specify which variables have to be true and/or false at each step, and between steps, we cannot just swap the truth values of each variable. Additionally, it seems easy to overconstrain.
I don't think this is even correct but I don't see a concise way of representing this formula
760
2020
[x1 and x2 and F(X(x1)) and F(x2) => x3 ] and [!{x1 and x2 and F(X(x1)) and F(x2) } => !x3 ]
x3 is true if and only if x1 and x2 are true in the previous state and x1 and x2 are eventually true.
This is like turning two keys (x1 and x2) to trigger an event (x3).
for an iff you have to enforce both version of the implies, otherwise it was just a simple implies. \nUsed X to talk about next state so we could refer to x1 and x2 as the state previous to that, did a bunch of ands to enforce all the cases
761
2020
(X(x3) -> (x1 and x2 ) ) and ((x1 and x2 ) ->X(x3) ) and F(x1 and x2)
x3 is true if and only if x1 and x2 are true in the previous state and x1 and x2 are eventually true.
This is like turning two keys (x1 and x2) to trigger an event (x3).
The statement is an IFF so it must be bidirectional, which is why I have the ANDing of two symmetric imply statements. Now the statements themselves just say that x1 being true and x2 being true implies in the next state x3 being true (and the reverse). Lastly, x1 and x2 are eventually true is the last ANDed statement.
762
2020
((Xx3 ^ (x1 ^ x2)) v (not Xx2 ^ not (x1 and x2))) ^ F(x1 ^ x2)
x3 is true if and only if x1 and x2 are true in the previous state and x1 and x2 are eventually true.
This is like turning two keys (x1 and x2) to trigger an event (x3).
I think that we can use "X" to say that x3 is true in the next state iff x1 and x2 are true in this state, which I think is the same as x1 and x2 being true in the previous state iff x3 is true in the current state. I think the second half of the statement is just a normal "F" clause.
763
2020
(X(x3) <=> (x1 /\\ x2)) /\\ F(x1 /\\ x2)
x3 is true if and only if x1 and x2 are true in the previous state and x1 and x2 are eventually true.
This is like turning two keys (x1 and x2) to trigger an event (x3).
x1 /\\ x2 = x1 and x2 are both true in this state\nX(x3) = x3 is true in the next state.\nB iff (A = prev(B) is the same as saying A iff (B = next(A). \nThe second part seems ambiguous because its unclear whether it means that (x1 /\\ x2) is eventually true or whether (x1) and (x2) are eventually true independently. I'm assuming its asking that there is a state where (x1 /\\ x2) is eventually true, which is equal to F(x1 /\\ x2).
764
2020
G(X(x3) <=> (x1 and x2 and X(F(x1 and x2))))
x3 is true if and only if x1 and x2 are true in the previous state and x1 and x2 are eventually true.
This is like turning two keys (x1 and x2) to trigger an event (x3).
I treated this as everything after "if and only if" being grouped together, but the wording is ambiguous.
765
2020
(F(x1) and F(x2) and (x1 and x2)) => Xx3
x3 is true if and only if x1 and x2 are true in the previous state and x1 and x2 are eventually true.
This is like turning two keys (x1 and x2) to trigger an event (x3).
If x1 is eventually true and x2 is eventually true and x1 and x2 are currently true, then x3 is true in the next state.
766
2020
(x1 && x2) <=> (X(x3)), F(x1), F(x2)
x3 is true if and only if x1 and x2 are true in the previous state and x1 and x2 are eventually true.
This is like turning two keys (x1 and x2) to trigger an event (x3).
x1 and x2 are only true if x3 is true in the next state, x1 and x2 are finally true.
767
2020
(F(x1) U (x2 /\\ G(~x1))
X1 one is sometimes true until X2 is true and must be false after (x1)
F(x1) U x2 -> G(!x1) I think this one is interesting because you need to use all the temporal symbols and makes you think about how to properly use them.
x1 is sometimes true (with the F predicate) until x2 is true, and x1 is never true again.
768
2020
(x1 U x2) and G(x2 -> (!x1))
X1 one is sometimes true until X2 is true and must be false after (x1)
F(x1) U x2 -> G(!x1) I think this one is interesting because you need to use all the temporal symbols and makes you think about how to properly use them.
a U b interpreted as "a must be true until b becomes true and we do not care about a\'s state after b becomes true". I do not think \'sometimes\' can be expressed in LTL though.
769
2020
(x1 U x2) and G(x1 => X(!x1))
X1 one is sometimes true until X2 is true and must be false after (x1)
F(x1) U x2 -> G(!x1) I think this one is interesting because you need to use all the temporal symbols and makes you think about how to properly use them.
I\'m not really sure about the concept of "sometimes" here, but I decided to represent the first part as x1 U x2 (i.e. x1 is true until x2 is true. The second half seems to be saying that x1 must be false after x1 is true, so I wrote that as G(x1 = X(!x1)) i.e. if x1 is true then it will be false in the next state.
770
2020x2 -> X(G(!x1)
X1 one is sometimes true until X2 is true and must be false after (x1)
F(x1) U x2 -> G(!x1) I think this one is interesting because you need to use all the temporal symbols and makes you think about how to properly use them.
if x2 is true then in the next state x1 is false. (IDK how to express sometimes true, I thought we couldn't do that in LTL)
771
2020F(x2) => X(-x1)*
X1 one is sometimes true until X2 is true and must be false after (x1)
F(x1) U x2 -> G(!x1) I think this one is interesting because you need to use all the temporal symbols and makes you think about how to properly use them.
My answer assumes that a trace can be defined where x1 is not true prior to x2 being true. However if x2 is true eventually, x1 must be false for all after time steps.
772
2020
( F(x1) and (x1 U x2 ) and (x1 U x1) )
X1 one is sometimes true until X2 is true and must be false after (x1)
F(x1) U x2 -> G(!x1) I think this one is interesting because you need to use all the temporal symbols and makes you think about how to properly use them.
F(x1) encodes that x1 must sometimes be true and x1Ux2 encodes that x1 can only be true until x2 is true and x1Ux1 encodes that x1 is not true after x1
773
2020
(-G(x1) U x2 ) and (x2 => G(-x1)) and F(x1)
X1 one is sometimes true until X2 is true and must be false after (x1)
F(x1) U x2 -> G(!x1) I think this one is interesting because you need to use all the temporal symbols and makes you think about how to properly use them.
Before x2 is true, x1 cannot always be true (sometimes true). Once x2 is true, x1 will always be false. Thus, x1 will eventually be true before x2 is true.
774
2020
F(x1->x2)∧ ((¬x3)U(x1∧x2))
It always holds that after x1 is true, x2 will be true. X3 will not be true until both x1 and x2 are true.
I think this is interesting because the formula should use G, X, and U.
I am a little confused about this. I guess it means we have to follow two conditions: one is that after some states, if x1 is true then x2 will be true. The second part is that x3 would not be true until both x1 and x2 are true.
775
2020
(F(x1) => X(x2)*) /\\ F(x3) => F(x1 /\\ x2)
It always holds that after x1 is true, x2 will be true. X3 will not be true until both x1 and x2 are true.
I think this is interesting because the formula should use G, X, and U.
My answer uses an implication to address the first part of conjunction by defining that if x1 is eventually true then for all following time steps , x2 will hold. The second part of the conjunction states that if x3 is eventually true, then it must hold that x1 and x2 were true for a time step prior to the time step x3 was true.
776
2020
G(x1 -> G(x2)) and (!x3 U (x1 and x2))
It always holds that after x1 is true, x2 will be true. X3 will not be true until both x1 and x2 are true.
I think this is interesting because the formula should use G, X, and U.
777
2020
G(x1 => X(x2)) and G((x1 and x2) U x3)
It always holds that after x1 is true, x2 will be true. X3 will not be true until both x1 and x2 are true.
I think this is interesting because the formula should use G, X, and U.
it is always true that x1 being true leads to x2 being true and it is always true that x1 and x2 have to be true until x3 is true (also maybe this could be written X(x3) => x1 and x2, i wasn't sure
778
2020
G( (x1 => X(x2)) and (not x3 U (x1 and x2)) )
It always holds that after x1 is true, x2 will be true. X3 will not be true until both x1 and x2 are true.
I think this is interesting because the formula should use G, X, and U.
x1 implies that after one transition x2 will be true is expressed in (x1 => Xx2) and then I use not x3 until x1 and x2 to express the second half and then use the G symbol to encode that it always holds for all states.
779
2020
G(x2 U x1 and !x3 U (x1 and x2))
It always holds that after x1 is true, x2 will be true. X3 will not be true until both x1 and x2 are true.
I think this is interesting because the formula should use G, X, and U.
G set up the always state, and U means until
780
2020
(F(x1 and x2) => (!x1 U x1)) or ((!(F(x1 and x2) and F(x2)) => F(x1))
if (x1 and x2) is eventually true, then x1 is false until it is true. Otherwise, if x2 is eventually true, then x1 is also eventually true.
I think that this is an interesting formula because even it includes different cases for x1 and x2 being eventually true. If they are both eventually true at the same time, this is a different case than if just x2 is eventually true ( and x1 is also true but not at the same time as x2)
I'm not quite sure how to do if/else in LTL, but the idea is to have the first statement, or'd with the second statement and the negation of the first statement.
781
2020
(F(x1 ∧ x2) ∧ G(¬x1 U x1)) ∨ (F(x2) ∧ F(x1))
if (x1 and x2) is eventually true, then x1 is false until it is true. Otherwise, if x2 is eventually true, then x1 is also eventually true.
I think that this is an interesting formula because even it includes different cases for x1 and x2 being eventually true. If they are both eventually true at the same time, this is a different case than if just x2 is eventually true ( and x1 is also true but not at the same time as x2)
782
2020
(F(x1 & x2) -> !x1 U (x1 & x2)) & (!F(x1 & x2) -> (Fx2 -> Fx1))
if (x1 and x2) is eventually true, then x1 is false until it is true. Otherwise, if x2 is eventually true, then x1 is also eventually true.
I think that this is an interesting formula because even it includes different cases for x1 and x2 being eventually true. If they are both eventually true at the same time, this is a different case than if just x2 is eventually true ( and x1 is also true but not at the same time as x2)
if (x1 & x2) is eventually true, then x1 is false until (x1 & x2) is true; if (x1 & x2) is not eventually true, then x2 is eventually true can imply x1 is eventually true.
783
2020
(F(x1 & x2) -> (!x1 U x2)) | (!F(x1 & x2) -> F(x2) -> F(x1))
if (x1 and x2) is eventually true, then x1 is false until it is true. Otherwise, if x2 is eventually true, then x1 is also eventually true.
I think that this is an interesting formula because even it includes different cases for x1 and x2 being eventually true. If they are both eventually true at the same time, this is a different case than if just x2 is eventually true ( and x1 is also true but not at the same time as x2)
Give the x1 and x2's final condition and imply other conditions
784
2020
(F(x1 /\\ x2) => (~x1 U (x1 /\\ x2)) /\\ ( (~F(x1 /\\ x2) /\\ F(x2)) => F(x1))
if (x1 and x2) is eventually true, then x1 is false until it is true. Otherwise, if x2 is eventually true, then x1 is also eventually true.
I think that this is an interesting formula because even it includes different cases for x1 and x2 being eventually true. If they are both eventually true at the same time, this is a different case than if just x2 is eventually true ( and x1 is also true but not at the same time as x2)
(F(x1 /\\ x2) => (~x1 U (x1 /\\ x2)) = if (x1 and x2) is eventually true then x1 is false until both x1 and x2 are true\n( (~F(x1 /\\ x2) /\\ F(x2)) => F(x1)) = if (x1 and x2) is not eventually true and x2 is eventually true, then x1 is eventually true
785
2020
F(x1 and x2) => F(x1) and !F(x1 and x2) => (F(x2) => F(x1))
if (x1 and x2) is eventually true, then x1 is false until it is true. Otherwise, if x2 is eventually true, then x1 is also eventually true.
I think that this is an interesting formula because even it includes different cases for x1 and x2 being eventually true. If they are both eventually true at the same time, this is a different case than if just x2 is eventually true ( and x1 is also true but not at the same time as x2)
We use the "F" formula to find a trace where "x1 and x2" is eventually true, and since x1 is always false or true, we can simplify "x1 is false until it is true" to "x1 is eventually true", or "F(x1)". Then, to translate "otherwise", we build another conditional that uses the inverse of "F(x1 and x2)", and state that this condition implies that "if x2 is eventually true, then x1 is eventually true", or "F(x2) => F(x1)".
786
2020
(F(x1 and x2) => (!x1 => X(!x1)) and (x1 => X(x1))) or (F(x2) => F(x1))
if (x1 and x2) is eventually true, then x1 is false until it is true. Otherwise, if x2 is eventually true, then x1 is also eventually true.
I think that this is an interesting formula because even it includes different cases for x1 and x2 being eventually true. If they are both eventually true at the same time, this is a different case than if just x2 is eventually true ( and x1 is also true but not at the same time as x2)
One point of confusion here for me was " x1 is false until it is true". That doesn\'t necessarily mean that x1 is not true, so I tried to reflect that.
787
2020
G(((x1 and !x2 and !x3) <=> X(!x1 and x2 and !x3) <=> X(X(!x1 and !x2 and x3))) and\n((x1 and !x2 and !x3) or (!x1 and x2 and !x3) or (!x1 and !x2 and x3))
Given states x1, x2, and x3: always transitioning in a cycle (ex. x1 -> x2 -> x3 -> x1 ...)
I think this is interesting because it enforces a pattern on the transition of the states but not necessarily an ordering (i.e. there are many ways to always cycle 3 states). I would also find it difficult to encode in LTL.
x1 and !x2 and !x3 : means that in the current state, only x1 is true\nX(!x1 and x2 and !x3) : means that in the next state, only x2 is true\nX(X(!x1 and !x2 and x3)) : means that in the next next state, only x3 is true\n\nthese must always be true iff the next one is the proper state. Additionally, it must be true that the state is one of these three states
788
2020
x1 => X(x2 && !x1 $$ !x3)\nx2 => X(x3 && !x1 $$ !x2)\nx3 => X(x1 && !x3 $$ !x2)
Given states x1, x2, and x3: always transitioning in a cycle (ex. x1 -> x2 -> x3 -> x1 ...)
I think this is interesting because it enforces a pattern on the transition of the states but not necessarily an ordering (i.e. there are many ways to always cycle 3 states). I would also find it difficult to encode in LTL.
This isn't elegant, but it should encode what's described.
789
2020
G( (x1 ^ X(x2)) ∨ (x2 ^ X(x3)) ∨ (x3 ^ X(x1))
Given states x1, x2, and x3: always transitioning in a cycle (ex. x1 -> x2 -> x3 -> x1 ...)
I think this is interesting because it enforces a pattern on the transition of the states but not necessarily an ordering (i.e. there are many ways to always cycle 3 states). I would also find it difficult to encode in LTL.
This says that it is always the cast that either x1 is true and x2 is true next, x2 is true and x3 is true next, or x3 is true and x1 is true next. This gives us the cycle that is being described.
790
2020
G(x1=>N(x2)=>N(N(x3)=>N(N(N(x1))))
Given states x1, x2, and x3: always transitioning in a cycle (ex. x1 -> x2 -> x3 -> x1 ...)
I think this is interesting because it enforces a pattern on the transition of the states but not necessarily an ordering (i.e. there are many ways to always cycle 3 states). I would also find it difficult to encode in LTL.
791
2020
G (x1 -> Xx2 & x2 -> Xx3 & x3 -> Xx1)
Given states x1, x2, and x3: always transitioning in a cycle (ex. x1 -> x2 -> x3 -> x1 ...)
I think this is interesting because it enforces a pattern on the transition of the states but not necessarily an ordering (i.e. there are many ways to always cycle 3 states). I would also find it difficult to encode in LTL.
always, x1 implies next state of x2 is true, x2 implies next state of x3 is true, x3 implies next state of x1 is true
792
2020
Incorrectly defined.
Given states x1, x2, and x3: always transitioning in a cycle (ex. x1 -> x2 -> x3 -> x1 ...)
I think this is interesting because it enforces a pattern on the transition of the states but not necessarily an ordering (i.e. there are many ways to always cycle 3 states). I would also find it difficult to encode in LTL.
x1, x2, and x3 should be variables, not states. Have no way of knowing the boolean vars in each state, so cannot be encoded.
793
2020
(x1 -> !x2 and !x3 and X(!x1 and x2 and !x3)) and (x2 -> !x1 and !x3 and X(!x1 and !x2 and x3)) and (x3 -> !x1 and !x2 and X(x1 and !x2 and !x3))
Given states x1, x2, and x3: always transitioning in a cycle (ex. x1 -> x2 -> x3 -> x1 ...)
I think this is interesting because it enforces a pattern on the transition of the states but not necessarily an ordering (i.e. there are many ways to always cycle 3 states). I would also find it difficult to encode in LTL.
I decided to implement this using three main clauses, each of which says that if xi is true then the other xs are false and then in the next state xi is false and the subsequent x is true.
794
2020
(F x1 => x1 U x2) \n~(F x1) => x3\n
If we know that x1 will eventually be true, then we know that x2 will be true until x1 is true. Otherwise, all we know is that x3 is true.
I found this structure interesting since LTL doesn't have an "if-else" structure so you will instead have to use a double implication.
finally x1 (x1 is eventually true) implies x2 until x1 \nnot finally x1 implies x3
795
2020(x2 U x1) or x3
If we know that x1 will eventually be true, then we know that x2 will be true until x1 is true. Otherwise, all we know is that x3 is true.
I found this structure interesting since LTL doesn't have an "if-else" structure so you will instead have to use a double implication.
x2 U x1 means that x1 is eventually true and that x2 is true until then. or x3 means that the previous is true or x3 is true
796
2020
(F(x1) -> (x2 U x1)) or x3
If we know that x1 will eventually be true, then we know that x2 will be true until x1 is true. Otherwise, all we know is that x3 is true.
I found this structure interesting since LTL doesn't have an "if-else" structure so you will instead have to use a double implication.
F is eventually true, and x U y means x is true until y is true
797
2020
(F(x1) => x2 U x1) and (!F(x1) => x3)
If we know that x1 will eventually be true, then we know that x2 will be true until x1 is true. Otherwise, all we know is that x3 is true.
I found this structure interesting since LTL doesn't have an "if-else" structure so you will instead have to use a double implication.
F(x1) => x2 U x1 : means that if x1 is eventually true, then x2 will be true \nF(x1) => x3 : means that if x1 is not eventually true, then x3 is true
798
2020
F(x1) -> x2 U x1 & F(!x1) -> x3
If we know that x1 will eventually be true, then we know that x2 will be true until x1 is true. Otherwise, all we know is that x3 is true.
I found this structure interesting since LTL doesn't have an "if-else" structure so you will instead have to use a double implication.
two conditions need to hold
799
2020x1 -> (x2 -> F(x3))
When x1 is true, then x3 will become true eventually after x2 is true
This question kind of represents the situation of a traffic light. when it is green, it will become red after it is yellow.
800
2020
G((not x1) v X((not x2) U x3))
When x1 is true, then x3 will become true eventually after x2 is true
This question kind of represents the situation of a traffic light. when it is green, it will become red after it is yellow.
The "G" makes the inner formula global, so that whenever "x1" is true, "X((not x2) U x3)" will be true. The latter means that, starting in the next state, x2 will be false for some non-zero number of states followed by a state where x3 is true.
801
2020x1 => x2 U F(x3)
When x1 is true, then x3 will become true eventually after x2 is true
This question kind of represents the situation of a traffic light. when it is green, it will become red after it is yellow.
U can be used to express "after"
802
2020x1 -> x2 U F(x3)
When x1 is true, then x3 will become true eventually after x2 is true
This question kind of represents the situation of a traffic light. when it is green, it will become red after it is yellow.
when means if. after means U.
803
2020
G(x1 => !x2, !X(x1) => x2)
It always holds that x2 is false if x1 is true and x2 is true if x1 is false in the next state
This resembles "waiting your turn", so x2 cannot hold while x1 is true but in the next state, if x1 is "finished" (false), then x2 is true
This is all in a globally true function: x1 implies not x2 and x1 false in the next state implies x2.
804
2020
G(x1->!x2) and G(X(!x1) -> x2)
It always holds that x2 is false if x1 is true and x2 is true if x1 is false in the next state
This resembles "waiting your turn", so x2 cannot hold while x1 is true but in the next state, if x1 is "finished" (false), then x2 is true
G(x1->!x2): x1 is true implies that x2 is false \n G(X(!x1) -> x2): the next state after x1 is false is where x2 is true
805
2020
G(!x2) AND (x1 AND (x2 AND X(!x1)))
It always holds that x2 is false if x1 is true and x2 is true if x1 is false in the next state
This resembles "waiting your turn", so x2 cannot hold while x1 is true but in the next state, if x1 is "finished" (false), then x2 is true
Used if statements to be represented as parentheses with AND, while only and to be the AND operator.
806
2020
G((x1 -> !x2) and (X(!x1) -> x2))
It always holds that x2 is false if x1 is true and x2 is true if x1 is false in the next state
This resembles "waiting your turn", so x2 cannot hold while x1 is true but in the next state, if x1 is "finished" (false), then x2 is true
I wrapped the G (always) around the whole expression, and used X to denote the next state
807
2020
x1 or x2 or x3 => F(x4 and G(x4))
If any of x1, x2, x3 is true, x4 will be true at some point of time and stay true thereafter
it combines implication and how "eventually" works
i think the eventually statemnet is saying that once x4 becomes true than it will always stay true, but not sure if that's how wrapping a G inside of an F works
808
2020
w ⊨ (x1 ∨ x2 ∨ x3) ⟹ F(G(x4))
If any of x1, x2, x3 is true, x4 will be true at some point of time and stay true thereafter
it combines implication and how "eventually" works
To get any of x1, x2, or x3 to be true, we say x1 ∨ x2 ∨ x3. This should imply that eventually x4 will be true and remain true. So there will be some point from which x4 is always true, which means "eventually x4 is always true." G(x4) tells us that x4 is true in all states after and including the current one, and F(G(x4)) tells us that there is some state for which that will be true, so overall we have w ⊨ (x1 ∨ x2 ∨ x3) ⟹ F(G(x4)).
809
2020
(x1 | x2 | x3) -> G(x4)
If any of x1, x2, x3 is true, x4 will be true at some point of time and stay true thereafter
it combines implication and how "eventually" works
Because one of the x1,x2,x3 be true, it will be true
810
2020
x1 or x2 or x3 => F(x4)
If any of x1, x2, x3 is true, x4 will be true at some point of time and stay true thereafter
it combines implication and how "eventually" works
stay true thereafter means eventually
811
2020
(x1 or x2 or x3) -> F(G(x4))
If any of x1, x2, x3 is true, x4 will be true at some point of time and stay true thereafter
it combines implication and how "eventually" works
812
2020
(x1 /\\ ~x2 /\\ ~x3) /\\ X(~x2) /\\ X(~x3) /\\ X(X(~x3))
When x1, it cannot become x2 immediately or become x3 in less than 3 steps.
It's a chronological ordering which is challenging to solve and complicated in terms of two different periods of looping.
if x1 is true, then it can't become x2 in the next step or become x3 in any of the next 2 steps. Becoming x2 or becoming x3 implies that x2 and x3 are currently false, and then could change to true at some point, so x2 must be false for at least step 0 and 1, and x3 must be false for at least step 0, 1, and 2.
813
2020x1 -> !x2 -> !x3
When x1, it cannot become x2 immediately or become x3 in less than 3 steps.
It's a chronological ordering which is challenging to solve and complicated in terms of two different periods of looping.
I struggled this question, this is my best answer I don't know how to approach it further.
814
2020
G(x1 => X(!x2) and XX(!x3) )
When x1, it cannot become x2 immediately or become x3 in less than 3 steps.
It's a chronological ordering which is challenging to solve and complicated in terms of two different periods of looping.
It is always true that when it is x1, x2 has to be false for the next and x3 has to be false for the two next.
815
2020
x1 => (X(!x2) and X(!x3) and X(X(!x3)))
When x1, it cannot become x2 immediately or become x3 in less than 3 steps.
It's a chronological ordering which is challenging to solve and complicated in terms of two different periods of looping.
X(!x2) : means that x2 cannot be true immediately\nX(!x3) and X(X(!x3)) : means that x3 cannot be true in the next two states (so it cannot be true in less than 3 steps)
816
2020
x1 -> !(x2 or XX(x3))
When x1, it cannot become x2 immediately or become x3 in less than 3 steps.
It's a chronological ordering which is challenging to solve and complicated in terms of two different periods of looping.
X is true in the next step, so less than 3 is XX
817
2020
G(x1 => X(!x1) and !x1 => X(x1))
x1 repeated flips truth values (goes from true to false and back again forever)
I think that this function utilizes the U function in a clever way, and that piece needs to be combined to account for the fact that it flips forever
It is always true that x1 is true implies x1 is false next, and x1 is false implies x1 is true next.
818
2020
G(x1 and X(not x1))
x1 repeated flips truth values (goes from true to false and back again forever)
I think that this function utilizes the U function in a clever way, and that piece needs to be combined to account for the fact that it flips forever
This flips the truth values of x1 but assumes that the value of x1 starts as true.
819
2020
G(x1 => ~X(x1) /\\ ~x1 => X(x1))
x1 repeated flips truth values (goes from true to false and back again forever)
I think that this function utilizes the U function in a clever way, and that piece needs to be combined to account for the fact that it flips forever
If x1 is true in the current state, then it must be false in the next state and if x1 is false in the current state then it must be true in the next state.
820
2020
G(x1 -> X(!x)) and G(!x1 -> X(x1))
x1 repeated flips truth values (goes from true to false and back again forever)
I think that this function utilizes the U function in a clever way, and that piece needs to be combined to account for the fact that it flips forever
I am using G to say this always holds. I am using X to get the trace starting at the next step (after x1 is true or false)
821
2020
G( (x1) => X(!x1) and !x1 => X(x1) )
x1 repeated flips truth values (goes from true to false and back again forever)
I think that this function utilizes the U function in a clever way, and that piece needs to be combined to account for the fact that it flips forever
Here to create the alternating effect I made it so that is x1 is true then it implies that it's next is false, and if x1 is false it implies that it's next is true, always
822
2020
G(((not x1) v Xx1) ^ (x1 v not Xx1))
x1 repeated flips truth values (goes from true to false and back again forever)
I think that this function utilizes the U function in a clever way, and that piece needs to be combined to account for the fact that it flips forever
Globally it must be true that if x1 is true, then x1 is false in the next state, and if x1 is false, x1 is true in the next state.
823
2020
G(!x1) -> G(x2 ∨ x3 and x2 ^ x3)
if x1 is never true, then x2 and x3 will always alternate which is true, with only one being true at a time.
I think the answer would be: G(!x1) implies ((x2 => X(!x2 and x3)) and (x3 => X(!x3 and x2))). I think it's interesting to decipher so many nested implies statements, as well as think about having to constrain both the case where x2 is true and x3 is true.
G means always and x2 ∨ x3 and x2 ^ x3 means at a time only one, either x2 or x3 can be true.
824
2020
G(!x1) -> G(x2 or x3) and !G(x2 and x3) and G(x2 -> X(!x2) and x3->X(!x3))
if x1 is never true, then x2 and x3 will always alternate which is true, with only one being true at a time.
I think the answer would be: G(!x1) implies ((x2 => X(!x2 and x3)) and (x3 => X(!x3 and x2))). I think it's interesting to decipher so many nested implies statements, as well as think about having to constrain both the case where x2 is true and x3 is true.
There are three constraints. \n1: If x1 is never true, then it always holds that x2 or x3 is true\n2: x2 and x3 cannot be both globally true \n3: If x2 is true in a state, it is false in the subsequent one. Same for x3
825
2020
G(!x1) => G((x2 or x3) and (x2 => (!x3 and Xx3)) and (x3 => (!x2 and Xx2)))\n
if x1 is never true, then x2 and x3 will always alternate which is true, with only one being true at a time.
I think the answer would be: G(!x1) implies ((x2 => X(!x2 and x3)) and (x3 => X(!x3 and x2))). I think it's interesting to decipher so many nested implies statements, as well as think about having to constrain both the case where x2 is true and x3 is true.
G(!x1) refers to the condition that x1 is never true. This implies that globally, (x2 or x3) (x2 or x3 must always be true), x2 => (!x3 and Xx3) (if x2 is true then x3 is false in the current state and true in the next state), and x3 => (!x2 and Xx2) ) (if x3 is true then x2 is false in the current state and true in the next state). So, if x1 is never true, then only exactly one of x2 or x3 will always be true and they will alternate which this is.
826
2020
G(!x1) => G((x2 and !x3) => X(!x2 and x3) and (!x2 and x3) => X(x2 and !x3))
if x1 is never true, then x2 and x3 will always alternate which is true, with only one being true at a time.
I think the answer would be: G(!x1) implies ((x2 => X(!x2 and x3)) and (x3 => X(!x3 and x2))). I think it's interesting to decipher so many nested implies statements, as well as think about having to constrain both the case where x2 is true and x3 is true.
Since we only want to enforce alternating x3 and x2 if x1 is never true, we use a conditional with "G(!x1)", which chooses all traces where all traces set x1 to be false. Then, we want it to always hold that if a state sets x2 true and x3 false, then the next states sets x2 false and x3 true (alternating x2 and x3 true), and vice versa, so we wrap that set of conditionals with the global formula "G".
827
2020
F(x1) ∨ G( ¬(x2 ^ X(x2)) ^ ¬(¬x2 ^ X(¬x2)) ^ ¬(x3 ^ X(x3)) ^ ¬(¬x3 ^ X(¬x3)) ^ ¬(x2 ^ x3) )
if x1 is never true, then x2 and x3 will always alternate which is true, with only one being true at a time.
I think the answer would be: G(!x1) implies ((x2 => X(!x2 and x3)) and (x3 => X(!x3 and x2))). I think it's interesting to decipher so many nested implies statements, as well as think about having to constrain both the case where x2 is true and x3 is true.
This says either x1 is at some point true, or the second expression is true. The second expression says that it is between every state and it's next state x2 switches values (the first two clauses), x3 switches values (the third and fourth clauses) and that x2 and x3 are different (the final clause)
828
2020
(x2 and x1 and x3) => F(x1 and x3 and x3)
if x2 is true and x1 is true and x3 is true, then it eventually holds that x1 and x2 and x3 are always true
I think this is interesting because it effectively describes how a system can reach a point of convergence.
Parsed it by section and translated to LTL terms.
829
2020
F(x2 and x1 and x3) => G(x2 and x1 and x3)
if x2 is true and x1 is true and x3 is true, then it eventually holds that x1 and x2 and x3 are always true
I think this is interesting because it effectively describes how a system can reach a point of convergence.
This should only output the later part of the implies statement, or they never all evaluate to true.
830
2020
(x2 and x2 and x3) => F( G(x1 and x2 and x3))
if x2 is true and x1 is true and x3 is true, then it eventually holds that x1 and x2 and x3 are always true
I think this is interesting because it effectively describes how a system can reach a point of convergence.
The formula is encoded with an implies statement. The first half, encodes that x1,x2 and x3 are true and the second encodes that the predicate x1 and x2 and x3 are eventually always true with the F(G(pred)) notation.
831
2020
(x1 /\\ x2 /\\ x3) => F( G(x1 /\\ x2 /\\ x3))
if x2 is true and x1 is true and x3 is true, then it eventually holds that x1 and x2 and x3 are always true
I think this is interesting because it effectively describes how a system can reach a point of convergence.
(x1 /\\ x2 /\\ x3) = true in current state\nF( G(x1 /\\ x2 /\\ x3)) = Eventually we will reach a point where all of the variables are true (?)\n
832
2020
(x2 and x1 and x3) => F(G(x1 and x2 and x3))
if x2 is true and x1 is true and x3 is true, then it eventually holds that x1 and x2 and x3 are always true
I think this is interesting because it effectively describes how a system can reach a point of convergence.
(x2 and x1 and x3) is whether x2, x1, and x3 are all true. This implies that eventually (F), it will always be the case (G) that (x1 and x2 and x3) are all true.
833
2020
~Xx1 => (x2 /\\ ~Xx2) /\\ (~x3 /\\ Xx3)
if next value of x1 is false, then x2 must just transitioned from true to false, and x3 must just transitioned from false to true
my question requires the understanding of state transition and the use of the mix of multiple syntax
not next state x1 implies x2 and not next state x2 and not x3 and next state x3
834
2020
(X2 U !X2) and (!X3 U X3) => !X1
if next value of x1 is false, then x2 must just transitioned from true to false, and x3 must just transitioned from false to true
my question requires the understanding of state transition and the use of the mix of multiple syntax
U would be transition from one state to another
835
2020
X(!x1) => !x2 and x3
if next value of x1 is false, then x2 must just transitioned from true to false, and x3 must just transitioned from false to true
my question requires the understanding of state transition and the use of the mix of multiple syntax
The if notation is a bit confusing, but as I understand it, the phrasing as an implies guarantees that the outcome will at least in the trace if it holds true for the LTL.
836
2020
'x1 eventually becomes true' is always true' is True\n''x1 is always true' is eventually true' is False
If at some point in time, x1 becomes true and stays true, is it always true that x1 eventually becomes true or is it eventually true that x1 is always true?
This question is meant to help understanding the semantics.
case 1: is it always true that x1 eventually becomes true?\nif there exists time i such that x1^j is true ; j>i evaluates to true, then by definition of 'eventually',\n'x1 eventually becomes true' evaluates to True. G(Tautology) is true since Tautology is always true for all i. \ncase 2: is it eventually true that x1 is always true?\n'x1 is always True' evaluates to false since the time i where x1^j is true ; j>i for all j does not necessarily be 0 and so \nF(contradiction) is always false since it remains False for all time i. \nTherefore, the former is the correct statement
837
2020
F(x1) implies (G(F(x1) or G(x1))
If at some point in time, x1 becomes true and stays true, is it always true that x1 eventually becomes true or is it eventually true that x1 is always true?
This question is meant to help understanding the semantics.
I wrote the formula to the question as if it were a statement, but I believe the actual answer to the question would be that x1 eventually becomes true, or F(x1).
838
2020F(x1) /\\ X(x1)*
If at some point in time, x1 becomes true and stays true, is it always true that x1 eventually becomes true or is it eventually true that x1 is always true?
This question is meant to help understanding the semantics.
I did not really get how to answer the question in LTL but I just encoded the x1 eventually being true and staying true.
839
2020
it is always true that x1 eventually becomes true\nF(x1)
If at some point in time, x1 becomes true and stays true, is it always true that x1 eventually becomes true or is it eventually true that x1 is always true?
This question is meant to help understanding the semantics.
There exists an i that for all j >= i, x1 is true.
840
2020
x3 -> ((!x1 and !x2) or (x1 and x2)) and (x1 and x2) -> x3 and F(x1 and x2 and x3)
Amy, Barbara, and Catherine are friends who sometimes hang out in the lounge. However, there is an argument going on right now, such that some people will not hang out if certain others are there. Amy will not be present in the lounge if Catherine is there unless Barbara is also there to mediate. If Barbara and Amy are in the lounge together, Catherine will be hanging out with Barbara regardless of if they hang in the lounge of not. Eventually however, they will all hang out in the lounge together. Use x1, x2, and x3 to represent if Amy, Barbara, and Catherine are in the lounge respectively.
Idk I just came up with some random idea.
The first statement that "Amy will not be present in the lounge if Catherine is there unless Barbara is also there to mediate" means that Catherine implies not Amy and not Barbara, or both Amy and Barbara being present. The second statement "If Barbara and Amy are in the lounge together, Catherine will be hanging out with Barbara regardless of if they hang in the lounge of not" is that both Amy and Barbara imply Catherine. And the last statement "Eventually however, they will all hang out in the lounge together" means that eventually all three will be in the lounge.
841
2020
G((x1 and x3) -> x2) and G((x2 and x1) -> x3) and F((x1 and x2) and x3)
Amy, Barbara, and Catherine are friends who sometimes hang out in the lounge. However, there is an argument going on right now, such that some people will not hang out if certain others are there. Amy will not be present in the lounge if Catherine is there unless Barbara is also there to mediate. If Barbara and Amy are in the lounge together, Catherine will be hanging out with Barbara regardless of if they hang in the lounge of not. Eventually however, they will all hang out in the lounge together. Use x1, x2, and x3 to represent if Amy, Barbara, and Catherine are in the lounge respectively.
Idk I just came up with some random idea.
842
2020
F(x1 and x2 and x3) and G(x3 and !x2 => !x1) and G(x2 and x1 => x3)
Amy, Barbara, and Catherine are friends who sometimes hang out in the lounge. However, there is an argument going on right now, such that some people will not hang out if certain others are there. Amy will not be present in the lounge if Catherine is there unless Barbara is also there to mediate. If Barbara and Amy are in the lounge together, Catherine will be hanging out with Barbara regardless of if they hang in the lounge of not. Eventually however, they will all hang out in the lounge together. Use x1, x2, and x3 to represent if Amy, Barbara, and Catherine are in the lounge respectively.
Idk I just came up with some random idea.
eventually they will all be true (in the lounge), all states if x3 (catherine) is in the lounge and x2 (barb) is not then amy will not be in the lounge and in all states if x2 and x1 are in the lounge then x3 will be in the lounge
843
2020Gx1 -> G(x2 U!x3)
If x1 is always true, then x2 will always be true until x3 is false
I think that the notion of U and implications is interesting to figure out logically; these concept are pretty tricky to me, so translating from English to LTL and vice versa is pretty helpful!
844
2020
G(x1) => (x2 U ~x3)
If x1 is always true, then x2 will always be true until x3 is false
I think that the notion of U and implications is interesting to figure out logically; these concept are pretty tricky to me, so translating from English to LTL and vice versa is pretty helpful!
(x2 U ~x3) = x2 is true until x3 is false\nG(x1) => (x2 U ~x3) = x1 is always true implies x2 until x3 is false
845
2020
(not G x1) v (x2 U not x3)
If x1 is always true, then x2 will always be true until x3 is false
I think that the notion of U and implications is interesting to figure out logically; these concept are pretty tricky to me, so translating from English to LTL and vice versa is pretty helpful!
If x1 is not globally true, then x2 must be true until x3 becomes false to satisfy the statement. The main disjunction with the "not" in the first half functions as an implication.
846
2020
G(x1) => (x2 U !x3)
If x1 is always true, then x2 will always be true until x3 is false
I think that the notion of U and implications is interesting to figure out logically; these concept are pretty tricky to me, so translating from English to LTL and vice versa is pretty helpful!
- "If x1 is always true" -> "G(x1) =>"\n- "x2 will always be true until x3 is false" -> "x2 U !x3"
847
2020
(!x2 || !x3) => (X(x2) <=> X(x3))\nX(x2) => X(X(x1))\nx4 U x1\nF(x2)
x2 and x3 will become true on the same step x1 will become true the step after x2 becomes true x4 will be true until x1 is true x2 will be true at some point
I thought the interdependence of variables was interesting - how variables interact with each other in ways that change other variables!
if x2 or x3 are false, one becomes true in the next step if and only if the other one does as well.\nx2 true in the next step implies x1 is true in the next step's next step.\nx4 is true until x1 is.\nx2 occurs finally.
848
2020
F(x2 and x3) and (x2 => X(x1)) and (x1 => !x4) and F(x2)
x2 and x3 will become true on the same step x1 will become true the step after x2 becomes true x4 will be true until x1 is true x2 will be true at some point
I thought the interdependence of variables was interesting - how variables interact with each other in ways that change other variables!
Again, I wasn't sure if the middle implies statements should be contained in their own F statements.
849
2020
(!(x2 or x3 or x1) U (x2 and x3 and !x1 and X(x1))) and (x4 U x1)
x2 and x3 will become true on the same step x1 will become true the step after x2 becomes true x4 will be true until x1 is true x2 will be true at some point
I thought the interdependence of variables was interesting - how variables interact with each other in ways that change other variables!
Assuming that "become true" means that the given variable is false prior to the referred state where it becomes true, and that it is not required for variables to "stay true" once they become true (?), this LTL formula is composed of two larger subformulas connected by "and":\n- The first statement enforces that neither x2, x3, or x1 are true until some state where x2 and x3 are true, x1 is false, and the next state sets x1 to true\n- x4 is true until a state where x1 is true
850
2020G(x1 => X(X(x1))
Call x1 the variable of, did I take my medicine? I try to always take my medicine on time, but sometimes I forget. However, I never forget more than once in a row.
A real world situation that can be pared down in LTL by thinking in terms of what it is not. Rather than focusing on the fact that you try to "always" take your medicine, you can capture it arguably better by saying, if I forget, then I definitely took it the next time... and LTL logic should fill in the blanks accordingly.
This is an awesome one! The never would mean it holds true for any length of sequence or subtrace, and the implies guarantees that, even if the next is true, there is no gap of more than two.
851
2020G(!x1 => X(x1))
Call x1 the variable of, did I take my medicine? I try to always take my medicine on time, but sometimes I forget. However, I never forget more than once in a row.
A real world situation that can be pared down in LTL by thinking in terms of what it is not. Rather than focusing on the fact that you try to "always" take your medicine, you can capture it arguably better by saying, if I forget, then I definitely took it the next time... and LTL logic should fill in the blanks accordingly.
Assuming that "x1" represents the proposition "I took my medicine on time", this trace can be simplified to "if I forgot my medicine, I will not forget my medicine the next day". Thus, we use "!x1 => X(x1)" to state that if a state sets x1 to be false, the next state in the trace must set x1 to be true, and use the "G" formula to enforce that this will always hold.
852
2020G(!x1=> X(x1))
Call x1 the variable of, did I take my medicine? I try to always take my medicine on time, but sometimes I forget. However, I never forget more than once in a row.
A real world situation that can be pared down in LTL by thinking in terms of what it is not. Rather than focusing on the fact that you try to "always" take your medicine, you can capture it arguably better by saying, if I forget, then I definitely took it the next time... and LTL logic should fill in the blanks accordingly.
globally (so it's always true for any state) , if the current state is i forgot to take my medicine then at the next timestep, i will take my medicine ( i am not super sure this is how G and X can work but it seems tofit?)
853
2020
G(Fx1 AND (X!x1 -> XXx1))
Call x1 the variable of, did I take my medicine? I try to always take my medicine on time, but sometimes I forget. However, I never forget more than once in a row.
A real world situation that can be pared down in LTL by thinking in terms of what it is not. Rather than focusing on the fact that you try to "always" take your medicine, you can capture it arguably better by saying, if I forget, then I definitely took it the next time... and LTL logic should fill in the blanks accordingly.
854
2020x1 -> G(x2)
Parents with high education will always have children who would also pursue education.
This stereotype has been going around a lot. I have heard stories of many people about how their parents are not as highly-educated but are very successful and sent their children to great places for education. I am wondering if this is true in the opposite way and how it can be modelled using LTL as a timeline of a person's life from generation to generation.
x1 is parents with high education \nx2 children with high education
855
2020G(x1) -> G(x2)
Parents with high education will always have children who would also pursue education.
This stereotype has been going around a lot. I have heard stories of many people about how their parents are not as highly-educated but are very successful and sent their children to great places for education. I am wondering if this is true in the opposite way and how it can be modelled using LTL as a timeline of a person's life from generation to generation.
G means always.x1 means parents with high education and x2 means children who would also pursue education.
856
2020
Let x1 = parents have higher education, x2 = said parents have children who would also pursue education\n\nG(x1 => x2)
Parents with high education will always have children who would also pursue education.
This stereotype has been going around a lot. I have heard stories of many people about how their parents are not as highly-educated but are very successful and sent their children to great places for education. I am wondering if this is true in the opposite way and how it can be modelled using LTL as a timeline of a person's life from generation to generation.
G(x1 => x2) means that x1 (parents having higher education) will always imply x2 (they have children who would also pursue education)
857
2020
F(x1) and F(G(!x1))
The variable x1 will be true at least once, but at some point it will never be true again
I think it sounds like a pretty powerful logical statement but it isn't that hard to express in LTL
F(x1) enforces that x1 will be true at least once in the future, and "F(G(!x1))" enforces that there is eventually a subtrace where all states henceforce set x1 to be false.
858
2020
F(x1) and F(G(!x1))
The variable x1 will be true at least once, but at some point it will never be true again
I think it sounds like a pretty powerful logical statement but it isn't that hard to express in LTL
I\'m not sure if G is retroactive here or if it means "from the current state on". If it\'s the former, then I think that the above does not describe the prompt, but I\'m unsure what would.
859
2020
F(x1) and F(G(!x1))
The variable x1 will be true at least once, but at some point it will never be true again
I think it sounds like a pretty powerful logical statement but it isn't that hard to express in LTL
F is eventually true (so x1 will happen at least once), but it will eventually not be true (G means always true); (G of not x1)
860
2020
G(x1 => (not x2 and not x3))
if x1 is true, x2 and x3 is false
it's a basic question, everyone should know
I used the G notation to encode that for all states in given traces, if x1 is true then x2 and x3 are not true.
861
2020
x1 => (!x2 and !x3)
if x1 is true, x2 and x3 is false
it's a basic question, everyone should know
862
2020x1 -> (!x2 and !x3)
if x1 is true, x2 and x3 is false
it's a basic question, everyone should know
-> means if.
863
2020
x1 -> ((x2 U x3) and (x2 -> x3))
whenever x1 is true, x2 is true until x3 is true and x3 is true if x2 is true.
I found this question to be interesting because atomic variables x2 and x3 are linked in a way that shuts down x2 (with until) when x3 is true.
could also maybe just say, x1 -> (x2 and x3), because x2 will be true, and that will force x3 to be true, and that will alleviate the until requirement, allowing any state to occur again.
864
2020
(x1 -> (x2 U x3)) & (x2 -> x3)
whenever x1 is true, x2 is true until x3 is true and x3 is true if x2 is true.
I found this question to be interesting because atomic variables x2 and x3 are linked in a way that shuts down x2 (with until) when x3 is true.
x1 implies that before x3 is ture, x2 is true, and x2 is true implies x3 is true
865
2020X(x1) -> F(x2)
If x1's next state is true, x2 will eventually be true
It can check the basic state transitions of the LTL and rational logic.
X is the next state true and F is eventually true
866
2020X(x1) -> F(x2)
If x1's next state is true, x2 will eventually be true
It can check the basic state transitions of the LTL and rational logic.
867
2020X(x1) /\\ F(x2)
If x1's next state is true, x2 will eventually be true
It can check the basic state transitions of the LTL and rational logic.
You must have both that the next state of x1 is true and that x2 is eventually true.
868
2020
G(x1 AND (X!x2 AND XX!x2))
x1 is always true and x2 is false for at least the first two time steps.
x2 must be false for the current step and for the next step, but after that it can be anything, and x1 must be always true, which would be something like G(x1) /\ ~x2 /\ X(~x2).
869
2020XX(x1 /\\ ~x2)
x1 is always true and x2 is false for at least the first two time steps.
x2 must be false for the current step and for the next step, but after that it can be anything, and x1 must be always true, which would be something like G(x1) /\ ~x2 /\ X(~x2).
The internet says I can use X twice to signify the first two states
870
2020G(x1 U F(~x2))
it is always true that x1 is true until x2 is eventually False
I personally found 'until' and 'eventually' to be a concept that I often confuse and I only learn to use U for until, not F only halfway through the quiz so by putting this question here I'm hoping that it would help other students avoid this confusion.
it is always true that x1 is true until x2 is eventually False\nit is always true that x1 is true until ( F(~x2) )\nit is always true that (x1 U F(~x2) )\nG(x1 U F(~x2))
871
2020x1 U !x2
it is always true that x1 is true until x2 is eventually False
I personally found 'until' and 'eventually' to be a concept that I often confuse and I only learn to use U for until, not F only halfway through the quiz so by putting this question here I'm hoping that it would help other students avoid this confusion.
The eventually is throwing me off because until something is eventually true is kinda bad reasoning because if its eventually true in the future then its eventually true now, so I interpreted it like there was nothing there. This means that x2 is false in the future and until then x1 is true
872
2020G(x1 U F(!x2))
it is always true that x1 is true until x2 is eventually False
I personally found 'until' and 'eventually' to be a concept that I often confuse and I only learn to use U for until, not F only halfway through the quiz so by putting this question here I'm hoping that it would help other students avoid this confusion.
The whole clause is wrapped by G (always), and U denotes until and F shows that x2 is eventually false (using !)
873
2020
(F(x1) U F(x2)) \\/ G(~x1)
If x1 is eventually true, then x2 will be true at some point after.
I think this formula is interesting because it reflects the "liveness" properties that we attempted to verify in our mutual exclusion demos from class-- not just checking that all workers will eventually access the shared resource, but adding the caveat that the workers only are able to access the resource (x2) if they request it (x1).
x1 is sometimes true until x2 is sometimes true, or x1 is never true.
874
2020
F x1 => F (x1 & x2)
If x1 is eventually true, then x2 will be true at some point after.
I think this formula is interesting because it reflects the "liveness" properties that we attempted to verify in our mutual exclusion demos from class-- not just checking that all workers will eventually access the shared resource, but adding the caveat that the workers only are able to access the resource (x2) if they request it (x1).
finally x1 implies finally x2 and x2
875
2020
G((x1 and x2) -> F(x3))
It is always the case that when x1 and x2 are true, then sometimes x3 is true.
I think this something that can't be shown through LTL because it's a branching possibility. LTL can't describe random events given a condition.
I didn't really know how to write this. I said that always if x1 and x2 are true, then eventually x3 is true. But, I realize that this doesn't really make sense since eventually is not the same as sometimes.
876
2020
G((x1 and x2) -> F(x3))
It is always the case that when x1 and x2 are true, then sometimes x3 is true.
I think this something that can't be shown through LTL because it's a branching possibility. LTL can't describe random events given a condition.
G is always true and F is eventually (sometimes)
877
2020
G(x1)=>F(x2) and F(x3)
If it's always sunny outside (x1), then the plants will always eventually grow (x2) and you will also eventually get a sunburn (x3).
I think it's fun to apply these properties to word problems and real-life scenarios! It's interesting to model things like this in different ways, and to see what kinds of situations this kind of logic is easily applicable to.
Using G and F to express always and eventually
878
2020
G(x1) => F(x2)and F(x3)
If it's always sunny outside (x1), then the plants will always eventually grow (x2) and you will also eventually get a sunburn (x3).
I think it's fun to apply these properties to word problems and real-life scenarios! It's interesting to model things like this in different ways, and to see what kinds of situations this kind of logic is easily applicable to.
The G captures the "always", but I wasn\'t sure if I had to wrap the whole thing in an always statement, as in for any subtrace.
879
2020
((!x3 <=> x1) OR (!x3 <=> !x1)) AND (F(!x3 <=> !x1))
x1 is true only when x3 is false, until the reverse is true eventually.
I wanted the until to emulate the U, also including the idea of the implication and the !.
We need to state that the the first predicate and its reverse both are allowed and valid, and we have to ensure that the reverse happens at some point (which is what the F after the AND does for us).
880
2020
G((x1 iff (not x3)) iff (not E(x3 iff (not x1))))
x1 is true only when x3 is false, until the reverse is true eventually.
I wanted the until to emulate the U, also including the idea of the implication and the !.
I tried to say that always, x1 is true iff x3 is false, iff we haven't eventually gotten a state where x3 is true iff x1 is false.
881
2020
G( (x1 => X(!x1)) and (!x1 => X(x1)))
The truth value of x1 alternates at each state.
I think this could be interesting because it requires you to think about all states but also the next state in relation to the truth value of x1 in the current state.
I'm pretty sure this is the one I submitted! Hopefully it's correct :)
882
2020
w ⊨ G((x1 ⟹ X(¬x1)) ∧ (¬x1 ⟹ X(x1)))
The truth value of x1 alternates at each state.
I think this could be interesting because it requires you to think about all states but also the next state in relation to the truth value of x1 in the current state.
In all states, we want x1 to mean that in the next state x1 is false and ¬x1 to mean that in the next state x1 is true. So, we use G to say that this condition must always hold. To use the next state, we use X, so we have (x1 ⟹ X(¬x1)) ∧ (¬x1 ⟹ X(x1)), meaning overall w ⊨ G((x1 ⟹ X(¬x1)) ∧ (¬x1 ⟹ X(x1))).
883
2020x1, X(x1) or G(x1)
x1 is true in the next state, or x1 is true in all states.
I believe there is more than one valid answer, which raises the question of associativity, i.e. I think "(Xx1) v (Gx1)" is the same as "X(x1 v G x1)" (unless I misunderstood how "G" works).
884
2020
(x1 U x2 or x3) and F(x3)
x1 is always true until x2 is true or x3 is true, and x3 will be true eventually.
I think it's interesting because you need x2 or x3 to be true in order to make x1 change to false. However, while x3 is guaranteed to eventually be true, x2 is not. So, you're guaranteed that x1 will switch to false eventually because of x3, but it's also possible it could change beforehand because of x2.
The until is captured by U, with the G and F being applied to both sides of the U statement according to the outline. x3 being eventually true is captured by F.
885
2020
G((x1 and x2) -> X(x3))\nF(x3)
x3 is always true if x1 and x2 are true in the previous state. x3 will eventually be true.
This can be answered in two ways: G((x1 and x2) => Xx3) and F(x3) (direct interpretation) or, G((x1 and x2) => Xx3) and F(x1 and x2) (building off G((x1 and x2) => Xx3), F(x1 and x2) => F(x3)) It is interesting to see how your LTL statement can rely on itself to get its message across.
It always holds that if x1 and x2 is true in a specific state (x2 and x2). then in the next state x3 is true (X(x3)).
886
2020G(!x2) or x2 U x1
x2 is never true or x2 is true until x1 is true
This problem requires students to negotiate multiple clauses
G(!x2) means that x2 is never true. x2 U x1 means that x2 is always true until some state in which x1 is true.
887
2020x1 and x2 and x3
Jack got 50 in his midterm exam but he didn't want to fail that course and Jack had 100 in his final.
Just curious how to interpret what I just wrote into LTL.
x1 is equal to jack getting a 50 on his midterm, x2 is equal to jack not wanting to fail, x3 is equal to jack getting a 100 on his final.
888
2020F(x1 and x2)
x1 and x2 will eventually become true at the same time.
F(x1 and x2) means that eventually both x1 and x2 will be true, but does not guarantee that one will bot become true before the other. I am looking for: " F(x1 and x2) and G((!x1) -> (!x2)) and G((!x1) -> (!x2)) " or something similar, to signify that x1 and x2 must have the same value.
(x1 and x2) means that x1 and x2 are true in the same state. F(x1 and x2) means that this will eventually hold.
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000