1. 01 Jun, 2015 6 commits
    • Alexandre Duret-Lutz's avatar
      hoa: detect colored automata · 97665a58
      Alexandre Duret-Lutz authored
      Fixes #84.
      
      * src/twaalgos/hoa.cc: Detect and output the colored property.
      * src/tests/hoaparse.test, src/tests/satmin2.test: Update.
      97665a58
    • Alexandre Duret-Lutz's avatar
      random: fix rounding in barand() · a75a9c09
      Alexandre Duret-Lutz authored
      This fixes #85.
      
      * src/misc/random.hh (barand): Use round() before casting.
      * doc/org/oaut.org: Recompute example.
      * src/tests/randaut.test, wrap/python/tests/randaut.ipynb: Adjust.
      a75a9c09
    • Alexandre Duret-Lutz's avatar
      bin: clear temporary files on termination signals · eabed370
      Alexandre Duret-Lutz authored
      This is particularly important for src/tests/satmin.test, where ltl2tgba
      might be killed while writing a huge temporary file used for SAT-based
      minimization.  Before this patch, the temporary files would remain in
      src/tests/satmin.dir/, easily overflowing the 100GB limit of the docker
      containers we use on the build farm.
      
      * src/bin/common_setup.cc: Catch termination signals for all tools,
      even those that do not yet clear temporary files.
      * configure.ac: Check for sigaction.
      eabed370
    • Alexandre Duret-Lutz's avatar
    • Alexandre Duret-Lutz's avatar
    • Alexandre Duret-Lutz's avatar
      randaut: rename -S as -Q for consistency · 0ac35a15
      Alexandre Duret-Lutz authored
      This way -S means --state-based-acc like with other tools
      producing automata.   This fixes #82.
      
      * src/bin/randaut.cc: Rename -S as -Q, rename --state-acc as
      --state-based-acc (with --sbacc as a synonym), and declare -S as the
      short version of --state-based-acc.
      * doc/org/autfilt.org, doc/org/oaut.org, doc/org/randaut.org,
      src/tests/isomorph.test, src/tests/randaut.test,
      src/tests/randtgba.test, src/tests/readsave.test, src/tests/uniq.test,
      wrap/python/tests/randaut.ipynb: Adjust all calls to randaut.
      0ac35a15
  2. 30 May, 2015 2 commits
  3. 27 May, 2015 1 commit
  4. 26 May, 2015 2 commits
    • Alexandre Duret-Lutz's avatar
      b87f24d7
    • Alexandre Duret-Lutz's avatar
      randaut: better generation of acceptance conditions · 88141b27
      Alexandre Duret-Lutz authored
      * src/bin/randaut.cc: Replace the --acc-type and --acc-sets
      options by a more general --acceptance option, that take either
      an acceptance formula, or an acceptance name parametred by ranges.
      Also accept a range for the number of atomic propositions.
      * src/twaalgos/randomgraph.cc (random_acceptance): Move...
      * src/twa/acc.cc, src/twa/acc.hh (random): ... here.
      (parse_acc_code): Generalize to accept ranges instead of
      numbers whenever sensible, and accept a 'random' acceptance.
      * src/tests/randaut.test: Adjust tests and add more.
      * wrap/python/tests/randaut.ipynb: Adjust call to randaut.
      88141b27
  5. 25 May, 2015 3 commits
  6. 24 May, 2015 1 commit
  7. 22 May, 2015 5 commits
  8. 21 May, 2015 2 commits
  9. 20 May, 2015 3 commits
    • Alexandre Duret-Lutz's avatar
      acc: recognize parity acceptance · 04171207
      Alexandre Duret-Lutz authored
      It has two modes: strict or not.  In strict mode (tested in
      hoaparse.test), the acceptance formula has to match exactly the one
      given in the HOA spec.  In non-strict mode (tested in accparse2.py)
      any equivalent formula is accepted.
      
      * src/twa/acc.cc, src/twa/acc.hh (acc_cond::is_parity): New method.
      * src/twaalgos/hoa.cc: Use it.
      * src/tests/hoaparse.test: Test it.
      * wrap/python/spot_impl.i: Bind it.
      * wrap/python/tests/accparse2.py: New file.
      * wrap/python/tests/Makefile.am: Add it.
      04171207
    • Alexandre Duret-Lutz's avatar
      acc: add support for generating parity conditions · 704eaf26
      Alexandre Duret-Lutz authored
      * src/twa/acc.cc, src/twa/acc.hh: Here.
      * wrap/python/tests/accparse.ipynb: Test it.
      704eaf26
    • Alexandre Duret-Lutz's avatar
      hoa: output acc-name for several acceptance types · d276f73e
      Alexandre Duret-Lutz authored
      So far the HOA output would emit an acc-name only
      for generalized-Buchi or inferior types (Buchi, all).
      It now knows about none, co-Buchi, generalized-co-Buchi,
      Rabin, Streett, and generalized-Rabin as well.
      
      * src/twa/acc.cc, src/twa/acc.hh: Add detection code.
      * src/twaalgos/hoa.cc: Use it.
      * src/tests/remfin.test, src/tests/maskacc.test,
      src/tests/complete.test, src/tests/sim3.test,
      src/tests/ltl2dstar.test: Adjust tests.
      * src/tests/hoaparse.test: Adjust and add more tests.
      d276f73e
  10. 18 May, 2015 10 commits
    • Alexandre Duret-Lutz's avatar
      acc: parse standard acceptance names · 8e1c8469
      Alexandre Duret-Lutz authored
      * src/twa/acc.cc, src/twa/acc.hh: Add method to create
      standard acceptance conditions, and adjust the parse_acc_code
      to recognize them
      * wrap/python/spot_impl.i (acc_cond::acc_code): Add a printer.
      * wrap/python/tests/accparse.ipynb: New test file.
      * wrap/python/tests/Makefile.am: Add it.
      * src/tests/satmin2.test: Use the new syntax.
      8e1c8469
    • Alexandre Duret-Lutz's avatar
      sat-minimize: add a max-states option · 7880b25a
      Alexandre Duret-Lutz authored
      * src/twaalgos/dtbasat.cc, src/twaalgos/dtbasat.hh,
      src/twaalgos/dtgbasat.cc, src/twaalgos/dtgbasat.hh: Add it.
      * src/tests/satmin2.test: Add couple of tests.
      7880b25a
    • Alexandre Duret-Lutz's avatar
      sat-minimize: ignore silly histories · 91f68ab1
      Alexandre Duret-Lutz authored
      If the target acceptance is Fin(0)&Inf(1), there is no need to
      distinguish between an history of {0,1} and an history of {0}, as a
      cycle with either history will be rejected.  This implements this
      simplification.  If both the canditate and reference automata
      are Rabin automata with n pairs, then we now use at most
        Q * Q' * Q * Q' * 3^n * 3^n
      variables to encode the partial cycles histories, versus
        Q * Q' * Q * Q' * 4^n * 4^n
      before.
      
      * src/twaalgos/dtgbasat.cc: Implement this.
      * src/tests/satmin2.test: More tests.
      91f68ab1
    • Alexandre Duret-Lutz's avatar
      python: export the sat-minimization routines · 9480669e
      Alexandre Duret-Lutz authored
      * wrap/python/spot_impl.i: Here.
      9480669e
    • Alexandre Duret-Lutz's avatar
      ec49398e
    • Alexandre Duret-Lutz's avatar
    • Alexandre Duret-Lutz's avatar
      sat-minimize: allow different acceptances as input and output · 0ede9687
      Alexandre Duret-Lutz authored
      * src/twaalgos/dtgbasat.cc (sat_minimize): Use any arbitrary
      acceptance condition passed via the "acc" option.
      * src/twa/acc.hh (mark_t::max_set): New method.
      * src/tests/satmin2.test: Add two test cases with DRA as input
      and DSA as output.
      0ede9687
    • Alexandre Duret-Lutz's avatar
      acc: preserve input order in parse_acc_code() · 3efeacb6
      Alexandre Duret-Lutz authored
      * src/twa/acc.cc: Here.
      * src/tests/acc.test: Adjust.
      3efeacb6
    • Alexandre Duret-Lutz's avatar
      sat-minimize: omit impossible histories · b4881579
      Alexandre Duret-Lutz authored
      When the reference acceptance condition is complex enough, some
      accepting SCCs may not use all acceptance sets.  In that case
      we don't have to encode all possible histories for this SCC.
      
      * src/twaalgos/dtgbasat.cc: Improve the encoding by omitting
      histories involving sets that are not used in a reference SCC.
      b4881579
    • Alexandre Duret-Lutz's avatar
      sat-minimize: generalize to any acceptance · 08749805
      Alexandre Duret-Lutz authored
      This is still missing tests.
      
      * src/bin/autfilt.cc: Add a --sat-minimize option.
      * src/misc/optionmap.cc, src/misc/optionmap.hh: Allow passing strings.
      * src/twa/acc.cc, src/twa/acc.hh: Add helper functions needed
      by the SAT-encoder.
      * src/twaalgos/complete.hh: Typos.
      * src/twaalgos/dtbasat.hh: Adjust comment.
      * src/twaalgos/dtgbasat.cc, src/twaalgos/dtgbasat.hh: Generalize
      to take the target acceptance as input.
      * src/twaalgos/postproc.cc, src/tests/ltl2tgba.cc: Adjust calls.
      * src/twaalgos/sbacc.cc, src/twaalgos/sbacc.hh: Don't pass
      the pointer by reference.
      * src/tests/acc.cc, src/tests/acc.test: More tests
      for the acceptance helper function.
      08749805
  11. 15 May, 2015 1 commit
    • Alexandre Duret-Lutz's avatar
      python: rewrite translate() to deal with unambiguous and sbacc · 19a27392
      Alexandre Duret-Lutz authored
      and make it easier to extend and use.
      
      * src/twaalgos/postproc.hh, src/twaalgos/translate.cc,
      src/twaalgos/translate.hh: Incorporate the Unambiguous option
      with the other preferences.  It's cleaner this way, and the
      previous setup did not work well with Python.
      * src/bin/ltl2tgba.cc: Adjust to this change.
      * wrap/python/spot.py (translate): Rewrite.
      * wrap/python/tests/automata.ipynb: Adjust existing cases, and
      add more as well as some comments.
      19a27392
  12. 14 May, 2015 4 commits
    • Alexandre Duret-Lutz's avatar
      translate: remove arbitrary restriction on -U and -D · 1ef3e5f3
      Alexandre Duret-Lutz authored
      * src/twaalgos/translate.cc, src/bin/ltl2tgba.cc: Do not assume that
      unambiguous is incompatible with deterministic.
      1ef3e5f3
    • Alexandre Duret-Lutz's avatar
      postproc: add a SBAcc option · 0786e068
      Alexandre Duret-Lutz authored
      Producing state-based acceptance is now part of the postprocessing
      routines.  That means we can more easily simplify automata with
      state-based acceptance (using autfilt -S --small --high, for instance)
      and as as side-effect, ltl2tgba can produce GBA.  However the result of
      ltl2tgba -S is often larger than that of ltl2tgba -B.
      
      * src/twaalgos/postproc.cc, src/twaalgos/postproc.hh: Implement
      the SBAcc option.
      * src/bin/common_post.cc, src/bin/common_post.hh: Implement -S.
      * src/bin/autfilt.cc, src/bin/dstar2tgba.cc, src/bin/ltl2tgba.cc,
      src/bin/ltl2tgta.cc, src/bin/ltldo.cc: Adjust.
      * src/tests/sim3.test: Augment test case.
      * NEWS, doc/org/ltl2tgba.org, doc/org/autfilt.org: Document it -S.
      0786e068
    • Alexandre Duret-Lutz's avatar
      wdba: adjust to work on any TωA · dd87bdf8
      Alexandre Duret-Lutz authored
      * src/twaalgos/minimize.cc, src/twaalgos/safety.cc,
      src/twaalgos/safety.hh: Adjust.
      * src/tests/wdba2.test: More tests.
      dd87bdf8
    • Alexandre Duret-Lutz's avatar
      simulation: work on TωA · 80808133
      Alexandre Duret-Lutz authored
      * src/twaalgos/simulation.cc, src/twaalgos/simulation.hh: Adjust
      to work on TωA.  This only require separate acceptance sets.
      * src/tests/sim3.test: New test.
      * src/tests/Makefile.am: Add it.
      80808133