2012-07-05 11 views
6

Chcę zdefiniować własny typ listy w teorii o nazwie List, ale istnieje już teoria o tej nazwie. Czy istnieje bardziej lekka teoria niż Main?Czy nie można importować żadnej teorii w Isabelle?

+0

FYI, w przypadku, gdy nie dostaniesz odpowiedzi, której szukasz, warto też zadać pytanie na stronie cs.stackexchange.com lub cstheory.stackexchange.com ... – reuben

+2

@reuben: Ani strona jest dostępna do obsługi narzędzi. Isabelle [dokumentacja] (http://isabelle.in.tum.de/documentation.html) i [społeczność] (https://isabelle.in.tum.de/community) to właściwe miejsce. – Raphael

+7

Uwaga dla użytkowników zamykających: to pytanie dotyczy tematu przepełnienia stosu. Isabelle jest dowodem twierdzącym, a są to specjalne środowiska programistyczne ([tag: coq] i [tag: agda] to inne przykłady, które mają małą, ale istniejącą społeczność na SO). Używanie narzędzia do programowania jest tematem na przepełnieniu stosu.(@Raphael Nie, pytanie jest tutaj w porządku.) – Gilles

Odpowiedz

4

Nie można importować niczego w Isabelle (ponieważ import jest niezbędny nawet dla podstawowej logiki). Wdrożenie HOL w Isabelle ma trzy obsługiwane punkty wejścia: Main, Complex_Main (co jest Main plus niektóre analizy) i Plain, ale tylko pierwsze dwa są zamierzone do regularnego użytkowania.

Zwykły już zawiera podstawową logikę, ale prawie nic pod względem standardowej biblioteki (np. Bez list). Ale brakuje również ważnych narzędzi, takich jak QuickCheck, Sledgehammer i generator kodu. Co więcej, jeśli zaczniesz od Plain, aby móc nazwać swoją własną Listę Teorii, bądź świadomy, że twoja teoria będzie niezgodna z jakimkolwiek budowaniem pracy na Main (która jest prawie wszystkim).

Tak więc, jeśli nie masz naprawdę dobrych powodów, proponuję śledzić komentarz Raphaela i podać twojej liście teorii inne imię.

0

Można importować tylko HOL, jak w

theory Test_Theory 
imports HOL 
begin 
    … 
end 

ja często go do testowania i badania o Isabelle.

Jednakże, będziesz brakuje definicji typu danych, a prawdopodobnie trzeba będzie importować Datatype (a może być nawet Record), a także, aby móc napisać swoją teorię List.

theory Test_Theory 
imports HOL Datatype Record 
begin 
    … 
end 

W obu Datatype i Record importu HOL, można po prostu:

theory Test_Theory 
imports Datatype Record 
begin 
    … 
end 

To nie jest łatwe do zrobienia bez teorii Main, ale nie niemożliwe. Po prostu pamiętaj, że będziesz musiał obyć się bez wielu powszechnie używanych twierdzeń i być może będziesz musiał napisać i udowodnić swoje własne.

+0

Nie wiedziałem o 'FunDef', dzięki za cynk, przyjrzę się temu. Naprawdę jestem zainteresowany również "mniej rozdętymi" teoriami podstawowymi, przynajmniej dlatego, że zużywają dużo pamięci (używam maszyny 1G RAM, która jest mała dla Isabelle ... mam zamiar zdobyć więcej pamięci RAM specjalnie dla Isabelle). Kolejnym powodem, dla którego warto sięgnąć po inne zestawienia teorii, niż to, co zapewnia Main, jest to, że niektóre teorie nie nadają się do jakiegoś dowodu. Jako przykład, uważam, że aksjomatyzacja, której używa teoria mnogości, nie jest przydatna i chcę stworzyć własną (jeśli to możliwe). – Hibou57

+1

Należy zauważyć, że importowanie czegokolwiek poniżej 'Main' HOL jest nieokreślone i należy się spodziewać dziwnych efektów. 1 GB pamięci RAM to zły powód, aby wejść do wnętrza tego, jak Isabelle/HOL jest bootstrapped. – Makarius

+0

Czy to samo z "Pure"? (Będę wyglądać, dzięki za punkt). – Hibou57

4

Zauważ, że $ISABELLE_HOME/src/HOL/ex/Seq.thy daje minimalny przykład zdefiniowania własnego typu danych na liście do eksperymentowania, bez wdawania się w delikatne pytanie, jak pracować z systemem poniżej jego punktu wejścia Main. (Początkujący wpadają w zakłopotanie, a eksperci tego nie robią.)

Teoretycznie najbardziej prymitywną teorią, którą można zaimportować, jest Pure, ale jest to po prostu szkielet logiczny, bez logiki obiektowej, takiej jak HOL. Tylko dla ciekawości, możesz spojrzeć na $ISABELLE_HOME/src/HOL/ex/Higher_Order_Logic.thy, która zaczyna się od Pure i definiuje minimalną wersję H.O.L. na dodatek bez zaawansowanych teorii i narzędzi, których można oczekiwać od pełnej wersji Isabelle/HOL.

+0

Odniesienie do 'Higher_Order_Logic' jest bardzo miłe. –

Powiązane problemy