• Non ci sono risultati.

Introduction to Formal Methods Chapter 02: Modeling Transition Systems

N/A
N/A
Protected

Academic year: 2021

Condividi "Introduction to Formal Methods Chapter 02: Modeling Transition Systems"

Copied!
51
0
0

Testo completo

(1)

Introduction to Formal Methods Chapter 02: Modeling Transition Systems

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.

th

(2)

Outline

1

Transition Systems as Kripke Models

2

Languages for Transition Systems

3

Properties of Transition Systems

(3)

Outline

1

Transition Systems as Kripke Models

2

Languages for Transition Systems

3

Properties of Transition Systems

th

(4)

Transition Systems as Kripke Models

Modeling the system: Kripke models

Kripke models are used to describe reactive systems:

nonterminating systems withinfinitebehaviors (e.g. communication protocols, hardware circuits);

represent thedynamic evolutionof modeled systems;

a state includes values to state variables, program counters, content of communication channels.

can be animated and validated before their actual implementation

(5)

Transition Systems as Kripke Models

Kripke model: formal definition

A Kripke model hS, I, R, AP, Li consists of

a set of initial states I ⊆ S; a set of transitions R ⊆ S × S; a set of atomic propositions (Boolean variables) AP;

a labeling function L : S 7−→ 2AP.

We assume R Total: for every state s, there exists (at least) one state s

0

s.t. (s, s

0

) ∈ R Sometimes we use variables with discrete bounded values v

i

∈ {d

1

, ..., d

k

} (can be encoded with dlog(k )e Boolean variables)

p q

1

2

3 4

p

Remark

Unlike with other types of Automata (e.g., Buechi), in Kripke structures the value of every variable is always assigned in each state.

th

(6)

Transition Systems as Kripke Models

Kripke model: formal definition

A Kripke model hS, I, R, AP, Li consists of

afiniteset of states S;

a set of initial states I ⊆ S; a set of transitions R ⊆ S × S; a set of atomic propositions (Boolean variables) AP;

a labeling function L : S 7−→ 2AP.

We assume R Total: for every state s, there exists (at least) one state s

0

s.t. (s, s

0

) ∈ R Sometimes we use variables with discrete bounded values v

i

∈ {d

1

, ..., d

k

} (can be encoded with dlog(k )e Boolean variables)

p q

1

2

3 4

p

Remark

Unlike with other types of Automata (e.g., Buechi), in Kripke structures

the value of every variable is always assigned in each state.

(7)

Transition Systems as Kripke Models

Kripke model: formal definition

A Kripke model hS, I, R, AP, Li consists of

afiniteset of states S;

a set of initial states I ⊆ S;

a set of atomic propositions (Boolean variables) AP;

a labeling function L : S 7−→ 2AP.

We assume R Total: for every state s, there exists (at least) one state s

0

s.t. (s, s

0

) ∈ R Sometimes we use variables with discrete bounded values v

i

∈ {d

1

, ..., d

k

} (can be encoded with dlog(k )e Boolean variables)

p q

1

2

3 4

p

Remark

Unlike with other types of Automata (e.g., Buechi), in Kripke structures the value of every variable is always assigned in each state.

th

(8)

Transition Systems as Kripke Models

Kripke model: formal definition

A Kripke model hS, I, R, AP, Li consists of

afiniteset of states S;

a set of initial states I ⊆ S;

a set of transitions R ⊆ S × S;

a set of atomic propositions (Boolean variables) AP;

a labeling function L : S 7−→ 2AP.

We assume R Total: for every state s, there exists (at least) one state s

0

s.t. (s, s

0

) ∈ R Sometimes we use variables with discrete bounded values v

i

∈ {d

1

, ..., d

k

} (can be encoded with dlog(k )e Boolean variables)

p q

1

2

3 4

p

Remark

Unlike with other types of Automata (e.g., Buechi), in Kripke structures

the value of every variable is always assigned in each state.

(9)

Transition Systems as Kripke Models

Kripke model: formal definition

A Kripke model hS, I, R, AP, Li consists of

afiniteset of states S;

a set of initial states I ⊆ S;

a set of transitions R ⊆ S × S;

a set of atomic propositions (Boolean variables) AP;

