SeRu is a tool for automatic program reduction.
It uses a combination of syntactic and semantic reduction strategies to combine speed and effectiveness.
SeRu is designed to support any semantic reduction command and any language.
Usage
SeRu currently supports:
Syntactic reducers
Perses
Semantic reducers for languages
CUE
Pre-requisites
Steps 1 & 2 are only necessary while the repository are private
SeRu will download such dependencies automatically
Download Perses & CUE-specific extension (latest from the release page)
-t <test>Required
Test script checking if the reduced file still kept the required property
A test script must return 0 when the property was kept and 1 (or any code) if the property was lost
-l <language>
Programming language of the input file. Will be inferred from the file extension if omitted.
-s
Use strategy isolation.
This mode will apply only one semantic strategy and try to reduce all returned candidates using the syntactic reducer.
Default mode: strategy combination
In strategy combination, all strategies are applied and combined to one "best candidate". Then this one candidate will be reduced by the syntactic reducer.