INNER CODE UNIT · Python

sort_str

stp/stp · scripts/fuzz/uf-differential-fuzz.py:53

    def sort_str(self, s):
        return "Bool" if s == 'bool' else "(_ BitVec %d)" % s

    def leaf(self, sort, depth):
        choices = [v for v, s in self.vars if s == sort]
        if choices and rng.random() < 0.7:
            return rng.choice(choices)
        if sort == 'bool':
            return rng.choice(["true", "false"])
        return "#b" + "".join(rng.choice("01") for _ in range(sort))

    def term(self, sort, depth):
        if depth <= 0 or rng.random() < 0.3:
            return self.leaf(sort, depth)
        fits = [(i, f) for i, f in enumerate(self.funcs) if f[2] == sort]
        if fits and rng.random() < 0.55:
            i, (name, dom, cod) = rng.choice(fits)
            args = [self.term(d, depth - 1) for d in dom]

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…