2016-09-01 15 views
9

Để theo dõi What is Axiom K?, tôi tự hỏi điều gì xảy ra khi bạn sử dụng Agda với tùy chọn --without-k. Kết quả có kém hiệu quả hơn không? Nó là một ngôn ngữ khác hoặc làm tất cả các chương trình trước vẫn gõ kiểm tra?Agda có K không mạnh hơn?

+5

Mẫu phù hợp với việc thực hiện K (do đó không phải là tiên đề, để tính toán) là ví dụ chính của một chương trình không còn gõ nữa khi bạn chọn - không có K. Đó là một công tắc vô hiệu hóa. Nhưng sau đó nó cho phép bạn thêm các nguyên tắc equational mâu thuẫn với K nhưng phù hợp với J. – pigworker

Trả lời

9

Tình huống với lý thuyết loại Martin-Löf và Axiom K theo một số cách tương tự với hình học Euclide và định đề song song. Với giả thuyết song song, nhiều định lý hơn có thể được chứng minh, nhưng đó chỉ là về không gian Euclide. Nếu không có định lý có thể chứng minh được song song cũng đúng với các không gian phi Euclide và người ta có quyền tự do thêm các tiên đề phi Euclide rõ ràng.

Axiom K gần nói rằng bằng chứng bình đẳng không mang thông tin không tầm thường và không có nội dung tính toán. Đó là một cách logic tương đương với cả hai câu lệnh sau:

-- uniqueness of identity proofs 
UIP : {A : Set}(x y : A)(p p' : x ≡ y) → p ≡ p' 

-- reflexive equality elimination 
EqRefl : {A : Set}(x : A)(p : x ≡ x) → p ≡ refl 

Đương nhiên, cả hai đều không thể chứng minh với --without-K. Tôi cho đây là một vài báo cáo cụ thể hơn đó là không thể chứng minh mà không cần K, và có unprovability có vẻ phản trực giác ngay từ cái nhìn đầu tiên:

{-# OPTIONS --without-K #-} 

open import Relation.Binary.PropositionalEquality 
open import Data.Bool 
open import Data.Empty 

-- this one is provable, we're just making use of it below 
coerce : {A B : Set} → A ≡ B → A → B 
coerce refl a = a 

coerceTrue : (p : Bool ≡ Bool) → coerce p true ≡ true 
coerceTrue = ? -- unprovable 

data PointedSet : Set₁ where 
    pointed : (A : Set) → A → PointedSet 

BoolNEq : pointed Bool true ≡ pointed Bool false → ⊥ 
BoolNEq = ? -- unprovable 

Axiom K có vẻ trực quan, vì chúng ta định nghĩa bình đẳng mệnh đề Agda với một refl constructor duy nhất. Tại sao ngay cả bận tâm với các bằng chứng không bình đẳng không refl có sự tồn tại mà chúng ta không thể bác bỏ mà không có K?

Nếu chúng ta không có tiên đề K, chúng ta được tự do thêm các tiên đề mâu thuẫn với K, cho phép chúng ta khái quát hóa khái niệm các loại của chúng ta. Chúng ta có thể mô tả tiên đề duy nhất và các loại quy nạp cao hơn, về cơ bản cho chúng ta lý thuyết loại mà cuốn sách Homotopy Type Theory là về.

Quay lại tương tự Euclide: giả thiết song song cho rằng không gian bằng phẳng, vì vậy chúng tôi có thể chứng minh những điều phụ thuộc vào độ phẳng của không gian, nhưng không thể nói gì về không gian phẳng. Axiom K thừa nhận rằng tất cả các loại có bằng chứng bình đẳng tầm thường, vì vậy chúng ta có thể chứng minh các câu lệnh phụ thuộc vào điều đó, nhưng chúng ta không thể có các loại với cấu trúc chiều cao hơn. Các không gian phi Euclide và các loại chiều cao hơn cũng có một số yếu tố kỳ quặc nhưng cuối cùng chúng là nguồn ý tưởng phong phú và hữu ích.

Nếu chúng tôi chuyển sang lý thuyết loại đồng luân "sách", thì "có tỷ lệ bình đẳng" trở thành tài sản mà chúng ta có thể nói về nội bộ và chứng minh cho các loại cụ thể có thuộc tính đó.

+2

Điều tôi vẫn đang đấu tranh để hiểu là nếu '_≡_' được định nghĩa là một kiểu dữ liệu với một constructor' refl' duy nhất, như nó là trong 'Relation.Binary.PropositionalEquality', thì những điểm cân bằng khác được cho là từ đâu? Nói cách khác, ví dụ về 'x ≡ y' không làm giảm' phản xạ' là gì? Đây có phải chỉ là một tạo phẩm của backdoor 'postulate' mà Agda cung cấp không? Liệu có 'giả định' có nhiều cơ sở lý thuyết hơn là một lối thoát hiểm? – Cactus

+3

Các định nghĩa kiểu được lập chỉ mục có thể được hiểu là các định nghĩa không được lập chỉ mục với các bằng chứng bình đẳng bổ sung trong các nhà xây dựng đã thiết lập các chỉ mục. Trong Agda, điều cuối cùng quan trọng là phương thức hợp nhất các chỉ số trong khớp mẫu phụ thuộc, vì vậy '_≡_' có thể được xem như là một trình bao bọc cho bất kỳ khái niệm bình đẳng nào bắt nguồn từ sự khớp mẫu. Nhưng sự phù hợp với mô hình cuối cùng có thể giảm được đối với các ứng dụng của Axiom K hoặc Axiom J. So, ngay cả trong bối cảnh Agda, bạn chỉ nên nhìn vào sự phản chiếu của xương trần/định nghĩa Axiom J để xem sự cân bằng phụ đến từ đâu. –

+4

Vì sao Axiom J lại cho phép HoTT, tôi nghi ngờ có một câu trả lời trực tiếp ngay lập tức cho mọi người, vì vậy đây là câu trả lời của riêng tôi. Đầu tiên, chúng ta nên cố gắng quên đi các khái niệm trước đây của chúng ta về các loại và chỉ đơn giản là xem các tiên đề như chỉ định một số đối tượng lạ không nhìn thấy được. Chúng ta có thể nghĩ về J là nguyên tắc cảm ứng cho các đường trong không gian với cấu trúc tùy ý, và sau đó J nói rằng một vị từ là đúng của một đường đi nếu nó đúng với đường dẫn không đổi tại một điểm cuối (không quan trọng cái nào) của con đường. –

Các vấn đề liên quan