equal
deleted
inserted
replaced
17 text \<open>These [simp] attributes are double-edged. |
17 text \<open>These [simp] attributes are double-edged. |
18 Many proofs in Jinja rely on it but they can degrade performance.\<close> |
18 Many proofs in Jinja rely on it but they can degrade performance.\<close> |
19 |
19 |
20 lemma nlistsE_length [simp]: "xs \<in> nlists n A \<Longrightarrow> size xs = n" |
20 lemma nlistsE_length [simp]: "xs \<in> nlists n A \<Longrightarrow> size xs = n" |
21 by (simp add: nlists_def) |
21 by (simp add: nlists_def) |
|
22 |
|
23 lemma in_nlists_UNIV: "xs \<in> nlists k UNIV \<longleftrightarrow> length xs = k" |
|
24 unfolding nlists_def by(auto) |
22 |
25 |
23 lemma less_lengthI: "\<lbrakk> xs \<in> nlists n A; p < n \<rbrakk> \<Longrightarrow> p < size xs" |
26 lemma less_lengthI: "\<lbrakk> xs \<in> nlists n A; p < n \<rbrakk> \<Longrightarrow> p < size xs" |
24 by (simp) |
27 by (simp) |
25 |
28 |
26 lemma nlistsE_set[simp]: "xs \<in> nlists n A \<Longrightarrow> set xs \<subseteq> A" |
29 lemma nlistsE_set[simp]: "xs \<in> nlists n A \<Longrightarrow> set xs \<subseteq> A" |