AlloyTools / org.alloytools.alloy

Alloy is a language for describing structures and a tool for exploring them. It has been used in a wide range of applications from finding holes in security mechanisms to designing telephone switching networks. This repository contains the code for the tool.
Other
695 stars 124 forks source link

Temporal Specification and Analysis (Electrum) #136

Closed nmacedo closed 3 years ago

nmacedo commented 3 years ago

Enhances Alloy with the ability to write mutable models (var sigs and fields), specify dynamic properties (LTL with past), and verify such properties through alternative backends (SAT and SMV). A presentation of this extended Alloy is available at here.

This is a major pull request, with significant changes in:

This extension is not expected to not break compatibility with previous Alloy models, other than on those using protected ops and keywords, whose analysis should result in the same experience. Packaged example models were updated accordingly.

One major issue is the migration of the Kodkod backend into a separate repository. One issue is that changes to Kodkod made locally at org.alloytools.alloy have not (yet) been propagated to that new backend since commits cannot be easily identified.

I've annotated changes with an [HASLab] tag to make them more evident during development. I'll also leave local comments in the PR for relevant changes.