مُثبِّت نظرية Z3

مُثبِّت نظرية Z3
المؤلف(ون) الأصلي(ون)أبحاث مايكروسوفت
المطور(ون)مايكروسوفت
الإصدار الأولي2012 ؛ منذ 12 سنة ( 2012 )
إصدار مستقر
4.13.3 [1]  / 11 أكتوبر 2024 ؛ منذ 44 يومًا ( 11 أكتوبر 2024 )
مستودع
  • github.com/Z3Prover/z3
مكتوب فيسي++
نظام التشغيلويندوز ، فري بي إس دي ، لينكس ( ديبيان ، أوبونتوماك أو إس
منصةIA-32 ، x86-64 ، WebAssembly ، arm64
يكتبمُثبت النظرية
رخصةرخصة معهد ماساتشوستس للتكنولوجيا
موقع إلكترونيgithub.com/Z3Prover

Z3 ، المعروف أيضًا باسم Z3 Theorem Prover ، هو مُحلل نظريات قابلية الرضا (SMT) الذي طورته شركة Microsoft . [2]

ملخص

تم تطوير Z3 في مجموعة أبحاث هندسة البرمجيات (RiSE) في Microsoft Research Redmond ويستهدف حل المشكلات التي تنشأ في التحقق من صحة البرامج وتحليل البرامج . يدعم Z3 العمليات الحسابية ومتجهات البت ذات الحجم الثابت والمصفوفات الامتدادية وأنواع البيانات والوظائف غير المفسرة والكميات . تطبيقاته الرئيسية هي الفحص الثابت الممتد وتوليد حالات الاختبار وتجريد المسندات . [ بحاجة لمصدر ]

تم طرح Z3 مفتوح المصدر في بداية عام 2015. [3] تم ترخيص الكود المصدر بموجب ترخيص MIT واستضافته على GitHub . [4] يمكن بناء الحل باستخدام Visual Studio أو ملف makefile أو باستخدام CMake ويعمل على أنظمة Windows و FreeBSD و Linux و macOS .

تنسيق الإدخال الافتراضي لـ Z3 هو SMTLIB2 . كما أنه يدعم رسميًا الارتباطات للعديد من لغات البرمجة ، بما في ذلك C و C++ و Python و. NET و Java و OCaml . [5]

أمثلة

المنطق التقريري والمنطق المسند

في هذا المثال، يتم التحقق من تأكيدات المنطق القياسي باستخدام الدوال لتمثيل المقترحين a وb. يتحقق البرنامج النصي Z3 التالي لمعرفة ما إذا كان :

(أعلن-متعة أ () Bool)
(أعلن-متعة ب () Bool)
(أكد (ليس (= (ليس (و ab)) (أو (ليس أ) (ليس ب)))))
(التحقق-الجلسة)

نتيجة:

غير مشبع

لاحظ أن النص يؤكد نفي اقتراح الفائدة. النتيجة غير المشبعة تعني أن الاقتراح المنفي غير قابل للإشباع، وبالتالي إثبات النتيجة المرجوة ( قانون دي مورجان ).

حل المعادلات

يحل البرنامج النصي التالي المعادلتين المعطيتين، ويجد القيم المناسبة للمتغيرين a وb:

(إعلان ثابت لـ Int)
(إعلان ثابت ب Int)
(أكد (= (+ ab) 20))
(أكد (= (+ أ (* 2 ب)) 10))
(التحقق-الجلسة)
(الحصول على النموذج)

نتيجة:

قعد
(نموذج
  (تعريف-متعة ب () Int
    -10)
  (تعريف-متعة أ () Int
    30)
)

الجوائز

في عام 2015، حصلت Z3 على جائزة Programming Languages ​​Software Award من ACM SIGPLAN . [6] [7] في عام 2018، حصلت Z3 على جائزة Test of Time Award من المؤتمرات الأوروبية المشتركة حول نظرية وممارسة البرمجيات (ETAPS). [8] حصل الباحثان في Microsoft نيكولاي بيورنر وليوناردو دي مورا على جائزة Herbrand لعام 2019 للمساهمات المتميزة في التفكير الآلي تقديراً لعملهما في تطوير إثبات النظريات باستخدام Z3. [9] [10]

انظر أيضا

مراجع

  1. ^ "الإصدار 4.13.3". 11 أكتوبر 2024. تم الاسترجاع 27 أكتوبر 2024 .
  2. ^ "استخدام مُحلل SMT Z3" (PDF) . مؤرشف من الأصل (PDF) في 2020-11-17 . تم الاسترجاع 2019-12-01 .
  3. ^ "الجدول الزمني لبرنامج Visual Studio من Microsoft وZ3 Theorem Prover، وGoogle Cloud Launcher، وFresco من Facebook—ملخص أخبار SD Times: 27 مارس 2015". 27 مارس 2015.
  4. ^ "GitHub - Z3Prover/z3: The Z3 Theorem Prover". 1 ديسمبر 2019 – عبر GitHub.
  5. ^ Bjørner, Nikolaj; de Moura, Leonardo; Nachmanson, Lev; Wintersteiger, Christoph (2019). "برمجة Z3". برمجة Z3 . مؤرشف من الأصل في 9 فبراير 2023. تم الاسترجاع في 21 مايو 2023 .
  6. ^ "جائزة لغات البرمجة للبرمجيات". www.sigplan.org .
  7. ^ برنامج Microsoft Z3 Theorem Prover يفوز بجائزة
  8. ^ جائزة اختبار الزمن ETAPS 2018
  9. ^ السحر الداخلي وراء أداة إثبات نظرية Z3 - أبحاث مايكروسوفت
  10. ^ جائزة هيربراند

قراءة إضافية

  • ليوناردو دي مورا؛ نيكولاي بيورنر (2008). "Z3: حل فعال لـ SMT". أدوات وخوارزميات لبناء وتحليل الأنظمة . 4963 : 337-340.
  • السحر الداخلي وراء إثبات نظرية Z3
  • الموقع الرسمي
  • ملعب Z3 على الإنترنت
تم الاسترجاع من "https://en.wikipedia.org/w/index.php?title=مثبت_نظرية_Z3&oldid=1237241595"
Original text
Rate this translation
Your feedback will be used to help improve Google Translate