Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Jaké jsou příklady teorií, které Z3 podporuje


Jaké jsou příklady teorií, které Z3 podporuje


Z3, nejmodernější řešitel modulo teorie (SMT) vyvinutý společností Microsoft Research, podporuje širokou škálu teorií, které jsou pro ověření a analýzu softwaru zásadní. Zde je několik příkladů teorií Z3:

- Aritmetika: Zahrnuje to celé číslo i skutečné aritmetické, což umožňuje Z3 řešit rovnice zahrnující čísla.
-Bit-vektory s pevnou velikostí: Užitečné pro modelování digitálních obvodů a binárních dat, jedná se o vektory bitů s pevnou délkou.
- Rozšíření pole: Pole jsou považována za funkce od indexů k hodnotám, což umožňuje Z3 rozumět datovým strukturám.
- Datatypy: Z3 podporuje uvažování o složitých datových strukturách, jako jsou seznamy, stromy a záznamy.
- Neinterpretované funkce: Jedná se o funkce, jejichž chování není definováno, užitečné pro abstrahování podrobností o implementaci.
- Kvantifikátory: Z3 zvládnou jak existenciální, tak univerzální kvantifikátory, což mu umožňuje uvažovat o vlastnostech, které se vztahují na všechny nebo některé prvky domény.

Kromě toho lze Z3 prodloužit nebo použít ve spojení s jinými teoriemi, jako je kardinálnost a pseudo-boolean nerovnosti, které jsou užitečné v kombinatoriálních problémech. Podporuje také kódování a axiomatizující vlastní teorie, což je všestranné pro různé aplikace při ověření softwaru a formálních metodách [3] [4] [9] [10].

Citace:
[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-arrays-in-z3-1-model-is-difficult-to-Unstand-2-do-not-now-ho
[9] https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/nbjorner-aplas1.pdf
[10] http://theory.stanford.edu/~nikolaj/z3navigate.html