model-checking

6 posts

AutoVerus mengubah 40 jam penulisan proof menjadi 3 panggilan LLM. Triknya adalah tahu kapan harus menyerah.

AutoVerus menggunakan jaringan agen LLM untuk menghasilkan proof kebenaran Verus untuk kode Rust, mengotomatisasi lebih dari 90% proof obligation melalui loop generate-repair-discharge yang didorong oleh feedback SMT solver.

Bagian tersulit dari verifikasi formal tidak pernah ada pada verifier-nya. Ada pada penulisan proof. Beri seorang engineer Rust senior Verus, verifier berbasis…

LLM dapat menghasilkan kode Rust. Pembuktian formal adalah masalah yang sama sekali berbeda.

Model bahasa besar menulis kode Rust yang menakjubkan baiknya, tetapi ketika Anda meminta pembuktian formal, mereka menghasilkan invarian yang tidak ada dan menciptakan sintaks yang tidak diterima oleh verifikator apa pun. Berikut ini yang benar-benar mereka lakukan dengan benar, di mana mereka gagal, dan bagaimana menggunakannya meskipun begitu.

LLM dapat menulis Rust yang dikompilasi dan bahkan lulus . Apa yang tidak dapat mereka lakukan secara andal adalah menulis pembuktian formal bahwa kode…

Anda Dapat Melakukan Model Checking pada Kode Tanpa Mempelajari Temporal Logic

Bounded model checker seperti Kani dan relational model finder seperti Alloy memungkinkan Anda memverifikasi properti dengan assertion dan constraint biasa. Anda mengorbankan pembuktian liveness untuk kurva pembelajaran yang diukur dalam jam, bukan minggu.

Anda tidak perlu mempelajari logika temporal linear untuk menggunakan model checker. Alat seperti Kani, CBMC, dan Alloy memungkinkan Anda memverifikasi…

Anda dapat membuktikan kode Rust benar tanpa menulis satu pun bukti, tapi ruang keadaan adalah tagihannya

Alat model checking seperti Kani memungkinkan Anda memverifikasi properti Rust dengan assertion alih-alih bukti formal. Masalahnya adalah apa yang terjadi ketika loop Anda tidak memiliki batas kecil.

Anda dapat membuktikan kode Rust benar tanpa menulis satu pun bukti. Alat yang melakukannya disebut model checker, dan untuk Rust yang paling praktis saat ini…

Anda Tidak Bisa Melakukan Unit Test pada Protokol Terdistribusi, tetapi Anda Bisa Melakukan Model Checking

Bug terdistribusi mahal untuk diperbaiki setelah deployment. Model checking memungkinkan Anda menemukannya sebelum menulis satu baris kode implementasi pun. Berikut cara melakukannya dengan TLA+.

Anda tidak bisa melakukan unit test pada protocol terdistribusi. Unit test menjalankan satu proses di satu mesin dalam satu urutan. Protocol Anda menjalankan…