<p>Many important hyperliveness properties, such as refinement and generalized non-interference, fall into the class of <InlineEquation ID="IEq2"> <EquationSource Format="TEX">\(\forall \exists\)</EquationSource> </InlineEquation> hyperproperties, and require, for each execution trace of a system, the existence of another execution trace relating to the first one in a certain way. The alternation of quantifiers in the specification renders these hyperproperties extremely difficult to verify, or even just to test. Indeed, contrary to trace properties, where it suffices to find a single counterexample trace, refuting a <InlineEquation ID="IEq3"> <EquationSource Format="TEX">\(\forall \exists\)</EquationSource> </InlineEquation> hyperproperty requires not only to find a trace, but also a proof that no second trace exists that satisfies the specified relation with the first trace. As a consequence, automated testing of <InlineEquation ID="IEq4"> <EquationSource Format="TEX">\(\forall \exists\)</EquationSource> </InlineEquation> hyperproperties falls out of the scope of existing automated testing tools. In this paper, we present a fully automated approach to detect violations of <InlineEquation ID="IEq5"> <EquationSource Format="TEX">\(\forall \exists\)</EquationSource> </InlineEquation> hyperproperties in synchronous and asynchronous infinite-state systems. Our approach extends bug-finding techniques based on symbolic execution with support for trace quantification. We provide a prototype implementation of our approach, and demonstrate its effectiveness on a set of challenging examples.</p>

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Symbolic execution for refuting ∀∃ hyperproperties

  • Arthur Correnson,
  • Tobias Nießen,
  • Bernd Finkbeiner,
  • Georg Weissenbacher

摘要

Many important hyperliveness properties, such as refinement and generalized non-interference, fall into the class of \(\forall \exists\) hyperproperties, and require, for each execution trace of a system, the existence of another execution trace relating to the first one in a certain way. The alternation of quantifiers in the specification renders these hyperproperties extremely difficult to verify, or even just to test. Indeed, contrary to trace properties, where it suffices to find a single counterexample trace, refuting a \(\forall \exists\) hyperproperty requires not only to find a trace, but also a proof that no second trace exists that satisfies the specified relation with the first trace. As a consequence, automated testing of \(\forall \exists\) hyperproperties falls out of the scope of existing automated testing tools. In this paper, we present a fully automated approach to detect violations of \(\forall \exists\) hyperproperties in synchronous and asynchronous infinite-state systems. Our approach extends bug-finding techniques based on symbolic execution with support for trace quantification. We provide a prototype implementation of our approach, and demonstrate its effectiveness on a set of challenging examples.