Qual è la differenza tra LTL e CTL?


12

Ho già letto esempi di formule in CTL ma non in LTL e viceversa, ma ho difficoltà a ottenere una comprensione mentale delle formule LTL e in realtà qual è la differenza.


1
Un sacco di note sulle interwebs affrontano questo problema. Hai cercato su Google "la differenza tra LTL e CTL"?
Dave Clarke,

1
Prova a scrivere semplici formule e valutare la loro semantica sulle strutture di Kripke.
Vijay D,

Risposte:


21

Per capire veramente la differenza tra LTL e CTL devi studiare la semantica di entrambe le lingue. Le formule LTL indicano proprietà che verranno interpretate ad ogni esecuzione di un programma. Per ogni possibile esecuzione (una corsa), che può essere vista come una sequenza di eventi o stati su una linea - e questo è il motivo per cui è chiamata "tempo lineare" - la verificabilità della verifica viene eseguita sulla corsa senza possibilità di passare a un'altra corsa durante il controllo. D'altra parte, la semantica CTL controlla una formula su tutte le corse possibili e proverà tutte le corse possibili ( operatore A ) o solo una corsa ( operatore E ) quando si trova di fronte a un ramo.

In pratica ciò significa che alcune formule di ciascuna lingua non possono essere dichiarate nell'altra lingua. Ad esempio, la proprietà reset (un'importante proprietà di raggiungibilità per la progettazione di circuiti) afferma che esiste sempre la possibilità che uno stato possa essere raggiunto durante una corsa, anche se non viene mai effettivamente raggiunto ( ripristino EF EF ). LTL può solo dichiarare che lo stato di reset è effettivamente raggiunto e non che può essere raggiunto.

ss

Non so se questo risponda alla tua domanda, ma vorrei aggiungere alcuni commenti.

C'è molta discussione sulla migliore logica per esprimere le proprietà per la verifica del software ... ma il vero dibattito è altrove. LTL può esprimere importanti proprietà per la modellizzazione del sistema software (correttezza) quando il CTL deve avere una nuova semantica (una nuova relazione di soddisfacibilità) per esprimerle. Ma gli algoritmi CTL sono generalmente più efficienti e possono utilizzare algoritmi basati su BDD. Quindi ... non esiste una soluzione migliore. Solo due approcci diversi, finora.

Uno dei commentatori suggerisce l'articolo di Vardi "Branching versus Linear Time: Final Showdown" .


vedere una discussione su LTL vs CTL di Vardi: "Branching vs. Linear Time: Final Showdown"
Guy

grazie mille, questo è esattamente il tipo di intuizione che stavo cercando!
Coward anonimo,

1

Se ti viene dato un oggetto (es. Traccia in caso di LTL), consideri solo un futuro per ogni momento, in CTL ne hai una pletora.

In particolare, nextfornisce un'azione unica in LTL ma (potenzialmente) un intero set in CTL.


6
Ma in genere si applica la formula LTL a tutte le esecuzioni del sistema, piuttosto che a una sola, chiudendo così il divario tra l'una o più questioni future. Sarebbe più preciso dire che LTL si occupa del tempo lineare, mentre CTL si occupa del tempo di ramificazione.
Dave Clarke,

4
Dire che in LTL si considera un futuro è come dire in CTL si considera uno stato. La soddisfazione è definita in questo modo. Non si tratta di quanti futuri, ma della struttura del futuro. In una è una traccia, nell'altra un albero.
Vijay D,

@Vijay - anzi, la struttura conta. Ad esempio non puoi semplicemente prendere una formula LTL, trasformarla come FGp -> AF AG p e ottenere una formula CTL equivalente (queste due formule non sono equivalenti; inoltre FGp non è espressibile in CTL e AF AG p non è espressibile in LTL ).
jkff,

Supponevo che l'OP avesse familiarità con la definizione formale e chiedesse una sorta di intuizione, quindi il mio tentativo. Questa risposta può essere salvata dicendo "un futuro per modello"?
Raffaello,

Non so dire a che cosa abbia familiarità l'OP. Ad esempio, è chiaro a loro che cos'è un modello in ciascun caso?
Vijay D,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.