Računalno potpomognuto rezonovanje: ACL2 studije slučaja

The source-page: https://www.cs.uTeksas.edu/~moore/publications/acl2-books/acs/index.html

Matt Kaufmann, Panagiotis Manolios, ve J Strother Moore (ured.), Kluwer Academic Publishers, June, 2000. (ISBN 0-7923-7849-0)

Açıklama

Bu kitap, bilgisayar destekli akıl yürütme sistemi ACL2’nin donanım ve yazılım sistemlerini tasarlamak, oluşturmak ve sürdürmek için üretken ve yenilikçi yollarla nasıl kullanılabileceğini göstermektedir. Burada, bazıları “temizlenmiş” endüstriyel projeler olan bağımsız vaka çalışmaları hakkında rapor veren yirmi bir katılımcı tarafından yazılan teknik makaleler yer almaktadır. Kayan nokta aritmetiği, mikroişlemci simülasyonu, model kontrolü, sembolik yörünge değerlendirmesi, derleme, ispat kontrolü, gerçek analiz ve diğerleri dahil olmak üzere çok çeşitli fikirlerle ilgilenirler.

Kitap iki hedef kitleye yöneliktir: donanım ve yazılım sistemlerini daha hızlı ve daha güvenilir bir şekilde tasarlamak, oluşturmak ve sürdürmek için yenilikçi yollar arayanlar ve bunu nasıl yapacaklarını öğrenmek isteyenler. Eski hedef kitle, ankete yönelik kurslardaki proje yöneticilerini ve öğrencileri içerir. İkinci hedef kitle, donanım ve yazılım mühendisliğine veya resmi yöntemlere titiz yaklaşımlar izleyen öğrenciler ve profesyonelleri içerir. Kitap, Yazılım Mühendisliği, Biçimsel Yöntemler, Donanım Tasarımı, Hesaplama Teorisi, Yapay Zeka ve Otomatik Akıl Yürütme konularında lisansüstü ve üst bölüm lisans derslerinde kullanılabilir.

Kitap iki bölüme ayrılmıştır. Bölüm I, ACL2’yi kullanma çabasının bir tartışmasıyla başlar. Ayrıca, okuyucuya vaka çalışmalarını okuması için yeterli arka plan vermeyi amaçlayan ACL2 mantığına ve mekanizasyonuna kısa bir giriş içerir. ACL2’ye yönelik daha kapsamlı bir ders kitabı girişi, Bilgisayar Destekli Akıl Yürütme: Bir Yaklaşım adlı tamamlayıcı kitapta bulunabilir.

ACL2, uygulamalı Common Lisp’e uyarlanmış “Boyer-Moore teoremi ispatlayıcısı” Nqthm’nin geliştirilmiş ve genişletilmiş bir versiyonudur. Editörler Kaufmann ve Moore, ACL2 sisteminin yazarlarıdır. (Bob Boyer ayrıca ACL2’ye önemli katkılarda bulunmuştur.) ACL2, yalnızca kaynak kodu ve kapsamlı hipermetin belgelerini değil, aynı zamanda ACL2 ve onun hakkında birçok makaleyi içeren ACL2 ana sayfasından GNU Genel Kamu Lisansı koşulları altında ücretsiz olarak edinilebilir. uygulamalar, rehberli sistem turları ve posta listeleri.

Kitabın kalbi, vaka çalışmalarının sunulduğu Bölüm II’dir. Vaka çalışmaları, donanımdan (örneğin, kayan nokta aritmetiği, donanım tanımlama dilleri ve sembolik yörünge analizi) yazılıma (örneğin, grafik arama, derleme ve bir model kontrol algoritması) ve ötesine (sayı teorisi) kadar geniş bir uygulama yelpazesini kapsar. ve gerçek analiz). Tümü, mekanik olarak desteklenen tek bir matematiksel çerçevede yapılır: ACL2.

