Skip to main content

A tool for generating a DFA from an LTLf formula

Project description

LTLf2DFA

ciaio

LTLf2DFA is a simple tool that processes an LTLf formula (with past or future operators) and generates the corresponding minimized DFA (Deterministic Finite state Automaton) using MONA. This tool is written in Python 3.6.

It is tested on Linux Ubuntu 16.04 and on macOS 10.13.6.

Now it is also available online at ltlf2dfa.diag.uniroma1.it.

Getting Started

Requirements

This tool uses MONA for the generation of the DFA. Hence, you should first install MONA with all its dependencies on your OS following the instructions here.

This tool is also based on the following libraries:

They are automatically added while installing LTLf2DFA.

How To Install It

  • From PyPI:
pip install ltlf2dfa
  • From this repository:
pip install git+https://github.com/Francesco17/LTLf2DFA@distribution#egg=ltlf2dfa

How To Use It

  • Simply parse an LTLf formula with past or future operators:
from ltlf2dfa.Parser import MyParser

formula = "G(a->Xb)"
parser = MyParser()
parsed_formula = parser(formula)

print(parsed_formula)
  • Translate an LTLf formula to the corresponding DFA automaton:
from ltlf2dfa.Translator import Translator
from ltlf2dfa.DotHandler import DotHandler

formula = "G(a->Xb)"
declare_flag = False #True if you want to compute DECLARE assumption for the formula

translator = Translator(formula)
translator.formula_parser()
translator.translate()
translator.createMonafile(declare_flag) #it creates automa.mona file
translator.invoke_mona() #it returns an intermediate automa.dot file

dotHandler = DotHandler()
dotHandler.modify_dot()
dotHandler.output_dot() #it returns the final automa.dot file

Syntax

The syntax accepted by LTLf2DFA is the following:

OPERATOR SYMBOL
TRUE T
FALSE F
AND &
OR |
NOT ~
IMPLICATION ->
D-IMPLICATION <->
NEXT X
UNTIL U
EVENTUALLY E
GLOBALLY G
YESTERDAY (*) Y
SINCE (*) S
ONCE (*) O
GLOBALLY (*) H

(*) are PAST operators.

Also parentheses ( and ) can be used.

NOTE: LTLf2DFA accepts ONLY separated formulas, i.e. formulas that have only past, only future or none operators.

Author

Francesco Fuggitti

License

This project is licensed under the MIT License - see the LICENSE file for details

Contacts

If, for any reason, you are interested in feel free to contact me by email.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ltlf2dfa-0.2.0.post3.tar.gz (174.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ltlf2dfa-0.2.0.post3-py3-none-any.whl (173.3 kB view details)

Uploaded Python 3

File details

Details for the file ltlf2dfa-0.2.0.post3.tar.gz.

File metadata

  • Download URL: ltlf2dfa-0.2.0.post3.tar.gz
  • Upload date:
  • Size: 174.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.6.5

File hashes

Hashes for ltlf2dfa-0.2.0.post3.tar.gz
Algorithm Hash digest
SHA256 eaf43251289532c23c0f7483ecc6515decbce11988e2c95b205fe0fbc6aa5bb8
MD5 a982eb4eeb18b86dbb9c1c771486281d
BLAKE2b-256 5b2771d736b58b0c0449c171bddf1f98acbee2a71834d60ed894fb14034bf3fd

See more details on using hashes here.

File details

Details for the file ltlf2dfa-0.2.0.post3-py3-none-any.whl.

File metadata

  • Download URL: ltlf2dfa-0.2.0.post3-py3-none-any.whl
  • Upload date:
  • Size: 173.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.6.5

File hashes

Hashes for ltlf2dfa-0.2.0.post3-py3-none-any.whl
Algorithm Hash digest
SHA256 a8fdc3ab3e64fad54fd6b7d36dda3936308dc1750c2862a0936d6bda85247713
MD5 f1bf6dc821f14f9bb0907e613f459e6f
BLAKE2b-256 a55d675231d4fd81dcffc91f627e37e217506797623b4d20b225ca0204e0a058

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page