• Non ci sono risultati.

Introduction to Formal Methods Chapter 03: Temporal Logics

N/A
N/A
Protected

Academic year: 2021

Condividi "Introduction to Formal Methods Chapter 03: Temporal Logics"

Copied!
239
0
0

Testo completo

(1)

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.

(2)

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

(3)

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

(4)

Some background on Boolean Logic

Boolean logic

(5)

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∧ ...))

(6)

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)

(7)

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)

(8)

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

(9)

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

(10)

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))))

(11)

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))))

(12)

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))))

(13)

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

(14)

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)

(15)

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 ϕ21|= ϕ2): ϕ1|= ϕ2iff µ |= ϕ1=⇒ µ |= ϕ2for every µ ϕis valid(|= ϕ): |= ϕ iff µ |= ϕ for every µ

Property

ϕis valid ⇐⇒ ¬ϕ is not satisfiable

(16)

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 ϕ21|= ϕ2): ϕ1|= ϕ2iff µ |= ϕ1=⇒ µ |= ϕ2for every µ ϕis valid(|= ϕ): |= ϕ iff µ |= ϕ for every µ

Property

ϕis valid ⇐⇒ ¬ϕ is not satisfiable

(17)

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 ϕ21|= ϕ2): ϕ1|= ϕ2iff µ |= ϕ1=⇒ µ |= ϕ2for every µ ϕis valid(|= ϕ): |= ϕ iff µ |= ϕ for every µ

Property

ϕis valid ⇐⇒ ¬ϕ is not satisfiable

(18)

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 ϕ21|= ϕ2): ϕ1|= ϕ2iff µ |= ϕ1=⇒ µ |= ϕ2for every µ

ϕis valid(|= ϕ): |= ϕ iff µ |= ϕ for every µ Property

ϕis valid ⇐⇒ ¬ϕ is not satisfiable

(19)

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 ϕ21|= ϕ2): ϕ1|= ϕ2iff µ |= ϕ1=⇒ µ |= ϕ2for every µ ϕis valid(|= ϕ): |= ϕ iff µ |= ϕ for every µ

Property

ϕis valid ⇐⇒ ¬ϕ is not satisfiable

(20)

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 ϕ21|= ϕ2): ϕ1|= ϕ2iff µ |= ϕ1=⇒ µ |= ϕ2for every µ ϕis valid(|= ϕ): |= ϕ iff µ |= ϕ for every µ

Property

ϕis valid ⇐⇒ ¬ϕ is not satisfiable

(21)

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]

(22)

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]

(23)

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]

(24)

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]

(25)

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]

(26)

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]

(27)

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]

Riferimenti

Documenti correlati

More precisely, one has to prove a Hopf’s boundary point comparison principle between the solution and the solution in the Wulff shape and then can expect to prove a symmetry result

The assumption of duties, in fact, as already mentioned, does not present any evidence of asset, or if detected only in case of manufacturing the product, or if

Without loss of generality we may assume that A, B, C are complex numbers along the unit circle. |z|

It is then clearly preferable to consider the majority of the g1ven values rather than to choose an arbitrary set, composed of the smallest number of discrete values necessary

Reviewing, Testing & Simulation (currently mostly used) Formal verification methods (increasingly used)... Problems with

interpreted over each path of the Kripke structure linear model of time.

=⇒ It is reasonable enough to assume the protocol suitable under the condition that each user is infinitely often outside the restroom.. Such a condition is called

We also extend to Orlicz spaces the Birkhoff’s pointwise ergodic theorem, and L p -inequalities on some maximal oper- ators, using a transfer argument which follows Wiener