Is it possible to give my own names to the variables generated when using case analysis or induction?
相关问题
- How do I remove duplicate subgoals in Isabelle?
- Isabelle's document preparation
- What is the best way to search through general def
- How type casting is possible in isabelle
- Degree of polynomial smaller than a number
相关文章
- What is the difference between primrec and fun in
- Isabelle/HOL: What does the THE construct denote?
- What is an Isabelle/HOL subtype? What Isar command
- 在替换伊莎贝尔(Substitution in Isabelle)
- 装载在伊莎贝尔预编译堆图像(loading a precompiled heap image in
- 如何解除从要素列出了传递关系?(How to lift a transitive relation
- Function returns 0 when it should return 1, elimin
- Organizing constraints in isabelle in order to mod
If you are using structured proofs (starting with the
proof
keyword), you can use thecase
keywoard to select the case you want to prove and give names to the variables created by case analysis / induction:Here
case (Cons x xs)
tells Isabelle that you want to prove the case where a list consists of a start element and a remaining list (i.e., the induction step) and name the variablesx
andxs
.In the proof block, you can see the list of cases with the
print_cases
command.If on the other hand you are using
apply
-style, there is no direct way to name these variables (also, in this case you are likely to needcase_tac
instead ofcases
, as you will have to deal with bound variables instead of free variables). There is the methodrename_tac
which can be used to rename the outermost meta-quantified variables.For most projects (with the notable exception of program verification, like in the L4.verified project), the common proof style is to use mostly structured proofs. Unstructured proofs are used for exploration and become seldom so complex that it is necessary to rename your variables.