Though similar to the linked question your partition table has some specific differences: you have a second Recovery HD with a false partition type and your main volume is part of a CoreStorage stack.
First you have to determine the proper system versions of the Recovery HDs and then remove the older or - if identical - remove the one with the wrong partition type (disk0s4). After removing one of the Recovery HDs you have to resize the CoreStorage stack:
Preparation:
Restart to Internet Recovery Mode by pressing alt cmd R at startup.
The prerequisites are the latest firmware update installed, either ethernet or WLAN (WPA/WPA2) and a router with DHCP activated.
On a 50 Mbps-line it takes about 4 min (presenting a small animated globe) to boot into a recovery netboot image which usually is loaded from an Apple/Akamai server.
I recommend ethernet because it's more reliable. If you are restricted to WIFI and the boot process fails, just restart your Mac until you succeed booting.
Alternatively you may start from a bootable installer thumb drive (preferably Yosemite or El Capitan) or a thumb drive containing a full system (preferably Yosemite or El Capitan). If you boot to a full system and login as admin you have to prepend sudo to execute some commands like gpt ... or newfs_hfs ...!
Check system versions of Recovery HDs
- Open in the menubar Utlities->Terminal
- Enter
diskutil list and gpt -r show /dev/disk0 to get an overview
Get the product version of the visible Recovery HD:
grep ProductVersion -A 1 /Volumes/Recovery\ HD/com.apple.recovery.boot/SystemVersion.plist
depending on the main system version it should yield something like:
<key>ProductVersion</key>
<string>10.11.5</string>
Unmount disk0s4:
diskutil unmount disk0s4
Mount the hidden Recovery HD partition:
diskutil mount disk0s3
Check that only one Recovery HD (disk0s3) is mounted:
df
Get the product version of the invisible Recovery HD:
grep ProductVersion -A 1 /Volumes/Recovery\ HD/com.apple.recovery.boot/SystemVersion.plist
depending on the main system version it should yield something like:
<key>ProductVersion</key>
<string>10.11.5</string>
If the product version of the visible is the same or older than the one of the invisible Recovery HD delete the visible Recovery HD partition:
diskutil list
diskutil umount diskX #Unmount the logical volume residing on disk0s2 with X: 1...~16 (e.g. disk1) like shown in the previous command
diskutil umountDisk disk0
gpt remove -i 4 disk0
Get the UUID of the logical volume:
diskutil cs list
Resize the CoreStorage stack to fill the whole disk:
diskutil cs resizeStack lvUUID 0 #lvUUID: UUID of the logical volume
The 0 (zero) as magical size sometimes fails. Then use a size ~1g smaller than your disk size (i.e. 250g or 249700m).