About beam_search with KenLM

Hi there,

I got a little confuse about beam_search with KenLM.
I know that the time series outputs of NN will be taken log operation. In beam search algorithm we will sum them.
I notice the explanation about void ExpandState in native_client/beam_search.h
Does it only works when extends prefix?
Example
original prefix :ca
case 1.
next NN character is t -> cat, extend prefix so use ExpandState function
case 2.
next NN character is a -> ca (because CTC), same prefix so don’t use ExpandState function

But ExpandState function will let the score be more negative, so case 2. score will larger than case 1. How can we deal with it?