rindPHI / isla

The ISLa (Input Specification Language) language & solver.
https://isla.readthedocs.org
GNU General Public License v3.0
56 stars 8 forks source link

[FEATURE] Language Extension: Higher-Order and External Functions #79

Open rindPHI opened 1 year ago

rindPHI commented 1 year ago

The ISLa 2.0 syntax should support higher-order functions such as num(<T> v; P(v)) and sum(<T> v; P(v); t(v)), so that we can write

num(<byte> b; inside(b, <packet>)) < 40

instead of (in ISLa 1.x syntax)

exists int num_bytes: (count(<packet>, "<byte>", num_bytes) and num_bytes < 40)

Furthermore, "external" functions with user-specified semantics should be supported.

Adding these features supports removing the old semantic predicates and numeric quantifiers, both problematic ISLa 1.x syntax elements.