Jump to content

Metodat formale

Nga Wikipedia, enciklopedia e lirë


shkencën kompjuterike, metodat formale janë teknika matematikisht rigoroze për specifikimin, zhvillimin, analizën dhe verifikimin e sistemeve të softuerit dhe harduerit.[1] Aplikimi i metodave formale në projektimin e softuerit dhe harduerit nxiset nga presioni që, ashtu si në fusha të tjera inxhinierike, realizimi i analizave të nevojshme matematikore mund të ndihmojë në rritjen e qëndrueshmërisë dhe besueshmërisë së një projekti.[2]

Teknikat formale përdorin një shumëllojshmëri themelesh teorike të shkencës kompjuterike, duke përfshirë llogaritjet logjike, gjuhët formale, teorinë e automatëve, teorinë e kontrollit, semantikën e programit, sistemet e tipit dhe teorinë e tipit.

Teknikat formale mund të përdoren në faza të ndryshme gjatë procesit të zhvillimit.

Metodat formale mund të shfrytëzohen për të ofruar një përshkrim të saktë të sistemit që do të krijohet, në çdo nivel detajimi që është i kërkuar. Metoda të tjera formale mund të bazohen në këtë specifikim për të krijuar një program ose për të kontrolluar saktësinë e një sistemi.

Ndryshe, përshkrimi mund të jetë faza e vetme ku aplikohet përdorimi i metodave formale.Duke krijuar një përshkrim, pasiguri në kërkesat joformale mund të identifikohen dhe të zgjidhen. Gjithashtu, inxhinierët mund të shfrytëzojnë një përshkrim zyrtar si udhëzues për të orientuar proceset e tyre të zhvillimit. [3]

Kerkesa për sisteme të specifikimeve formale është vërejtur prej vitesh. Në raportin e ALGOL 58, John Backus prezantoi një shënim zyrtar për përshkrimin e sintaksës së gjuhës programuese, pas kohes u quajt Backus forma normale në vijim u emërua si formë Backus–Naur (BNF). Backus gjithashtu theksoi se një përshkrim formal i kuptimit të programeve ALGOL që ishin sintaksikisht të vlefshme nuk ishte përfunduar në kohë për t'u përfshirë në raport, duke deklaruar se 'do të përfshihet në një dokument të mëvonshëm'. Sidoqoftë, asnjë dokument që përshkruan semantikën formale nuk u botua kurrë.[4]

Sinteza e programit është procesi i krijimit automatik të një programi që përputhet me një përshkrim. Qasjet e sintezës deduktive mbështeten në një përshkrim të plotë dhe formalisht të saktë të programit, ndërsa qasjet induktive nxjerrin përshkrime nga shembuj. Sintetizuesit kryejnë një kërkim në hapësirën e mundshme të programeve për të gjetur një program që përmbush specifikimet. Për shkak të shkallës së gjerë të kësaj hapësire kërkimi, zhvillimi i algoritmeve efikas për kërkim mbetet një nga sfidat kryesore në sintezën e softuerit.[5]

Vërtetimi formal është shfrytëzimi i paisjeve softuerike për të konfirmuar karakteristikat e një specifikimi formal, ose për të vërtetuar se një model formal i zbatimit të një sistemi plotëson kerkesat e tij.

Pasi të jetë zgjeruar një specifikim formal, specifikimi mund të shfrytëzohet si themel për të vërtetuar karakteristikat e specifikimit, dhe me konkluzion, karakteristikat e zbatimit të sistemit.

Verifikimi i hyrjes

[Redakto | Redakto nëpërmjet kodit]

Kontrolli i hyrjes është përdorimi i një instrumenti zyrtar verifikimi me besueshmëri të lartë. Një i tillë mund të zëvendësojë teknikat tradicionale të verifikimit (instrumenti mund të jetë gjithashtu i certifikuar). [ citim i nevojshëm ]

Prova e drejtuar nga njeriu

[Redakto | Redakto nëpërmjet kodit]

