13.07.2015 Views

Proving the Correctness of Distributed Algorithms using TLA

Proving the Correctness of Distributed Algorithms using TLA

Proving the Correctness of Distributed Algorithms using TLA

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Khushboo KanjaniThe properties which define <strong>the</strong> correctness <strong>of</strong> a program are <strong>of</strong>ten describedin temporal logic. The following is a brief overview <strong>of</strong> <strong>the</strong> kinds <strong>of</strong> logic:1.1 Logic• Binary Logic has two boolean values True and False.• Propositional Logic adds <strong>the</strong> following operators to <strong>the</strong> binary logic.conjunction(and) ∧disjunction(or) ∨negation(not) ¬implication(implies) →equivalence ≡.• First-Order(Predicate) Logic extends propositional logic with twoquantifiers:∃ existential quantification(<strong>the</strong>re exists)∀ universal quantification (for all)• Temporal Logic quantifies in terms <strong>of</strong> time and has <strong>the</strong> following twooperators:♦ - now or sometime in future□ - now and foreverTime is viewed as a sequence <strong>of</strong> states in temporal logic.The Temporal Logic <strong>of</strong> Actions(<strong>TLA</strong>) is a combination <strong>of</strong> two logics : logic<strong>of</strong> actions and <strong>the</strong> standard temporal logic. In <strong>TLA</strong>, <strong>the</strong> program and itsproperties are written in <strong>the</strong> same language. The behavior <strong>of</strong> <strong>the</strong> programis written as a temporal formula σ. To prove that <strong>the</strong> program satisfies aproperty P, it is sufficient to prove that σ => P.1.2 Related WorkThe o<strong>the</strong>r formal methods based on temporal logic are Unity Logic [4], <strong>the</strong>logic <strong>of</strong> Manna, Pnueli [11] and Process Algebra by Hoare [2], Milner[9].Unity logic is based on assertions <strong>of</strong> <strong>the</strong> form {p}s{q}, which denotes that<strong>the</strong> execution <strong>of</strong> statement s in any state satisfying predicate p results in astate satisfying predicate q. Properties <strong>of</strong> a program are expressed in terms<strong>of</strong> <strong>the</strong> basic operators unless, invariant, ensures and → (leads-to).CPSC 689-608 Spring 2007 Report Draft

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!