use a bibtex file to collect all references in Doxygen

* doc/tl/tl.bib: Move ...
* doc/spot.bib: ... here, and augment it with all references that
appeared verbatim in Doxygen comments.
* doc/Makefile.am, doc/tl/Makefile.am
doc/tl/tl.tex: Adjust for the move.
* doc/Doxyfile.in: Point to spot.bib.
* spot/gen/automata.hh, spot/gen/formulas.hh, spot/misc/game.hh,
spot/misc/minato.hh spot/taalgos/emptinessta.hh,
spot/taalgos/minimize.hh, spot/taalgos/tgba2ta.hh, spot/tl/formula.hh,
spot/tl/remove_x.hh, spot/tl/simplify.hh, spot/tl/snf.hh,
spot/twaalgos/cobuchi.hh, spot/twaalgos/cycles.hh,
spot/twaalgos/dualize.hh, spot/twaalgos/gtec/gtec.hh,
spot/twaalgos/gv04.hh, spot/twaalgos/ltl2taa.hh,
spot/twaalgos/ltl2tgba_fm.hh, spot/twaalgos/magic.hh,
spot/twaalgos/minimize.hh, spot/twaalgos/parity.hh,
spot/twaalgos/powerset.hh, spot/twaalgos/randomgraph.hh,
spot/twaalgos/se05.hh, spot/twaalgos/simulation.hh,
spot/twaalgos/strength.hh, spot/twaalgos/stutter.hh,
spot/twaalgos/tau03.hh, spot/twaalgos/totgba.hh,
spot/twaalgos/toweak.hh: Use \cite instead of a verbatim bibtex entry.
This commit is contained in:
Alexandre Duret-Lutz 2019-06-14 15:53:52 +02:00
parent d064b7dad2
commit df326e032b
36 changed files with 966 additions and 1225 deletions

View file

