روك
برنامج Rocq Prover (المعروف سابقًا باسم Coq ) هو برنامج تفاعلي لإثبات النظريات تم إصداره لأول مرة في عام 1989. وهو يسمح بالتعبير عن التأكيدات الرياضية، والتحقق الآلي من براهين هذه التأكيدات، ويساعد في إيجاد البراهين الرسمية باستخدام إجراءات أتمتة البرهان واستخراج برنامج معتمد من البرهان البنائي لمواصفاته الرسمية .
يعتمد برنامج Rocq على نظرية حساب الإنشاءات الاستقرائية، وهي فرع من حساب الإنشاءات . لا يُعد Rocq برنامجًا آليًا لإثبات النظريات ، ولكنه يتضمن تكتيكات ( إجراءات ) آلية لإثبات النظريات ، بالإضافة إلى إجراءات اتخاذ قرارات متنوعة .
منحت جمعية آلات الحوسبة تيري كوكاند ، وجيرار هويه ، وكريستين بولين-مورينغ ، وبرونو باراس، وجان كريستوف فيلياتر، وهوجو هيربلين، وشيتان مورثي، وإيف بيرتو، وبيير كاستيران جائزة نظام البرمجيات لعام 2013 عن برنامج روك (عندما كان يُطلق عليه اسم كوك).
ملخص
عند النظر إلى Rocq كلغة برمجة ، فإنها تُطبّق نموذج برمجة وظيفية مُعتمدة على النوع ؛ [ 2 ] وعند النظر إليها كنظام منطقي، فإنها تُطبّق نظرية أنواع من الرتبة العليا . وقد حظي تطوير Rocq بدعم المعهد الفرنسي لأبحاث علوم الحاسوب والأتمتة (INRIA) منذ عام 1984، بالتعاون مع العديد من المؤسسات البحثية الفرنسية والدولية الأخرى. بدأ تطوير Rocq على يد جيرار هويه وتيري كوكاند، وساهم أكثر من 200 شخص، [ 3 ] معظمهم من الباحثين، في تطوير ميزات النظام الأساسي منذ إنشائه. وتولى تنسيق فريق التنفيذ تباعًا كل من جيرار هويه، وكريستين بولان-مورينغ، وهوغو هيربلين، وماثيو سوزو. تُطبّق Rocq بشكل أساسي بلغة OCaml مع بعض لغة C. ويمكن توسيع النظام الأساسي من خلال آلية الإضافات . [ 4 ]
توفر Rocq لغة مواصفات تُسمى Gallina. [ 5 ] تتميز البرامج المكتوبة بلغة Gallina بخاصية التطبيع الضعيف ، مما يعني أنها تنتهي دائمًا. تُعد هذه خاصية مميزة للغة، حيث أن الحلقات اللانهائية (البرامج غير المنتهية) شائعة في لغات البرمجة الأخرى. [ 6 ]
كمثال على برهان مكتوب بلغة روك، لننظر في برهان لِمّة تنص على أن أخذ العدد التالي لعدد طبيعي يقلب زوجيته. تُستخدم تكتيكة الطي والفك التي قدمها دانفي [ 7 ] لتبسيط البرهان.
من مكتبة Stdlib Require استيراد Arith Nat Bool .Fixpoint is_even ( n : nat ) : bool := match n with | 0 => true | S n' => negb ( is_even n' ) end .اللمة is_even_0 : is_even 0 = صحيح . البرهان . الانعكاسية . انتهى البرهان .اللمة is_even_S n : is_even ( S n ) = negb ( is_even n ). البرهان . الانعكاسية . انتهى البرهان .اللمة: successor_flips_evenness n : is_even n = negb ( is_even ( S n )). البرهان : إعادة كتابة is_even_S . destruct ( is_even n ). * simpl . reflexivity . * simpl . reflexivity . Qed .يبدأ هذا البرهان باستيراد تعريفات القيم المنطقية والأعداد الطبيعية من المكتبة القياسية، ثم يُعرّف is_evenدالة تُحدد ما إذا كان العدد زوجيًا أم لا. بعد ذلك، يتم إثبات ثلاث لمات حول هذه الدالة. تُعيد الأولى صياغة المعادلات التعريفية للدالة is_even، وبما أن روك يعرف هذه المعادلات، فإن برهانه قصير جدًا. أما اللمة الأخيرة، فتُثبت بتمييز الحالات بعد تطبيق اللمة الثانية أولًا؛ *وتشير النجمة إلى بداية حالة فرعية جديدة.
الاستخدامات البارزة
نظرية الألوان الأربعة وامتداد SSReflect
استخدم جورج غونتييه من مايكروسوفت للأبحاث في كامبريدج ، إنجلترا ، وبنيامين فيرنر من المعهد الوطني للبحوث في علوم الحاسوب والتحكم الآلي ( INRIA) برنامج Rocq لإنشاء برهان قابل للمسح لنظرية الألوان الأربعة ، والذي اكتمل في عام 2002. [ 8 ] أدى عملهما إلى تطوير حزمة SSReflect ("الانعكاس على نطاق صغير")، والتي مثّلت إضافةً مهمةً لبرنامج Rocq. [ 9 ] على الرغم من اسمها، فإن معظم الميزات التي أضافتها SSReflect إلى Rocq هي ميزات عامة الأغراض، ولا تقتصر على أسلوب البرمجة الانعكاسية الحاسوبية للبرهان. تشمل هذه الميزات ما يلي:
- تمت إضافة رموز ملائمة لمطابقة الأنماط غير القابلة للدحض والقابلة للدحض ، على الأنواع الاستقرائية ذات مُنشئ واحد أو اثنين
- الوسائط الضمنية للدوال المطبقة على صفر من الوسائط، وهو أمر مفيد عند البرمجة باستخدام الدوال ذات الرتبة العليا
- حجج موجزة مجهولة المصدر
- تكتيك مُحسّن
setمع مطابقة أقوى - دعم التأمل
يتم توزيع SSReflect كجزء من توزيع Rocq الرئيسي منذ Coq 8.7. [ 10 ]
تطبيقات أخرى
- CompCert : مُترجم مُحسِّن لجميع لغات البرمجة C تقريبًا ، والذي تمت برمجته وإثبات صحته إلى حد كبير في Rocq.
- تم نشر برهان صحة بنية البيانات المنفصلة في Rocq في عام 2007. [ 11 ]
- تم الانتهاء من البرهان الرسمي لنظرية فيت-تومسون باستخدام برنامج روك في سبتمبر 2012. [ 12 ]
- القندس النشيط : تم اكتشاف قيمة القندس النشيط الفائز في الولايات الخمس بواسطة هاينر ماركسن ويورغن بونتروك في عام 1989، ولكن لم يثبت أنه القندس النشيط الخامس الفائز - الذي يُرمز له بـ BB(5) - إلا في عام 2024 باستخدام برهان في روك. [ 13 ] [ 14 ]
لغة التكتيك
بالإضافة إلى بناء مصطلحات غالينا بشكل صريح، يدعم برنامج روك استخدام التكتيكات المكتوبة بلغة Ltac المدمجة أو بلغة OCaml. تعمل هذه التكتيكات على أتمتة بناء البراهين، من خلال تنفيذ الخطوات البسيطة أو البديهية فيها. [ 15 ] تُنفذ العديد من التكتيكات إجراءات اتخاذ القرار لنظريات مختلفة. على سبيل المثال، يُحدد تكتيك "الحلقة" نظرية المساواة modulo بديهيات الحلقة أو شبه الحلقة عبر إعادة الكتابة الترابطية - التبديلية . [ 16 ] على سبيل المثال، يُثبت البرهان التالي مساواة معقدة في حلقة الأعداد الصحيحة في سطر واحد فقط من البرهان: [ 17 ]
Require Import ZArith . Open Scope Z_scope . Goal forall a b c : Z , ( a + b + c ) ^ 2 = a * a + b ^ 2 + c * c + 2 * a * b + 2 * a * c + 2 * b * c . intros ; ring . Qed .تتوفر أيضًا إجراءات قرار مدمجة للنظرية الفارغة ("التطابق")، والمنطق الافتراضي ("التلقائي")، والحساب الخطي للأعداد الصحيحة الخالي من المُكمِّمات ("الحساب الخطي للأعداد الصحيحة")، والحساب الخطي للأعداد النسبية/الحقيقية ("الحساب الخطي للأعداد الحقيقية"). [ 18 ] [ 19 ] وقد طُوِّرت إجراءات قرار إضافية كمكتبات، بما في ذلك مكتبة لجبر كلين [ 20 ] ومكتبة أخرى لأهداف هندسية محددة . [ 21 ]
اسم

