Expand description
This module implements various routines for simplifying event traces, as well as printing the generated traces.
Structs§
- Event
References - The
EventReferencesstruct contains for every variablevin a trace, the set of all it’s immediate dependencies, i.e. all the symbols used to directly definev, as computed byuses_in_exp. - Write
Opts - Options for writing event traces
Functions§
- commute_
extract - This rewrite pushes extract expressions inwards where possible, so
- eval
- Evaluate SMT subexpressions if all their arguments are constant
- hide_
initialization - Removes register effects from before the first
(cycle)event. When combined withremove_unusedthis will reduce the amount of initialization that appears in the trace. - propagate_
forwards_ used_ once - This rewrite looks for events of the form
(define-const v (expression)), and ifvis only used exactly once in subsequent events it will replace that use ofvby the expression. - remove_
unused - Removes SMT events that are not used by any observable event (such as a memory read or write).
- renumber_
event renumber_eventRenumbers all the symbolic variables in an event such that multiple event sequences can have disjoint variable identifiers. It takes twou32argumentsiandtotal, such thatiis the index of our event sequence in the range0..(total - 1)inclusive wheretotalis the number of event sequences we want to make disjoint.- write_
events - write_
events_ with_ opts