Her vaka çalışmasının tam çözümü burada mevcuttur. Örneğin, örnek olay incelemelerinden birinin bir kayan nokta çarpanını biçimlendirdiğini ve doğruluğunu kanıtladığını söylediğimizde, yalnızca modelin İngilizce bir açıklamasını ve doğruluğunu nasıl kanıtladığını okuyabileceğinizi değil, aynı zamanda tamamını elde edebileceğinizi kastediyoruz. projenin resmi içeriğini ve dilerseniz kanıtları ACL2 kopyanızla tekrar oynatın. Dolayısıyla bu kitap sadece bir başlangıç. Bir kayan nokta çarpanının veya derleyicinin doğruluğunu nasıl kanıtlayacağınızı gerçekten öğrenmek istiyorsanız, makaleleri okuyun ve ardından komut dosyalarını alın ve kanıtları yeniden oluşturun. Sonra onları değiştirin ve deneyin.

Vaka çalışmaları, çözümleri Web’de bulunan alıştırmaları içerir. Ayrıca, modelleri resmileştirmek ve tartışılan tüm özellikleri kanıtlamak için gerekli olan eksiksiz ACL2 betikleri Web’dedir. Belirli bir projeyi yapmak için kullanılan tekniklerde uzmanlaşmak istiyorsanız, projenize benzeyen örnek olay incelemelerindeki alıştırmaları yapın.

Katkıda Bulunanlar

Bu cilde katkıda bulunanlar, çalışma sırasındaki bağlantıları ile birlikte aşağıda listelenmiştir.

Piergiorgio Bertoli IRST – Araştırma Enstitüsü
Bilimsel ve Teknolojik
Povo, İtalya
Dominique Borrione TIMA-UJF
Grenoble, Fransa
John Cowles Bilgisayar Bilimleri Bölümü
Wyoming Üniversitesi
Laramie, Wyoming
Arthur Flatau Advanced Micro Devices, Inc.
Austin, Teksas
Ruben Gamboa Logical Information Machines, Inc.
Austin, Teksas
Philippe Georgelin TIMA-UJF
Grenoble, Fransa
Wolfgang Goerigk Bilgisayar Bilimi ve Pratik Matematik Enstitüsü
Kiel’deki Christian-Albrechts-Üniversitesi
Kiel, Almanya
David Greve Rockwell Collins
İleri Teknoloji Merkezi
Cedar Rapids, Iowa
David Hardin Ajile Systems, Inc.
Oakdale, Iowa
Warren A. Hunt, Jr. IBM Austin Araştırma Laboratuvarı
Austin, Teksas
Damir A. Jamsek IBM Austin Araştırma Laboratuvarı
Austin, Teksas
Matt Kaufmann Advanced Micro Devices, Inc.
Austin, Teksas
Panagiotis Manolios Bilgisayar Bilimleri Bölümüs
Austin’deki Teksas Üniversitesi
Austin, Teksas
William McCune Matematik ve Bilgisayar Bilimleri Bölümü
Argonne Ulusal Laboratuvarı
Argonne, Illinois
J Strother Moore Bilgisayar Bilimleri Bölümüs
Austin’deki Teksas Üniversitesi
Austin, Teksas
Vanderlei Rodrigues TIMA-UJF
Grenoble, Fransa
(UFRGS’den izinli,
Porto Alegre, Brezilya)
David M. Russinoff Advanced Micro Devices, Inc.
Austin, Teksas
Jun Sawada Bilgisayar Bilimleri Bölümüs,
Austin’deki Teksas Üniversitesi
Austin, Teksas
Olga Shumsky Elektrik ve Bilgisayar Mühendisliği Bölümü
Kuzeybatı Üniversitesi
Evanston, Illinois
Paolo Traverso IRST – Araştırma Enstitüsü

             Bilimsel ve Teknolojik
Povo, İtalya

Matthew Wilding Rockwell Collins
İleri Teknoloji Merkezi
Cedar Rapids, Iowa

Alıştırmalara Çözümler İçeren Vaka Çalışmaları için Destekleyici Materyal

Vaka çalışmalarının yazarları, sunulan sonuçları yeniden oluşturmak için tam metinler sağladı. Bu “destekleyici materyal” ayrıca her bir vaka çalışmasındaki alıştırmaların çözümlerini de içerir. acl2-books proje sayfasında açıklandığı gibi SVN’den veya SVN’yi kullanarak workshops/1999 indirebileceğiniz dizinin altında bulunacak her vaka çalışmasının destekleyici materyali için ayrı bir dizin vardır. Bir üst düzey dosya vardır ve her alt dizin içeriğini açıklayan bir dosya içerir.http://acl2.org/index.htmlREADMEREADME

