Skip to main content

shrink

Function shrink 

Source
pub fn shrink(
    prog: &Program,
    sig_len: usize,
    fails: impl FnMut(&Program) -> bool,
) -> Program
Expand description

Minimize prog while fails keeps returning true. The trailing signature epilogue (length sig_len) is treated as fixed and regenerated each trial; the body (everything before it) is shrunk by greedily removing instructions, then unneeded seed registers are dropped. fails re-runs the comparison and returns true iff the divergence still reproduces.