Skip to Content.
Sympa Menu

k-user - Re: [[K-user] ] symbolic execution questions

k-user AT lists.cs.illinois.edu

Subject: K-user mailing list

List archive

Re: [[K-user] ] symbolic execution questions


Chronological Thread 
  • From: Dwight Guth <dwight.guth AT runtimeverification.com>
  • To: Dustin Wehr <dustin.wehr AT gmail.com>
  • Cc: k-user AT lists.cs.illinois.edu
  • Subject: Re: [[K-user] ] symbolic execution questions
  • Date: Wed, 10 Apr 2019 12:33:57 -0500
  • Authentication-results: illinois.edu; spf=none smtp.mailfrom=dwight.guth AT runtimeverification.com; dkim=pass header.d=runtimeverification-com.20150623.gappssmtp.com header.s=20150623; dmarc=none

K does not have a real sort. We do however have support for IEEE 754 floating point numbers as well as the SMTLIB floating point theory.

If you want to study how K can be used for symbolic execution, I would suggest reading the 1_k/5_types  and 2_languages/4_logik sections of the K tutorial.

K does not currently have any ability to customize how states are merged with one another, but any path that is found to be infeasible either by the K simplifier or by SMTLIB is pruned, and you do have a certain amount of control over both through lemmas introduced with the lemma attribute or smtlib attributes on productions to pass them to the solver.

I don't have time to familiarize myself with the paper you mention but maybe someone else can answer.

In terms of performance, there is definitely room for improvement in K's performance of symbolic execution, but my experience is that many real languages do not even have any way to symbolically execute them with a formal semantics aside from K, as the task of constructing a semantics for a new language is very time consuming and error prone and most such semantics not written in K have not been adequately tested or cover only some fragment of the real language, or both. If you have an example language L in mind, I might be willing to take a look though. That being said, most performance optimizations we've done have focused on concrete execution.



Archive powered by MHonArc 2.6.19.

Top of Page