simplify: reduce {r;1} to {r} or {1}

Fixes #3.

* spot/tl/simplify.cc: Implement this new rule.
* doc/tl/tl.tex, NEWS: Document it.
* tests/core/reduccmp.test: Test it.
This commit is contained in:
Alexandre Duret-Lutz 2018-03-15 07:59:25 +01:00
parent 2d18ac22fb
commit cfcc18e680
4 changed files with 29 additions and 1 deletions

View file

@ -1,6 +1,6 @@
#! /bin/sh
# -*- coding: utf-8 -*-
# Copyright (C) 2009-2014, 2016-2017 Laboratoire de Recherche et
# Copyright (C) 2009-2014, 2016-2018 Laboratoire de Recherche et
# Developpement de l'Epita (LRDE).
# Copyright (C) 2004, 2006 Laboratoire d'Informatique de Paris 6 (LIP6),
# département Systèmes Répartis Coopératifs (SRC), Université Pierre
@ -388,6 +388,12 @@ G(GFc|GFd|FGe|FGf), F(GF(c|d)|Ge|Gf)
{a|b*|c|d*}[]->e, (e | !(a | c)) & (e W !b) & (e W !d)
{{[*0]|a};b;{[*0]|a};c;e[*]}[]->f,{{[*0]|a};b;{[*0]|a}}[]->X((f&X(f W !e))|!c)
{(a[*]|b)[*0..1];c}, {{b | a[*]};c}
{{a|b*};1}, 1
!{{a|b*};1}, 0
{{a|b[+]};1}, a|b
!{{a|b[+]};1}, !a&!b
{{{a|b[+]}&c[*]};1}, {{a|b[+]}&c[*]}
!{{{a|b[+]}&c[*]};1}, !{{a|b[+]}&c[*]}
{a&b&c*}<>->!Xb, (a & b & X!b) | (a & b & c & X(c U !b))
{[*]}<>->b, Fb