Theory Trace_Run
theory Trace_Run
imports
Analysis_Render
"Voblint_Solver.Solver_Trace"
begin
section ‹The solver trace of one run›
text ‹
\<^theory>‹Voblint_Solver.Solver_Trace› gives the executable solver a traced copy.
This theory adds the two things only a run knows: which context each call is
routed to, and how to read the solver's unknowns and values back as the result
reads them. It assembles them into ‹run_voblint_traced›, which is
\<^const>‹run_voblint› in the logic and the only exported entry point whose code
reaches \<^const>‹trace_event›. \<^const>‹run_voblint› itself keeps its own code
equations and runs no hook.
›
subsection ‹Routing›
text ‹
A route receives the calling unknown's node and context and the entry state,
and returns the callee's context. The traced run wraps each context policy's
route so that it reports that triple.
›