Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Vilka är några exempel på teorier som Z3 stöder


Vilka är några exempel på teorier som Z3 stöder


Z3, en toppmodern tillfredsställelse av Modulo Theories (SMT) -lösare utvecklad av Microsoft Research, stöder ett brett spektrum av teorier som är avgörande för programvaruverifiering och analys. Här är några exempel på teorierna Z3 stöder:

- Aritmetik: Detta inkluderar både heltal och verklig aritmetik, vilket gör att Z3 kan lösa ekvationer som involverar siffror.
-Bitvektorer med fast storlek: Användbar för att modellera digitala kretsar och binära data, dessa är vektorer av bitar med en fast längd.
- Extensionsuppsättningar: Matriser behandlas som funktioner från index till värden, vilket gör att Z3 kan resonera om datastrukturer.
- Datatyper: Z3 stöder resonemang om komplexa datastrukturer som listor, träd och poster.
- Otolkade funktioner: Dessa är funktioner vars beteende inte är definierat, användbart för abstrahering av implementeringsdetaljer.
- Kvantifierare: Z3 kan hantera både existentiella och universella kvantifierare, vilket gör att den kan resonera om egenskaper som gäller för alla eller vissa delar av en domän.

Dessutom kan Z3 utvidgas eller användas i samband med andra teorier, såsom kardinalitet och pseudo-boolean ojämlikheter, som är användbara i kombinatoriska problem. Det stöder också kodning och axiomatiserande anpassade teorier, vilket gör det mångsidigt för olika applikationer i programvaruverifiering och formella metoder [3] [4] [9] [10].

Citeringar:
[1] https://theory.stanford.edu/~nikolaj/programmingz3.html
[2] https://specs.openstack.org/openstack/congress-specs/specs/rocky/alternative-gine-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/
]
[9] https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/nbjorner-aplas11.pdf
[10] http://theory.stanford.edu/~nikolaj/z3navigate.html