Double Ratchet Algorithm - What if the receiving wants to send the second message before the initiator? I'm studying about Signal Protocol and I had a doubt in Double Ratchet Algorithm. This section describes how to derive the receiving and sending key messages. But in this scenario, only Alice can send the second message.

The X3DH Protocol establishes a shared key between Alice and Bob where Alice is the initiator and she send the first message through this protocol. Double Ratchet only allow Alice send the second message because Bob doesn't have the public ratchet key from Alice (She will send him with the second message).

I don't know if I understand the Double Ratchet Algorithm well, my question is How Bob can send the second message to Alice after they establish a shared key (Alice is the initiator)?
I read again and again and I figure out how.

According to this section: 


  (This assumes Alice begins sending messages first, and Bob doesn't send messages until he has received one of Alice's messages. To allow Bob to send messages immediately after initialization Bob's sending chain key and Alice's receiving chain key could be initialized to a shared secret. For the sake of simplicity we won't consider this further.)


So, actually Bob's sending key chain and Alice's receiving key chain are initialized with a shared key. This allows Bob send the firsts messages of the Double Ratchet step (second+ messages).