We assume R Total: for every state s, there exists (at least) one state s

0

s.t. (s, s

0

) ∈ R Sometimes we use variables with discrete bounded values v

i

∈ {d

1

, ..., d

k

} (can be encoded with dlog(k )e Boolean variables)

p q

1

2

3 4

p

Remark

Unlike with other types of Automata (e.g., Buechi), in Kripke structures the value of every variable is always assigned in each state.

th

(10)

Transition Systems as Kripke Models

Kripke model: formal definition

A Kripke model hS, I, R, AP, Li consists of

afiniteset of states S;

a set of initial states I ⊆ S;

a set of transitions R ⊆ S × S;

a set of atomic propositions (Boolean variables) AP;

a labeling function L : S 7−→ 2AP.

We assume R Total: for every state s, there exists (at least) one state s

0

s.t. (s, s

0

) ∈ R Sometimes we use variables with discrete bounded values v

i

∈ {d

1

, ..., d

k

} (can be encoded with dlog(k )e Boolean variables)

p q

1

2

3 4

p

Remark

Unlike with other types of Automata (e.g., Buechi), in Kripke structures

the value of every variable is always assigned in each state.

(11)

Transition Systems as Kripke Models

Kripke model: formal definition

A Kripke model hS, I, R, AP, Li consists of

afiniteset of states S;

a set of initial states I ⊆ S;

a set of transitions R ⊆ S × S;

a set of atomic propositions (Boolean variables) AP;

a labeling function L : S 7−→ 2AP.

We assume R Total: for every state s, there exists (at least) one state s

0

s.t. (s, s

0

) ∈ R

bounded values v

i

∈ {d

1

, ..., d

k

} (can be encoded with dlog(k )e Boolean variables)

p q

1

2

3 4

p

Remark

Unlike with other types of Automata (e.g., Buechi), in Kripke structures the value of every variable is always assigned in each state.

th

(12)

Transition Systems as Kripke Models

Kripke model: formal definition

A Kripke model hS, I, R, AP, Li consists of

afiniteset of states S;

a set of initial states I ⊆ S;

a set of transitions R ⊆ S × S;

a set of atomic propositions (Boolean variables) AP;

a labeling function L : S 7−→ 2AP.

We assume R Total: for every state s, there exists (at least) one state s

0

s.t. (s, s

0

) ∈ R Sometimes we use variables with discrete bounded values v

i

∈ {d

1

, ..., d

k

} (can be encoded with dlog(k )e Boolean variables)

p q

1

2

3 4

p

Remark

Unlike with other types of Automata (e.g., Buechi), in Kripke structures

the value of every variable is always assigned in each state.

(13)

Kripke model: formal definition

A Kripke model hS, I, R, AP, Li consists of

afiniteset of states S;

a set of initial states I ⊆ S;

a set of transitions R ⊆ S × S;

a set of atomic propositions (Boolean variables) AP;

a labeling function L : S 7−→ 2AP.

We assume R Total: for every state s, there exists (at least) one state s

0

s.t. (s, s

0

) ∈ R Sometimes we use variables with discrete bounded values v

i

∈ {d

1

, ..., d

k

} (can be encoded with dlog(k )e Boolean variables)

p q

1

2

3 4

p

Remark

Unlike with other types of Automata (e.g., Buechi), in Kripke structures the value of every variable is always assigned in each state.

th

(14)

Transition Systems as Kripke Models

Kripke Structures: two alternative representations:

each state identifies univocally the values of the atomic propositions which hold there

each state is labeled by a bit vector

{ } {q}

{p} {p, q}

(15)

Kripke Structures: two alternative representations:

each state identifies univocally the values of the atomic propositions which hold there

each state is labeled by a bit vector

{ } {q}

{p} {p, q}

0 0 0 1

1 0 1 1

th

(16)

Transition Systems as Kripke Models

Other representations of finite state machines

Moore machines

Mealy machines

Finite automata

Büchi automata

...

(17)

Example: a Kripke model for mutual exclusion

N1, N2 turn=0

turn=1

turn=2

turn=2

turn=2

turn=1 turn=1

turn=1

turn=2

T1, C2

N1, C2 T1, T2

T1, T2

N1, T2

