karat

DSL for specifying systems via linear temporal logic. Enables model checking against implementations with Kotest or Scalacheck integration and property verification using Alloy integration.

JVM
macOS
Linux
JS
GitHub stars32
Dependents0
Creation datealmost 4 years ago

Last activityabout 3 years ago
Latest release0.1.3 (about 3 years ago)

💎 Karat

Temporal Logic for JVM

Karat is a DSL to specify systems using linear temporal logic. From a single specification you can pursue two different avenues:

References

The use of temporal logic to describe program properties has a long history. Some interesting pointers are:

  • Quickstrom's Specification Language. Quickstrom is a tool for testing how a web application behaves when some events like clicking occur. It uses temporal logic to express the desired outcome.
  • Formal Software Design with Alloy 6. Alloy is a tool for formal modeling and exploration of systems. In Alloy you use temporal logic to both describe the system and specify properties which should be verified.
JVM
macOS
Linux
JS
GitHub stars32
Dependents0
Creation datealmost 4 years ago

Last activityabout 3 years ago
Latest release0.1.3 (about 3 years ago)

💎 Karat

Temporal Logic for JVM

Karat is a DSL to specify systems using linear temporal logic. From a single specification you can pursue two different avenues:

References

The use of temporal logic to describe program properties has a long history. Some interesting pointers are:

  • Quickstrom's Specification Language. Quickstrom is a tool for testing how a web application behaves when some events like clicking occur. It uses temporal logic to express the desired outcome.
  • Formal Software Design with Alloy 6. Alloy is a tool for formal modeling and exploration of systems. In Alloy you use temporal logic to both describe the system and specify properties which should be verified.