SySLite
SYSLITE: Syntax-Guided Synthesis of PLTL Formulas from Finite Traces
Install / Use
/learn @CLC-UIowa/SySLiteREADME
SySLite
<sub>Syntax-Guided Past-time LTL Synthesizer & Enumerator</sub>
SysLite makes use of decision and synthesis procedures (\ie SAT, SMT, and SyGuS) to learn Pastime LTL formulas from a finite set of example traces. These example traces describe the intended and unintended behavior in terms of positive and negative traces that can come from various application domains (i.e, security policy logs, protocols, and execution of a system or design model, among others).
Build & Test
Run commands on Terminal:
- Build:
./tool-setup(some machines may require runningapt-get install python3-venvbeforetool-setup)- Continue? [Y]es/[N]o: Y
- Only required once to setup the tool
- Enable execution:
source env/bin/activate- Required before executing the tool on a new terminal.
- Run:
./src/Driver.py --help - Disable execution:
deactivate
Usage
An example trace file is added to learn back an emergency alert system (eas) formula.
The trace file contains
positive and negative traces that uses a format described below.
Please use the command to run eas trace example using bit-vector SyGuS encoding:
./src/Driver.py -n 5 -r result.txt -a bv_sygus -dict -t eas-example/eas.trace
./src/Driver.py -n 5 -r result.txt -a bv_sygus -dict -t eas-example/eas.json

Supported Algorithms:
The tool currently supports a list of algorithms that can be invoked with -a option:
- SyGus + BitVector + enumeration
bv_sygus- SyGus + BitVector + enumeration + implication shape (atomic prop.)
bv_sygus_ap_impl - SyGus + BitVector + enumeration + implication shape (generic fml)
bv_sygus_ge_impl
- SyGus + BitVector + enumeration + implication shape (atomic prop.)
- SyGuS + ADT + enumeration
adt_sygus - SMT + ADT + enumeration
fin_adt - SAT - enumeration
sat - SAT + enumeration
sat_enum - SAT + Graph Topological - enumeration
guided_sat - SAT + Graph Topological + enumeration
guided_sat_enum
Example Encoding Files:
All the proposed encoding files are instantiated using
eas.trace are:
- eas-adt-enc.sy (* ADT with SyGuS *)
- eas-bv-enc.sy (* Bitvector with SyGuS *)
- eas-fnf-enc.smt2 (* ADT using Finite Model Finding *)
These encodings can be tested using off-the-shelf CVC4SY solver using the commands:
./cvc4 --lang=sygus2 --sygus-stream --sygus-sym-break-pbe FILENAME.sy
./cvc4 FILENAME.smt2
Input File Format:
An example trace file is provided in file eas.trace.
The input traces files contains alphabets, positive and negative example traces, supported operators
separated by ---.
p,q //Atomic Propositions
---
1,1;0,0 (\* Positive Traces \*)
1,0;1,0
---
1,0;0,0 (\* Negative Traces \*)
---
!,Y,O,H (\* Enable Unary Operators in Final Formula (Optional) \*)
---
S,&,|,=> (\* Enable Binary Operators in Final Formula (Optional) \*)
---
3 (\* Synthesized Formula Size (Optional) \*)
---
S(Y(q),q) (\* Target Formula for Match (Optional) \*)
Experiments:
The details about the experiments are described in the paper. The training and test data include results are contained in Experiments
Reference:
Report: "SYSLITE: Syntax-Guided Synthesis of PLTL Formulas from Finite Traces", FMCAD20 [accepted]
Related Skills
tmux
342.0kRemote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.
blogwatcher
342.0kMonitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.
product
Cloud-agnostic Kubernetes infrastructure with Terraform & Helm for homelabs, edge, and production clusters.
Unla
2.1k🧩 MCP Gateway - A lightweight gateway service that instantly transforms existing MCP Servers and APIs into MCP servers with zero code changes. Features Docker deployment and management UI, requiring no infrastructure modifications.
