Moving bones in a specific manner with two fixed points
You can use empties and constraints to solve this, here are the steps:

I'm using different visuals of empties for visual distinction, however you can choose any shape you prefer.

1- Create an empty in the center of the fixed arm (the selected sphere in the image below), this empty will control the movement.



2- Create an empty in the center of the left arm (the selected circle in the image below), parent it to the first empty by selecting it then the first empty (the sphere) in this order (the last selected object is the active object) and hit Ctrl + P, select Object.



3- Select the left arm, add a Copy Location constraint to the left arm, from the Constraint menu, set the Circle empty as a target, this will make the left arm move with the circle empty positioned at it's origin, we need the circle empty's location, but not it's rotation.



4- Move the origins of the upper and lower arms to the edges positioned at the fixed arm, to do this, select the upper arm, press Tab to enter Edit mode, select the edges at that end near the fixed arm, then press Shift + S, choose Cursor to Selected. This will position the 3D Cursor where we'll move the origin, next Tab to go back to Object mode, press Ctrl + Alt + Shift + C, choose Origin to 3D Cursor. Follow the same steps for the lower arm.



5- Create two empties, position them at the other ends of the upper and lower arms (the ends at the left arm, see the image below), these empties will be the axis of rotation of the upper and lower arms at the left arm, parent both empties to the left arm, to do that, see step 2.



6- Select the upper arm, add a Track To constraint, set the top empty as a target (see the image below), repeat the same step for the lower arm, use the bottom empty as a target.
This way, each arm will rotate on it's origin (which we set to the fixed arm end in step 4) in order to keep pointing at the empty it's tracking.



And that will be it, in order to do the movement, you only need to rotate the sphere empty on the X axis (in my case it is the X axis, which is the axis the arms will rotate on) , check the image below to see the results, you can assign a limit rotation constraint to the sphere empty, so it won't rotate past a certain limit on the X axis.



Summary: When you rotate the sphere empty, the circle empty will follow it's rotation since it's parented to it. The left arm will copy the circle empty's location due to the Copy Location constraint, but it will not rotate with it, this is why we used a constraint rather than just parenting it to the circle empty. The top and bottom empties will move with the left arm, since they are parented to it. The upper and lower arms will rotate on their origins, and they will keep pointing at the empties they are tracked to, which are the top and bottom empties. 
P.S.: Naming the empties and objects will make it much easier to keep track of what you're doing. Giving distinctive shapes to empties will make it easier to control than using the same shape for all empties.
You can use the following link to download the file. Happy blending!



Edit: I managed to refine the process to make it shorter and using less steps, you can skip creating the top and bottom empties, instead add a Copy Rotation constraints to the upper and lower arms, and use the sphere empty as a target (the controller at the center of the fixed arm), this way you only need two empties, one in the center of the fixed arm (the controller), another at the center of the left arm (the circle empty), parent the circle empty to the controller, then add a Copy Location constraint to the left arm with the circle empty as a target, and the Copy Rotation constraint to both upper and lower arms with the sphere empty as a target. This method is shorter and better, because Track To constraint (and even Damped Track constraint) have their limitations when rotating to an angle more than 180 degrees, even when using Quaternion instead of Euler. Here's the edited file: