Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Mitkä ovat esimerkkejä teorioista, joita Z3 tukee


Mitkä ovat esimerkkejä teorioista, joita Z3 tukee


Microsoft Researchin kehittämä Z3, huipputekninen tyydytysmoduloteoriat (SMT) -ratkaisija, tukee laajaa valikoimaa teorioita, jotka ovat ratkaisevan tärkeitä ohjelmistojen todentamiselle ja analysoinnille. Tässä on joitain esimerkkejä Z3: n teorioista:

- Aritmeettinen: Tähän sisältyy sekä kokonaisluku että todellinen aritmeettinen, jolloin Z3 voi ratkaista yhtälöt, joihin liittyy numeroita.
-Kiinteäkokoiset bittivarjot: Hyödyllisiä digitaalisten piirien ja binaaristen tietojen mallintamiseen, nämä ovat bittien vektoreita, joiden pituus on kiinteä.
- Laajennusryhmät: Taulukkoja käsitellään funktioina indekseistä arvoihin, jolloin Z3 voidaan perustella tietorakenteiden suhteen.
- Datatyypit: Z3 tukee päättelyä monimutkaisista tietorakenteista, kuten luetteloista, puista ja tietueista.
- Tulkimattomat toiminnot: Nämä ovat toimintoja, joiden käyttäytymistä ei ole määritelty, hyödyllinen toteutuksen yksityiskohtien abstraktille.
- Kvantifikaattorit: Z3 pystyy käsittelemään sekä eksistentiaalisia että yleisiä kvantifioijia, jolloin se voi perustella ominaisuuksiin, joita sovelletaan kaikkiin tai joihinkin alueen elementteihin.

Lisäksi Z3: ta voidaan laajentaa tai käyttää yhdessä muiden teorioiden, kuten kardinaalisuuden ja pseudo-boolean eriarvoisuuden kanssa, jotka ovat hyödyllisiä yhdistelmäongelmissa. Se tukee myös koodausta ja aksiomaisoivaa mukautettuja teorioita, mikä tekee siitä monipuolisen eri sovelluksille ohjelmistojen todentamisessa ja muodollisissa menetelmissä [3] [4] [9] [10].

Viittaukset:
[1] https://theory.stanford.edu/~nikolaj/programming3.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/proodyrec.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