rust

9 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 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…

Dependensi Anda bisa membaca berkas apa pun di disk. cap-std membuat mereka meminta izin.

Standard library Rust memberikan otoritas filesystem ambient kepada setiap dependensi. cap-std menggantinya dengan API berbasis capability yang memaksa kode untuk membuktikan bahwa ia berhak mengakses suatu path sebelum membukanya.

Crate apa pun di pohon dependency Anda bisa membuka , menulis ke direktori Anda, atau menghitung setiap berkas di proyek Anda. Standard library Rust tidak…

Berhenti Melempar Error yang Tidak Bisa Dilihat Type Checker Anda

Exception yang dilempar menyembunyikan jalur kegagalan dari sistem tipe Anda. Berikut mengapa pengembalian error secara eksplisit membuat kode Anda lebih jujur, dan cara mengadopsinya tanpa membuat Anda benci hidup.

Tanda tangan fungsi Anda mengatakan bahwa fungsi tersebut mengembalikan . Tidak. Fungsi tersebut mengembalikan atau meledak. Sistem tipe sama sekali tidak…

Contract Runtime di Rust Bisa Tanpa Biaya di Release Build, tapi Compiler Tidak Akan Melakukannya untuk Anda

Rust secara otomatis menghapus debug assertion, tetapi design-by-contract yang sesungguhnya membutuhkan lebih dari debug_assert!. Berikut cara membangun runtime contract tanpa biaya yang lenyap dari binary release Anda.

Rust dapat menegakkan runtime contract saat development dan menghapusnya sepenuhnya dari release build. Catatannya, bahasa ini tidak memperlakukan contract…