isabelle

Printing out / showing detailed steps of proof methods (like simp) in a proof in isabelle

孤人 提交于 2021-02-05 06:11:08
问题 Suppose I have the following code in Isabelle: lemma"[| xs@zs = ys@xs ;[]@xs = []@[] |] => ys=zs" (*never mind the lemma body*) apply simp done In the above code, The simp method proves the lemma. I am interested to see and print out the detailed (rewriting /simplification) steps that the simplification method takes to prove this lemma ( and possibly be able to do the same for all the other proof methods). How this is possible? I am using isabelle 2014 with JEdit editor. Many Thanks 回答1: The

Printing out / showing detailed steps of proof methods (like simp) in a proof in isabelle

 ̄綄美尐妖づ 提交于 2021-02-05 06:10:01
问题 Suppose I have the following code in Isabelle: lemma"[| xs@zs = ys@xs ;[]@xs = []@[] |] => ys=zs" (*never mind the lemma body*) apply simp done In the above code, The simp method proves the lemma. I am interested to see and print out the detailed (rewriting /simplification) steps that the simplification method takes to prove this lemma ( and possibly be able to do the same for all the other proof methods). How this is possible? I am using isabelle 2014 with JEdit editor. Many Thanks 回答1: The

Printing out / showing detailed steps of proof methods (like simp) in a proof in isabelle

橙三吉。 提交于 2021-02-05 06:09:50
问题 Suppose I have the following code in Isabelle: lemma"[| xs@zs = ys@xs ;[]@xs = []@[] |] => ys=zs" (*never mind the lemma body*) apply simp done In the above code, The simp method proves the lemma. I am interested to see and print out the detailed (rewriting /simplification) steps that the simplification method takes to prove this lemma ( and possibly be able to do the same for all the other proof methods). How this is possible? I am using isabelle 2014 with JEdit editor. Many Thanks 回答1: The

Printing out / showing detailed steps of proof methods (like simp) in a proof in isabelle

让人想犯罪 __ 提交于 2021-02-05 06:09:43
问题 Suppose I have the following code in Isabelle: lemma"[| xs@zs = ys@xs ;[]@xs = []@[] |] => ys=zs" (*never mind the lemma body*) apply simp done In the above code, The simp method proves the lemma. I am interested to see and print out the detailed (rewriting /simplification) steps that the simplification method takes to prove this lemma ( and possibly be able to do the same for all the other proof methods). How this is possible? I am using isabelle 2014 with JEdit editor. Many Thanks 回答1: The

Proving intuitive statements about THE in Isabelle

余生长醉 提交于 2021-02-05 05:37:42
问题 I would like to prove something like this lemma in Isabelle lemma assumes "y = (THE x. P x)" shows "P (THE x. P x)" I imagine that the assumption implies that THE x. P x exists and is well-defined. So this lemma ought to be true too lemma assumes "y = (THE x. P x)" shows "∃! x. P x" I'm not sure how to prove this because I've looked through all the theorems that turn up when I type "name: the" into the query box in Isabelle and they don't seem useful. I can't find the definition of THE either

Proving intuitive statements about THE in Isabelle

こ雲淡風輕ζ 提交于 2021-02-05 05:37:08
问题 I would like to prove something like this lemma in Isabelle lemma assumes "y = (THE x. P x)" shows "P (THE x. P x)" I imagine that the assumption implies that THE x. P x exists and is well-defined. So this lemma ought to be true too lemma assumes "y = (THE x. P x)" shows "∃! x. P x" I'm not sure how to prove this because I've looked through all the theorems that turn up when I type "name: the" into the query box in Isabelle and they don't seem useful. I can't find the definition of THE either

Isabelle Code Generation and Linear Order

做~自己de王妃 提交于 2021-01-28 19:50:49
问题 I am trying to use the export_code tool for the following definition: definition set_to_list :: "('a×'a) set ⇒ ('a×'a) list" where "set_to_list A = (SOME L. set L = A)" This is not working due to missing code equations for Eps. Now I discovered that there is also a definition: definition sorted_list_of_set :: "'a set ⇒ 'a list" where "sorted_list_of_set = folding.F insort []" However, I am not capable of asserting that ('a ×'a) is a linear order (which would be fine for me, e.g. first

Subst refl closing duplicate subgoals. What's going on?

*爱你&永不变心* 提交于 2021-01-27 19:06:26
问题 In this thread Mathieu demonstrates that subst refl closes duplicate subgoals. How/Why is it doing that? 回答1: I'm not completely sure, but a quick look at the code suggests that subst calls distinct_subgoals_tac for some reason and does not restrict it to the subgoal it is working on: fun eqsubst_tac ctxt occs thms i st = let val nprems = Thm.nprems_of st in if nprems < i then Seq.empty else let val thmseq = Seq.of_list thms; fun apply_occ occ st = thmseq |> Seq.maps (fn r => eqsubst_tac'

Core of Verifier in Isabelle/HOL

笑着哭i 提交于 2020-12-29 04:19:26
问题 Question What is the core algorithm of the Isabelle/HOL verifier? I'm looking for something on the level of a scheme metacircular evaluator. Clarification I'm only interested in the Verifier , not the strategies for automated theorem proving. Context I want to implement a simple proof verifier from scratch (purely for education reasons, not for production use.) I want to understand the core Verifier algorithm of Isabelle/HOL. I don't care about the strategies / code used for automated theorem

Core of Verifier in Isabelle/HOL

与世无争的帅哥 提交于 2020-12-29 04:16:37
问题 Question What is the core algorithm of the Isabelle/HOL verifier? I'm looking for something on the level of a scheme metacircular evaluator. Clarification I'm only interested in the Verifier , not the strategies for automated theorem proving. Context I want to implement a simple proof verifier from scratch (purely for education reasons, not for production use.) I want to understand the core Verifier algorithm of Isabelle/HOL. I don't care about the strategies / code used for automated theorem