Skip to content

Commit 348959c

Browse files
Update README.md
1 parent 1938d29 commit 348959c

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

README.md

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,12 @@
66
- *min/max equalities/inequalities* that represent a certain type of *disjunctive* invariants, e.g., `max(x,y) <= z + 2`
77
- *congruence* relations, e.g., `x == 0 (mod 4), x+y == 1 (mod 5)`
88
- *nested relations* among arrays, e.g., `A[i] = B[C[3*i+2]]`
9+
- The user can also use *terms* to represent desired information, e.g., `t1 = 2^x, t2 = log(n)`, and have DIG infer invariants over terms.
910

10-
The user can also use *terms* to represent desired information, e.g., `t1 = 2^x, t2 = log(n)`, and have DIG infer invariants over terms.
11+
<details>
1112

13+
<summary><kbd>details</kbd></summary>
14+
1215
DIG is written in Python and uses **Sympy** and **Z3**. It infers invariants using dynamic analysis (over execution traces). If source code (C, Java, Java Bytecode) is available, DIG can iteratively infer and check invariants.
1316
DIG uses symbolic execution to collect symbolic states to check candidate invariants.
1417

@@ -20,9 +23,13 @@ DIG's numerical relations (in particular, nonlinear equalities) have been used f
2023
- termination and non-termination analyses (use nonlinear invariants to reason about ranking function for termination and recurrent sets for non-termination, `OOPSLA20`)
2124
- array analysis, finding invariant relations over array data structures such as `A[i] = B[C[2i + 3]]`, (`ICSE12`, `TOSEM13`)
2225

23-
**Behcmarks**: The DIG project also produces a large set of **NLA** [benchmark programs](https://github.com/dynaroars/dig/tree/dev/benchmark) that contain nonlinear invariants. Many of these programs are used in the annual SV-COMP (Software verification competition), e.g., [`dig-nla`](https://gitlab.com/sosy-lab/benchmarking/sv-benchmarks/-/tree/main/c/nla-digbench) and [`dig-nla-scaling`](https://gitlab.com/sosy-lab/benchmarking/sv-benchmarks/-/tree/main/c/nla-digbench-scaling).
26+
</details>
2427

25-
> To understand DIG's usage, a good starting point is reading our ICSE'22 tool paper https://dynaroars.github.io/pubs/nguyen2022syminfer.pdf.
28+
29+
> A good starting point to understand more about DIG is reading our ICSE'22 tool paper https://dynaroars.github.io/pubs/nguyen2022syminfer.pdf.
30+
31+
32+
**Behcmarks**: The DIG project also produces a large set of **NLA** [benchmark programs](https://github.com/dynaroars/dig/tree/dev/benchmark) that contain nonlinear invariants. Many of these programs are used in the annual SV-COMP (Software verification competition), e.g., [`dig-nla`](https://gitlab.com/sosy-lab/benchmarking/sv-benchmarks/-/tree/main/c/nla-digbench) and [`dig-nla-scaling`](https://gitlab.com/sosy-lab/benchmarking/sv-benchmarks/-/tree/main/c/nla-digbench-scaling).
2633

2734
---
2835

0 commit comments

Comments
 (0)