□ φ → ◇ φ
Not universally valid, see model with one point & no relations. Has □ p but not ◇ p.
◇ φ → □ φ
Not universally valid.
Counterexample:
□ p → □ □ p
No. Counterexample when left side of implication holds but right does not:
digraph g {
rankdir="LR"
2 [label="2", xlabel="p"]
1 -> 2
2 -> 3
}
¬ □ p → □ ¬ □ p
No. Counterexample:
digraph g {
rankdir="LR"
3 [label="3", xlabel="p"]
1 -> 2
2 -> 3
}
W = {a₁…a₇}. R = {(a₁, a₂), (a₁, a₃), …}. V(p) = {a₁, a₂…}, V(q) = {a₂, a₃…}.
Valuation can also be written as V(a₁) = {p}, etc.
M, a₁ ⊨ □ □ (p ∨ q)
M, a₂ ⊨ ◇ q → ◇ ◇ q
Change V by making p true in all states.
⊨ □ (p → q) → (◇ p → ◇ q)
Remember: □ φ is true if no successor, ◇ φ is false if no successor.
⊨ □ (p ∧ q) → (◇ p ∧ ◇ q)
□ (□ p → p) → □ p
No. Counterexample:
digraph g {
rankdir="LR"
1 -> 2
2 -> 3
3 -> 4
}
First, draw a picture:
digraph g {
1 [label="1", xlabel="p"]
2 [label="2", xlabel="p"]
1 -> 3
1 -> 4
2 -> 1
3 -> 2
3 -> 3
4 -> 3
}
Then, create a tree:
digraph g {
root [label="M, 1 ⊨ ◇ □ ◇ p", xlabel="Turn: V"]
l11 [label="M, 4 ⊨ □ ◇ p", xlabel="Turn: F"]; root -> l11
r11 [label="M, 3 ⊨ □ ◇ p", xlabel="Turn: F"]; root -> r11
// right branch
r21 [label="M, 3 ⊨ ◇ p", xlabel="Turn: V"]; r11 -> r21
r31 [label="M, 2 ⊨ p."]; r21 -> r31; r31 -> r41; r41 [label="Verifier wins."]
r32 [label="M, 3 ⊨ p."]; r21 -> r32; r32 -> r42; r42 [label="Falsifier wins."]
r22 [label="M, 2 ⊨ ◇ p", xlabel="Turn: V"]; r11 -> r22
r33 [label="M, 1 ⊨ p."]; r22 -> r33; r33 -> r43; r43 [label="Verifier wins."]
// left branch
l11 -> r21
}
We cannot influence falsifier here since we play as verifier (trying to show that it holds). But no matter what falsifier does, verifier has a winning strategy.