void fint n int j 0 for int
















































![int f(int *a, int k) { int b[5]; for (unsigned i = 0; i int f(int *a, int k) { int b[5]; for (unsigned i = 0; i](https://slidetodoc.com/presentation_image_h/208b7ce96741f87424773daf1d74e08f/image-49.jpg)
![int f(int *a, int k) { int b[5]; for (unsigned i = 0; i int f(int *a, int k) { int b[5]; for (unsigned i = 0; i](https://slidetodoc.com/presentation_image_h/208b7ce96741f87424773daf1d74e08f/image-50.jpg)















- Slides: 65









void f(int n) { int j = 0; for (int i = 0; i < n; ++i) { j += 1; } assert(j >= n); }





void f() { int i = 0; while (i < 100) { ++i; } assert(i == 100); } 2 2


2 2



2 2







void f(int n) { int j = 0; for (int i = 0; i < n; ++i) { j += 1; } assert(j >= n); }




void f(int n) { int j = 0; for (int i = 0; i < n; ++i) { j += 1; } assert(j >= n); } void f(int n) { int j = 0; int i = 0; assume(i >= n); assert(j >= n); } void f(int n) { int j = 0; int i = 0; assume(i < n); j += 1; ++i; assume(i >= n); assert(j >= n); }

void f(int n) { int j = 0; int i = 0; assume(i >= n); assert(j >= n); } void f(int n) { int j = 0; int i = 0; assume(i < n); j += 1; ++i; assume(i >= n); assert(j >= n); }




void f(int n) { int j = 0; for (int i = 0; i < n; ++i) { j += 1; } assert(j >= n); } 2 2

2 2

2 2 unreachable



Abstraction # SMT queries Abstract Interp Query result Incremental? Fixed 1 per “line” per iteration SAT No Symbolic Exec No 1 per path mixed Yes BMC No 1 per unfolding UNSAT No Adaptive 1 per “line” per predicate per iteration UNSAT No Model Checking


QARMC -nopreprocess cdaudio. bug 7 s 70 s (10 x) diskperf 88 s > 600 s (> 7 x) summ_mccarthy 0. 5 s > 50 s (> 100 x) 1 s > 100 s (> 100 x) 0. 7 s 1. 4 s (2 x) qrdcmp tridag



True/False Z 3 BV SICStus LLVM Prolog CLPQ Constant. Range 3, 657 264, 550 (72 x) 2, 886 14, 682 (5 x) 883 4, 996 (6 x) 1, 748 5, 000 x potential 1, 091 20 Million



![int fint a int k int b5 for unsigned i 0 i int f(int *a, int k) { int b[5]; for (unsigned i = 0; i](https://slidetodoc.com/presentation_image_h/208b7ce96741f87424773daf1d74e08f/image-49.jpg)
int f(int *a, int k) { int b[5]; for (unsigned i = 0; i < 5; ++i) { b[i] = a[i] + i; } return b[k]; Can’t alias (i. e. , don’t overlap) }
![int fint a int k int b5 for unsigned i 0 i int f(int *a, int k) { int b[5]; for (unsigned i = 0; i](https://slidetodoc.com/presentation_image_h/208b7ce96741f87424773daf1d74e08f/image-50.jpg)
int f(int *a, int k) { int b[5]; for (unsigned i = 0; i < 5; ++i) { b[i] = a[i] + i; } return b[k]; }





char f(char x) { char y = 0; if (x < 0) y = 3; if (x >= 3 && (y & 1) != 0) return 0; return 1; }

char f(char x) { char y = 0; if (x < 0) y = 3; if (x >= 3 && (y & 1) != 0) return 0; return 1; }



function fn(a, b) { return a + b; }

function fn(a, b) { return a + b; } function fn(a, b) { if (typeof a === 'number' && typeof b === 'number') return Number. add(a, b); if (typeof a === 'string' && typeof b === 'string') return String. concat(a, b); return a + b; } Top 2 types at runtime





Public void drawsquare(int x, int y, int len)
Int sum(int a int n) int sum=0 i
Fint
Void swap(int a int b)
Void
Interface calculator public int add(int a int b) class test
Divideint
Int max(int x int y)
Void main(void)
Void loop()
Void main(void)
Public void set
Void main int main
Void func(int num)
Void* to int
I^2
Void main() int i j charval='j'
#include stdio.h void main()
#include stdio.h int main(void)
Void main() int i j charval='j'
Public void int
Public static void main int args
Void fun(int *ptr)
Int max
7팩토리얼
Interface myinterface int foo(int x)
Arduino const
Int main int argc char argv
Int main int argc char argv
Int main int num 4
Stål för stötfångarsystem
Vishnuiter
Centrum för kunskap och säkerhet
Skivepiteldysplasi
Lyckans minut erik lindorm analys
Inköpsprocessen steg för steg
Sura för anatom
Strategi för svensk viltförvaltning
Typiska drag för en novell
Variansen formel
Tack för att ni har lyssnat
Treserva lathund
Läkarutlåtande för livränta
Påbyggnader för flakfordon
Tack för att ni lyssnade
Debattartikel mall
Tobinskatten för och nackdelar
Egg för emanuel
En lathund för arbete med kontinuitetshantering
Tack för att ni har lyssnat
Rutin för avvikelsehantering
Vad är vanlig celldelning
Byggprocessen steg för steg
Myndigheten för delaktighet
Presentera för publik crossboss
Rbk-mätning
Kung som dog 1611
Densitet vatten
Tack för att ni lyssnade bild
Tack för att ni har lyssnat
Mall för referat
Fimbrietratt
Stig karttecken
Formel för lufttryck
Vilket tal pekar pilen på