GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
LTLFILT(1) User Commands LTLFILT(1)

ltlfilt - filter files or lists of LTL/PSL formulas

ltlfilt [OPTION...] [FILENAME[/COL]...]

Read a list of formulas and output them back after some optional processing.

-f, --formula=STRING
process the formula STRING
-F, --file=FILENAME[/COL]
process each line of FILENAME as a formula; if COL is a positive integer, assume a CSV file and read column COL; use a negative COL to drop the first line of the CSV file
--lbt-input
read all formulas using LBT's prefix syntax
--lenient
parenthesized blocks that cannot be parsed as subformulas are considered as atomic properties

--drop-errors
discard erroneous lines (default)
--ignore-errors
do not report syntax errors
--skip-errors
output erroneous lines as-is without processing

--boolean-to-isop
rewrite Boolean subformulas as irredundant sum of products (implies at least -r1)
--define[=FILENAME]
when used with --relabel or --relabel-bool, output the relabeling map using #define statements
--exclusive-ap=AP,AP,...
if any of those APs occur in the formula, add a term ensuring two of them may not be true at the same time. Use this option multiple times to declare independent groups of exclusive propositions.
--from-ltlf[=alive]
transform LTLf (finite LTL) to LTL by introducing some 'alive' proposition
--negate
negate each formula
--nnf
rewrite formulas in negative normal form
--relabel[=abc|pnn]
relabel all atomic propositions, alphabetically unless specified otherwise
--relabel-bool[=abc|pnn]
relabel Boolean subexpressions, alphabetically unless specified otherwise
--remove-wm
rewrite operators W and M using U and R (this is an alias for --unabbreviate=WM)
--remove-x
remove X operators (valid only for stutter-insensitive properties)
-r, --simplify[=LEVEL]
simplify formulas according to LEVEL (see below); LEVEL is set to 3 if omitted
--unabbreviate[=STR]
remove all occurrences of the operators specified by STR, which must be a substring of "eFGiMRW^", where 'e', 'i', and '^' stand respectively for <->, ->, and xor. If no argument is passed, the subset "eFGiMW^" is used.

The simplification LEVEL may be set as follows.

0
No rewriting
1
basic rewritings and eventual/universal rules
2
additional syntactic implication rules
3
better implications using containment

--accept-word=WORD
keep formulas that accept WORD
--ap=RANGE
match formulas with a number of atomic propositions in RANGE
--boolean
match Boolean formulas
--bsize=RANGE
match formulas with Boolean size in RANGE
--equivalent-to=FORMULA
match formulas equivalent to FORMULA
--eventual
match pure eventualities
--guarantee
match guarantee formulas (even pathological)
--implied-by=FORMULA
match formulas implied by FORMULA
--imply=FORMULA
match formulas implying FORMULA
--liveness
match liveness properties
--ltl
match only LTL formulas (no PSL operator)
-N, --nth=RANGE
assuming input formulas are numbered from 1, keep only those in RANGE
--obligation
match obligation formulas (even pathological)
--persistence
match persistence formulas (even pathological)
--recurrence
match recurrence formulas (even pathological)
--reject-word=WORD
keep formulas that reject WORD
--safety
match safety formulas (even pathological)
--size=RANGE
match formulas with size in RANGE
--stutter-insensitive, --stutter-invariant
match stutter-insensitive LTL formulas
--suspendable
synonym for --universal --eventual
--syntactic-guarantee
match syntactic-guarantee formulas
--syntactic-obligation
match syntactic-obligation formulas
--syntactic-persistence
match syntactic-persistence formulas
--syntactic-recurrence
match syntactic-recurrence formulas
--syntactic-safety
match syntactic-safety formulas
--syntactic-stutter-invariant, --nox
match stutter-invariant formulas syntactically (LTL-X or siPSL)
--universal
match purely universal formulas
-u, --unique
drop formulas that have already been output (not affected by -v)
-v, --invert-match
select non-matching formulas

RANGE may have one of the following forms: 'INT', 'INT..INT', '..INT', or 'INT..'

WORD is lasso-shaped and written as 'BF;BF;...;BF;cycle{BF;...;BF}' where BF are arbitrary Boolean formulas. The 'cycle{...}' part is mandatory, but the prefix can be omitted.

