Verification Algorithms for VLSI Synthesis

1987 ◽  
pp. 249-300 ◽  
Author(s):  
Gary D. Hachtel ◽  
Reily M. Jacoby
2003 ◽  
Vol 14 (04) ◽  
pp. 605-624 ◽  
Author(s):  
Constantinos Bartzis ◽  
Tevfik Bultan

In this paper we discuss efficient symbolic representations for infinite-state systems specified using linear arithmetic constraints. We give algorithms for constructing finite automata which represent integer sets that satisfy linear constraints. These automata can represent either signed or unsigned integers and have a lower number of states compared to other similar approaches. We present efficient storage techniques for the transition function of the automata and extend the construction algorithms to formulas on both boolean and integer variables. We also derive conditions which guarantee that the pre-condition computations used in symbolic verification algorithms do not cause an exponential increase in the automata size. We experimentally compare different symbolic representations by using them to verify non-trivial concurrent systems. Experimental results show that the symbolic representations based on our construction algorithms outperform the polyhedral representation used in Omega Library, and the automata representation used in LASH.


Author(s):  
HONGZHEN XU ◽  
GUOSUN ZENG

As software systems become more and more complex, there is need to consider not only data structures and algorithms but also the general structure or architecture of the system. Many researchers have presently focused on dynamic evolution of software architectures. Most of them usually emphasized on describing and analyzing the dynamic evolution process of software architectures, while lacking formally modeling and verifying composite dynamic evolution of software architectures. In this paper, we propose a formal method of modeling and verifying composite dynamic evolution of software architectures using hypergraph grammars. We represent software architectures with hypergraphs, give out corresponding composite evolution rules of software architectures, and then model composite dynamic evolution of software architectures according to those rules. At last we verify the liveness property of composite dynamic evolution of software architectures using model checking, and give out corresponding verification algorithms. Our approach provides a graphical representation for composite dynamic evolution of software architectures, and displays a formal theoretical basis on grammars.


10.29007/tj84 ◽  
2018 ◽  
Author(s):  
Bernd Finkbeiner

Synthesis holds the promise to revolutionize the development ofcomplex systems by automating the translation from specifications toimplementations. Synthesis algorithms are based on the same level ofmathematical rigor as verification algorithms but can be applied atearlier development stages, when only parts of the design areavailable. Given a formal specification of the desired systemproperties, for example in a temporal logic, we determine if thepartial design can be completed into a full design that satisfies theproperties.For general distributed systems, the synthesis problem is undecidable.However, there has been a sequence of discoveries where thedecidability was established for specific system architectures, suchas pipelines and rings, or other restrictions on the problem, such aslocal specifications. Encouraged by these findings, new specificationlanguages like Coordination Logic aim for a uniform treatment of thesynthesis problem.In this talk, I will review several techniques that transformundecidable synthesis problems into decidable problems.


Author(s):  
Bhola Ram Meena ◽  
Mayank Vatsa ◽  
Richa Singh ◽  
Phalguni Gupta

Author(s):  
Dirk Beyer ◽  
Philipp Wendler

Abstract Verification algorithms are among the most resource-intensive computation tasks. Saving energy is important for our living environment and to save cost in data centers. Yet, researchers compare the efficiency of algorithms still in terms of consumption of CPU time (or even wall time). Perhaps one reason for this is that measuring energy consumption of computational processes is not as convenient as measuring the consumed time and there is no sufficient tool support. To close this gap, we contribute CPU Energy Meter, a small tool that takes care of reading the energy values that Intel CPUs track inside the chip. In order to make energy measurements as easy as possible, we integrated CPU Energy Meter into BenchExec, a benchmarking tool that is already used by many researchers and competitions in the domain of formal methods. As evidence for usefulness, we explored the energy consumption of some state-of-the-art verifiers and report some interesting insights, for example, that energy consumption is not necessarily correlated with CPU time.


Sign in / Sign up

Export Citation Format

Share Document