101 lines
3.3 KiB
Bash
Executable file
101 lines
3.3 KiB
Bash
Executable file
#! /bin/sh
|
|
# Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
|
# département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
|
# et Marie Curie.
|
|
#
|
|
# This file is part of Spot, a model checking library.
|
|
#
|
|
# Spot is free software; you can redistribute it and/or modify it
|
|
# under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# Spot is distributed in the hope that it will be useful, but WITHOUT
|
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
|
# License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with Spot; see the file COPYING. If not, write to the Free
|
|
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
# 02111-1307, USA.
|
|
|
|
|
|
# Check for the equals visitor
|
|
|
|
. ./defs || exit 1
|
|
|
|
# No reduction
|
|
run 0 ./reduccmp 'a U b' 'a U b'
|
|
run 0 ./reduccmp 'a R b' 'a R b'
|
|
run 0 ./reduccmp 'a & b' 'a & b'
|
|
run 0 ./reduccmp 'a | b' 'a | b'
|
|
run 0 ./reduccmp 'a & (a U b)' 'a & (a U b)'
|
|
run 0 ./reduccmp 'a | (a U b)' 'a | (a U b)'
|
|
|
|
# Syntactic reduction
|
|
run 0 ./reduccmp 'a & (!b R !a)' 'false'
|
|
run 0 ./reduccmp '(!b R !a) & a' 'false'
|
|
#run 0 ./reduccmp '(!b R !a) | a' 'true'
|
|
#run 0 ./reduccmp 'a | (!b R !a)' 'true'
|
|
|
|
run 0 ./reduccmp 'a & (!b R !a) & c' 'false'
|
|
run 0 ./reduccmp 'c & (!b R !a) & a' 'false'
|
|
#run 0 ./reduccmp 'a | (!b R !a) | c' 'true'
|
|
#run 0 ./reduccmp 'c | (!b R !a) | a' 'true'
|
|
|
|
run 0 ./reduccmp 'a & (b U a)' 'a'
|
|
run 0 ./reduccmp '(b U a) & a' 'a'
|
|
run 0 ./reduccmp 'a | (b U a)' '(b U a)'
|
|
run 0 ./reduccmp '(b U a) | a' '(b U a)'
|
|
run 0 ./reduccmp 'a U (b U a)' '(b U a)'
|
|
|
|
run 0 ./reduccmp 'a & (b U a) & a' 'a'
|
|
run 0 ./reduccmp 'a & (b U a) & a' 'a'
|
|
run 0 ./reduccmp 'a | (b U a) | a' '(b U a)'
|
|
run 0 ./reduccmp 'a | (b U a) | a' '(b U a)'
|
|
run 0 ./reduccmp 'a U (b U a)' '(b U a)'
|
|
|
|
|
|
# Basics reduction
|
|
run 0 ./reduccmp 'X(true)' 'true'
|
|
run 0 ./reduccmp 'X(false)' 'false'
|
|
run 0 ./reduccmp 'F(true)' 'true'
|
|
run 0 ./reduccmp 'F(false)' 'false'
|
|
run 0 ./reduccmp 'G(true)' 'true'
|
|
run 0 ./reduccmp 'G(false)' 'false'
|
|
|
|
run 0 ./reduccmp 'XGF(f)' 'GF(f)'
|
|
run 0 ./reduccmp 'FX(a)' 'XF(a)'
|
|
run 0 ./reduccmp 'G(a R b)' 'G(b)'
|
|
run 0 ./reduccmp 'GX(a)' 'XG(a)'
|
|
|
|
run 0 ./reduccmp 'X(a) U X(b)' 'X(a U b)'
|
|
run 0 ./reduccmp 'X(a) R X(b)' 'X(a R b)'
|
|
|
|
run 0 ./reduccmp 'Xa & Xb' 'X(a & b)'
|
|
run 0 ./reduccmp '(a U b) & (c U b)' '(a & c) U b'
|
|
run 0 ./reduccmp '(a R b) & (a R c)' 'a R (b & c)'
|
|
run 0 ./reduccmp 'Xa | Xb' 'X(a | b)'
|
|
run 0 ./reduccmp '(a U b) | (a U c)' 'a U (b | c)'
|
|
run 0 ./reduccmp '(a R b) | (c R b)' '(a | c) R b'
|
|
|
|
run 0 ./reduccmp 'X(a & GFb)' 'Xa & GFb'
|
|
run 0 ./reduccmp 'X(a | GFb)' 'Xa | GFb'
|
|
run 0 ./reduccmp 'F(a & GFb)' 'Fa & GFb'
|
|
run 0 ./reduccmp 'G(a | GFb)' 'Ga | GFb'
|
|
|
|
run 0 ./reduccmp 'X(a & GFb & c)' 'X(a & c) & GFb'
|
|
run 0 ./reduccmp 'X(a | GFb | c)' 'X(a | c) | GFb'
|
|
run 0 ./reduccmp 'F(a & GFb & c)' 'F(a & c) & GFb'
|
|
run 0 ./reduccmp 'G(a | GFb | c)' 'G(a | c) | GFb'
|
|
|
|
# Eventuality and universality class reduction
|
|
run 0 ./reduccmp 'FFa' 'Fa'
|
|
run 0 ./reduccmp 'FGFa' 'GFa'
|
|
run 0 ./reduccmp 'b U Fa' 'Fa'
|
|
run 0 ./reduccmp 'b U GFa' 'GFa'
|
|
run 0 ./reduccmp 'Ga' 'Ga'
|
|
run 0 ./reduccmp 'GFGa' 'FGa'
|
|
run 0 ./reduccmp 'b R Ga' 'Ga'
|
|
run 0 ./reduccmp 'b R FGa' 'FGa'
|