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?
Odpowiedz
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ę.
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.
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
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
Czy to samo z "Pure"? (Będę wyglądać, dzięki za punkt). – Hibou57
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.
Odniesienie do 'Higher_Order_Logic' jest bardzo miłe. –
- 1. Czy można alias importować?
- 2. Nie można importować MongoClient
- 3. Nie można importować rekordy Clojure
- 4. Python: nie można importować JSONDecodeError
- 5. nie można importować pliku com.squareup.okhttp.OkHttpClient;
- 6. Czy można przeładować z/importować w Pythonie?
- 7. Anaconda: Nie można importować pylab
- 8. Nie można importować cProfile w Pythonie 3
- 9. Nie można importować org.apache.http.HttpResponse w Android Studio
- 10. Czy można importować wiadomości do emulatora Androida?
- 11. Nie można importować request.packages.urllib3.util 'Ponów próbę'
- 12. Nie można importować wtyczek przepływu powietrza
- 13. Czy typ parametru nie odgrywa żadnej roli?
- 14. Nie można importować z biblioteki Python Six
- 15. Nie można importować org.springframework.jdbc.core z Maven
- 16. Nie można importować moduły, które są tam
- 17. Pylint - Pylint nie można importować flask.ext.wtf?
- 18. Nie można importować sendgrid do aplikacji GAE
- 19. Nie można importować importów klas android.hardware.camera2
- 20. Nie można importować Webkit z gi.repository
- 21. Nie można importować MLPRegressor scikit-uczenie się
- 22. Nie można importować wywołań dla AWS Lambda
- 23. Swift Nie można importować Sqlite3 iOS
- 24. Dowód tożsamości w Sprzeczności w Isabelle?
- 25. Czy można importować istniejące raporty SSRS w Visual Studio?
- 26. Czy można importować kształty svg w d3.js?
- 27. Wywoływanie Nitpick i Sledgehammer razem w Isabelle
- 28. Nie można importować USER32.DLL w Visual Studio
- 29. Nie można importować modułów pakietów nadrzędnych w pakietach podrzędnych.
- 30. AVD Nie można przetestować żadnej aplikacji za pomocą AVD
FYI, w przypadku, gdy nie dostaniesz odpowiedzi, której szukasz, warto też zadać pytanie na stronie cs.stackexchange.com lub cstheory.stackexchange.com ... – reuben
@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
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