C1, T2 C1, N2

T1, N2

N = noncritical, T = trying, C = critical User 1 User 2

th

(18)

Transition Systems as Kripke Models

Path in a Kripke Model

A path in a Kripke model M is an infinite sequence of states π = s

0

, s

1

, s

2

, . . . ∈ S

ω

such that s

0

∈ I and (s

i

, s

i+1

) ∈ R.

N1, N2 turn=0

N1, N2 turn=0

turn=1

turn=2 turn=2

turn=1 turn=1

turn=2

T1, C2 N1, C2 T1, T2

T1, T2

N1, T2

C1, T2 C1, N2

T1, N2

turn=1

turn=1 turn=1

T1, T2

C1, T2 C1, N2

T1, N2 turn=1

turn=2

turn=2 turn=2

turn=1 turn=1

turn=1

turn=2

T1, C2 N1, C2 T1, T2

T1, T2

N1, T2

C1, T2 C1, N2

T1, N2

(19)

Composing Kripke Models

Complex Kripke Models are tipically obtained by composition of smaller ones

Components can be combined via

asynchronouscomposition.

synchronouscomposition,

th

(20)

Transition Systems as Kripke Models

Asynchronous Composition

Interleaving of evolution of components.

At each time instant, one component is selected to perform a transition.

x = 1 x = 0

y = b y = b

x = 0 y = a

x = 1 y = a

y = b y = a

x = 1 x = 0

asynchronous

composition

(21)

Transition Systems as Kripke Models

Asynchronous Composition/Product: formal definition

Asynchronous product of Kripke models

Let M

1def

= hS

1

, I

1

, R

1

, AP

1

, L

1

i, M

2def

= hS

2

, I

2

, R

2

, AP

2

, L

2

i. Then the asynchronous product M

def

= M

1

||M

2

is M

def

= hS, I, R, AP, Li, where

S ⊆ S

1

× S

2

s.t.,

∀hs

1

, s

2

i ∈ S, ∀l ∈ AP

1

∩ AP

2

, l ∈ L

1

(s

1

) iff l ∈ L

2

(s

2

) I ⊆ I

1

× I

2

s.t. I ⊆ S

R(hs

1

, s

2

i, ht

1

, t

2

i) iff (R

1

(s

1

, t

1

) and s

2

= t

2

) or (s

1

= t

1

and R

2

(s

2

, t

2

)) AP = AP

1

∪ AP

2

L : S 7−→ 2

AP

s.t. L(hs

1

, s

2

i)

def

= L

1

(s

1

) ∪ L

2

(s

2

).

Note: combined states must agree on the values of Boolean variables.

(...(M

1

||M

2

)||...)||M

