Logica temporale lineare

Da testwiki.
Vai alla navigazione Vai alla ricerca

La logica temporale lineare o LTL (dall'inglese Linear Temporal Logic) è un'estensione della logica modale nella quale i mondi sono organizzati in una struttura lineare infinita: ogni mondo può così rappresentare un istante di tempo discreto. La logica LTL prevede dunque una organizzazione del tempo lineare, discreta, orientata al futuro e infinita.

Questa logica trova impiego nella analisi dei sistemi i cui modelli possono essere sviluppati secondo le caratteristiche citate, sebbene l'algoritmo di model checking per LTL sia particolarmente complesso e dunque poco utilizzato.

Sintassi

La sintassi minima della logica LTL è la seguente:

φ:= | p | ¬φ | φ1φ2 | φ1Uφ2 | Xφ

La sintassi estesa, cioė comprendente gli operatori derivati, aggiunge Eventually ( ), Globally ( ), Precedes, Unless. Questi operatori sono tutti derivabili dall'Until.

Operatori

La logica temporale lineare LTL prevede i seguenti operatori:

  • X () , "Next" : Xφ è vera nello stato st se e solo se φ è vera nello stato successivo st+1 ;
  • F () , "Future" (o "Eventually"): φ è vera nello stato st se e solo esiste tt tale che φ è vera in st ;
  • G ( ) , "Globally" (o "Henceforth"): φ è vera nello stato st se e solo se per ogni tt , φ è vera in st ;
  • U ( U ), "Until": φ1Uφ2 è vera in st se e solo se tnt tale che φ2 è vera in stn e ti[t,tn1] , φ1 è vera in sti ;
  • P ( P ) , "Precedes" : φ1Pφ2 è vera se non è possibile che esista uno stato futuro in cui vale φ2 preceduto da stati in cui non vale φ1 , questo operatore può essere derivato dall'Until secondo la relazione φ1Pφ2=(φ1Uφ2) ;
  • W ( W ), "Unless" : φ1Wφ2 è vera se φ1 è vera, a meno che non sia vera φ2 , "Unless" è derivabile secondo la relazione φ1Wφ2=(φ1Uφ2)φ1 .

Gli operatori temporali hanno la priorità sugli operatori booleani.

Semantica

Per dare la semantica della logica LTL è necessario definire la struttura di interpretazione (modello di Kripke) ossia un modello lineare definito dalla quintupla π=(S,s0,R,V,P) dove:

  • S è un insieme infinito di stati;
  • s0 è lo stato iniziale;
  • R è la relazione di raggiungibilità: i,(si,si+1)R ;
  • P sono le proposizioni atomiche;
  • V:P×S{true,false} è la funzione di valutazione delle proposizioni atomiche.

La semantica formale degli operatori è così definita:

  • π,sipPV(p,si)=true
  • π,si¬απ,si⊭α
  • π,siαβπ,siα  π,siβ
  • π,siXαπ,si+1α
  • π,siFαji : π,sjα
  • π,siGαji : π,sjα
  • π,siαUβji : π,sjβ  e k tale che ik<j : π,skα
  • π,siαRβji : π,sjβ  ( li tale che k, ikl : π,skβ π,slα)

Dove α,β sono formule booleane.

Proprietà sintattiche

Date α e β formule LTL, allora:

  • FαUα
  • GαRα
  • Fα¬G¬α
  • Gα¬F¬α
  • ¬XαX¬α
  • αRβ¬(¬αU¬β)

Da queste uguaglianze si può notare come le espressioni temporali possano essere definite utilizzando solo i simboli ¬, X, U.

Regole

Date α e β formule LTL, allora:

  • Fα(αXFα);
  • Gα(αXGα);
  • αβ(β(αX(αβ)));

Proprietà esprimibili in logica LTL

  • Safety: "Non accade mai qualcosa di indesiderato" bad;
  • Liveness: "Prima o poi accade qualcosa di desiderato" good;
  • Responsiveness: Un caso particolare di liveness "a fronte di una richiesta prima o poi il sistema risponde" (requestreply);
  • Infinitely Often: "p è vera infinitamente spesso" p;
  • Fairness: "Se arrivano richieste infinitamente spesso, infinitamente spesso vengono soddisfatte" requestreply;
  • Invariant: rappresenta una proprietà (invariante) che il sistema deve sempre mantenere invariant;
  • Eventually Always: "prima o poi arrivo in uno stato dopo il quale vale sempre una proprietà" φ .

Voci correlate

Altri progetti

Template:Interprogetto

Collegamenti esterni

Template:Portale