Ndonjëherë, motivimi për të verifikuar korrektësinë e një sistemi nuk është e domosdoshme për të garantuar besueshmërinë dhe saktësinë e sistemit, por gjithashtu për të pasur një kuptim më të thellë të tij.Rrjedhimisht, disa prova të korrektësisë prodhohen në stilin e provës matematikore : të shkruara me dorë (ose të shtypura) duke përdorur gjuhën natyrore, duke përdorur një nivel informaliteti të përbashkët për prova të tilla. Një provë "e mirë" është ajo që është e kuptueshme dhe e lehtë për t'u lexuar nga njerëzit e tjerë.

Ata që kritikojnë qasje të tilla theksojnë se paqartësia në gjuhën natyrore lejon që gabimet të mos identifikohen në prova të tilla; shpesh, gabime të imëta mund të jenë të pranishme në detajet e nivelit të ulët, të cilat zakonisht injorohen nga prova të tilla. Për më tepër, puna e angazhuar në krijimin e një prove kaq të saktë kërkon një nivel të lartë të sofistikimit dhe njohurive të avancuara matematikore.

Dëshmi e automatizuar

[Redakto | Redakto nëpërmjet kodit]

Përkundrazi, ka një interes në rritje për të krijuar prova të saktësisë së sistemeve të tilla duke përdorur mjete të automatizuara. Teknikat automatike ndahen në tre grupe kryesore:

  • Prova e automatizuar e teoremës, në të cilën një sistem përpiqet të prodhojë një provë formale nga e para, duke pasur parasysh një përshkrim të sistemit, një grup aksiomash logjike dhe një sërë rregullash konkluzionesh .
  • Kontrollimi i modelit, në të cilin një sistem verifikon veti të caktuara me anë të një kërkimi shterues të të gjitha gjendjeve të mundshme që një sistem mund të hyjë gjatë ekzekutimit të tij.
  • Interpretimi abstrakt, në të cilin një sistem verifikon një mbi-përafrim të një vetie të sjelljes së programit, duke përdorur një llogaritje të pikës fikse mbi një rrjetë (ndoshta të plotë) që e përfaqëson atë.

Disa prova të automatizuara të teoremave kërkojnë udhëzime për të përcaktuar cilat veçori janë mjaft 'interesante' për t'u ndjekur, ndërsa të tjerë veprojnë pa ndërhyrjen e njeriut. Defektet e modeleve mund të shfaqen shpejt gjatë kontrollimit të miliona gjendjeve të padobishme nëse nuk ofrohet një model mjaft abstrakt.

Përkrahësit e sistemeve të tilla argumentojnë se rezultatet ofrojnë një sigurim më të madh matematikor sesa provat e krijuara nga njeriu, pasi të gjitha detajet e mundimshme janë verifikuar në mënyrë algoritmike. Trajnimi i nevojshëm për përdorimin e sistemeve të tilla është gjithashtu më i vogël se ai që kërkohet për të krijuar prova të sakta matematikore manualisht, duke i bërë këto teknika më të disponueshme për një gamë më të gjerë praktikuesish.

Kritikët theksojnë se disa nga këto sisteme janë si orakuj: ato shpallin një të vërtetë, por nuk ofrojnë asnjë shpjegim për këtë të vërtetë. Ekziston edhe problemi i " verifikimit të verifikuesit "; nëse programi që ndihmon në verifikim është vetë i paprovuar, mund të lindin dyshime për qëndrueshmërinë e rezultateve të prodhuara. Disa mjete moderne për kontrollin e modeleve krijojnë një 'regjistër provash' që detajon çdo hap të provës së tyre, duke mundësuar, nëse disponohen mjetet e duhura, verifikimin e pavarur.

Karakteristika kryesore e qasjes së interpretimit abstrakt është se ajo ofron një analizë të saktë, duke shmangur rezultatet negative të rreme. Për më tepër, ajo është e shkallëzueshme në mënyrë efikase, duke përshtatur domenin abstrakt që përfaqëson vetinë që do të analizohet, dhe duke aplikuar operatorë zgjerues [6] për të arritur konvergjencë të shpejtë.

