added proof general