futhr

futhr

ExMaude - Elixir bindings for the Maude formal verification system

ExMaude is an Elixir library providing high-level bindings for Maude, a formal specification language based on rewriting logic developed at the University of Illinois at Urbana-Champaign. Maude has been in active development since 1999 and is used in academia for protocol verification, security analysis, and programming language semantics.

The library manages Maude processes through a Poolboy worker pool and offers a pluggable backend architecture (Port, C-Node, NIF) for different performance and isolation requirements.

Features:

  • Term reduction, rewriting, and state space search through a high-level Elixir API
  • Pluggable backends: Port (~500us/op), C-Node (~100us/op), NIF (planned)
  • Bundled Maude 3.5.1 binaries for macOS and Linux (ARM64 + x86_64)
  • Telemetry integration for observability
  • Structured error types with 16 error categories
  • Livebook notebooks included for interactive exploration

IoT rule conflict detection:

The library includes a specialized module for detecting conflicts in automation rules, based on the AutoIoT research paper. It identifies four conflict types – state conflicts, environment conflicts, state cascades, and state-environment cascades – through Maude’s equational reduction, providing mathematical proof of conflict-freedom rather than probabilistic coverage.

I wrote this primarily to support formal verification of IoT automation rules, but the core API is general-purpose and applicable to any domain where rewriting logic or model checking is useful – protocol verification, state machine analysis, configuration validation, and similar problems.

Feedback and contributions are welcome. Full documentation, code examples, and Livebook notebooks are available in the repository.

Happy coding … or AI introspecting or whatever we call this fusion today :slight_smile:

References:

https://github.com/futhr/ex_maude

Where Next?

Trending in Announcing Top

bluzky
You may know https://ui.shadcn.com/, a UI component library for React. I really love it’s design style and components. I’ve built some co...
385 14863 120
New
JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
shahryarjb
The Chelekom project is a library of Phoenix and LiveView components generated via Mix tasks to fit developer needs seamlessly. One of i...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
ausimian
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New
quatermain
Hello, I’m sharing my plugin here in forum after some time so it has time to mature and proof yourself. I use Claude Code daily on a pr...
New

Other Trending Topics Top

type1fool
I just stumbled on a newly redesigned elixir-lang.org. :tada: It looks like @Software_Mansion did the work, and I think it is generally a...
New
akoutmos
@hugobarauna and I (Alex Koutmos) have been hard at work on writing a book on Nerves that takes you from simply blinking LEDs to building...
New
juhalehtonen
There has been a thread to discuss the Stack Overflow Developer Survey on this forum every year since 2018, so here’s yet another one for...
New
bjorng
We want to introduce a new native datatype to Erlang: native records. Although replacing all tuple records with native records is not our...
New
spammy
I’m looking to build a personal workflow to quickly deploy web applications written in elixir/phoenix, for local consumption (ie not on t...
New
yureehuh
Introduction Founded in 2017 by landscape ecologist and fire mitigation expert Harry Statter, Frontline developed the first fully integra...
New

We're in Beta

About us Mission Statement