اثبات قضایا برای پیوندهای رقص زنگ در ACL2

1 مقدمه

2 لینک رقص

3 زبان برنامه نویسی Rust

4 RAC: تضمین مشترک سخت افزار/نرم افزار در مقیاس

5 زنگ و RAR

5.1 زنگ الگوریتمی محدود

6 پیوند رقص در Rust و 6.1 تعاریف

6.2 ترجمه به ACL2

6.3 قضایای پیوندهای رقص

7 کارهای مرتبط

8 نتیجه گیری

9 قدردانی و مراجع

هنگامی که توابع فهرست دایره‌ای پیوند دوگانه را به ACL2 ترجمه کردیم، می‌توانیم قضایای مربوط به اجرای ساختار داده را اثبات کنیم. ما با تعریف یک گزاره “خوب شکل گیری” برای CDLL ها شروع می کنیم.

با توجه به این تعریف از وضعیت CDLL خوب، می‌توانیم قضایای صحت عملکردی را برای عملیات Dancing Links، از نوع بیان شده در زیر، اثبات کنیم. توجه داشته باشید که این اثبات نیازمند برخی فرضیه‌های دقیق شکل‌گیری مربوط به شاخص‌های قبلی و بعدی برای عنصر n است:

ACL2 اثبات صحت این cdll_restore قضیه cdll_remove را به طور خودکار انجام می دهد. علاوه بر اثبات عملگر Dancing Links، ما تقریباً 160 قضیه مربوط به ساختار داده CDLL را ثابت کرده‌ایم، از جمله قضایای مربوط به cdll_cns() (معادل منفی)، cdll_-rst() (معادل cdr)، cdll_snc() (افزودن به پایان). ساختار داده)، ()cdll_tsr (حذف از انتهای ساختار داده)، cdll_nth() و غیره. همه این شواهد ارائه خواهد شد …

Source link