5. Grafik Teorisinde Bir Alıştırma (J Moore; dizin graph/)
Bu bölüm, sonlu yönlendirilmiş bir grafiğin iki düğümü arasında bir yol olup olmadığını belirlemek için birkaç basit algoritmanın doğruluğunu resmileştirir ve kanıtlar.

6. Modüler Kanıt: Analizin Temel Teoremi (Matt Kaufmann; dizin calculus/)
Bölüm, modüler bir yukarıdan aşağıya ispat metodolojisi sunar ve bunu Kalkülüsün Temel Teoremini resmileştirmek ve ispatlamak için kullanır. Modüler strateji hem ACL2 hem de “ACL2(r)” için çalışır (aşağıdaki 18. Bölüme bakın); Temel Teorem ACL2(r) ile ispatlanmıştır.

7. Mu-Calculus Model-Kontrol (Panagiotis Manolios; dizin mu-calculus/)
Bu bölüm, Mu-hesabı için sözdiziminin ve anlambiliminin resmi bir gelişimini, ACL2’de bunun için bir model denetleyicisini ve diğer zamansal mantıkların çevirisinin bir tartışmasını sunar. Mu-hesabına girer. Model denetleyicisinin doğru olduğu kanıtlandı.

8. Yüksek Hızlı, Analiz Edilebilir Simülatörler (David Greve, Matthew Wilding, David Hardin; dizin simulator/)
Performansı tahmin etmek, tasarım kusurlarını tespit etmek ve donanım/yazılıma izin vermek için karmaşık donanım sistemlerinin tasarımı sırasında yüksek hızlı simülasyon modelleri rutin olarak geliştirilir. ortak tasarım. ACL2’de böyle yürütülebilir bir model yazmak, resmi analizin ek faydasını getirir; ancak hem hızlı hem de analiz edilebilir bir ACL2 modeli oluşturmak için çok dikkatli olunması gerekir. Bu bölümde, ACL2’de yüksek hızlı resmi olarak analiz edilebilir simülatörlerin yapımı için teknikler açıklanmaktadır. Faydaları basit bir işlemci modelinde gösterilmiştir.

9. Basit Boru Hatlı Bir Makine Modelinin Doğrulanması (Jun Sawada; dizin pipeline/)
Üç aşamalı ardışık makinenin bir ACL2 modeli, karşılık gelen sıralı makinenin bir modeliyle birlikte tanımlanır. Ardından iki makine arasındaki denkliğin bir kanıtı sunulur. Daha da önemlisi, ispatı ayrıştırma yöntemi çok daha karmaşık ardışık düzen mimarileri için geçerlidir.

10. DE Dili (Warren Hunt, Jr.; dizin de-hdl/)
DE dili, bir donanım tanımlama dili tarzında sonlu durum makinelerinin hiyerarşik tanımına izin veren, oluşuma yönelik bir tanımlama dilidir. Dilin sözdizimi ve semantiği resmileştirilir ve basit bir donanım devresinin doğruluğunu kanıtlamak için resmileştirme kullanılır. Bu tür resmi HDL’ler, çok daha karmaşık tasarımların özelliklerini kanıtlamak için kullanılmıştır.

11. VHDL’yi Taklit Etmek için Makroları Kullanma (Dominique Borrione, Philippe Georgelin, Vanderlei Rodrigues; dizin vhdl/)
Bu projenin amacı, VHDL’nin sentezlenebilir küçük bir davranışsal alt kümesini resmileştirmek, VHDL’nin sözdizimsel lezzetini mümkün olduğunca korumak ve sembolik olarak doğrulamayı kolaylaştırmaktı. simülasyon ve teorem ispatı.

12. Sembolik Yörünge Değerlendirmesi (Damir A. Jamsek; dizin ste/)
Sembolik Yörünge Değerlendirmesi (STE), temelde sembolik simülasyona dayalı bir model kontrol şeklidir. Bu bölüm, Seger ve Joyce’un “Matematiksel Olarak Hassas İki Düzeyli Resmi Donanım Doğrulama Metodolojisi” başlıklı makalesinde sunulan sonuçların ACL2 kanıtları da dahil olmak üzere STE’nin resmi bir tedavisini sunar.

