Expand description
Parsing items, e.g. terms, proof steps, quantifiers; and related objects or functions.
Macros§
Structs§
- Assignment
- Assignment to a literal.
- BitVec
- Blame
- Explains how a term in a pattern was matched. It will always start with an enode and then have some sequence of equalities used to rewrite distinct subexpressions of the enode.
- Bound
Vars - Cdcl
- Cdcl
Backlink - CdclIdx
- Conflict
- ENode
- ENode
Idx - EqGiven
Idx - EqTrans
Idx - Equality
- Fingerprint
- An identifier for a Z3 quantifier instantiation (called “fingerprint” in the original Axiom Profiler). Represented as a 16-digit hexadecimal number in log files.
- Graph
Idx - InstIdx
- Instantiation
- A Z3 instantiation.
- Justification
- LitIdx
- Literal
- A boolean term which has been assigned either true or false.
- Match
- Match
Idx - PatVec
- Pattern
Idx - Proof
Idx - Proof
Step - A Z3 proof step and associated data. Represents a single step where z3 proved a boolean expression. These steps have dependencies which combine to build up a proof tree. Parts of this tree may be under hypotheses in which case the solver tries to do a proof by contradiction (and the proved terms are only valid under these hypotheses).
- Proof
Step Kind Iter - An iterator over the variants of ProofStepKind
- Quant
Idx - Quant
Pat - Quant
PatVec - Quantifier
- A Z3 quantifier and associated data.
- Stack
Frame - Stack
Idx - Term
- A Z3 term and associated data.
- TermId
- Represents an ID string of the form
name#id
orname#
. - Term
IdTo IdxMap - Remapping from
TermId
toTermIdx
. We want to have a single flat vector of terms butTermId
s don’t map to this nicely, additionally theTermId
s may repeat and so we want to map to the latest currentTermIdx
. Has a special fast path for the common empty namespace case. - TermIdx
- Time
Range - Transitive
Expl - Transitive
Expl Segment
Enums§
- Cdcl
Kind - Coupling
- ENode
Blame - Equality
Expl - A Z3 equality explanation. Root represents a term that is a root of its equivalence class. All other variants represent an equality between two terms and where it came from.
- Inst
Proof Link - A Z3 instantiation.
- Instantiation
Kind - Justification
Kind - The reason for an assignment.
- Match
Kind - Meaning
- Proof
Step Kind - Taken from z3-sys. Update from there if more cases are added. A few marked cases were renamed to match z3’s ast.cpp.
- Quant
Kind - Represents an ID string of the form
name!id
. - Term
Kind - Term
Kind Inner - Theory
Kind - See https://github.com/Z3Prover/z3/blob/z3-4.13.4/src/ast/ast.h#L78-L88 and
https://github.com/Z3Prover/z3/blob/z3-4.13.4/src/ast/ast.cpp#L1330-L1336
These define the basic family IDs, we get them either as a number (e.g. in
[assign]
lines) or names (e.g. in[eq-expl] th
lines). Other family IDs may be defined, which are represented as eitherOther
orUnknown
, depending on if we got a name or a number. - Time
Range Status - Transitive
Expl Iter - Transitive
Expl Segment Kind - VarNames