**• Lattices:** |
Are a graph containing `states` (nodes) and `arcs` (edges). which each state represent one 10ms frame |

**• Arcs:** |
Are start from one state to another state. Each state arcs can be accessed with arc iterator and arcs only retain their next state. each arcs have weight and input and output label. |

**• States:** |
Are simple decimal number starting from `lat.Start()` . and goes up to `lat.NumStates()` . Most of the time start is 0 |

**• Topological Sort:** |
An FST is `topological sorted` if the FST can be laid out on a horizontal axis and no arc direction would be from right to left |

**• Note 1:** |
You can get max state with `lat.NumStates()` |

**• Note 2:** |
You can prune lattices by creating dead end path. Dead end path is a path that’s not get end up to the final state. After that `fst::connect` will trim the FST and get rid of these dead paths |

Fig. 1. Topologically Sorted Graph

Happy to see you active again!

It’s great 2 C U here Mahdi