@ -27,6 +27,12 @@ namespace spot
{
namespace gen
{
/// \defgroup gen Hard-coded families of formulas or automata.
/// @{
/// \defgroup genaut Hard-coded families of automata.
/// @{
/// \brief Identifiers for automaton patterns
enum aut_pattern_id {
AUT_BEGIN = 256,
/// \brief A family of co-Büchi automata.
@ -34,23 +40,9 @@ namespace spot
/// Builds a co-Büchi automaton of size 2n+1 that is
/// good-for-games and that has no equivalent deterministic
/// co-Büchi automaton with less than 2^n / (2n+1) states.
/// \cite kuperberg.15.icalp
///
/// Only defined for n>0.
///
/** \verbatim
@InProceedings{ kuperberg.15.icalp,
author = {Denis Kuperberg and Micha{\l} Skrzypczak },
title = {On Determinisation of Good-for-Games Automata},
booktitle = {Proceedings of the 42nd International Colloquium on
Automata, Languages, and Programming (ICALP'15)},
pages = {299--310},
year = {2015},
publisher = {Springer},
series = {Lecture Notes in Computer Science},
volume = 9135,
doi = {10.1007/978-3-662-47666-6_24}
}
\endverbatim */
AUT_KS_NCA = AUT_BEGIN,
/// \brief Hard-to-complement non-deterministic Büchi automata
///
@ -59,27 +51,10 @@ namespace spot
/// at least n! states if Streett acceptance is used.
///
/// Only defined for n>0. The automaton constructed corresponds
/// to the right part of Fig.1 in the following paper, except
/// to the right part of Fig.1 of \cite loding.99.fstts , except
/// that only state q_1 is initial. (The fact that states q_2,
/// q_3, ..., and q_n are not initial as in the paper does not
/// change the recognized language.)
///
/** \verbatim
@InProceedings{loding.99.fstts,
author = {Christof L{\"o}ding},
title = {Optimal Bounds for Transformations of
$\omega$-Automata},
booktitle = {Proceedings of the 19th Conference on Foundations of
Software Technology and Theoretical Computer Science
(FSTTCS'99)},
year = 1999,
publisher = {Springer},
pages = {97--109},
series = {Lecture Notes in Computer Science},
volume = 1738,
doi = {10.1007/3-540-46691-6_8}
}
\endverbatim */
AUT_L_NBA,
/// \brief DSA hard to convert to DRA.
///
@ -90,43 +65,15 @@ namespace spot
/// Only defined for 1<n<=16 because Spot does not support more
/// than 32 acceptance pairs.
///
/// This automaton corresponds to the right part of Fig.2 in the
/// following paper.
/** \verbatim
@InProceedings{loding.99.fstts,
author = {Christof L{\"o}ding},
title = {Optimal Bounds for Transformations of
$\omega$-Automata},
booktitle = {Proceedings of the 19th Conference on Foundations of
Software Technology and Theoretical Computer Science
(FSTTCS'99)},
year = 1999,
publisher = {Springer},
pages = {97--109},
series = {Lecture Notes in Computer Science},
volume = 1738,
doi = {10.1007/3-540-46691-6_8}
}
\endverbatim */
/// This automaton corresponds to the right part of Fig.2 of
/// \cite loding.99.fstts .
AUT_L_DSA,
/// \brief An NBA with (n+1) states whose complement needs ≥n! states
///
/// This automaton is usually attributed to Max Michel (1988),
/// who described it in some unpublished documents. Other
/// who described it in some unpublished document. Other
/// descriptions of this automaton can be found in a number
/// of papers, like:
/** \verbatim
@InBook{thomas.97.chapter,
author = {Wolfgang Thomas},
title = {Languages, Automata, and Logic},
booktitle = {Handbook of Formal Languages ---
Volume 3 Beyond Words},
editor = {Grzegorz Rozenberg and Arto Salomaa},
chapter = 7,
publisher = {Springer-Verlag},
year = {1997}
}
\endverbatim */
/// of papers \cite thomas.97.chapter .
///
/// Our implementation uses $\lceil \log_2(n+1)\rceil$ atomic
/// propositions to encode the $n+1$ letters used in the
@ -153,5 +100,8 @@ namespace spot
/// The returned name is suitable to be used as an option
/// key for the genaut binary.
SPOT_API const char* aut_pattern_name(aut_pattern_id pattern);
/// @}
/// @}
}
}

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2017, 2018 Laboratoire de Recherche et Developpement de
// Copyright (C) 2017, 2018, 2019 Laboratoire de Recherche et Developpement de
// l'EPITA (LRDE).
//
// This file is part of Spot, a model checking library.
@ -21,241 +21,151 @@
#include <spot/tl/formula.hh>
// Families defined here come from the following papers:
//
// @InProceedings{cichon.09.depcos,
// author = {Jacek Cicho{\'n} and Adam Czubak and Andrzej Jasi{\'n}ski},
// title = {Minimal {B\"uchi} Automata for Certain Classes of {LTL} Formulas},
// booktitle = {Proceedings of the Fourth International Conference on
// Dependability of Computer Systems},
// pages = {17--24},
// year = 2009,
// publisher = {IEEE Computer Society},
// }
//
// @InProceedings{geldenhuys.06.spin,
// author = {Jaco Geldenhuys and Henri Hansen},
// title = {Larger Automata and Less Work for LTL Model Checking},
// booktitle = {Proceedings of the 13th International SPIN Workshop},
// year = {2006},
// pages = {53--70},
// series = {Lecture Notes in Computer Science},
// volume = {3925},
// publisher = {Springer}
// }
//
// @InProceedings{gastin.01.cav,
// author = {Paul Gastin and Denis Oddoux},
// title = {Fast {LTL} to {B\"u}chi Automata Translation},
// booktitle = {Proceedings of the 13th International Conference on
// Computer Aided Verification (CAV'01)},
// pages = {53--65},
// year = 2001,
// editor = {G. Berry and H. Comon and A. Finkel},
// volume = {2102},
// series = {Lecture Notes in Computer Science},
// address = {Paris, France},
// publisher = {Springer-Verlag}
// }
//
// @InProceedings{rozier.07.spin,
// author = {Kristin Y. Rozier and Moshe Y. Vardi},
// title = {LTL Satisfiability Checking},
// booktitle = {Proceedings of the 12th International SPIN Workshop on
// Model Checking of Software (SPIN'07)},
// pages = {149--167},
// year = {2007},
// volume = {4595},
// series = {Lecture Notes in Computer Science},
// publisher = {Springer-Verlag}
// }
//
// @InProceedings{dwyer.98.fmsp,
// author = {Matthew B. Dwyer and George S. Avrunin and James C. Corbett},
// title = {Property Specification Patterns for Finite-state
// Verification},
// booktitle = {Proceedings of the 2nd Workshop on Formal Methods in
// Software Practice (FMSP'98)},
// publisher = {ACM Press},
// address = {New York},
// editor = {Mark Ardis},
// month = mar,
// year = {1998},
// pages = {7--15}
// }
//
// @InProceedings{etessami.00.concur,
// author = {Kousha Etessami and Gerard J. Holzmann},
// title = {Optimizing {B\"u}chi Automata},
// booktitle = {Proceedings of the 11th International Conference on
// Concurrency Theory (Concur'00)},
// pages = {153--167},
// year = {2000},
// editor = {C. Palamidessi},
// volume = {1877},
// series = {Lecture Notes in Computer Science},
// address = {Pennsylvania, USA},
// publisher = {Springer-Verlag}
// }
//
// @InProceedings{somenzi.00.cav,
// author = {Fabio Somenzi and Roderick Bloem},
// title = {Efficient {B\"u}chi Automata for {LTL} Formul{\ae}},
// booktitle = {Proceedings of the 12th International Conference on
// Computer Aided Verification (CAV'00)},
// pages = {247--263},
// year = {2000},
// volume = {1855},
// series = {Lecture Notes in Computer Science},
// address = {Chicago, Illinois, USA},
// publisher = {Springer-Verlag}
// }
//
// @InProceedings{tabakov.10.rv,
// author = {Deian Tabakov and Moshe Y. Vardi},
// title = {Optimized Temporal Monitors for {SystemC}},
// booktitle = {Proceedings of the 1st International Conference on Runtime
// Verification (RV'10)},
// pages = {436--451},
// year = 2010,
// volume = {6418},
// series = {Lecture Notes in Computer Science},
// month = nov,
// publisher = {Springer}
// }
//
// @InProceedings{kupferman.10.mochart,
// author = {Orna Kupferman and And Rosenberg},
// title = {The Blow-Up in Translating LTL do Deterministic Automata},
// booktitle = {Proceedings of the 6th International Workshop on Model
// Checking and Artificial Intelligence (MoChArt 2010)},
// pages = {85--94},
// year = 2011,
// volume = {6572},
// series = {Lecture Notes in Artificial Intelligence},
// month = nov,
// publisher = {Springer}
// }
//
// @techreport{holevek.04.tr,
// title = {Verification Results in {Liberouter} Project},
// author = {J. Hole\v{c}ek and T. Kratochv\'ila and V. \v{R}eh\'ak
// and D. \v{S}afr\'anek and P. \v{S}ime\v{c}ek},
// month = {September},
// year = 2004,
// number = 03,
// institution = {CESNET}
// }
//
// @InProceedings{pelanek.07.spin,
// author = {Radek Pel\'{a}nek},
// title = {{BEEM}: benchmarks for explicit model checkers},
// booktitle = {Proceedings of the 14th international SPIN conference on
// Model checking software},
// year = 2007,
// pages = {263--267},
// numpages = {5},
// volume = {4595},
// series = {Lecture Notes in Computer Science},
// publisher = {Springer-Verlag}
// }
//
// @InProceedings{muller.17.gandalf,
// author = {David M\"uller and Salomon Sickert},
// title = {{LTL} to Deterministic {E}merson-{L}ei Automata},
// booktitle = {Proceedings of the 8th International Sumposium on Games,
// Automata, Logics and Formal Verification (GandALF'17)},
// year = 2017,
// publisher = {Springer-Verlag}
// series = {Electronic Proceedings in Theoretical Computer Science},
// volume = {256},
// publisher = {Open Publishing Association},
// pages = {180--194},
// doi = {10.4204/EPTCS.256.13}
// }
//
// @InProceedings{sickert.16.cav,
// author = {Salomon Sickert and Javier Esparza and Stefaan Jaax
// and Jan K{\v{r}}et{\'i}nsk{\'y}},
// title = {Limit-Deterministic {B\"u}chi Automata for Linear Temporal Logic}
// booktitle = {Proceedings of the 28th International Conference on
// Computer Aided Verification (CAV'16)},
// year = 2016,
// publisher = {Springer-Verlag}
// series = {Lecture Notes in Computer Science},
// volume = {9780},
// pages = {312--332},
// doi = {10.1007/978-3-319-41540-6_17}
// }
//
// @InProceedings{kretisnky.12.cav,
// author = {Jan K{\v{r}}et{\'i}nsk{\'y} and Javier Esparza},
// title = {Deterministic Automata for the {(F,G)}-Fragment of
// {LTL}},
// booktitle = {24th International Conference on Computer Aided
// Verification (CAV'12)},
// year = 2012,
// pages = {7--22},
// doi = {10.1007/978-3-642-31424-7_7},
// url = {https://doi.org/10.1007/978-3-642-31424-7_7},
// isbn = {978-3-642-31424-7},
// publisher = {Springer},
// }
namespace spot
{
namespace gen
{
/// \ingroup gen
/// \defgroup genltl Hard-coded families of formulas.
/// @{
/// \brief Identifiers for formula patterns
enum ltl_pattern_id {
LTL_BEGIN = 256,
/// `F(p1)&F(p2)&...&F(pn)`
/// \cite geldenhuys.06.spin
LTL_AND_F = LTL_BEGIN,
/// `FG(p1)&FG(p2)&...&FG(pn)`
LTL_AND_FG,
/// `GF(p1)&GF(p2)&...&GF(pn)`
/// \cite cichon.09.depcos ,
/// \cite geldenhuys.06.spin .
LTL_AND_GF,
/// `F(p1&F(p2&F(p3&...F(pn)))) & F(q1&F(q2&F(q3&...F(qn))))`
/// \cite cichon.09.depcos
LTL_CCJ_ALPHA,
/// `F(p&X(p&X(p&...X(p)))) & F(q&X(q&X(q&...X(q))))`
/// \cite cichon.09.depcos
LTL_CCJ_BETA,
/// `F(p&(Xp)&(XXp)&...(X...X(p))) & F(q&(Xq)&(XXq)&...(X...X(q)))`
/// \cite cichon.09.depcos
LTL_CCJ_BETA_PRIME,
/// 55 specification patterns from Dwyer et al.
/// \cite dwyer.98.fmsp
LTL_DAC_PATTERNS,
/// 12 formulas from Etessami and Holzmann.
/// \cite etessami.00.concur
LTL_EH_PATTERNS,
/// `F(p0 | XG(p1 | XG(p2 | ... XG(pn))))`
LTL_FXG_OR,
/// `(GFa1 & GFa2 & ... & GFan) <-> GFz`
LTL_GF_EQUIV,
/// `GF(a <-> X[n](a))`
LTL_GF_EQUIV_XN,
/// `(GFa1 & GFa2 & ... & GFan) -> GFz`
LTL_GF_IMPLIES,
/// `GF(a -> X[n](a))`
LTL_GF_IMPLIES_XN,
/// `(F(p1)|G(p2))&(F(p2)|G(p3))&...&(F(pn)|G(p{n+1}))`
/// \cite geldenhuys.06.spin
LTL_GH_Q,
/// `(GF(p1)|FG(p2))&(GF(p2)|FG(p3))&... &(GF(pn)|FG(p{n+1}))`
/// \cite geldenhuys.06.spin
LTL_GH_R,
/// `!((GF(p1)&GF(p2)&...&GF(pn)) -> G(q->F(r)))`
/// \cite gastin.01.cav
LTL_GO_THETA,
/// `G(p0 & XF(p1 & XF(p2 & ... XF(pn))))`
LTL_GXF_AND,
/// 55 patterns from the Liberouter project.
/// \cite holevek.04.tr
LTL_HKRSS_PATTERNS,
/// Linear formula with doubly exponential DBA.
/// \cite kupferman.10.mochart
LTL_KR_N,
/// Quasilinear formula with doubly exponential DBA.
/// \cite kupferman.10.mochart
LTL_KR_NLOGN,
/// Quadratic formula with doubly exponential DBA.
/// \cite kupferman.10.mochart ,
/// \cite kupferman.05.tcl .
LTL_KV_PSI,
/// `GF(a1&X(a2&X(a3&...Xan)))&F(b1&F(b2&F(b3&...&Xbm)))`
/// \cite muller.17.gandalf
LTL_MS_EXAMPLE,
/// `FG(a|b)|FG(!a|Xb)|FG(a|XXb)|FG(!a|XXXb)|...`
/// \cite muller.17.gandalf
LTL_MS_PHI_H,
/// `(FGa{n}&GFb{n})|((FGa{n-1}|GFb{n-1})&(...))`
/// \cite muller.17.gandalf
LTL_MS_PHI_R,
/// `(FGa{n}|GFb{n})&((FGa{n-1}&GFb{n-1})|(...))`
/// \cite muller.17.gandalf
LTL_MS_PHI_S,
/// `FG(p1)|FG(p2)|...|FG(pn)`
/// \cite cichon.09.depcos
LTL_OR_FG,
/// `G(p1)|G(p2)|...|G(pn)`
/// \cite geldenhuys.06.spin
LTL_OR_G,
/// `GF(p1)|GF(p2)|...|GF(pn)`
/// \cite geldenhuys.06.spin
LTL_OR_GF,
/// 20 formulas from BEEM.
/// \cite pelanek.07.spin
LTL_P_PATTERNS,
/// `(((p1 R p2) R p3) ... R pn)`
LTL_R_LEFT,
/// `(p1 R (p2 R (... R pn)))`
LTL_R_RIGHT,
/// n-bit counter
/// \cite rozier.07.spin
LTL_RV_COUNTER,
/// n-bit counter with carry
/// \cite rozier.07.spin
LTL_RV_COUNTER_CARRY,
/// linear-size formular for an n-bit counter with carry
/// \cite rozier.07.spin
LTL_RV_COUNTER_CARRY_LINEAR,
/// linear-size formular for an n-bit counter
/// \cite rozier.07.spin
LTL_RV_COUNTER_LINEAR,
/// 27 formulas from Somenzi and Bloem
/// \cite somenzi.00.cav
LTL_SB_PATTERNS,
/// `f(0,j)=(GFa0 U X^j(b))`, `f(i,j)=(GFai U G(f(i-1,j)))`
/// \cite sickert.16.cav
LTL_SEJK_F,
/// `(GFa1&...&GFan) -> (GFb1&...&GFbn)`
/// \cite sickert.16.cav
LTL_SEJK_J,
/// `(GFa1|FGb1)&...&(GFan|FGbn)`
/// \cite sickert.16.cav
LTL_SEJK_K,
/// 3 formulas from Sikert et al.
/// \cite sickert.16.cav
LTL_SEJK_PATTERNS,
/// `G(p -> (q | Xq | ... | XX...Xq)`
/// \cite tabakov.10.rv
LTL_TV_F1,
/// `G(p -> (q | X(q | X(... | Xq)))`
/// \cite tabakov.10.rv
LTL_TV_F2,
/// `G(p -> (q & Xq & ... & XX...Xq)`
/// \cite tabakov.10.rv
LTL_TV_G1,
/// `G(p -> (q & X(q & X(... & Xq)))`
/// \cite tabakov.10.rv
LTL_TV_G2,
/// `G(p1 -> (p1 U (p2 & (p2 U (p3 & (p3 U ...))))))`
/// \cite tabakov.10.rv
LTL_TV_UU,
/// `(((p1 U p2) U p3) ... U pn)`
/// \cite geldenhuys.06.spin
LTL_U_LEFT,
/// `(p1 U (p2 U (... U pn)))`
/// \cite geldenhuys.06.spin ,
/// \cite gastin.01.cav .
LTL_U_RIGHT,
LTL_END
};
@ -283,5 +193,6 @@ namespace spot
///
/// Return the number of arguments expected by an LTL pattern.
SPOT_API int ltl_pattern_argc(ltl_pattern_id pattern);
/// @}
}
}