The old name Coq means 'rooster' in French and is a wordplay on the name of Thierry Coquand, calculus of constructions or CoC, and stems from a French tradition of naming research development tools after animals.[22] Until 1991, Coquand was implementing a language named the calculus of constructions and it was simply called CoC then. In 1991, a new implementation based on the extended calculus of inductive constructions was begun and the name changed from CoC to Coq in an indirect reference to Coquand, who developed the calculus of constructions along with Gérard Huet and contributed to the calculus of inductive constructions with Christine Paulin-Mohring.[23] On October 11, 2023, the development team announced that Coq would be renamed The Rocq Prover in coming months, and began updating the code base, website, and related tools.[24] The official renaming happened with the release of Rocq 9.0 in March 2025.[25] The new name refers to Inria Rocquencourt, where the system was developed first, and is related to the mythical bird Roc, which allows keeping the bird references from the prior name.[26]
Awards
- 2022 Open Science Award for Open Source Research Software in the category "Scientific and Technical" [27]
See also
References
- ↑"Rocq 9.2.0". 27 March 2026.
- ↑A Tour of Rocq
- ↑A Brief History
- ↑Avigad, Jeremy; Mahboubi, Assia (3 July 2018). Interactive Theorem Proving: 9th International Conference, ITP 2018, Held as ... Springer. ISBN 9783319948218. Retrieved 21 October 2018.
- ↑Chlipala, Adam (7 June 2022). "Library Universes". Certified Programming with Dependent Types: A Pragmatic Introduction to the Coq Proof Assistant. MIT Press. ISBN 978-0262026659.
- ↑ Adam Chlipala. "Certified Programming with Dependent Types": "Library GeneralRec". "Library InductiveTypes".
- ↑ دانفي ، أوليفييه (2022). "مُبرهنات الطي والفك للاستدلال حول البرامج التكرارية باستخدام مساعد إثبات Coq" . مجلة البرمجة الوظيفية . 32. doi : 10.1017/S0956796822000107 . ISSN 0956-7968 .
- ↑ غونتييه، جورج (2008). "البرهان الرسمي - نظرية الألوان الأربعة" (ملف PDF) . إشعارات الجمعية الرياضية الأمريكية . 55 (11): 1382-1393 . MR 2463991 .
- ↑ غونتييه، جورج؛ محبوبي، آسيا (2010). "مقدمة في الانعكاس على نطاق صغير في Coq" . مجلة الاستدلال الرسمي . 3 (2): 95-152 . doi : 10.6092/ISSN.1972-5787/1979 .
- ↑ "ملخص التغييرات في الإصدار 8.7" . rocq-prover.org .
- ↑ كونشون، سيلفان؛ فيلياتر، جان كريستوف (2007). "بنية بيانات مستمرة تعتمد على البحث عن الاتحاد". في: روسو، كلاوديو ف.؛ دراير، ديريك (محرران). وقائع ورشة عمل ACM حول ML، 2007، فرايبورغ، ألمانيا، 5 أكتوبر 2007. رابطة آلات الحوسبة. الصفحات 37-46 . doi : 10.1145/1292535.1292541 . ISBN 978-1-59593-676-9.
- ↑ «تم التحقق من صحة نظرية فيت-تومسون بالكامل في Coq» . Msr-inria.inria.fr. 20 سبتمبر 2012. مؤرشف من الأصل في 19 نوفمبر 2016. تم الاطلاع عليه في 25 سبتمبر 2012 .
- ↑ " [ 2 يوليو 2024 ] لقد أثبتنا أن "BB(5) = 47,176,870"" تحدي بيزي بيفر . 2 يوليو 2024. تم الاطلاع عليه في 2 يوليو 2024. "
- ↑ "تحدي القندس المشغول" . bbchallenge.org . تم الاطلاع عليه بتاريخ 2 يوليو 2024 .
- ↑ كايزر، يان-أوليفر؛ زيلياني، بيتا؛ كريبرز، روبرت؛ ريجيس-جياناس، يان؛ دراير، ديريك (30 يوليو 2018). "Mtac2: تكتيكات مكتوبة للاستدلال العكسي في Coq" . وقائع مؤتمر ACM حول لغات البرمجة . 2 (ICFP): 78:1–78:31. doi : 10.1145/3236773 . hdl : 21.11116/0000-0003-2E8E-B .
- ↑ غريغوار، بنيامين؛ محبوبي، آسيا (2005). "إثبات المساواة في حلقة تبديلية باستخدام Coq". في: هيرد، جو؛ ميلهام، توم (محرران). إثبات النظريات في منطق الرتبة العليا: المؤتمر الدولي الثامن عشر، TPHOLs 2005، أكسفورد، المملكة المتحدة، 22-25 أغسطس 2005، وقائع المؤتمر . سلسلة محاضرات في علوم الحاسوب. برلين، هايدلبرغ: سبرينغر. ص 98-113 . doi : 10.1007/11541868_7 . ISBN 978-3-540-31820-0.
- ↑ "عائلات تكتيكات الحلقة والميدان - وثائق Rocq Prover 9.0.0" . rocq-prover.org . تم الاطلاع عليه بتاريخ 7 مايو 2025 .
- ↑ بيسون، فريدريك (2007). "تكتيكات حسابية انعكاسية سريعة: الحالة الخطية وما بعدها" . في: ألتنكيرش، ثورستن؛ ماكبرايد، كونور (محرران). أنواع البراهين والبرامج: ورشة عمل دولية، TYPES 2006، نوتنغهام، المملكة المتحدة، 18-21 أبريل 2006، أوراق مختارة منقحة . سلسلة محاضرات في علوم الحاسوب. المجلد 4502. برلين، هايدلبرغ: سبرينغر. الصفحات 48-62 . doi : 10.1007/978-3-540-74464-1_4 . ISBN 978-3-540-74464-1.
- ↑ "Micromega: حلول للأهداف الحسابية على الحلقات المرتبة — وثائق Rocq Prover 9.0.0" . rocq-prover.org . تم الاطلاع عليه في 7 مايو 2025 .
- ↑ برايبانت، توماس؛ بوس، داميان (2010). كوفمان، مات؛ بولسون، لورانس سي. (محررون). تكتيك فعال باستخدام Coq لحسم جبر كلين . إثبات النظريات التفاعلي: المؤتمر الدولي الأول، ITP 2010، إدنبرة، المملكة المتحدة، 11-14 يوليو 2010، وقائع المؤتمر. سلسلة محاضرات في علوم الحاسوب. برلين، هايدلبرغ: سبرينغر. الصفحات 163-178 . doi : 10.1007/978-3-642-14052-5_13 . ISBN 978-3-642-14052-5. S2CID 3566183 .
- ↑ ناربو، جوليان (2004). "إجراء اتخاذ القرار للهندسة في Coq" . في: سليند، كونراد؛ بنكر، أنيت؛ جوبالاكريشنان، غانيش (محررون). إثبات النظريات في منطق الرتبة العليا: المؤتمر الدولي السابع عشر، TPHOLS 2004، بارك سيتي، يوتا، الولايات المتحدة الأمريكية، 14-17 سبتمبر 2004، وقائع المؤتمر . سلسلة محاضرات في علوم الحاسوب. المجلد 3223. برلين، هايدلبرغ: سبرينغر. الصفحات 225-240 . doi : 10.1007/978-3-540-30142-4_17 . ISBN 978-3-540-30142-4. S2CID 11238876 .
- ↑ "الأسئلة الشائعة" . جيت هاب . تم الاطلاع عليه بتاريخ 8 مايو 2019 .
- ↑ "مقدمة في حساب التفاضل والتكامل للإنشاءات الاستقرائية" . تم الاطلاع عليه بتاريخ 21 مايو 2019 .
- ↑ "خارطة طريق Coq رقم 069" . GitHub .
- ↑ "ملخص التغييرات في الإصدار 9.0" . rocq-prover.org .
- ↑ "نظرة عامة على تطور الاسم" . rocq-prover.org .
- ↑ "جوائز العلوم المفتوحة لبرمجيات البحث مفتوحة المصدر" . Ouvrir la Science . 7 فبراير 2022. تم الاطلاع عليه بتاريخ 4 ديسمبر 2025 .
روابط خارجية
- مساعدو التدقيق اللغوي
- برامج إثبات النظريات المجانية
- اللغات ذات الكتابة المعتمدة
- برامج تعليمية في الرياضيات
- برنامج يستخدم رخصة جنو العمومية الصغرى
- برنامج مجاني مكتوب بلغة OCaml
- اللغات الوظيفية
- لغات البرمجة التي تم إنشاؤها عام 1984
- برنامج عام 1989
- لغات برمجة ذات بنية قابلة للتوسيع
