2012-07-05 14 views
6

Tôi muốn xác định loại danh sách của riêng mình trong một lý thuyết có tên là List, nhưng đã có một lý thuyết với tên đó. Có lý thuyết nhẹ hơn Main không?Có thể nhập bất kỳ lý thuyết nào vào Isabelle không?

+0

FYI, trong trường hợp bạn không nhận được câu trả lời bạn đang tìm kiếm ở đây, có thể đáng giá nó cũng đặt câu hỏi trên cs.stackexchange.com hoặc cstheory.stackexchange.com ... – reuben

+2

@reuben: Không trang web có hỗ trợ công cụ. Isabelle [tài liệu] (http://isabelle.in.tum.de/documentation.html) và [cộng đồng] (https://isabelle.in.tum.de/community) là nơi chính xác để đi. – Raphael

+7

Lưu ý đối với người đóng: câu hỏi này là chủ đề về chủ đề trên Stack Overflow. Isabelle là một định lý lý thuyết, và đó là một loại môi trường lập trình đặc biệt ([tag: coq] và [tag: agda] là các ví dụ khác có một cộng đồng nhỏ nhưng tồn tại trên SO). Sử dụng công cụ lập trình là chủ đề trên Stack Overflow.(@Raphael Không, câu hỏi là tốt ở đây.) – Gilles

Trả lời

4

Bạn không thể nhập khẩu không có gì trong Isabelle (như việc nhập khẩu là cần thiết ngay cả đối với logic cơ bản). Việc thực hiện HOL trong Isabelle có ba điểm vào được hỗ trợ: Main, Complex_Main (đó là Main cộng với một số phân tích) và Plain, nhưng chỉ có hai đầu được intendend để sử dụng thường xuyên.

Plain đã có chứa logic cơ bản, nhưng hầu như không có gì trong điều khoản của thư viện chuẩn (ví dụ không có danh sách). Nhưng cũng có những công cụ quan trọng như QuickCheck, Sledgehammer và trình tạo mã bị thiếu. Hơn nữa, nếu bạn bắt đầu từ Plain để có thể đặt tên cho danh sách lý thuyết của riêng bạn, hãy lưu ý rằng lý thuyết của bạn sẽ không tương thích với bất kỳ công trình xây dựng nào trên Main (gần như mọi thứ).

Vì vậy, trừ khi bạn có lý do thực sự tốt để làm như vậy, tôi sẽ đề nghị sau bình luận của Raphael và đưa ra lý thuyết danh sách của bạn một tên khác.

0

Bạn có thể nhập HOL chỉ, như trong

theory Test_Theory 
imports HOL 
begin 
    … 
end 

Tôi thường làm điều đó cho thử nghiệm và điều tra về Isabelle.

Tuy nhiên, bạn sẽ thiếu định nghĩa kiểu dữ liệu và có thể cần nhập Datatype (và thậm chí có thể là Record) để có thể viết lý thuyết List của bạn.

theory Test_Theory 
imports HOL Datatype Record 
begin 
    … 
end 

Khi cả hai DatatypeRecord nhập khẩu HOL, bạn có thể chỉ cần có:

theory Test_Theory 
imports Datatype Record 
begin 
    … 
end 

Đó không phải là dễ dàng để làm mà không có lý thuyết Main, nhưng không phải bất khả thi. Chỉ cần nhận thức được bạn sẽ phải làm mà không có nhiều định lý được sử dụng rộng rãi, và có thể phải viết và chứng minh sở hữu của bạn.

+0

Tôi không biết về 'FunDef', cảm ơn cho tip, sẽ có một cái nhìn vào nó. Tôi thực sự quan tâm quá là "ít bloated" cơ sở lý thuyết, ít nhất vì nó tiêu thụ rất nhiều bộ nhớ (tôi đang chạy một máy 1G RAM, đó là nhỏ cho Isabelle ... Tôi đang có kế hoạch để có được một số RAM nhiều hơn đặc biệt là cho Isabelle). Ngoài ra, một lý do khác để tìm kiếm một lý thuyết khác hơn là những gì 'Main' cung cấp, là một số lý thuyết không phù hợp cho một số loại bằng chứng. Ví dụ, tôi cảm thấy tiên đề sử dụng lý thuyết tập hợp, không tiện dụng và muốn thiết lập của riêng tôi (nếu có thể). – Hibou57

+1

Lưu ý rằng việc nhập bất kỳ thứ gì bên dưới 'Main' HOL không được chỉ định và các hiệu ứng kỳ lạ sẽ được mong đợi. RAM 1 GB là một lý do không tốt cho việc nhập nội bộ của cách Isabelle/HOL được khởi động. – Makarius

+0

Nó không giống với 'Pure'? (Tôi sẽ có cái nhìn, cảm ơn cho điểm). – Hibou57

4

Lưu ý rằng $ISABELLE_HOME/src/HOL/ex/Seq.thy đưa ra ví dụ tối thiểu để xác định kiểu dữ liệu danh sách của riêng bạn để thử nghiệm, mà không bắt tay vào câu hỏi tinh tế cách làm việc với hệ thống bên dưới điểm nhập Main của nó. (Người mới bắt đầu bối rối và các chuyên gia không làm điều đó.)

Về mặt lý thuyết, lý thuyết nguyên thủy nhất bạn có thể nhập là Pure, nhưng đó chỉ là khung logic hợp lý, không có bất kỳ đối tượng logic nào như HOL. Chỉ vì tò mò, bạn có thể xem $ISABELLE_HOME/src/HOL/ex/Higher_Order_Logic.thy bắt đầu từ Pure và xác định phiên bản tối thiểu của H.O.L. trên đầu trang của nó, mà không có bất kỳ lý thuyết tiên tiến và các công cụ bạn mong chờ từ đầy đủ Isabelle/HOL, mặc dù.

+0

Tham chiếu đến 'Higher_Order_Logic' rất đẹp. –

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