merc_syntax 1.0.0

Provides an AST and Pest grammar for the mCRL2 specification language.
Documentation
% Author(s): Aad Mathijssen, Jeroen Keiren
% Copyright: see the accompanying file COPYING or copy at
% https://github.com/mCRL2org/mCRL2/blob/master/COPYING
%
% Distributed under the Boost Software License, Version 1.0.
% (See accompanying file LICENSE_1_0.txt or copy at
% http://www.boost.org/LICENSE_1_0.txt)
%
% Specification of the Bool data sort.

sort Bool;

cons true: Bool;
    false: Bool;

map @not: Bool -> Bool;
    @and: Bool # Bool -> Bool;
    @or: Bool # Bool -> Bool;
    @implies: Bool # Bool -> Bool;

var b:Bool;
eqn @not(true) = false;
    @not(false) = true;
    @not(@not(b)) = b;
    @and(b,true) = b;
    @and(b,false) = false;
    @and(true,b) = b;
    @and(false,b) = false;
    @or(b,true) = true;
    @or(b,false) = b;
    @or(true,b) = true;
    @or(false,b) = b;
    @implies(b,true) = true;
    @implies(b,false) = !(b);
    @implies(true,b) = b;
    @implies(false,b) = true;
    @equals(true,b) = b;
    @equals(false,b) = !(b);
    @equals(b,true) = b;
    @equals(b,false) = !(b);
    @less(false,b) = b;
    @less(true,b) = false;
    @less(b,false) = false;
    @less(b,true) = !(b);
    @less_equal(false,b) = true;
    @less_equal(true,b) = b;
    @less_equal(b,false) = !(b);
    @less_equal(b,true) = true;