Z3, modernākais apmierinātības modulo teoriju (SMT) risinātājs, ko izstrādājis Microsoft Research, atbalsta plašu teoriju klāstu, kas ir būtiski programmatūras pārbaudei un analīzei. Šeit ir daži teoriju Z3 atbalsta piemēri:
- Aritmētika: tas ietver gan veselu skaitli, gan reālu aritmētiku, ļaujot Z3 atrisināt vienādojumus, kas saistīti ar skaitļiem.
-Fiksēta izmēra bitu vektori: noderīgi digitālo ķēžu un bināro datu modelēšanai, tie ir bitu vektori ar fiksētu garumu.
- Paplašināšanas bloki: masīvi tiek uzskatīti par funkcijām no indeksiem līdz vērtībām, ļaujot Z3 pamatot datu struktūras.
- Datatipi: Z3 atbalsta argumentāciju par sarežģītām datu struktūrām, piemēram, sarakstiem, kokiem un ierakstiem.
- Nepārprotamas funkcijas: tās ir funkcijas, kuru uzvedība nav definēta, kas ir noderīga, lai abstrahētu ieviešanas informāciju.
- Kvantifikācijas: Z3 var rīkoties gan ar eksistenciālām, gan universālām kvantifikatoriem, ļaujot tam pamatot par īpašībām, kas attiecas uz visiem domēna elementiem vai dažiem elementiem.
Turklāt Z3 var paplašināt vai izmantot kopā ar citām teorijām, piemēram, kardinalitāti un pseido-būlu nevienlīdzību, kas ir noderīgi kombinatoriskajās problēmās. Tas arī atbalsta pielāgoto teoriju kodēšanu un aksiomatizēšanu, padarot to daudzpusīgu dažādām lietojumprogrammām programmatūras verifikācijas un formālo metožu gadījumā [3] [4] [9] [10].
Atsauces:[1] https://theory.stanford.edu/~nikolaj/programmingz3.html
[2] https://specs.openstack.org/openstack/congress-specs/specs/rocky/alternative-engine-z3.html
[3] https://en.wikipedia.org/wiki/z3_theorem_prover
[4] https://ceur-ws.org/vol-418/paper10.pdf
[5] https://jfmc.github.io/z3-play/
[6] https://www21.in.tum.de/~boehmes/proofrec.pdf
[7] https://microsoft.github.io/z3guide/docs/logic/intro/
[8] https://stackoverflow.com/questions/73789804/theory-of-array-in-z3-1-model-is-difficult-to-derstand-2-do-not-zin-ho
[9] https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/nbjorner-aplas11.pdf
[10] http://theory.stanford.edu/~nikolaj/z3navigate.html