4 Decision Procedure for Fusion Logic

4.1 Reduction Step
4.2 BDD Step

Decision Procedure [Slide 20]

The decision procedure is discussed in details in [5].

4.1 Reduction Step

Reduction Step [Slide 21]

Transform a fusion logic formula FL into an equivalent reduced form init ∧ I

1.

Transform FL into finit ∧ T where

2.

Transform finit ∧ T into init ∧ I

where

Reduction Step [Slide 22]

Let X,X1 and X2 denote non state formulae and w a state formula then the definition of future Transition formula ℛk(FL) is as follows:

For k ∈{0,1}

FL
ℛk(FL)
W
true
⟨test(W)⟩X
ℛk(X)
⟨step(FT)⟩X
k = 0 : (r⟨step(FT)⟩X ≡(FT ∧ℛ′0(X))) ∧ℛ0(X)
k = 1 : ℛ0(X)
⟨FE1 ∨FE2⟩X
ℛk(⟨FE1⟩X ∨⟨FE2⟩X)
⟨FE1 ; FE2⟩X
ℛ k(⟨FE1⟩⟨FE2⟩X)
⟨FE∗⟩X
(r⟨FE∗⟩X ≡ℛ′1(X1)) ∧ℛ1(X1)
where X1 is X ∨⟨c(FE)⟩r⟨FE∗⟩X
X1 U X2
(rX1UX2 ≡(ℛ′1(X2) ∨(ℛ′1(X1) ∧rX1UX2))
X
ℛk(⟨step(true)⟩X)

So only the step(FT), FE∗ and X1 U X2 case will introduce a dependent variable.

Reduction Step [Slide 23]

Let X,X1 and X2 denote non state formulae and w a state formula then the definition of past Transition formula ℛk(FL) is as follows:

For k ∈{0,1}

FL
ℛk(FL)
¬X
ℛk(X)
X1 ∨X2
ℛk(X1) ∧ℛk(X2)
X⟨test(W)⟩
ℛk(X)
X⟨pstep(PT)⟩
k = 0 : (rX⟨pstep(PT)⟩≡(PT ∧ℛ′0(X))) ∧ℛ0(X)
k = 1 : ℛ0(X)
X⟨PE1 ∨PE2⟩
ℛk(X⟨PE1⟩∨X⟨PE2⟩)
PE1 PE2⟨X⟩
ℛk(X⟨PE1⟩⟨PE2⟩)
X⟨PE⟩
(rX⟨PE⟩≡ℛ′1(X1)) ∧ℛ1(X1)
where X1 is X ∨rX⟨PE⟩⟨pc(PE)⟩
X1 S X2
(rX1SX2 ≡(ℛ′1(X2) ∨(ℛ′1(X1) ∧rX1SX2))
X
ℛk(X⟨pstep(true)⟩)

So only the pstep(PT), FE∗ and X1 S X2 case will introduce a dependent variable.

Reduction Step [Slide 24]

Let X,X1 and X2 denote non state formulae and w a state formula then the definition of state formula ℛ′k(FL) is as follows:

For k ∈{0,1}

FL
ℛ′k(FL)
W
W
⟨test(W)⟩X
W ∧ℛ′k(X)
⟨step(FT)⟩X
k = 0 : r⟨step(FT)⟩X
k = 1 : FT ∧ℛ′0(X)
⟨FE1 ∨FE2⟩X
ℛ′k(⟨FE1⟩X ∨⟨FE2⟩X)
⟨FE1 ; FE2⟩X
ℛ′k(⟨FE1⟩⟨FE2⟩X)
⟨FE∗⟩X
r⟨FE∗⟩X
¬X
¬ℛ′k(X)
X1 ∨X2
ℛ′k(X1) ∨ℛ′k(X2)
X1 U X2
rX1UX2
X1
ℛ′k(⟨step(true)⟩X)

Reduction Step [Slide 25]

Let X,X1 and X2 denote non state formulae and w a state formula then the definition of state formula ℛ′k(FL) is as follows:

For k ∈{0,1}

FL
ℛ′k(FL)
X⟨test(W)⟩
W ∧ℛ′k(X)
X⟨pstep(PT)⟩
k = 0 : rX⟨pstep(PT)⟩
k = 1 : PT ∧ℛ′0(X)
X⟨PE1 ∨PE2⟩
ℛ′k(X⟨PE1⟩∨X⟨PE2⟩)
X⟨PE1 PE2⟩
ℛ′ k(X⟨PE1⟩⟨PE2⟩)
X⟨PE⟩
rX⟨PE⟩
X1 S X2
rX1SX2
X1
ℛ′k(X⟨pstep(true)⟩)

Reduction Step [Slide 26]

Reduction function for ⟨FE∗⟩X is a bit more involved because FE could be valid for intervals with only one state. Solution: a function c is introduced which transforms an arbitrary future fusion expression FE into another formula c(FE) such that c(FE) ≡ FE ∧morere holds. Note: ⟨FE∗⟩X ≡⟨c(FE)∗⟩X holds.

FE
c(FE)
test(W)
test(¬true)
step(FT)
step(FT)
FE1 ∨ FE2
c(FE 1) ∨ c(FE2)
FE1 ; FE2
c(FE1) ; FE2 ∨ FE1 ; c(FE2)
FE∗
c(FE) ; FE∗

Reduction Step [Slide 27]

Reduction function for X⟨PE⟩ is a bit more involved because PE could be valid for intervals with only one state. Solution: a function pc is introduced which transforms an arbitrary past fusion expression PE into another formula pc(PE) such that pc(PE) ≡ PE ∧morele holds. Note: X⟨PE⟩X ≡ X⟨pc(PE)⟩ holds.

PE
pc(PE)
test(W)
test(¬true)
pstep(PT)
pstep(PT)
PE1 ∨ PE2
pc(FE1) ∨ pc(PE2)
PE1 PE2
pc(PE1) PE2 ∨ PE1 pc(PE2)
PE
PEpc(PE)

Reduction Step [Slide 28]

Transform finit ∧ T into init ∧ I

Reduction Step [Slide 29]

Example [Slide 30]

Given a future fusion logic formula

⟨step(A)∗⟩(B ∨ C) ∨⟨step(A) ; test(B)⟩D

The Reduction Step yields:

init ≜ rX1 ∨ rX3 where X1 ≜⟨step(A)∗⟩(B ∨ C) and X3 ≜⟨step(A)⟩⟨test(B)⟩D.

The corresponding invariant I is

I ≜ (rX1 ≡ (B ∨ C) ∨ (A ∧ rX1)) ∧ (rX3 ≡ A ∧(B ∧ D))

Example [Slide 31]

Given a past fusion logic formula

(B ∨ C) ∧ (D⟨pstep(A) test(B)⟩)

The Reduction Step yields:

finit ≜ rX1 ∧ (B ∧ rX2) where X1 ≜(B ∨ C) and X2 ≜ D⟨pstep(A) test(B)⟩.

The corresponding invariant PI is

PI ≜ (rX1 ≡(B ∨ C)) ∧ (rX2 ≡ A ∧ D)

This is transformed into

init ≜ (rX1 ≡false) ∧ (rX2 ≡ A ∧false) ∧ rZ

I ≜ (rZ ≡ (finit ∨ rZ)) ∧ (morer ⊃ ((( rX1) ≡ (B ∨ C)) ∧ (( rX2) ≡ ( A) ∧ D)))

4.2 BDD Step

BDD Step [Slide 32]

Transform init ∧ I into BDD based satisfiability problem.

init: a state formula
I: an invariant, ∧ i=1k(FTi) (for k ≥ 1) where
where FTi contains dependent variable rXi and
FTi is a future transition formula

Let us examine the ‘Always’ operator

init ∧ I
●
●
●
●
●
⟨I⟩
⟨—I—⟩
⟨—I—
— —⟩
⟨—I—
— —
— —⟩
⟨—I—
— —
— —
— —⟩
init

BDD Step [Slide 33]

We know that invariant I only contains (next) as temporal operator. So it can only constrain the first two states of each suffix interval.

init ∧ I
●
●
●
●
●
⟨I⟩
⟨—I—⟩
⟨—I—⟩
⟨—I—⟩
⟨—I—⟩
init

BDD Step [Slide 34]

Introducing BDDs Γi’s:

init ∧ I
●
●
●
●
●
Γ3
⟨—Γ2—⟩
⟨—Γ2—⟩
⟨—Γ 2—⟩
⟨—Γ2—⟩
Γ1

Example [Slide 35]

Given right fusion logic formula

⟨step(A)∗⟩(B ∨ C) ∨⟨step(A) ; test(B)⟩D

With Init = rX1 ∨ rX3 and corresponding invariant:

I = (rX1 ≡ (B ∨ C) ∨ (A ∧ rX1)) ∧ (rX3 ≡ A ∧(B ∧ D))

Then Γ1 = rX1 ∨ rX3 and

Γ2 = (rX1 ≡ (B ∨ C) ∨ (A ∧ r′X1)) ∧ (rX3 ≡ A ∧ (B′∧ D′))

and

Γ3 = (rX1 ≡ (B ∨ C) ∨ (A ∧false)) ∧ (rX3 ≡ A ∧false)

BDD Step [Slide 36]

Encoding as a BDD-based satisfiability problem:

BDD Step [Slide 37]

To construct a satisfying interval (in case FL is satisfiable) we proceed as follows.

Let Δm be that set of states for which Γ3 ∧ Δm is true.

Implementation [Slide 38]

Implementation of decision procedure

References [Slide 39]

2025-12-19
Contact | Home | ITL home | Course | Proofs | Algebra | FL
© 1996-2025