Metodat formale përfshijnë një serë teknikash të ndryshme.

Specifikimet e gjuhëve

[Redakto | Redakto nëpërmjet kodit]

Dizajni i një sistemi kompjuterik mund të shpjegohet duke përdorur një gjuhë specifikimi, ajo që është një gjuhë zyrtare që përmban një sistem provash. Duke shfrytëzuar këtë sistem provash, mjetet zyrtare të verifikimit mund të demonstrohet për specifikimin dhe të specifikojnë se një sistem i përmbahet specifikimit.[7]

Diagramet e vendimeve binare

[Redakto | Redakto nëpërmjet kodit]

Vendimi i një diagrami binar është një strukturë e të dhënave që përfaqëson një funksion Boolean . [8] Nëse një formulë Boolean shpreh se një ekzekutim i një programi përputhet me specifikimin, një diagram vendimi binar mund të përdoret për të përcaktuar nëse është një tautologji; dmth vlerëson gjithmonë të VËRTETË. Nëse është kështu, atëherë programi përputhet gjithmonë me specifikimet. [9]

Një zgjidhës SAT është një program që mund të zgjidhë problemin e kënaqshmërisë Boolean, problemin e gjetjes së një caktimi të variablave që e bën një formulë të dhënë propozimi të vlerësohet si e vërtetë. Nëse një formulë Boolean P shpreh që një ekzekutim i caktuar i një programi është në përputhje me specifikimin, atëherë përcaktimi që ¬P është i pakënaqshëm është ekuivalent me përcaktimin që të gjitha ekzekutimet janë në përputhje me specifikimet. Zgjidhësit SAT përdoren shpesh në kontrollin e modeleve të kufizuara, por mund të përdoren gjithashtu edhe për kontrollin e modeleve të pakufizuara.[10]

Metodat formale aplikohen në fusha të ndryshme të harduerit dhe softuerit, duke përfshirë ruterat, ndërprerësit Ethernet, protokollet e rrugëtimit, aplikacionet e sigurisë dhe mikrokernelet e sistemit operativ si seL4. Përmenden disa shembuj në të cilët ato janë përdorur për të konfirmuar funksionalitetin e harduerit dhe softuerit të përdorur në qendrat e të dhënave. IBM përdori ACL2, një dëshmi teoreme, në procesin e zhvillimit të procesorit AMD x86. [ citim i nevojshëm ] Intel përdor teknika të tilla për të verifikuar harduerin dhe firmuerin e saj (softuer i përhershëm i programuar në një memorie vetëm për lexim ). Qendra Dansk Datamatik përdori metoda formale në vitet 1980 për të zhvilluar një sistem përpilues për gjuhën e programimit Ada që vazhdoi të bëhej një produkt tregtar jetëgjatë. [11]

Ka disa projekte të tjera të NASA-s në të cilat aplikohen metoda formale, si Sistemi i Transportit Ajror të Gjeneratës së ardhshme, Integrimi i Sistemit të Avionëve pa pilot në Sistemin Kombëtar të Hapësirës Ajrore, dhe Zgjidhja dhe Zbulimi i Koordinuar i Konflikteve në Ajr (ACCoRD). [12] B-Method me Atelier B, [13] përdoret për të zhvilluar automatizma sigurie për metrotë e ndryshme të instaluara në të gjithë botën nga Alstom dhe Siemens, si dhe për certifikimin e kritereve të përbashkëta dhe zhvillimin e modeleve të sistemit nga ATMEL dhe STMicroelectronics .

Verifikimi zyrtar është përdorur shpesh në harduer nga shumica e shitësve të njohur të pajisjeve, si IBM, Intel dhe AMD. Ka shumë fusha të harduerit, ku Intel ka përdorur metoda formale për të verifikuar funksionimin e produkteve, të tilla si verifikimi i parametrizuar i protokollit koherent në cache,vërtetimi i motorit të ekzekutimit të procesorit Intel Core i7 [14] (duke përdorur vërtetimin e teoremës, BDD, dhe vlerësimi simbolik), optimizimi për arkitekturën Intel IA-64 duke përdorur proverin e teoremës së dritës HOL, dhe verifikimin e Kontrollues Ethernet gigabit me dy porta me performancë të lartë me mbështetje për protokollin PCI express dhe teknologjinë e menaxhimit të avancimit Intel duke përdorur Cadence. Në mënyrë të ngjashme, IBM ka përdorur metoda formale në verifikimin e portave të energjisë, regjistrat, dhe verifikimin funksional të mikroprocesorit IBM Power7.

