Introduction to Formal Methods Chapter 03: Temporal Logics
Roberto Sebastiani
DISI, Università di Trento, Italy – roberto.sebastiani@unitn.it URL: http://disi.unitn.it/rseba/DIDATTICA/fm2020/
Teaching assistant:Enrico Magnago– enrico.magnago@unitn.it
CDLM in Informatica, academic year 2019-2020
last update: Monday 18thMay, 2020, 14:48
Copyright notice: some material (text, figures) displayed in these slides is courtesy of R. Alur, M. Benerecetti, A. Cimatti, M.
Di Natale, P. Pandya, M. Pistore, M. Roveri, and S.Tonetta, who detain its copyright. Some exampes displayed in these slides are taken from [Clarke, Grunberg & Peled, “Model Checking”, MIT Press], and their copyright is detained by the authors. All the other material is copyrighted by Roberto Sebastiani. Every commercial use of this material is strictly forbidden by the copyright laws without the authorization of the authors. No copy of these slides can be displayed in public
without containing this copyright notice.
Outline
1 Some background on Boolean Logic
2 Generalities on temporal logics
3 Linear Temporal Logic – LTL
4 Some LTL Model Checking Examples
5 Computation Tree Logic – CTL
6 Some CTL Model Checking Examples
7 LTL vs. CTL
8 Fairness & Fair Kripke Models
9 Exercises
Some background on Boolean Logic
Outline
1 Some background on Boolean Logic
2 Generalities on temporal logics
3 Linear Temporal Logic – LTL
4 Some LTL Model Checking Examples
5 Computation Tree Logic – CTL
6 Some CTL Model Checking Examples
7 LTL vs. CTL
8 Fairness & Fair Kripke Models
9 Exercises
Some background on Boolean Logic
Boolean logic
Some background on Boolean Logic
Basic notation & definitions
Boolean formula
>, ⊥ are formulas
Apropositional atomA1,A2,A3, ...is a formula;
if ϕ1and ϕ2are formulas, then
¬ϕ1, ϕ1∧ ϕ2, ϕ1∨ ϕ2, ϕ1→ ϕ2, ϕ1← ϕ2, ϕ1↔ ϕ2 are formulas.
Atoms(ϕ): the set {A1, ...,AN} of atoms occurring in ϕ.
Literal: a propositional atom Ai (positive literal) or its negation ¬Ai (negative literal)
Notation: if l := ¬Ai, then ¬l := Ai Clause: a disjunction of literalsW
jlj (e.g.,(A1∨ ¬A2∨ A3∨ ...)) Cube:a conjunction of literalsV
jlj(e.g.,(A1∧ ¬A2∧ A3∧ ...))
Some background on Boolean Logic
Semantics of Boolean operators
Truth table:
ϕ1 ϕ2 ¬ϕ1 ϕ1∧ ϕ2 ϕ1∨ ϕ2 ϕ1→ ϕ2 ϕ1← ϕ2 ϕ1↔ ϕ2
⊥ ⊥ > ⊥ ⊥ > > >
⊥ > > ⊥ > > ⊥ ⊥
> ⊥ ⊥ ⊥ > ⊥ > ⊥
> > ⊥ > > > > >
Note
∧, ∨ and ↔ are commutative: (ϕ1∧ ϕ2) ⇐⇒ (ϕ2∧ ϕ1) (ϕ1∨ ϕ2) ⇐⇒ (ϕ2∨ ϕ1) (ϕ1↔ ϕ2) ⇐⇒ (ϕ2↔ ϕ1)
∧ and ∨ are associative:
((ϕ1∧ ϕ2) ∧ ϕ3) ⇐⇒ (ϕ1∧ (ϕ2∧ ϕ3)) ⇐⇒ (ϕ1∧ ϕ2∧ ϕ3) ((ϕ1∨ ϕ2) ∨ ϕ3) ⇐⇒ (ϕ1∨ (ϕ2∨ ϕ3)) ⇐⇒ (ϕ1∨ ϕ2∨ ϕ3)
Some background on Boolean Logic
Semantics of Boolean operators
Truth table:
ϕ1 ϕ2 ¬ϕ1 ϕ1∧ ϕ2 ϕ1∨ ϕ2 ϕ1→ ϕ2 ϕ1← ϕ2 ϕ1↔ ϕ2
⊥ ⊥ > ⊥ ⊥ > > >
⊥ > > ⊥ > > ⊥ ⊥
> ⊥ ⊥ ⊥ > ⊥ > ⊥
> > ⊥ > > > > >
Note
∧, ∨ and ↔ are commutative:
(ϕ1∧ ϕ2) ⇐⇒ (ϕ2∧ ϕ1) (ϕ1∨ ϕ2) ⇐⇒ (ϕ2∨ ϕ1) (ϕ1↔ ϕ2) ⇐⇒ (ϕ2↔ ϕ1)
∧ and ∨ are associative:
((ϕ1∧ ϕ2) ∧ ϕ3) ⇐⇒ (ϕ1∧ (ϕ2∧ ϕ3)) ⇐⇒ (ϕ1∧ ϕ2∧ ϕ3) ((ϕ1∨ ϕ2) ∨ ϕ3) ⇐⇒ (ϕ1∨ (ϕ2∨ ϕ3)) ⇐⇒ (ϕ1∨ ϕ2∨ ϕ3)
Some background on Boolean Logic
Syntactic Properties of Boolean Operators
¬¬ϕ1 ⇐⇒ ϕ1
(ϕ1∨ ϕ2) ⇐⇒ ¬(¬ϕ1∧ ¬ϕ2)
¬(ϕ1∨ ϕ2) ⇐⇒ (¬ϕ1∧ ¬ϕ2) (ϕ1∧ ϕ2) ⇐⇒ ¬(¬ϕ1∨ ¬ϕ2)
¬(ϕ1∧ ϕ2) ⇐⇒ (¬ϕ1∨ ¬ϕ2) (ϕ1→ ϕ2) ⇐⇒ (¬ϕ1∨ ϕ2)
¬(ϕ1→ ϕ2) ⇐⇒ (ϕ1∧ ¬ϕ2) (ϕ1← ϕ2) ⇐⇒ (ϕ1∨ ¬ϕ2)
¬(ϕ1← ϕ2) ⇐⇒ (¬ϕ1∧ ϕ2)
(ϕ1↔ ϕ2) ⇐⇒ ((ϕ1→ ϕ2) ∧ (ϕ1← ϕ2))
⇐⇒ ((¬ϕ1∨ ϕ2) ∧ (ϕ1∨ ¬ϕ2))
¬(ϕ1↔ ϕ2) ⇐⇒ (¬ϕ1↔ ϕ2)
⇐⇒ (ϕ1↔ ¬ϕ2)
⇐⇒ ((ϕ1∨ ϕ2) ∧ (¬ϕ1∨ ¬ϕ2))
Boolean logic can be expressed in terms of {¬, ∧} (or {¬, ∨}) only
Some background on Boolean Logic
Syntactic Properties of Boolean Operators
¬¬ϕ1 ⇐⇒ ϕ1
(ϕ1∨ ϕ2) ⇐⇒ ¬(¬ϕ1∧ ¬ϕ2)
¬(ϕ1∨ ϕ2) ⇐⇒ (¬ϕ1∧ ¬ϕ2) (ϕ1∧ ϕ2) ⇐⇒ ¬(¬ϕ1∨ ¬ϕ2)
¬(ϕ1∧ ϕ2) ⇐⇒ (¬ϕ1∨ ¬ϕ2) (ϕ1→ ϕ2) ⇐⇒ (¬ϕ1∨ ϕ2)
¬(ϕ1→ ϕ2) ⇐⇒ (ϕ1∧ ¬ϕ2) (ϕ1← ϕ2) ⇐⇒ (ϕ1∨ ¬ϕ2)
¬(ϕ1← ϕ2) ⇐⇒ (¬ϕ1∧ ϕ2)
(ϕ1↔ ϕ2) ⇐⇒ ((ϕ1→ ϕ2) ∧ (ϕ1← ϕ2))
⇐⇒ ((¬ϕ1∨ ϕ2) ∧ (ϕ1∨ ¬ϕ2))
¬(ϕ1↔ ϕ2) ⇐⇒ (¬ϕ1↔ ϕ2)
⇐⇒ (ϕ1↔ ¬ϕ2)
⇐⇒ ((ϕ1∨ ϕ2) ∧ (¬ϕ1∨ ¬ϕ2))
Boolean logic can be expressed in terms of {¬, ∧} (or {¬, ∨}) only
Some background on Boolean Logic
TREE and DAG representation of formulas: example
Formulas can be represented either as trees or as DAGS:
DAG representation can be up to exponentially smaller (A1↔ A2) ↔ (A3↔ A4)
⇓
(((A1↔ A2) → (A3↔ A4))∧ ((A3↔ A4) → (A1↔ A2)))
⇓
(((A1→ A2) ∧ (A2→ A1)) → ((A3→ A4) ∧ (A4→ A3)))∧ (((A3→ A4) ∧ (A4→ A3)) → (((A1→ A2) ∧ (A2→ A1))))
Some background on Boolean Logic
TREE and DAG representation of formulas: example
Formulas can be represented either as trees or as DAGS:
DAG representation can be up to exponentially smaller (A1↔ A2) ↔ (A3↔ A4)
⇓
(((A1↔ A2) → (A3↔ A4))∧
((A3↔ A4) → (A1↔ A2)))
⇓
(((A1→ A2) ∧ (A2→ A1)) → ((A3→ A4) ∧ (A4→ A3)))∧ (((A3→ A4) ∧ (A4→ A3)) → (((A1→ A2) ∧ (A2→ A1))))
Some background on Boolean Logic
TREE and DAG representation of formulas: example
Formulas can be represented either as trees or as DAGS:
DAG representation can be up to exponentially smaller (A1↔ A2) ↔ (A3↔ A4)
⇓
(((A1↔ A2) → (A3↔ A4))∧
((A3↔ A4) → (A1↔ A2)))
⇓
(((A1→ A2) ∧ (A2→ A1)) → ((A3→ A4) ∧ (A4→ A3)))∧
(((A3→ A4) ∧ (A4→ A3)) → (((A1→ A2) ∧ (A2→ A1))))
Some background on Boolean Logic
TREE and DAG representation of formulas: example (cont)
Tree Representation
DAG Representation
A1 A2 A2 A1 A3 A4 A4 A3 A3 A4 A4 A3 A1 A2 A2 A1
A2
A1 A3 A4
Some background on Boolean Logic
Basic notation & definitions (cont)
Total truth assignmentµfor ϕ:
µ :Atoms(ϕ) 7−→ {>, ⊥}.
Partial Truth assignmentµfor ϕ:
µ : A 7−→ {>, ⊥}, A ⊂ Atoms(ϕ).
Set and formula representation of an assignment:
µcan be represented as a set of literals:
EX:{µ(A1) := >, µ(A2) := ⊥} =⇒ {A1, ¬A2} µcan be represented as a formula (cube):
EX:{µ(A1) := >, µ(A2) := ⊥} =⇒ (A1∧ ¬A2)
Some background on Boolean Logic
Basic notation & definitions (cont)
atotaltruth assignmentµsatisfies ϕ(µ |= ϕ):
µ |=Ai ⇐⇒ µ(Ai) = >
µ |= ¬ϕ ⇐⇒not µ |= ϕ
µ |= ϕ1∧ ϕ2⇐⇒ µ |= ϕ1and µ |= ϕ2 µ |= ϕ1∨ ϕ2⇐⇒ µ |= ϕ1or µ |= ϕ2 µ |= ϕ1→ ϕ2⇐⇒ if µ |= ϕ1, then µ |= ϕ2 µ |= ϕ1↔ ϕ2⇐⇒ µ |= ϕ1iff µ |= ϕ2
apartialtruth assignmentµsatisfies ϕiff it makes ϕ evaluate to true (Ex: {A1} |= (A1∨ A2))
=⇒ if µ satisfies ϕ, then all its total extensions satisfy ϕ (Ex:{A1,A2} |= (A1∨ A2)and{A1, ¬A2} |= (A1∨ A2)) ϕissatisfiableiff µ |= ϕ for some µ
ϕ1entails ϕ2(ϕ1|= ϕ2): ϕ1|= ϕ2iff µ |= ϕ1=⇒ µ |= ϕ2for every µ ϕis valid(|= ϕ): |= ϕ iff µ |= ϕ for every µ
Property
ϕis valid ⇐⇒ ¬ϕ is not satisfiable
Some background on Boolean Logic
Basic notation & definitions (cont)
atotaltruth assignmentµsatisfies ϕ(µ |= ϕ):
µ |=Ai ⇐⇒ µ(Ai) = >
µ |= ¬ϕ ⇐⇒not µ |= ϕ
µ |= ϕ1∧ ϕ2⇐⇒ µ |= ϕ1and µ |= ϕ2 µ |= ϕ1∨ ϕ2⇐⇒ µ |= ϕ1or µ |= ϕ2 µ |= ϕ1→ ϕ2⇐⇒ if µ |= ϕ1, then µ |= ϕ2 µ |= ϕ1↔ ϕ2⇐⇒ µ |= ϕ1iff µ |= ϕ2
apartialtruth assignmentµsatisfies ϕiff it makes ϕ evaluate to true (Ex: {A1} |= (A1∨ A2))
=⇒ if µ satisfies ϕ, then all its total extensions satisfy ϕ (Ex:{A1,A2} |= (A1∨ A2)and{A1, ¬A2} |= (A1∨ A2))
ϕissatisfiableiff µ |= ϕ for some µ
ϕ1entails ϕ2(ϕ1|= ϕ2): ϕ1|= ϕ2iff µ |= ϕ1=⇒ µ |= ϕ2for every µ ϕis valid(|= ϕ): |= ϕ iff µ |= ϕ for every µ
Property
ϕis valid ⇐⇒ ¬ϕ is not satisfiable
Some background on Boolean Logic
Basic notation & definitions (cont)
atotaltruth assignmentµsatisfies ϕ(µ |= ϕ):
µ |=Ai ⇐⇒ µ(Ai) = >
µ |= ¬ϕ ⇐⇒not µ |= ϕ
µ |= ϕ1∧ ϕ2⇐⇒ µ |= ϕ1and µ |= ϕ2 µ |= ϕ1∨ ϕ2⇐⇒ µ |= ϕ1or µ |= ϕ2 µ |= ϕ1→ ϕ2⇐⇒ if µ |= ϕ1, then µ |= ϕ2 µ |= ϕ1↔ ϕ2⇐⇒ µ |= ϕ1iff µ |= ϕ2
apartialtruth assignmentµsatisfies ϕiff it makes ϕ evaluate to true (Ex: {A1} |= (A1∨ A2))
=⇒ if µ satisfies ϕ, then all its total extensions satisfy ϕ (Ex:{A1,A2} |= (A1∨ A2)and{A1, ¬A2} |= (A1∨ A2)) ϕissatisfiableiff µ |= ϕ for some µ
ϕ1entails ϕ2(ϕ1|= ϕ2): ϕ1|= ϕ2iff µ |= ϕ1=⇒ µ |= ϕ2for every µ ϕis valid(|= ϕ): |= ϕ iff µ |= ϕ for every µ
Property
ϕis valid ⇐⇒ ¬ϕ is not satisfiable
Some background on Boolean Logic
Basic notation & definitions (cont)
atotaltruth assignmentµsatisfies ϕ(µ |= ϕ):
µ |=Ai ⇐⇒ µ(Ai) = >
µ |= ¬ϕ ⇐⇒not µ |= ϕ
µ |= ϕ1∧ ϕ2⇐⇒ µ |= ϕ1and µ |= ϕ2 µ |= ϕ1∨ ϕ2⇐⇒ µ |= ϕ1or µ |= ϕ2 µ |= ϕ1→ ϕ2⇐⇒ if µ |= ϕ1, then µ |= ϕ2 µ |= ϕ1↔ ϕ2⇐⇒ µ |= ϕ1iff µ |= ϕ2
apartialtruth assignmentµsatisfies ϕiff it makes ϕ evaluate to true (Ex: {A1} |= (A1∨ A2))
=⇒ if µ satisfies ϕ, then all its total extensions satisfy ϕ (Ex:{A1,A2} |= (A1∨ A2)and{A1, ¬A2} |= (A1∨ A2)) ϕissatisfiableiff µ |= ϕ for some µ
ϕ1entails ϕ2(ϕ1|= ϕ2): ϕ1|= ϕ2iff µ |= ϕ1=⇒ µ |= ϕ2for every µ
ϕis valid(|= ϕ): |= ϕ iff µ |= ϕ for every µ Property
ϕis valid ⇐⇒ ¬ϕ is not satisfiable
Some background on Boolean Logic
Basic notation & definitions (cont)
atotaltruth assignmentµsatisfies ϕ(µ |= ϕ):
µ |=Ai ⇐⇒ µ(Ai) = >
µ |= ¬ϕ ⇐⇒not µ |= ϕ
µ |= ϕ1∧ ϕ2⇐⇒ µ |= ϕ1and µ |= ϕ2 µ |= ϕ1∨ ϕ2⇐⇒ µ |= ϕ1or µ |= ϕ2 µ |= ϕ1→ ϕ2⇐⇒ if µ |= ϕ1, then µ |= ϕ2 µ |= ϕ1↔ ϕ2⇐⇒ µ |= ϕ1iff µ |= ϕ2
apartialtruth assignmentµsatisfies ϕiff it makes ϕ evaluate to true (Ex: {A1} |= (A1∨ A2))
=⇒ if µ satisfies ϕ, then all its total extensions satisfy ϕ (Ex:{A1,A2} |= (A1∨ A2)and{A1, ¬A2} |= (A1∨ A2)) ϕissatisfiableiff µ |= ϕ for some µ
ϕ1entails ϕ2(ϕ1|= ϕ2): ϕ1|= ϕ2iff µ |= ϕ1=⇒ µ |= ϕ2for every µ ϕis valid(|= ϕ): |= ϕ iff µ |= ϕ for every µ
Property
ϕis valid ⇐⇒ ¬ϕ is not satisfiable
Some background on Boolean Logic
Basic notation & definitions (cont)
atotaltruth assignmentµsatisfies ϕ(µ |= ϕ):
µ |=Ai ⇐⇒ µ(Ai) = >
µ |= ¬ϕ ⇐⇒not µ |= ϕ
µ |= ϕ1∧ ϕ2⇐⇒ µ |= ϕ1and µ |= ϕ2 µ |= ϕ1∨ ϕ2⇐⇒ µ |= ϕ1or µ |= ϕ2 µ |= ϕ1→ ϕ2⇐⇒ if µ |= ϕ1, then µ |= ϕ2 µ |= ϕ1↔ ϕ2⇐⇒ µ |= ϕ1iff µ |= ϕ2
apartialtruth assignmentµsatisfies ϕiff it makes ϕ evaluate to true (Ex: {A1} |= (A1∨ A2))
=⇒ if µ satisfies ϕ, then all its total extensions satisfy ϕ (Ex:{A1,A2} |= (A1∨ A2)and{A1, ¬A2} |= (A1∨ A2)) ϕissatisfiableiff µ |= ϕ for some µ
ϕ1entails ϕ2(ϕ1|= ϕ2): ϕ1|= ϕ2iff µ |= ϕ1=⇒ µ |= ϕ2for every µ ϕis valid(|= ϕ): |= ϕ iff µ |= ϕ for every µ
Property
ϕis valid ⇐⇒ ¬ϕ is not satisfiable
Some background on Boolean Logic
Equivalence and equi-satisfiability
ϕ1and ϕ2areequivalent iff, for every µ, µ |= ϕ1iff µ |= ϕ2
ϕ1and ϕ2areequi-satisfiableiff
exists µ1s.t. µ1|= ϕ1iff exists µ2s.t. µ2|= ϕ2 ϕ1, ϕ2equivalent
⇓ 6⇑
ϕ1, ϕ2equi-satisfiable EX:ϕ1
def= ψ1∨ ψ2andϕ2
def= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)s.t.A3not in ψ1∨ ψ2, are equi-satisfiable but not equivalent:
µ |= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)=⇒µ |= ψ1∨ ψ2
µ0|= ψ1∨ ψ2=⇒µ0∧ A3|= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)or µ0∧ ¬A3|= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)[ϕ1, ϕ2equi-satisfiable] µ06|= ψ1andµ0|= ψ2=⇒µ0∧ A3|= ψ1∨ ψ2and
µ0∧ A36|= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)[ϕ1, ϕ2not equivalent]
Typically used when ϕ2is the result of applying some transformation T to ϕ1: ϕ2def=T (ϕ1):
we say that T isvalidity-preserving[satisfiability-preserving] iff T (ϕ1)and ϕ1are equivalent [equi-satisfiable]
Some background on Boolean Logic
Equivalence and equi-satisfiability
ϕ1and ϕ2areequivalent iff, for every µ, µ |= ϕ1iff µ |= ϕ2 ϕ1and ϕ2areequi-satisfiableiff
exists µ1s.t. µ1|= ϕ1iff exists µ2s.t. µ2|= ϕ2
ϕ1, ϕ2equivalent
⇓ 6⇑
ϕ1, ϕ2equi-satisfiable EX:ϕ1
def= ψ1∨ ψ2andϕ2
def= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)s.t.A3not in ψ1∨ ψ2, are equi-satisfiable but not equivalent:
µ |= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)=⇒µ |= ψ1∨ ψ2
µ0|= ψ1∨ ψ2=⇒µ0∧ A3|= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)or µ0∧ ¬A3|= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)[ϕ1, ϕ2equi-satisfiable] µ06|= ψ1andµ0|= ψ2=⇒µ0∧ A3|= ψ1∨ ψ2and
µ0∧ A36|= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)[ϕ1, ϕ2not equivalent]
Typically used when ϕ2is the result of applying some transformation T to ϕ1: ϕ2def=T (ϕ1):
we say that T isvalidity-preserving[satisfiability-preserving] iff T (ϕ1)and ϕ1are equivalent [equi-satisfiable]
Some background on Boolean Logic
Equivalence and equi-satisfiability
ϕ1and ϕ2areequivalent iff, for every µ, µ |= ϕ1iff µ |= ϕ2 ϕ1and ϕ2areequi-satisfiableiff
exists µ1s.t. µ1|= ϕ1iff exists µ2s.t. µ2|= ϕ2 ϕ1, ϕ2equivalent
⇓ 6⇑
ϕ1, ϕ2equi-satisfiable
EX:ϕ1
def= ψ1∨ ψ2andϕ2
def= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)s.t.A3not in ψ1∨ ψ2, are equi-satisfiable but not equivalent:
µ |= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)=⇒µ |= ψ1∨ ψ2
µ0|= ψ1∨ ψ2=⇒µ0∧ A3|= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)or µ0∧ ¬A3|= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)[ϕ1, ϕ2equi-satisfiable] µ06|= ψ1andµ0|= ψ2=⇒µ0∧ A3|= ψ1∨ ψ2and
µ0∧ A36|= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)[ϕ1, ϕ2not equivalent]
Typically used when ϕ2is the result of applying some transformation T to ϕ1: ϕ2def=T (ϕ1):
we say that T isvalidity-preserving[satisfiability-preserving] iff T (ϕ1)and ϕ1are equivalent [equi-satisfiable]
Some background on Boolean Logic
Equivalence and equi-satisfiability
ϕ1and ϕ2areequivalent iff, for every µ, µ |= ϕ1iff µ |= ϕ2 ϕ1and ϕ2areequi-satisfiableiff
exists µ1s.t. µ1|= ϕ1iff exists µ2s.t. µ2|= ϕ2 ϕ1, ϕ2equivalent
⇓ 6⇑
ϕ1, ϕ2equi-satisfiable EX:ϕ1
def= ψ1∨ ψ2andϕ2
def= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)s.t.A3not in ψ1∨ ψ2, are equi-satisfiable but not equivalent:
µ |= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)=⇒µ |= ψ1∨ ψ2
µ0|= ψ1∨ ψ2=⇒µ0∧ A3|= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)or µ0∧ ¬A3|= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)[ϕ1, ϕ2equi-satisfiable] µ06|= ψ1andµ0|= ψ2=⇒µ0∧ A3|= ψ1∨ ψ2and
µ0∧ A36|= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)[ϕ1, ϕ2not equivalent] Typically used when ϕ2is the result of applying some transformation T to ϕ1: ϕ2def=T (ϕ1):
we say that T isvalidity-preserving[satisfiability-preserving] iff T (ϕ1)and ϕ1are equivalent [equi-satisfiable]
Some background on Boolean Logic
Equivalence and equi-satisfiability
ϕ1and ϕ2areequivalent iff, for every µ, µ |= ϕ1iff µ |= ϕ2 ϕ1and ϕ2areequi-satisfiableiff
exists µ1s.t. µ1|= ϕ1iff exists µ2s.t. µ2|= ϕ2 ϕ1, ϕ2equivalent
⇓ 6⇑
ϕ1, ϕ2equi-satisfiable EX:ϕ1
def= ψ1∨ ψ2andϕ2
def= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)s.t.A3not in ψ1∨ ψ2, are equi-satisfiable but not equivalent:
µ |= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)=⇒µ |= ψ1∨ ψ2
µ0|= ψ1∨ ψ2=⇒µ0∧ A3|= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)or µ0∧ ¬A3|= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)[ϕ1, ϕ2equi-satisfiable] µ06|= ψ1andµ0|= ψ2=⇒µ0∧ A3|= ψ1∨ ψ2and
µ0∧ A36|= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)[ϕ1, ϕ2not equivalent] Typically used when ϕ2is the result of applying some transformation T to ϕ1: ϕ2def=T (ϕ1):
we say that T isvalidity-preserving[satisfiability-preserving] iff T (ϕ1)and ϕ1are equivalent [equi-satisfiable]
Some background on Boolean Logic
Equivalence and equi-satisfiability
ϕ1and ϕ2areequivalent iff, for every µ, µ |= ϕ1iff µ |= ϕ2 ϕ1and ϕ2areequi-satisfiableiff
exists µ1s.t. µ1|= ϕ1iff exists µ2s.t. µ2|= ϕ2 ϕ1, ϕ2equivalent
⇓ 6⇑
ϕ1, ϕ2equi-satisfiable EX:ϕ1
def= ψ1∨ ψ2andϕ2
def= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)s.t.A3not in ψ1∨ ψ2, are equi-satisfiable but not equivalent:
µ |= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)=⇒µ |= ψ1∨ ψ2
µ0|= ψ1∨ ψ2=⇒µ0∧ A3|= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)or µ0∧ ¬A3|= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)[ϕ1, ϕ2equi-satisfiable]
µ06|= ψ1andµ0|= ψ2=⇒µ0∧ A3|= ψ1∨ ψ2and
µ0∧ A36|= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)[ϕ1, ϕ2not equivalent] Typically used when ϕ2is the result of applying some transformation T to ϕ1: ϕ2def=T (ϕ1):
we say that T isvalidity-preserving[satisfiability-preserving] iff T (ϕ1)and ϕ1are equivalent [equi-satisfiable]
Some background on Boolean Logic
Equivalence and equi-satisfiability
ϕ1and ϕ2areequivalent iff, for every µ, µ |= ϕ1iff µ |= ϕ2 ϕ1and ϕ2areequi-satisfiableiff
exists µ1s.t. µ1|= ϕ1iff exists µ2s.t. µ2|= ϕ2 ϕ1, ϕ2equivalent
⇓ 6⇑
ϕ1, ϕ2equi-satisfiable EX:ϕ1
def= ψ1∨ ψ2andϕ2
def= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)s.t.A3not in ψ1∨ ψ2, are equi-satisfiable but not equivalent:
µ |= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)=⇒µ |= ψ1∨ ψ2
µ0|= ψ1∨ ψ2=⇒µ0∧ A3|= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)or µ0∧ ¬A3|= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)[ϕ1, ϕ2equi-satisfiable]
µ06|= ψ1andµ0|= ψ2=⇒µ0∧ A3|= ψ1∨ ψ2and
µ0∧ A36|= (ψ1∨ ¬A3) ∧ (A3∨ ψ2)[ϕ1, ϕ2not equivalent]
Typically used when ϕ2is the result of applying some transformation T to ϕ1: ϕ2def=T (ϕ1):
we say that T isvalidity-preserving[satisfiability-preserving] iff T (ϕ1)and ϕ1are equivalent [equi-satisfiable]