-0, --zero-terminated-output
separate output formulas with \0 instead of \n (for use with xargs -0)
-8, --utf8
output using UTF-8 characters
-c, --count
print only a count of matched formulas
--format=FORMAT, --stats=FORMAT
specify how each line should be output (default: "%f")
-l, --lbt
output in LBT's syntax
--latex
output using LaTeX macros
-n, --max-count=NUM
output at most NUM formulas
-o, --output=FORMAT
send output to a file named FORMAT instead of standard output. The first formula sent to a file truncates it unless FORMAT starts with '>>'.
-p, --full-parentheses
output fully-parenthesized formulas
-q, --quiet
suppress all normal output
-s, --spin
output in Spin's syntax
--spot
output in Spot's syntax (default)
--wring
output in Wring's syntax

The FORMAT string passed to --format may use the following interpreted sequences:

%<
the part of the line before the formula if it comes from a column extracted from a CSV file
%>
the part of the line after the formula if it comes from a column extracted from a CSV file
%%
a single %
%b
the Boolean-length of the formula (i.e., all Boolean subformulas count as 1)
%f
the formula (in the selected syntax)
%F
the name of the input file
%h, %[vw]h
the class of the formula is the Manna-Pnueli hierarchy ([v] replaces abbreviations by class names, [w] for all compatible classes)
%L
the original line number in the input file
%[OP]n
the nesting depth of operator OP. OP should be a single letter denoting the operator to count, or multiple letters to fuse several operators during depth evaluation. Add '~' to rewrite the formula in negative normal form before counting.
%r
wall-clock time elapsed in seconds (excluding parsing)
%R, %[LETTERS]R
CPU time (excluding parsing), in seconds; Add LETTERS to restrict to (u) user time, (s) system time, (p) parent process, or (c) children processes.
%s
the length (or size) of the formula
%x, %[LETTERS]X, %[LETTERS]x
number of atomic propositions used in the
formula;
add LETTERS to list atomic propositions
with (n) no quoting, (s) occasional double-quotes
with C-style escape, (d) double-quotes with C-style escape, (c) double-quotes with CSV-style escape, (p) between parentheses, any extra non-alphanumeric character will be used to separate propositions

--help
print this help
--version
print program version

Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options.

0
if some formulas were output (skipped syntax errors do not count)
1
if no formulas were output (no match)
2
if any error has been reported

If you would like to give a reference to this tool in an article, we suggest you cite the following paper:
Alexandre Duret-Lutz: Manipulating LTL formulas using Spot 1.0. Proceedings of ATVA'13. LNCS 8172.

The following papers describe algorithms used by ltlfilt:

Kousha Etessami: A note on a question of Peled and Wilke regarding stutter-invariant LTL. Information Processing Letters 75(6): 261-263 (2000).

Describes the transformation behind the --remove-x option.

Thibaud Michaud and Alexandre Duret-Lutz: Practical stutter-invariance checks for ω-regular languages. Proceedings of SPIN'15. LNCS 9232.

Describes the algorithm used by --stutter-insensitive option.

Christian Dax, Jochen Eisinger, Felix Klaedtke: Mechanizing the Powerset Construction for Restricted Classes of ω-Automata. Proceedings of ATVA'07. LNCS 4762.

Describes the checks implemented by the --safety, --guarantee, and --obligation options.

Ivana Černá, Radek Pelánek: Relating Hierarchy of Temporal Properties to Model Checking. Proceedings of MFCS'03. LNCS 2747.

Describes the syntactic LTL classes matched by the --syntactic-safety, --syntactic-guarantee, --syntactic-obligation options, --syntactic-persistence, and --syntactic-recurrence options.

Kousha Etessami, Gerard J. Holzmann: Optimizing Büchi Automata. Proceedings of CONCUR'00. LNCS 1877.

Describe the syntactic LTL classes matched by --eventual, and --universal.

Giuseppe De Giacomo, Moshe Y. Vardi: Linear Temporal Logic and Linear Dynamic Logic on Finite Traces. Proceedings of IJCAI'13.

Describe the transformation implemented by --from-ltlf to reduce LTLf model checking to LTL model checking.

Report bugs to <spot@lrde.epita.fr>.

Copyright © 2022 Laboratoire de Recherche et Développement de l'Epita. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

randltl(1), ltldo(1)
February 2022 ltlfilt (spot) 2.10.4

Search for    or go to Top of page |  Section 1 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.