Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
LTLMIX(1)			 User Commands			     LTLMIX(1)

NAME
       ltlmix -	combine	formulas selected randomly

SYNOPSIS
       ltlmix [OPTION...] [FILENAME[/COL]...]

DESCRIPTION
       Combine formulas	taken randomly from an input set.

       The  input set is specified using FILENAME, -F FILENAME,	or -f formula.
       By default this generates a Boolean pattern of size 5, for instance  "(
       &  )  |	", where each  is randomly taken from the input	set.  The size
       and nature of the pattern can be	changed	using  generation  parameters.
       Additionally,  it is possible to	rename the atomic propositions in each
       using -A	or -P.

   Input options:
       -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

   Generation parameters:
       --allow-dups
	      allow duplicate formulas to be output

       -A, --ap-count=N[,M]
	      rename the atomic	propositions in	each selected formula by draw-
	      ing randomly from	N atomic propositions (the rewriting is	bijec-
	      tive if N	is larger than the original set).  If M	is  specified,
	      two sets of atomic propositions are used to represent inputs and
	      outputs,	and  options  --ins/--outs can be used to classify the
	      original propositions.

       -B, --boolean
	      generate Boolean combinations of formulas	(default)

       -C, --random-conjuncts=N
	      generate	random-conjunctions  of	 N  conjuncts;	shorthand  for
	      --tree-size  {2N-1}  -B --boolean-priorities=[disable everything
	      but 'and']

       --ins=PROPS
	      comma-separated list of atomic propositions to consider  as  in-
	      put, interpreted as a regex if enclosed in slashes

       -L, --ltl
	      generate LTL combinations	of subformulas

       -n, --formulas=INT
	      number  of  formulas  to	generate  (default: 1);	use a negative
	      value for	unbounded generation

       --outs=PROPS
	      comma-separated list of atomic propositions to consider as  out-
	      put, interpreted as a regex if enclosed in slashes

       --part-file=FILENAME
	      read the I/O partition of	atomic propositions from FILENAME

       -P, --polarized-ap=N[,M]
	      similar  to  -A,	but  randomize	the polarity of	the new	atomic
	      propositions

       --seed=INT
	      seed for the random number generator (default: 0)

       --tree-size=RANGE
	      tree size	of main	pattern	generated (default: 5);	input formulas
	      count as size 1.

       RANGE may have one  of  the  following  forms:  'INT',  'INT..INT',  or
       '..INT'.	 In the	latter case, the missing number	is assumed to be 1.

   Adjusting probabilities:
       --boolean-priorities=STRING
	      set priorities for Boolean formulas

       --dump-priorities
	      show current priorities, do not generate any formula

       --ltl-priorities=STRING
	      set priorities for LTL formulas

       STRING should be	a comma-separated list of assignments, assigning inte-
       ger priorities to the tokens listed by --dump-priorities.

   Output options:
       -0, --zero-terminated-output
	      separate	output	formulas  with	\0 instead of \n (for use with
	      xargs -0)

       -8, --utf8
	      output using UTF-8 characters

       --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

       -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

       -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:

       %%     a	single %

       %b     the Boolean-length of the	formula	(i.e., all Boolean subformulas
	      count as 1)

       %f     the formula (in the selected syntax)

       %h, %[vw]h
	      the  class of the	formula	is the Manna-Pnueli hierarchy ([v] re-
	      places abbreviations by class  names,  [w]  for  all  compatible
	      classes)

       %l     the (serial) number of the formula (0-based)

       %L     the (serial) number of the formula (1-based)

       %[OP]n the  nesting depth of operator OP.  OP should be a single	letter
	      denoting the operator to count, or multiple letters to fuse sev-
	      eral operators during depth evaluation.  Add '~' to rewrite  the
	      formula in negative normal form before counting.

       %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

   Miscellaneous options:
       --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.

       Example:

       Generates 10 random Boolean combinations	of terms of the	form GFa, with
       'a' picked from a set of	5 atomic propositions:

	      %	ltlmix -f GFa -n10 -A5

       Build  a	 single	 LTL  formula over subformulas taken randomly from the
       list of 55 patterns by Dwyer et al., using a choice of 10 atomic	propo-
       sitions to relabel subformulas:

	      %	genltl --dac | ltlmix -L -A10

   Build 5 random positive Boolean combination of GFa and GFb:
	      %	 ltlmix	  -f   GFa   -f	  GFb	--boolean-prio=not=0,xor=0,im-
	      plies=0,equiv=0 -n5

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

COPYRIGHT
       Copyright  (C)  2025  by	the Spot authors, see the AUTHORS File for de-
       tails.  License GPLv3+: GNU GPL version 3 or later  <http://gnu.org/li-
       censes/gpl.html>.
       This  is	 free  software:  you  are free	to change and redistribute it.
       There is	NO WARRANTY, to	the extent permitted by	law.

SEE ALSO
       randltl(1), genltl(1)

ltlmix (spot) 2.14.5		 January 2026			     LTLMIX(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ltlmix&sektion=1&manpath=FreeBSD+Ports+15.0.quarterly>

home | help