Enumerative Data Types with Constraints

Many verification and validation activities involve reasoning about constraints over complex, hierarchical data types. For example, distributed protocols are often defined using state machines that govern the behavior of processes communicating with messages which are hierarchical data types with st...

Full description

Saved in:
Bibliographic Details
Published in2022 Formal Methods in Computer-Aided Design (FMCAD) pp. 189 - 198
Main Authors Walter, Andrew T., Greve, David, Manolios, Panagiotis
Format Conference Proceeding
LanguageEnglish
Published FMCAD Association and authors 18.10.2022
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:Many verification and validation activities involve reasoning about constraints over complex, hierarchical data types. For example, distributed protocols are often defined using state machines that govern the behavior of processes communicating with messages which are hierarchical data types with state-dependent constraints and dependencies between component fields. Fuzzing, analyzing and evaluating implementations of such protocols requires solving complex queries that pose challenges to current SMT solvers. Generating fields that satisfy type constraints is one of the challenges and this can be tackled using enumerative data types: types that come with an enumerator, an efficiently computable function from natural numbers to elements of the type. Enumerative data types were introduced in ACL2s as a key component of counterexample generation, but they do not handle constraints such as dependencies between types. We extend enumerative data types with constraints and show how this extension enables applications such as hardware-in-the-loop fuzzing of complex distributed protocols.
ISSN:2708-7824
DOI:10.34727/2022/isbn.978-3-85448-053-2_25