13. RTL Doğrulaması: Kayan Nokta Çarpanı (David M. Russinoff, Arthur Flatau; dizin multiplier/)
Bu bölüm, Advanced Micro Devices’ın RTL dilinde temsil edilen tasarımlar için mekanik bir doğrulama sistemini açıklar. Sistem, ACL2’ye bir çevirmen ve ACL2 kanıtlayıcıyı kullanarak ortaya çıkan programların özelliklerini doğrulamak için bir metodolojiden oluşur. Basit bir kayan nokta çarpanının doğruluğu kanıtlanmıştır.

14. Güvenlik Açısından Kritik Gömülü Doğrulayıcının Tasarım Doğrulaması (Piergiorgio Bertoli, Paolo Traverso; dizin embedded/)
Bu bölüm, güvenlik açısından kritik bir yazılım olan Gömülü Doğrulayıcının tasarım doğrulaması için ACL2 kullanımını gösterir. Gömülü Doğrulayıcı, güvenlik açısından kritik bir çevirmenin her uygulamasının doğru olduğunu çevrimiçi olarak kontrol eder. Çevirmen, Union Switch ve Signal tarafından trenle kontrol sistemleri oluşturmak için kullanılan bir yazılım sisteminin bir bileşenidir.

15. Derleyici Doğrulaması Yeniden Ziyaret Edildi (Wolfgang Goerigk; dizin compiler/)
Bu çalışma, Ken Thompson tarafından Turing Ödülü Dersinde  gözlemlenen bir gerçeği göstermektedir: doğru bir derleyicinin makine kodu, derleyicinin hemen hemen her testi geçmesi için bir Truva Atı içerecek şekilde değiştirilebilir, aynı sonuçlarla kendi kaynak kodunu derlediği ve yine de “kötü” kod üretebildiği sözde “önyükleme testi” dahil. Derleyici, nesne kodu makinesi ve deneyler ACL2’de resmileştirilmiştir.

16. Ivy: Birinci Dereceden Mantık için Ön İşlemci ve Kanıt Denetleyicisi (William McCune, Olga Shumsky; dizin ivy/)
Bu örnek olay incelemesinde, birinci derece mantık için bir ispat denetleyicisinin sonlu yorumlar için sağlam olduğu kanıtlanmıştır. Ek olarak, çalışma ACL2 olmayan programların ACL2 işlevleriyle nasıl birleştirilebileceğini ve böylece kompozit programlar hakkında yararlı özelliklerin kanıtlanabileceğini göstermektedir. ACL2 olmayan programlar hakkında hiçbir şey kanıtlanmamıştır. Bunun yerine, ACL2 olmayan programların sonuçları, çalışma zamanında ACL2 fonksiyonları tarafından kontrol edilir ve bu kontrol fonksiyonlarının özellikleri kanıtlanır.

17. Knuth’un McCarthy’nin 91 Fonksiyonunu Genelleştirmesi (John Cowles; dizin knuth-91/)
Bu bölüm, Donald Knuth’un John McCarthy’nin ünlü “91 fonksiyonu” genellemesi hakkında bir teoremin “bilgisayarla ispatı” için yaptığı bir meydan okuma ile ilgilidir. Genelleme gerçek sayıları içerir ve vaka çalışması, yalnızca tüm gerçek sayıların alanıyla ilgili değil, aynı zamanda o alanın her alt alanıyla ilgili sonuçları mekanik olarak doğrulayarak Knuth’un meydan okumasını karşılamak için ACL2’yi kullanır.

18. Süreklilik ve Türevlenebilirlik (Ruben Gamboa; dizin analysis/)
Bu bölüm, ACL2’nin genişletilmiş bir versiyonunun (ACL2(r) olarak adlandırılır) ve standart olmayan analiz kullanılarak gerçek ve karmaşık sayılar hakkında akıl yürütmek için nasıl kullanılabileceğini gösterir. ACL2’de irrasyonel gerçek ve karmaşık sayıları ACL2’nin sayı sistemine dahil eden bazı değişiklikleri açıklar. Ardından, değiştirilmiş ACL2’nin ara değer ve ortalama değer teoremleri gibi klasik analiz teoremlerini nasıl kanıtlayabileceğini gösterir.