Në zhvillimin e softuerit

[Redakto | Redakto nëpërmjet kodit]

zhvillimin e softuerit, metodat formale janë qasje matematikore për zgjidhjen e problemeve të softuerit (dhe harduerit) në kërkesat, specifikimet dhe nivelet e projektimit. Keto metodat kanë më shumë gjasa të aplikohen në softuerët dhe sistemet kritike për sigurinë ose sigurinë, të tilla si softueri avionik . Standardet e sigurimit të sigurisë së softuerit, të tilla si DO-178C lejojnë përdorimin e metodave formale përmes plotësimit, dhe Kriteret e Përbashkëta urdhërojnë metodat formale në nivelet më të larta të kategorizimit.

Për softuerin sekuencial, shembuj të metodave formale përfshijnë Metoda-B, gjuhët e specifikimeve të përdorura në vërtetimin e automatizuar të teoremës, RAISE dhe shënimin Z.

programimin funksional, testimi i bazuar në veti ka lejuar specifikimin dhe testimin matematikor (nëse jo testim shterues) të sjelljes së pritshme të funksioneve individuale.

Gjuha e kufizimit të objektit (dhe specializimet si gjuha e modelimit Java ) ka lejuar që sistemet e orientuara nga objekti të specifikohen zyrtarisht, nëse jo domosdoshmërisht të shyqrtohen zyrtarisht.

Për softuerin dhe sistemet e njëkohshme, rrjetat Petri, algjebra e proceseve dhe makinat e gjendjes së fundme (të cilat bazohen në teorinë e automatave; shih gjithashtu makinën virtuale të gjendjes së fundme ose makinën e gjendjes së fundme të drejtuar nga ngjarjet) mundësojnë specifikimet e softuerit të ekzekutueshëm dhe mund të përdoren për të ndërtuar dhe verifikuar sjelljen e aplikimit.

Një qasje tjetër ndaj metodave formale në zhvillimin e softuerit është të shkruani një specifikim në një formë logjike - zakonisht një variacion i logjikës së rendit të parë - dhe më pas të ekzekutoni drejtpërdrejt logjikën sikur të ishte një program. Gjuha OWL, e bazuar në logjikën e përshkrimit, është një shembull. Ka gjithashtu punë për hartimin e një versioni të anglishtes (ose një gjuhë tjetër natyrore) automatikisht në dhe nga logjika, si dhe ekzekutimin e logjikës drejtpërdrejt. Shembuj janë Anglishtja e kontrolluar e tentativës dhe logjika e biznesit në internet, të cilat nuk kërkojnë të kontrollojnë fjalorin ose sintaksën. Një tipar i sistemeve që mbështesin hartëzimin dydrejtues të logjikës angleze dhe ekzekutimin e drejtpërdrejtë të logjikës është se ato mund të bëhen për të shpjeguar rezultatet e tyre, në anglisht, në nivel biznesi ose shkencor.[ citim i nevojshëm ]

Metodat gjysmë formale

[Redakto | Redakto nëpërmjet kodit]

Metodat gjysmë formale janë formalizma dhe gjuhë që nuk konsiderohen plotësisht "formale".Ai e shtyn detyrën e plotësimit të semantikës në një fazë të mëvonshme, e cila më pas bëhet ose me interpretim njerëzor ose me interpretim përmes softuerëve si gjeneratorët e kodeve ose rasteve testuese.[15]

