Changeset [4754d168e43124cb467c6c82b6333905bd208a7c] by Douglas Creager

May 31st, 2008 @ 06:47 PM

Failures refinement

This patch adds support for checking failures refinement. The Refiner

class checks that each (SPEC, IMPL) pair satisfies the following

condition:

∀ α: accs(IMPL) • ∃ β: accs(SPEC) • α ⊇ β

An acceptance is the complement of a refusal, so this is equivalent

to:

∀ α: refs(IMPL) • ∃ β: refs(SPEC) • α ⊆ β

The refs() function only represents the maximal refusals that are

actually stored in the LTS. This corresponds to an allrefs() function

that contains all of refusals, which are subset closed. Thus, the

condition also ensures that

∀ α: allrefs(IMPL) • ∃ β: allrefs(SPEC) • α = β

or, in other words, that

allrefs(IMPL) ⊆ allrefs(SPEC)

Lighthouse: [#3 state:resolved]

http://github.com/dcreager/hst/c...

Committed by Douglas Creager

  • A build-scripts/save-refinement-test
  • A tests/refinement/00-basic1.failures
  • A tests/refinement/00-basic2.failures
  • A tests/refinement/00-basic3.failures
  • A tests/refinement/00-basic4.failures
  • A tests/refinement/00-basic5.csp0
  • A tests/refinement/00-basic5.failures
  • A tests/refinement/00-basic5.traces
  • A tests/refinement/00-basic6.csp0
  • A tests/refinement/00-basic6.failures
  • A tests/refinement/00-basic6.traces
  • A tests/refinement/80-roscoe-p40-a.failures
  • A tests/refinement/80-roscoe-p40-b.failures
  • A tests/refinement/80-roscoe-p52-a.failures
  • A tests/refinement/80-roscoe-p52-b.failures
  • A tests/refinement/test-failures-refinement.cc
  • M include/hst/assertions.hh
  • M src/assertions/refine.cc
  • M tests/refinement/00-basic1.csp0
  • M tests/refinement/00-basic2.csp0
  • M tests/refinement/00-basic3.csp0
  • M tests/refinement/00-basic4.csp0
  • M tests/refinement/80-roscoe-p40-a.csp0
  • M tests/refinement/80-roscoe-p40-b.csp0
  • M tests/refinement/80-roscoe-p52-a.csp0
  • M tests/refinement/80-roscoe-p52-b.csp0
  • M tests/refinement/CMakeLists.txt
  • M tests/refinement/test-traces-refinement.cc
New-ticket Create new ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile »

An open-source refinement checker for the CSP process algebra.