section ‹Preliminaries›
(*<*)
theory Prelim
imports "HOL-Library.Stream"
begin
(*>*)
abbreviation any where "any ≡ undefined"
lemma append_singl_rev: "a # as = [a] @ as" by simp
lemma list_pair_induct[case_names Nil Cons]:
assumes "P []" and "∧a b list. P list ==> P ((a,b) # list)"
shows "P lista"
using assms by (induction lista) auto
lemma list_pair_case[elim, case_names Nil Cons]:
assumes "xs = [] ==> P" and "∧a b list. xs = (a,b) # list ==> P"
shows "P"
using assms by(cases xs, auto)
definition asList :: "'a set → 'a list" where
"asList A ≡ SOME as. distinct as ∧ set as = A"
lemma asList:
assumes "finite A" shows "distinct (asList A) ∧ set (asList A) = A"
unfolding asList_def by (rule someI_ex) (metis assms finite_distinct_list)
lemmas distinct_asList = asList[THEN conjunct1]
lemmas set_asList = asList[THEN conjunct2]
lemma map_sdrop[simp]: "sdrop 0 = id"
by (auto intro: ext)
lemma stl_o_sdrop[simp]: "stl o sdrop n = sdrop (Suc n)"
by (auto intro: ext)
lemma sdrop_o_stl[simp]: "sdrop n o stl = sdrop (Suc n)"
by (auto intro: ext)
lemma hd_stake[simp]: "i > 0 ==> hd (stake i π) = shd π"
by (cases i) auto
(*<*)
end
(*>*)
¤ Dauer der Verarbeitung: 0.2 Sekunden
¤
*© Formatika GbR, Deutschland