Disa praktikues besojnë se komuniteti i metodave formale e ka mbitheksuar formalizimin e plotë të një specifikimi ose dizajni. [16] Ata pretendojnë se ekspresiviteti i gjuhëve të përfshira, si dhe kompleksiteti i sistemeve që modelohen, e bëjnë formalizimin e plotë një detyrë të vështirë dhe të shtrenjtë. Si alternativë, janë propozuar metoda të ndryshme formale të lehta, të cilat theksojnë specifikimin e pjesshëm dhe aplikimin e fokusuar. Shembuj të kësaj qasjeje të lehtë ndaj metodave formale përfshijnë shënimin e modelimit të objektit Alloy, sintezën e Denney-t të disa aspekteve të shënimit Z me zhvillimin e drejtuar nga rasti i përdorimit, dhe CSK VDM Tools. [17]

Metodat dhe shënimet formale

[Redakto | Redakto nëpërmjet kodit]

Ekzistojnë një sërë metodash dhe shënimesh formale në dispozicion.

Specifikimet e gjuhëve

[Redakto | Redakto nëpërmjet kodit]
  • Makinat e gjendjes abstrakte (ASM)
  • Një Logjikë Llogaritëse për Lispën e Përbashkët Aplikative (ACL2)
  • Aktor model
  • aliazh
  • Gjuha e specifikimit ANSI/ISO C (ACSL)
  • Gjuha e specifikimit të sistemit autonom (ASSL)
  • B-Metoda
  • CADP
  • Gjuha e zakonshme e specifikimeve algjebrike (CASL)
  • Esterel
  • Gjuha e modelimit Java (JML)
  • Asistent i softuerit të bazuar në njohuri (KBSA)
  • Shkëlqim
  • mCRL2
  • Zhvilluesi i përsosur
  • rrjeta Petri
  • Programimi predikativ
  • Llogaritjet e procesit
    • CSP
    • LOTOS
    • π-llogaritje
  • NGRITJE
  • Rebeca Modeling Language
  • SPARK Ada
  • Specifikimet dhe gjuha e përshkrimit
  • TLA+
  • USL
  • VDM
    • VDM-SL
    • VDM++
  • Shënimi Z

Kontrollues të modeleve

[Redakto | Redakto nëpërmjet kodit]
  • ESBMC [18]
  • Kompleti i veglave të analizës statike të softuerit MALPAS – një kontrollues modeli me forcë industriale që përdoret për vërtetimin zyrtar të sistemeve kritike për sigurinë
  • PAT – një kontrollues modeli, simulator dhe kontrollues i përsosjes falas për sistemet e njëkohshme dhe shtesat CSP (p.sh. variabla të përbashkëta, vargje, drejtësi)
  • TRETJE
  • UPPAAL

Zgjidhësit dhe konkurset

[Redakto | Redakto nëpërmjet kodit]

Shumë probleme në metodat formale janë NP-të vështira, por mund të zgjidhen në rastet që dalin në praktikë.Për shembull, problemi i kënaqshmërisë Boolean është NP-komplet nga teorema Cook–Levin, por zgjidhësit SAT mund të zgjidhin një sërë shembujsh të mëdhenj.Ka "zgjidhës" për një sërë problemesh që lindin në metodat formale dhe ka shumë konkurse periodike për të vlerësuar teknologjinë më të fundit në zgjidhjen e problemeve të tilla.[19]

  • Konkursi SAT është një konkurs vjetor që krahason zgjidhësit SAT. [20] Zgjidhësit SAT përdoren në mjetet e metodave formale siç është Alloy. [21]
  • CASC është një konkurs vjetor i provave të automatizuara të teoremave .
  • SMT-COMP është një konkurs vjetor i zgjidhësve SMT, të cilët aplikohen për verifikimin zyrtar. [22]
  • CHC-COMP është një konkurs vjetor i zgjidhësve të klauzolave të kufizuara Horn, të cilat kanë aplikime për verifikimin zyrtar. [23]
  • QBFEVAL është një konkurs dyvjeçar i zgjidhësve për formula të vërteta të kuantifikuara Boolean, të cilat kanë aplikime për kontrollimin e modeleve. [24] [25]
  • SV-COMP është një konkurs vjetor për mjetet e verifikimit të softuerit.[26]
  • SyGuS-COMP është një konkurs vjetor për mjetet e sintezës së programeve .[27]
  • BCS-FACS
  • Metodat formale në Evropë
  • Z Grupi i përdoruesve

