faq
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| faq [2011/07/20 12:10] – [Axioms of HOL in Isabelle] 131.246.161.187 | faq [2013/03/01 10:12] (current) – [FAQ - Ask Questions] 124.207.188.66 | ||
|---|---|---|---|
| Line 7: | Line 7: | ||
| It would also help us and the other students a lot, if you could post any questions **you had** here, even just syntactical problems! Everything which held you up for more than 10 minutes is already worth mentioning here. | It would also help us and the other students a lot, if you could post any questions **you had** here, even just syntactical problems! Everything which held you up for more than 10 minutes is already worth mentioning here. | ||
| - | Also, check out the [[http:// | + | Also, check out the [[http:// |
| + | |||
| + | Dear all proof lovers: | ||
| + | I am really new to Isabelle. Recently I hope to learn HOL and try to use automatic therom prover. So I download the Isabelle2013. Now I hope to use Isabelle/ | ||
| + | Here, I am learning the simple example, which is in appendix. Am I right? | ||
| + | Thanks very much. | ||
| + | |||
| + | Appendix: | ||
| + | |||
| + | header {* Finite sequences *} | ||
| + | |||
| + | theory Seq | ||
| + | imports Main | ||
| + | begin | ||
| + | |||
| + | datatype 'a seq = Empty | Seq 'a "' | ||
| + | |||
| + | fun conc :: "' | ||
| + | where | ||
| + | "conc Empty ys = ys" | ||
| + | | "conc (Seq x xs) ys = Seq x (conc xs ys)" | ||
| + | |||
| + | fun reverse :: "' | ||
| + | where | ||
| + | " | ||
| + | | " | ||
| + | |||
| + | lemma conc_empty: "conc xs Empty = xs" | ||
| + | by (induct xs) simp_all | ||
| + | |||
| + | lemma conc_assoc: "conc (conc xs ys) zs = conc xs (conc ys zs)" | ||
| + | by (induct xs) simp_all | ||
| + | |||
| + | lemma reverse_conc: | ||
| + | by (induct xs) (simp_all add: conc_empty conc_assoc) | ||
| + | |||
| + | lemma reverse_reverse: | ||
| + | by (induct xs) (simp_all add: reverse_conc) | ||
| + | |||
| + | end | ||
| ===== Syntax ===== | ===== Syntax ===== | ||
| Line 66: | Line 106: | ||
| </ | </ | ||
| + | ==== Computing functions ==== | ||
| + | :?: How does Isabelle actually " | ||
| + | < | ||
| + | value " | ||
| + | </ | ||
| + | Is it simply applying simplification (i.e. term rewriting) until the normalized term " | ||
| + | |||
| + | :!: Yes, Isabelle does not have any notion of operational semantics or the like, but just uses simplification, | ||
| + | primrec plus_nat | ||
| + | where | ||
| + | add_0: | ||
| + | | add_Suc: | ||
| + | </ | ||
| + | So the term '' | ||
| + | |||
| + | I am just claiming this, however, if you want to know that is really going on you can try //trace simplification// | ||
| ===== Theorem Proving ===== | ===== Theorem Proving ===== | ||
| Line 186: | Line 242: | ||
| :!: There are several levels to this question: | :!: There are several levels to this question: | ||
| - | - First, the latter is a by itself a HOL formula, while the former contains HOL formulas, but is more considered a rule. | + | - First, the latter is by itself a HOL formula, while the former contains HOL formulas, but is more considered a rule. |
| - The former says that $G$ can be proven // | - The former says that $G$ can be proven // | ||
| - Maybe the main practical difference: the former is nicely applicable as a rule, where the latter is nearly useless. | - Maybe the main practical difference: the former is nicely applicable as a rule, where the latter is nearly useless. | ||
| Line 254: | Line 310: | ||
| Note that this does not mean we necessarly can derive '' | Note that this does not mean we necessarly can derive '' | ||
| + | ==== Non-conservative extensions ==== | ||
| + | :?: Is it possible to perform a non-conservative extension by only defining new types or constants (i.e. without touching the set A of axioms)? | ||
| + | |||
| + | :!: Considering that all proofs are constructed out of axioms, nothing new can be proven, so no it shouldn' | ||
| ==== Empty Types ==== | ==== Empty Types ==== | ||
| Line 275: | Line 335: | ||
| ==== Axioms of HOL in Isabelle ==== | ==== Axioms of HOL in Isabelle ==== | ||
| - | :?: | + | :?: About the axiom of infinity: |
| - Does Isabelle/ | - Does Isabelle/ | ||
| - If it does, this means the deduction system is incomplete (because of standard models), right? | - If it does, this means the deduction system is incomplete (because of standard models), right? | ||
| - If it does not include the axiom, what are the implications of that? Do we still have a true HOL system? | - If it does not include the axiom, what are the implications of that? Do we still have a true HOL system? | ||
| - | :!: | + | :!: Answer: |
| - | - Yes, but not explicitly. The axioms | + | - Yes, the '' |
| - | - Yes, it is incomplete. | + | typedecl ind |
| + | |||
| + | axiomatization | ||
| + | Zero_Rep :: ind and | ||
| + | Suc_Rep :: "ind => ind" | ||
| + | where | ||
| + | -- {* the axiom of infinity in 2 parts *} | ||
| + | Suc_Rep_inject: | ||
| + | Suc_Rep_not_Zero_Rep: | ||
| + | </code> It is just stated there, that there exists an // | ||
| + | - Yes, it is probably | ||
| - This case does not apply, but still: if we did not have the axiom of infinity, we would have a weaker HOL system, maybe, but still HOL (cf lecture). | - This case does not apply, but still: if we did not have the axiom of infinity, we would have a weaker HOL system, maybe, but still HOL (cf lecture). | ||
| + | |||
| + | |||
faq.1311156655.txt.gz · Last modified: by 131.246.161.187
