# Automata networks¶

Pint takes as input automata networks. Automata networks are transition-centered models, close to 1-bounded Petri nets. They gather a finite number of finite-state machines, where their internal transitions can be conditioned by the state of other automata in the network.

Pint uses a simple plain text format to specify automata networks and their initial state. The text files have the extension .an.

Models expressed as Boolean and multi-valued networks can be automatically converted using the python interface. See pypint.model.load() and Model input tutorial.

The structure of a .an file is the following. You can refer to the model repository for some examples.

• Automata declaration

An automaton is defined by a name and a list of local states. If the name of the automaton contain special characters, it should be enclosed with . The local states can either be integers, or strings (enclosed in ).

Examples:

a [0, 1]
b [0, 1, 2]
"Fyn-1" ["inactive", "active"]

• Transitions

A transition specifies a local state change within one automaton, and can be conditionned by the conjunction of states of other automata.

Examples:

a 0 -> 1 when "Fyn-1"="active" and b=2
a 1 -> 0  (* no external condition *)
"Fyn-1" "inactive" -> "active" when a=0
"Fyn-1" 0 -> 1 when a=0 (* equivalent to previous declaration *)


Transitions can also be coupled, i.e., their application is done simultaneously:

{ b 0 -> 1 ; "Fyn-1" "active" -> "inactive" } when a = 1


The above synchronized transition can be perfomed only when a=1, b=0, and Fyn-1=active.

• Initial state

By default, each automaton starts in the local state 0. The initial state of the automata network can be overrided with the following directive:

initial_state a=1,b=2