postprocess, translate: add support for Büchi (not state-based)
spot/twaalgos/postproc.hh: Introduce options Buchi and GeneralizedBuchi. The latter is similar to TGBA but the former differs from BA in that it does not imply state-based acceptance, since that can be specified separately. Also all other acceptance types are not abbreviated, so those new names make more sense. * NEWS: Mention that. * spot/twaalgos/postproc.cc, spot/twaalgos/translate.cc: Adjust to support Buchi and GeneralizedBuchi without breaking BA and TGBA. * bin/autfilt.cc, bin/common_aoutput.cc, bin/common_post.cc, bin/ltl2tgta.cc, doc/org/tut10.org, doc/org/tut12.org, doc/org/tut30.org, python/spot/__init__.py, tests/python/automata.ipynb, tests/python/langmap.py, tests/python/misc-ec.py, tests/python/satmin.ipynb, tests/python/satmin.py, tests/python/toweak.py: Use the new names. * tests/Makefile.am: Add missing langmap.py.
This commit is contained in:
parent
72c492b0cf
commit
9cc1bdf10f
19 changed files with 274 additions and 201 deletions
|
|
@ -686,17 +686,17 @@ ensure_deterministic(const spot::twa_graph_ptr& aut, bool nonalt = false)
|
|||
static spot::twa_graph_ptr ensure_tba(spot::twa_graph_ptr aut)
|
||||
{
|
||||
spot::postprocessor p;
|
||||
p.set_type(spot::postprocessor::TGBA);
|
||||
p.set_type(spot::postprocessor::Buchi);
|
||||
p.set_pref(spot::postprocessor::Any);
|
||||
p.set_level(spot::postprocessor::Low);
|
||||
return spot::degeneralize_tba(p.run(aut));
|
||||
return p.run(aut);
|
||||
|
||||
}
|
||||
|
||||
static spot::twa_graph_ptr
|
||||
product(spot::twa_graph_ptr left, spot::twa_graph_ptr right)
|
||||
{
|
||||
if ((type == spot::postprocessor::BA)
|
||||
if ((type == spot::postprocessor::Buchi)
|
||||
&& (left->num_sets() + right->num_sets() >
|
||||
spot::acc_cond::mark_t::max_accsets()))
|
||||
{
|
||||
|
|
@ -709,7 +709,7 @@ product(spot::twa_graph_ptr left, spot::twa_graph_ptr right)
|
|||
static spot::twa_graph_ptr
|
||||
product_or(spot::twa_graph_ptr left, spot::twa_graph_ptr right)
|
||||
{
|
||||
if ((type == spot::postprocessor::BA)
|
||||
if ((type == spot::postprocessor::Buchi)
|
||||
&& (left->num_sets() + right->num_sets() >
|
||||
spot::acc_cond::mark_t::max_accsets()))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -340,7 +340,8 @@ int parse_opt_aoutput(int key, char* arg, struct argp_state*)
|
|||
case 's':
|
||||
automaton_format = Spin;
|
||||
if (type != spot::postprocessor::Monitor)
|
||||
type = spot::postprocessor::BA;
|
||||
type = spot::postprocessor::Buchi;
|
||||
sbacc = spot::postprocessor::SBAcc;
|
||||
automaton_format_opt = arg;
|
||||
break;
|
||||
case OPT_CHECK:
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2012-2016, 2018-2019 Laboratoire de Recherche et
|
||||
// Copyright (C) 2012-2016, 2018-2020 Laboratoire de Recherche et
|
||||
// Développement de l'Epita (LRDE).
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
|
|
@ -24,7 +24,7 @@
|
|||
#include "error.h"
|
||||
#include "argmatch.h"
|
||||
|
||||
spot::postprocessor::output_type type = spot::postprocessor::TGBA;
|
||||
spot::postprocessor::output_type type = spot::postprocessor::GeneralizedBuchi;
|
||||
spot::postprocessor::output_pref pref = spot::postprocessor::Small;
|
||||
spot::postprocessor::output_pref comp = spot::postprocessor::Any;
|
||||
spot::postprocessor::output_pref sbacc = spot::postprocessor::Any;
|
||||
|
|
@ -165,7 +165,7 @@ parse_opt_post(int key, char* arg, struct argp_state*)
|
|||
pref_set = true;
|
||||
break;
|
||||
case 'B':
|
||||
type = spot::postprocessor::BA;
|
||||
type = spot::postprocessor::Buchi;
|
||||
colored = spot::postprocessor::Any;
|
||||
sbacc = spot::postprocessor::SBAcc;
|
||||
break;
|
||||
|
|
@ -250,7 +250,7 @@ parse_opt_post(int key, char* arg, struct argp_state*)
|
|||
case OPT_TGBA:
|
||||
if (automaton_format == Spin)
|
||||
error(2, 0, "--spin and --tgba are incompatible");
|
||||
type = spot::postprocessor::TGBA;
|
||||
type = spot::postprocessor::GeneralizedBuchi;
|
||||
colored = spot::postprocessor::Any;
|
||||
break;
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2012-2019 Laboratoire de Recherche et Développement
|
||||
// Copyright (C) 2012-2020 Laboratoire de Recherche et Développement
|
||||
// de l'Epita (LRDE).
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
|
|
@ -126,15 +126,16 @@ parse_opt(int key, char* arg, struct argp_state*)
|
|||
break;
|
||||
case OPT_TGTA:
|
||||
ta_type = TGTA;
|
||||
type = spot::postprocessor::TGBA;
|
||||
type = spot::postprocessor::GeneralizedBuchi;
|
||||
break;
|
||||
case OPT_GTA:
|
||||
ta_type = GTA;
|
||||
type = spot::postprocessor::TGBA;
|
||||
type = spot::postprocessor::GeneralizedBuchi;
|
||||
break;
|
||||
case OPT_TA:
|
||||
ta_type = TA;
|
||||
type = spot::postprocessor::BA;
|
||||
type = spot::postprocessor::Buchi;
|
||||
sbacc = spot::postprocessor::SBAcc;
|
||||
break;
|
||||
case OPT_INIT:
|
||||
opt_with_artificial_initial_state = false;
|
||||
|
|
@ -196,7 +197,7 @@ namespace
|
|||
if (ta_type != TGTA)
|
||||
{
|
||||
auto testing_automaton =
|
||||
tgba_to_ta(aut, ap_set, type == spot::postprocessor::BA,
|
||||
tgba_to_ta(aut, ap_set, type == spot::postprocessor::Buchi,
|
||||
opt_with_artificial_initial_state,
|
||||
opt_single_pass_emptiness_check,
|
||||
opt_with_artificial_livelock);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue