Perbedaan utama ada di sepanjang dua dimensi - dalam teori yang mendasarinya, dan bagaimana mereka dapat digunakan. Mari kita fokus pada yang terakhir.
Sebagai pengguna, "logika" spesifikasi di LiquidHaskell dan sistem penyempurnaan umumnya, dibatasi untuk fragmen yang dapat diurai sehingga verifikasi (dan inferensi) sepenuhnya otomatis, artinya seseorang tidak memerlukan "syarat bukti" dari jenis yang diperlukan secara penuh. pengaturan tergantung. Ini mengarah pada otomatisasi yang signifikan. Misalnya, bandingkan jenis penyisipan di LH:
http://ucsd-progsys.github.io/lh-workshop/04-case-study-insertsort.html#/ordered-lists
vs. di Idris
https://github.com/davidfstr/idris-insertion-sort/blob/master/InsertionSort.idr
Namun, otomasi harganya mahal. Seseorang tidak dapat menggunakan fungsi sewenang-wenang sebagai spesifikasi seperti yang dapat dilakukan di dunia yang sepenuhnya tergantung, yang membatasi kelas properti yang dapat ditulis.
Dengan demikian, salah satu tujuan dari sistem penyempurnaan adalah untuk memperluas kelas dari apa yang dapat ditentukan, sedangkan tujuan dari sistem yang sepenuhnya tergantung adalah untuk mengotomatisasi
apa yang dapat dibuktikan. Mungkin ada tempat pertemuan yang menyenangkan di mana kita bisa mendapatkan yang terbaik dari kedua dunia!