Prove that an SVTV pipeline is an unrolling of the FSM that it's based on
When computing an SVTV pipeline using defsvtv$ or defsvtv$-phasewise, a FSM is first created and the pipeline is then a
composition (unrolling) of FSM phases. This is an invariant of the svtv-data stobj; if the
The
(b* ((fsm (svtv-cycle)) (rename-fsm (make-svtv-fsm :fsm fsm :namemap (svtv-namemap))) (renamed-fsm (svtv-fsm->renamed-fsm rename-fsm)) ((pipeline-setup pipe) (svtv-pipeline-setup)) (outvars (svtv-probealist-outvars pipe.probes)) (run (fsm-run (svex-alistlist-eval (svtv-fsm-to-fsm-inputsubsts (take (len outvars) pipe.inputs) pipe.override-vals pipe.override-tests (svtv-namemap)) env) (svex-alist-eval pipe.initst env) renamed-fsm outvars))) (svex-envs-equivalent (svex-alist-eval (svtv->outexprs (svtv)) env) (svtv-probealist-extract pipe.probes run)))
Here
The options for
(def-pipeline-thm svtv-name ;; optional, in case cycle was introduced previously :cycle-name cycle-name)