n

) = (M1||(M

2

||(...||M

n

)...) = M

1

||M

2

||...||M

n

th

(22)

Transition Systems as Kripke Models

Asynchronous Composition/Product: formal definition

Asynchronous product of Kripke models

Let M

1def

= hS

1

, I

1

, R

1

, AP

1

, L

1

i, M

2def

= hS

2

, I

2

, R

2

, AP

2

, L

2

i. Then the asynchronous product M

def

= M

1

||M

2

is M

def

= hS, I, R, AP, Li, where

S ⊆ S

1

× S

2

s.t.,

∀hs

1

, s

2

i ∈ S, ∀l ∈ AP

1

∩ AP

2

, l ∈ L

1

(s

1

) iff l ∈ L

2

(s

2

) I ⊆ I

1

× I

2

s.t. I ⊆ S

R(hs

1

, s

2

i, ht

1

, t

2

i) iff (R

1

(s

1

, t

1

) and s

2

= t

2

) or (s

1

= t

1

and R

2

(s

2

, t

2

)) AP = AP

1

∪ AP

2

L : S 7−→ 2

AP

s.t. L(hs

1

, s

2

i)

def

= L

1

(s

1

) ∪ L

2

(s

2

).

Note: combined states must agree on the values of Boolean variables.

(23)

Asynchronous Composition: Example 1

1

3 4

2 1

3 4

2

A A

A A

B B

B B

C C

C C

A B

C

1

3 4

2

1

3 4

2

th

(24)

Transition Systems as Kripke Models

Asynchronous Composition: Example 2

1

3 4

2 A A

A B

C C

A B

C

4

1 2

x=0 x=0

x=0

x=0

x=0

x=1

x=1

1

3

2

non−reachable state

x=0 x=0

x=0

x=0 x=0

x=1

(25)

Asynchronous Composition: Example 2

1

3 4

2 A A

A

C C

C

A B

C

1

3

2

x=0 x=0

x=0

x=0

x=0

x=1

x=1

1

3

2

x=0 x=0

x=0

x=0

x=0 x=0

.

th

(26)

Transition Systems as Kripke Models

Synchronous Composition

Components evolve in parallel.

At each time instant, every component performs a transition.

y = b y = a

x = 1 x = 0

synchronous

composition

x = 0 y = a

x = 1 x = 0

x = 1 y = a

y = b y = b

(27)

Transition Systems as Kripke Models

Synchronous Composition/Product: formal definition

Synchronous product of Kripke models

Let M

1def

= hS

1

, I

1

, R

1

, AP

1

, L

1

i, M

2def

= hS

2

, I

2

, R

2

, AP

2

, L

2

i. Then the synchronous product M

def

= M

1

× M

2

is M

def

= hS, I, R, AP, Li, where

S ⊆ S

1

× S

2

s.t.,

∀hs

1

, s

2

i ∈ S, ∀l ∈ AP

1

∩ AP

2

, l ∈ L

1

(s

1

) iff l ∈ L

2

(s

2

) I ⊆ I

1

× I

2

s.t. I ⊆ S

R(hs

1

, s

2

i, ht

1

, t

2

i) iff (R

1

(s

1

, t

1

) and R

2

(s

2

, t

2

)) AP = AP

1

∪ AP

2

L : S 7−→ 2

AP

s.t. L(hs

1

, s

2

i)

def

= L

1

(s

1

) ∪ L

2

(s

2

).

Note: combined states must agree on the values of Boolean variables.

(...(M

1

× M

2

) × ...) ×M

n

) = (M1 × (M

2

× (... × M

n

)...) = M

1

× M

2

× ... × M

n

th

(28)

Transition Systems as Kripke Models

Synchronous Composition/Product: formal definition

Synchronous product of Kripke models

Let M

1def

= hS

1

, I

1

, R

1

, AP

1

, L

1

i, M

2def

= hS

2

, I

2

, R

2

, AP

2

, L

2

i. Then the synchronous product M

def

= M

1

× M

2

is M

def

= hS, I, R, AP, Li, where

S ⊆ S

1

× S

2

s.t.,

∀hs

1

, s

2

i ∈ S, ∀l ∈ AP

1

∩ AP

2

, l ∈ L

1

(s

1

) iff l ∈ L

2

(s

2

) I ⊆ I

1

× I

2

s.t. I ⊆ S

R(hs

1

, s

2

i, ht

1

, t

2

i) iff (R

1

(s

1

, t

1

) and R

2

(s

2

, t

2

)) AP = AP

1

∪ AP

2

L : S 7−→ 2

AP

s.t. L(hs

1

, s

2

i)

def

= L

1

(s

1

) ∪ L

2

(s

2

).

Note: combined states must agree on the values of Boolean variables.

(29)

Synchronous Composition: Example 1

1

3 4

2

A B

C

A A

A A

B B

B B

C C

C C 1

3 4

2 1

3 4

2

1

3 4

2

th

(30)

Transition Systems as Kripke Models

Synchronous Composition: Example 2

1

3 4

2

A B

A A

A B

C C

1

3

2

4

1 2

x=0 x=0

x=0

x=0

x=0

x=1

x=1

x=1

x=0 x=0

x=0

x=0 x=0

NON−reachable state

(31)

Synchronous Composition: Example 2 (cont.)

1

3 4

2

A B

C

A

A B

C C

C 1

3 4

1

3

2

x=0 x=0

x=0

x=0

x=0

x=1

x=1

x=1 x=0

x=0

x=0 x=0

x=0

th

(32)

Languages for Transition Systems

Outline

1

Transition Systems as Kripke Models

2

Languages for Transition Systems

3

Properties of Transition Systems

(33)

Languages for Transition Systems

Description languages for Kripke Model

Tipically a Kripke model is not given explicitly, rather it is usually presented in a structured language

(e.g., SMV, SDL, PROMELA, StateCharts, VHDL, ...)

state variables: determine the set of atomic propositions AP, the state space S and the labeling L.

initial values for state variables: determine the set of initial states I. instructions:determine the transition relation R.

Remark

tipically these description are much more compact (and intuitive) than the explicit representation of the Kripke model.

th

(34)

Languages for Transition Systems

Description languages for Kripke Model

Tipically a Kripke model is not given explicitly, rather it is usually presented in a structured language

(e.g., SMV, SDL, PROMELA, StateCharts, VHDL, ...) Each component is presented by specifying

state variables: determine the set of atomic propositions AP, the state space S and the labeling L.

initial values for state variables: determine the set of initial states I.

instructions:determine the transition relation R.

Remark

tipically these description are much more compact (and intuitive) than

the explicit representation of the Kripke model.

(35)

Description languages for Kripke Model

Tipically a Kripke model is not given explicitly, rather it is usually presented in a structured language

(e.g., SMV, SDL, PROMELA, StateCharts, VHDL, ...) Each component is presented by specifying

state variables: determine the set of atomic propositions AP, the state space S and the labeling L.

initial values for state variables: determine the set of initial states I.

instructions:determine the transition relation R.

Remark

tipically these description are much more compact (and intuitive) than the explicit representation of the Kripke model.

th

(36)

Languages for Transition Systems

The SMV language

The input language of the SMV M.C. (and N

U

SMV)

Booleans, enumerative and bounded integers as data types now enriched with other constructs, e.g. in NuXMV language An SMV program consists of:

Declarations of the state variables (e.g., b0);

Assignments that define the valid initial states (e.g., init(b0) := 0).

Assignments that define the transition relation (e.g., next(b0) := !b0).

Allows for both synchronous and asyncronous composition of

(37)

The SMV language: example

Example: The modulo 4 counter with reset MODULE main

VAR

b0 : boolean;

b1 : boolean;

reset : boolean;

out : 0..3;

ASSIGN

init(b0) := 0;

next(b0) := case

reset = 1 : 0;

reset = 0 : !b0;

esac;

init(b1) := 0;

next(b1) := case

reset = 1 : 0;

reset = 0 : (b0 xor b1);

esac;

out := toint(b0) + 2*toint(b1);

2

0 1

3

th

(38)

Languages for Transition Systems

The PROMELA language

PROMELA (Process Meta Language) is the modeling language of the M.C. SPIN

The syntax is C-like

A system in PROMELA consists of a set of processes that interact by means of:

shared variables

communication channels rendez-vous communications buffered communications

Processes can be created dynamically

Allows for both synchronous and asyncronous composition of

(39)

The PROMELA language: example

Example: A Mutual Exclusion Algorithm

bool turn;

bool flag[2];

proctype User(bool pid) { flag[pid] = 1;

turn = 1-pid;

(flag[1-pid] == 0 || turn == pid);

/* Begin of critical section */

...

/* End of critical section */

flag[pid] = 0;

}

init { run User(0); run User(1) }

process 0 process 1

CRITICAL 0

1

1 0

1

1 0

0

0

1

1

1

CRITICAL 1 1

turn = 1 turn = 1

turn = 0

SECTION SECTION

th

(40)

Languages for Transition Systems

The SDL language

An ITU standard

Allows for booleans, enumerative and bounded integers as data types

Allows for representing TIME (time elapse, clocks, ...)

represents states, message I/O, conditions, clock operations, subroutines

Allows for both synchronous and asyncronous composition of

processes (though asynchronous interaction more natural)

(41)

The SDL Language: example

Example: the Safety Layer protocol

process type SL_type

STANDBY

SOI

Crc#seq_ok

Reset_Timers

Saf_SO.ind (self)

SL_resetpars

WFSO_RESP WFSO_RESP

Saf_SO.resp (address)

set(now +timDataT, timer_CMt)

set(now +timDataR, timer_CMr)

SOA

SOA_ACK

pb_ack

SL_resetpars

DATA

WFSO_RESP

Saf_SO.req (address)

set(now +timConn,

timer_cr)

SOI

SOI_2_ACK

pb_ack

SL_resetpars

WFSO_RESP

WFSO_RESP

SOA

Crc#seq_ok

reset (timer_cr)

Saf_SO.cnf (self)

SL_resetpars

-

timer_cr

Error_Handle (false)

SL_resetpars

IDLE

DATA

SOA

Crc#seq_ok

reset (timer_cr)

Saf_SO.cnf (self)

SL_resetpars

-

timer_cr

Error_Handle (false)

SL_resetpars

IDLE

th

(42)

Properties of Transition Systems

Outline

1

Transition Systems as Kripke Models

2

Languages for Transition Systems

3

Properties of Transition Systems

(43)

Properties of Transition Systems

Safety properties

bad events never happen

deadlock: two processes waiting for input from each other, the system is unable to perform a transition.

no reachable state satisfies a “bad” condition,

e.g. never two processes in critical section at the same time

Ex.: it is never the case that p.

th

(44)

Properties of Transition Systems

Safety properties

bad events never happen

deadlock: two processes waiting for input from each other, the system is unable to perform a transition.

no reachable state satisfies a “bad” condition,

e.g. never two processes in critical section at the same time

can be refuted by a finite behaviour

Ex.: it is never the case that p.

(45)

Safety properties

bad events never happen

deadlock: two processes waiting for input from each other, the system is unable to perform a transition.

no reachable state satisfies a “bad” condition,

e.g. never two processes in critical section at the same time

can be refuted by a finite behaviour

Ex.: it is never the case that p.

p

th

(46)

Properties of Transition Systems

Liveness properties

Something desirable will eventually happen

sooner or later this will happen

can be refuted by infinite behaviour

an infinite behaviour can be typically presented as a loop

(47)

Properties of Transition Systems

Liveness properties

Something desirable will eventually happen

sooner or later this will happen

can be refuted by infinite behaviour

−p −p −p −p −p −p

−p

−p

th

(48)

Properties of Transition Systems

Liveness properties

Something desirable will eventually happen

sooner or later this will happen

can be refuted by infinite behaviour

−p −p −p −p −p −p

−p

−p

(49)

Properties of Transition Systems

Fairness properties

Something desirable will happen infinitely often

important subcase of liveness

whenever a subroutine takes control, it will always return it (sooner or later)

can be refuted by infinite behaviour

a subroutine takes control and never returns it

th

(50)

Properties of Transition Systems

Fairness properties

Something desirable will happen infinitely often

important subcase of liveness

whenever a subroutine takes control, it will always return it (sooner or later)

can be refuted by infinite behaviour

a subroutine takes control and never returns it

p

p p p

p

p p p

an infinite behaviour can be typically presented as a loop

(51)

Fairness properties

Something desirable will happen infinitely often

important subcase of liveness

whenever a subroutine takes control, it will always return it (sooner or later)

can be refuted by infinite behaviour

a subroutine takes control and never returns it

p

p p p

p

p p p

an infinite behaviour can be typically presented as a loop

th

Riferimenti

Documenti correlati

handle temporal operators AX, EX by computing pre-images handle temporal operators AG, EG, AF, EF, AU, EU, by (implicitly) applying tableaux rules, until a fixpoint is reached..

Kripke structure encoded as Boolean formulas (OBDDs) All operations handled as (quantified) Boolean operations Avoids building the state graph explicitly. reduces dramatically the

(E.g., 300 Boolean vars =⇒ up to 2 300 ≈ 10 100 states!) State Space Explosion:.. too much

Copyright notice: some material (text, figures) displayed in these slides is courtesy of R..

Given a fair Kripke model M, a fair non-trivial SCC is an SCC with at least one edge that contains at least one state for every fair condition. =⇒ all states in a fair (non-trivial)

Example: although state 3 belongs to sat(¬heat Uclose), the path which loops forever in 3 does not satisfy ¬heatUclose, as close never holds in that path. We restrict the

[Alternatively: there is no positive U-subformula, so that we must add a AGAF> fairness condition, which is equivalent to say that all states belong to the fairness

Given the following generalized Büchi automaton A def = hQ, Σ, δ, I, FT i, with two sets of accepting states FT def = {F 1, F 2} s.t.. Ex: