added main proof