Nếu hai giá trị trong Agda hoặc một số ngôn ngữ được nhập khác, bạn có thể chứng minh rằng v₁
không bằng v₂
, bạn có thể chứng minh v₁
bằng v₂
không?Nếu hai điều không bằng nhau, chúng có bình đẳng không?
Giống như, có chức năng thuộc loại ((v₁ ≡ v₂ → ⊥) → ⊥) → v₁ ≡ v₂
không?
Điều này có vẻ như một cái gì đó an toàn để thêm vào như tiên đề nếu nó không thể được chứng minh, vì có thể có nhiều nhất một giá trị v₁ ≡ v₂
.
Lý do thú vị là việc phủ định kép ((a → ⊥) → ⊥
) tạo thành một monad. Thông thường bạn không thể trích xuất các giá trị từ nó, nhưng bạn có thể có các giá trị nhất định, như ⊥
từ nó (nếu bạn nhận được một mâu thuẫn trong đơn nguyên logic cổ điển, bạn có mâu thuẫn). Tôi đã tự hỏi nếu bình đẳng là một điều có thể được trích xuất.
Tôi nghĩ rằng nó có thể được chứng minh trong lý thuyết loại quan sát, nhưng ngay cả khi nó không, bạn có thể mô phỏng có bất cứ điều gì liên quan đến bình đẳng mà không vi phạm tính toán của hệ thống. – user3237465