GithubHelp home page GithubHelp logo

gernst / korn Goto Github PK

View Code? Open in Web Editor NEW
9.0 9.0 2.0 71.13 MB

License: Other

Makefile 0.01% Shell 0.01% Scala 0.11% Java 0.06% Lex 0.01% Gnuplot 0.01% HTML 21.48% Isabelle 0.05% C 0.95% SWIG 0.06% Assembly 0.03% SMT 77.25% Python 0.01%

korn's People

Contributors

gernst avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

linyingwen

korn's Issues

Feature Request: Use deleimiter for indexed Variables

Right now, Korn adds indices to the variables for the SMT Output.

Is it possible to add any delimiter-char (e.g. @ or anything else that is not/rarely used in variable names) to the variables?

(Right now it is hard / impossible to determine, if v15 is v1@5 or v@15)

In addition, there might be rare corner cases where this also causes issues with same variable names.

Build with `make` requires `quantile-generator.py`

Building korn using make fails with

[chmod] korn.sh
~/tools/benchexec/contrib/plots/quantile-generator.py --correct test/2020-10-10.results/eld-summaries-900.2020-10-10_15-36-15.results.sv-comp20_prop-reachsafety.xml.bz2 > test/2020-10-10.results/eld-summaries-900.2020-10-10_15-36-15.csv
/bin/sh: 1: $HOME/tools/benchexec/contrib/plots/quantile-generator.py: not found
make: *** [Makefile:93: test/2020-10-10.results/eld-summaries-900.2020-10-10_15-36-15.csv] Error 127

Is this required or is this only for benchmarking?

Feature Request: Replacing uninterpreted functions for a branch

I am using korn to only generate the CHCs for a svcomp-task.

Currently, Korn generates a new uninterpreted function (e.g. $main_if1) for a branch.
As far as i understood it, these predicates are summarizing the branch (similar to loop invariant).

As (at least in my use-case) each new predicate increases the complexity, it would be great to have an option to not generate these predicates but create two separate formulae (one if-branch and one -else branch), both continuing with the next statement

For this small example ex.c (as txt due to upload rules), which is

int main() {
  int i = 0;
  int j = 0;
  int l = 1;
  if(l==2){
    i = i + 1;
  }
  else {
    j = j+1;
  }
  
  assert((i+j) == l);
  return 0;
}

(which contains dead code in the if branch, i know)

It would be great if korn is able to generate two fomulae:

; if then  --> assert (= (+ i1 j2) l3)
(assert
     (=> (and (= l3 1)
             (= j2 0)
             (= i1 0)
             (= l3 2))
      (not (= (+ (+ i1 1) j2) l3))
        false))

; if else --> assert (= (+ i1 j2) l3)
((assert
     (=> (and (= l3 1)
             (= j2 0)
             (= i1 0)
             (not (= l3 2)))
      (not (= (+ i1 (+ j2 1)) l3))
        false))

This makes the verification process (at least in my usecase) easier.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.