Files
2025-01-24 10:58:47 +03:00
..
2025-01-23 16:37:24 +03:00
2025-01-23 16:37:24 +03:00
2025-01-24 10:58:47 +03:00
2025-01-24 10:53:47 +03:00
2025-01-24 10:28:10 +03:00
2025-01-24 10:49:11 +03:00

This directory contains formal models of Implib.so algorithm which should help with verification.

Initialization

This is a model of Implib.so initialization logic with -DIMPLIB_EXPORT_SHIMS and is based on arch/common/init.c.tpl.

The model is implemented in two flavors: Promela and TLA+ (I have no idea why I didn't use PlusCal).

To verify TLA+ model

$ rm -rf states
$ java -jar tla2tools.jar -workers $(nproc) Init.tla

(add -coverage 1 for coverage stats).

To verify Promela model

  • install spin (via sudo apt install spin)
  • execute
$ spin -run -ltl never_0 Init.pml
$ spin -run -ltl Prop Init.pml

Errors can be examined via

$ spin -p -t Init.pml

TODO: try other langs (Alloy, NuSMV/NuXmv, B)