Shihni gjithashtu

[Redakto | Redakto nëpërmjet kodit]
  1. ^ Butler, R. W. (2001-08-06). "What is Formal Methods?" (në anglisht). Marrë më 2006-11-16.
  2. ^ Holloway, C. Michael. "Why Engineers Should Consider Formal Methods" (PDF). 16th Digital Avionics Systems Conference (DASC) (në anglisht). 16th Digital Avionics Systems Conference (27–30 October 1997). Arkivuar nga origjinali (PDF) më 16 nëntor 2006. Marrë më 2006-11-16.{{cite journal}}: Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja)
  3. ^ Utting, Mark; Reeves, Steve (gusht 31, 2001). "Teaching formal methods lite via testing". Software Testing, Verification and Reliability (në anglisht). 11 (3): 181–195. doi:10.1002/stvr.223.{{cite journal}}: Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja)
  4. ^ O'Hearn, Peter W.; Tennent, Robert D. (1997). Algol-like Languages (në anglisht).
  5. ^ Gulwani, Sumit; Polozov, Oleksandr; Singh, Rishabh (2017). "Program Synthesis". Foundations and Trends in Programming Languages (në anglisht). 4 (1–2): 1–119. doi:10.1561/2500000010.
  6. ^ A. Cortesi and M. Zanioli, Widening and Narrowing Operators for Abstract Interpretation. Computer Languages, Systems and Structures. Volume 37(1), pp. 24–42, Elsevier, ISSN 1477-8424 (2011).
  7. ^ Bjørner, Dines; Henson, Martin C. (2008). Logics of Specification Languages (në anglisht). fq. VII–XI.
  8. ^ Bryant, Randal E. (2018). "Binary Decision Diagrams". përmbledhur nga Clarke, Edmund M.; Henzinger, Thomas A.; Veith, Helmut; Bloem, Roderick (red.). Handbook of Model Checking (në anglisht). fq. 191.
  9. ^ Chaki, Sagar; Gurfinkel, Arie (2018). "BDD-Based Symbolic Model Checking". përmbledhur nga Clarke, Edmund M.; Henzinger, Thomas A.; Veith, Helmut; Bloem, Roderick (red.). Handbook of Model Checking (në anglisht). fq. 191.
  10. ^ Prasad, Mukul R; Biere, Armin; Gupta, Aarti (janar 25, 2005). "A survey of recent advances in SAT-based formal verification". International Journal on Software Tools for Technology Transfer (në anglisht). 7 (2): 156–173. doi:10.1007/s10009-004-0183-4.{{cite journal}}: Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja)
  11. ^ Bjørner, Dines; Gram, Christian; Oest, Ole N.; Rystrøm, Leif (2011). "Dansk Datamatik Center". përmbledhur nga Impagliazzo, John; Lundin, Per; Wangler, Benkt (red.). History of Nordic Computing 3: IFIP Advances in Information and Communication Technology (në anglisht). Springer. fq. 350–359.
  12. ^ Airborne Coordinated Conflict Resolution and Detection, http://shemesh.larc.nasa.gov/people/cam/ACCoRD/ Arkivuar 2016-03-05 tek Wayback Machine
  13. ^ "Atelier B". www.atelierb.eu (në anglisht).
  14. ^ Formal Verification in Intel Core i7 Processor Execution Engine Validation, http://cps-vo.org/node/1371 Arkivuar 2015-05-03 tek Wayback Machine, accessed at September 13, 2013.
  15. ^ X2R-2, deliverable D5.1 (në anglisht).
  16. ^ Vinu George and Rayford Vaughn, "Application of Lightweight Formal Methods in Requirement Engineering" Arkivuar 2006-03-01 tek Wayback Machine, Crosstalk: The Journal of Defense Software Engineering, January 2003
  17. ^ Sten Agerholm and Peter G. Larsen, "A Lightweight Approach to Formal Methods" Arkivuar 2006-03-09 tek Wayback Machine, In Proceedings of the International Workshop on Current Trends in Applied Formal Methods, Boppard, Germany, Springer-Verlag, October 1998
  18. ^ "ESBMC". esbmc.org (në anglisht).
  19. ^ Bartocci, Ezio; Beyer, Dirk; Black, Paul E.; Fedyukovich, Grigory; Garavel, Hubert; Hartmanns, Arnd; Huisman, Marieke; Kordon, Fabrice; Nagele, Julian (2019). "TOOLympics 2019: An Overview of Competitions in Formal Methods". përmbledhur nga Beyer, Dirk; Huisman, Marieke; Kordon, Fabrice; Steffen, Bernhard (red.). Tools and Algorithms for the Construction and Analysis of Systems. Lecture Notes in Computer Science (në anglisht). Cham: Springer International Publishing. fq. 3–24. doi:10.1007/978-3-030-17502-3_1. ISBN 978-3-030-17502-3.
  20. ^ Froleyks, Nils; Heule, Marijn; Iser, Markus; Järvisalo, Matti; Suda, Martin (2021-12-01). "SAT Competition 2020". Artificial Intelligence (në anglisht). 301: 103572. doi:10.1016/j.artint.2021.103572. ISSN 0004-3702.
  21. ^ Cornejo, César (2021-01-27). "SAT-based arithmetic support for alloy". Proceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering. ASE '20 (në anglisht). New York, NY, USA: Association for Computing Machinery. fq. 1161–1163. doi:10.1145/3324884.3415285. ISBN 978-1-4503-6768-4.
  22. ^ Barrett, Clark; Deters, Morgan; de Moura, Leonardo; Oliveras, Albert; Stump, Aaron (2013-03-01). "6 Years of SMT-COMP". Journal of Automated Reasoning (në anglisht). 50 (3): 243–277. doi:10.1007/s10817-012-9246-5. ISSN 1573-0670.
  23. ^ Fedyukovich, Grigory; Rümmer, Philipp (2021-09-13). "Competition Report: CHC-COMP-21". Electronic Proceedings in Theoretical Computer Science (në anglisht). 344: 91–108. arXiv:2008.02939. doi:10.4204/EPTCS.344.7. ISSN 2075-2180.
  24. ^ Shukla, Ankit; Biere, Armin; Pulina, Luca; Seidl, Martina (nëntor 2019). "A Survey on Applications of Quantified Boolean Formulas". 2019 IEEE 31st International Conference on Tools with Artificial Intelligence (ICTAI) (në anglisht). IEEE. fq. 78–84. doi:10.1109/ICTAI.2019.00020. ISBN 978-1-7281-3798-8.{{cite book}}: Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja)
  25. ^ Pulina, Luca; Seidl, Martina (2019-09-01). "The 2016 and 2017 QBF solvers evaluations (QBFEVAL'16 and QBFEVAL'17)". Artificial Intelligence (në anglisht). 274: 224–248. doi:10.1016/j.artint.2019.04.002. ISSN 0004-3702.
  26. ^ Beyer, Dirk (2022). "Progress on Software Verification: SV-COMP 2022". përmbledhur nga Fisman, Dana; Rosu, Grigore (red.). Tools and Algorithms for the Construction and Analysis of Systems. Lecture Notes in Computer Science (në anglisht). Vëll. 13244. Cham: Springer International Publishing. fq. 375–402. doi:10.1007/978-3-030-99527-0_20. ISBN 978-3-030-99527-0.
  27. ^ Alur, Rajeev; Fisman, Dana; Singh, Rishabh; Solar-Lezama, Armando (2017-11-28). "SyGuS-Comp 2017: Results and Analysis". Electronic Proceedings in Theoretical Computer Science (në anglisht). 260: 97–115. arXiv:1611.07627. doi:10.4204/EPTCS.260.9. ISSN 2075-2180.

Lidhje të jashtme

[Redakto | Redakto nëpërmjet kodit]
Material arkivor