Você está na página 1de 1

Jessé Deveza¹², Rosiane de Freitas¹², Lucas Cordeiro³, Rafael Menezes³

¹Programa de Pós-Graduação em Informática - PPGI


²Instituto de Computação, Universidade Federal do Amazonas, Brasil
³Universidade de Manscheter, UK

Neste trabalho, exploramos uma técnica para a análise de intervalo Um CSP na Arimética Intervalar é definido como o
no processo de Verificação Formal de Modelo Limitado BMC com triplo (x, [x], f(x)≤0), onde:
o uso da Programação por Restrições induzindo a diminuição do x ∈
ℝ é um conjunto de n variáveis,
tempo e memória deste modelo de verificação. Deste modo, [x] ∈
Iℝ é a caixa que representa o domínio do
usamos um CSP (Constraint Satisfaction Problem) para intervalo de cada variável;
f(x) ≤ 0 é o conjunto de restrições tais que f;

representar programas Kotlin e estimamos novos intervalos iniciais
para a verificação, promovendo resultados de verificação em O conjunto de soluções do CSP é: Sx = {x [x] | f (x)
tempos melhorados. ≤ 0}.

Correctness
Java sc
an
Witness

AST
GENERATION:
scan
C/C++ SOOT
AST Control-Flow Graph
Generation
GOTO Symbolic SAT/SMT
Program Execution SOLVER

a n CLANG
sc
Kotlin
Violation
Witness

CSP:
600

fun main(){
500

var x = 1
var y = 0 Variáveis: x, y; 400

while (y < 500){ Domínios das variáveis: 300

x = x + y
[x]=(1,∞), [y]=(0,500);
200

y = y + 1 100

}
assert(x<=y) Restrição: x ≤ y. -800 -700 -600 -500 -400 -300 -200 -100 0 100 200 300 400 500 600 700 800 900 1000 1100 1200

return -100

Contrator é um método de intervalo que estima uma solução para um



VERIFICAÇÃO DOS BENCHMARKS NO ESBMC-JIMPLE COM E SEM O MÉTODO CSP/CP-BMC

determinado CSP com o mapa C:Rn Rn. Seja Sx o conjunto



PROFUNDIDADE PROFUNDIDADE
VERIFICAÇÃO VERIFICAÇÃO
TEMPO SEM TEMPO COM K DE PESQUISA K DE PESQUISA
PROGRAMA SEM CSP/CP- COM CSP/CP-
CSP/CP-BMC CSP/CP-BMC SEM CSP/CP- COM CSP/CP-
solução e C : Rn Rn um contractor, que é aplicado à caixa [x] então
⊆ ∩ ∩
BMC BMC
BMC BMC

C([x]) [x] e C([x]) Sx = [x] Sx. O primeiro satisfaz a loop1.kt


FAILED: FAILED:
Violated property Violated property
0.354592341s 0.325688608s k=9 k=2

condição de contração e o último satisfaz a condição de correção. loop2.kt


FAILED: FAILED:
35.458103369s 0.485191044s k=501 k=32
Violated property Violated property

FAILED: FAILED:
loop3.kt Violated property Violated property
0.346434914s 0.291541516s k=1 k=1

FAILED: FAILED:
1 Função C([x] , f ([x]), [I ]) faça loop4.kt 3.087129161s 1.06403913s k=100 k=56
[𝑥]

Violated property Violated property

2 [y] = [I ] [f ]([x]) loop5.kt 1.921557592s 0.36655635s k=81 k=6

∈ ∈
SUCCESSFUL SUCCESSFUL

3 para todo [xi] [x] : i 1, ..., n faça loop6.kt SUCCESSFUL SUCCESSFUL 3.999129142s 0.666251054s k=151 k=49

4 [xi] = [xi] ∩ f^(-1)xi ([y],[x])


Solution
𝑆𝑥
loop7.kt
FAILED: FAILED:
Violated property Violated property
1.405436764s 0.368815886s k=101 k=26

5 fim para 𝐶([𝑥]) loop8.kt SUCCESSFUL SUCCESSFUL 0.260551241s 0.259189728s k=1 k=1

6 retorna [x] loop9.kt SUCCESSFUL SUCCESSFUL 0.276899851s 0.27160368s k=1 k=1


FAILED: FAILED:
7 fim Função loop10.kt Violated property Violated property
0.287147606s 0.206605231s k=1 k=1

FAILED: FAILED:
loop11.kt Violated property Violated property
28.562650815s 0.397184011s k=501 k=26

TOTAL 75,959632796s 4,702666238s k=1448 k=120

Aldughaim, M., Alshmrany, K. M., Mustafa, M., Cordeiro, L. C., e Stancu, A. (2020).
A aplicação de métodos de contração de domínio de variáveis na Bounded model checking of software using interval methods via contractors.CoRR,
verificação formal de programas é uma proposta que cria alternativa abs/2012.11245. URL https://arxiv.org/abs/2012.11245.

para lidar com o problema de explosão de estados no processo de Clarke, E. M., Klieber, W., Nováˇcek, M., e Zuliani, P. (2012). Model Checking and the
verificação formal BMC. Neste trabalho, certificamos que com o State Explosion Problem, p. 1–30. Springer Berlin Heidelberg, Berlin, Heidelberg. ISBN
978-3-642-35746-6. URL https://doi.org/10.1007/978-3-642-35746-6_1.
auxílio da Programações por Restrições podemos ter um
melhoramento significativo nos tempos de verificação e, que neste Sainz, M., Armengol, J., Calm, R., Herrero, P., Jorba, L., e Vehí, J. (2013). Modal
caso, foram aplicados em programas Kotlin. Interval Analysis: New Tools for Numerical Information, volume 2091. ISBN 978-3-319-
01720-4.

Você também pode gostar