--- a/Quotient-Paper-jv/Paper.thy Fri Feb 03 15:51:55 2012 +0000
+++ b/Quotient-Paper-jv/Paper.thy Thu Feb 09 14:47:24 2012 +0100
@@ -37,7 +37,7 @@
concat_fset ("\<Union>") and
Quotient ("Quot _ _ _")
-
+declare [[show_question_marks = false]]
ML {*
fun nth_conj n (_, r) = nth (HOLogic.dest_conj r) n;
@@ -58,43 +58,6 @@
Term_Style.setup "rhs3" (style_lhs_rhs (nth_conj 2))
*}
-lemma insert_preserve2:
- shows "((rep_fset ---> (map rep_fset \<circ> rep_fset) ---> (abs_fset \<circ> map abs_fset)) op #) =
- (id ---> rep_fset ---> abs_fset) op #"
- by (simp add: fun_eq_iff abs_o_rep[OF Quotient_fset] map_id Quotient_abs_rep[OF Quotient_fset])
-
-lemma list_all2_symp:
- assumes a: "equivp R"
- and b: "list_all2 R xs ys"
- shows "list_all2 R ys xs"
-using list_all2_lengthD[OF b] b
-apply(induct xs ys rule: list_induct2)
-apply(auto intro: equivp_symp[OF a])
-done
-
-lemma concat_rsp_unfolded:
- "\<lbrakk>list_all2 list_eq a ba; list_eq ba bb; list_all2 list_eq bb b\<rbrakk> \<Longrightarrow> list_eq (concat a) (concat b)"
-proof -
- fix a b ba bb
- assume a: "list_all2 list_eq a ba"
- assume b: "list_eq ba bb"
- assume c: "list_all2 list_eq bb b"
- have "\<forall>x. (\<exists>xa\<in>set a. x \<in> set xa) = (\<exists>xa\<in>set b. x \<in> set xa)" proof
- fix x
- show "(\<exists>xa\<in>set a. x \<in> set xa) = (\<exists>xa\<in>set b. x \<in> set xa)" proof
- assume d: "\<exists>xa\<in>set a. x \<in> set xa"
- show "\<exists>xa\<in>set b. x \<in> set xa" by (rule concat_rsp_pre[OF a b c d])
- next
- assume e: "\<exists>xa\<in>set b. x \<in> set xa"
- have a': "list_all2 list_eq ba a" by (rule list_all2_symp[OF list_eq_equivp, OF a])
- have b': "list_eq bb ba" by (rule equivp_symp[OF list_eq_equivp, OF b])
- have c': "list_all2 list_eq b bb" by (rule list_all2_symp[OF list_eq_equivp, OF c])
- show "\<exists>xa\<in>set a. x \<in> set xa" by (rule concat_rsp_pre[OF c' b' a' e])
- qed
- qed
- then show "list_eq (concat a) (concat b)" by auto
-qed
-
(*>*)
@@ -275,7 +238,7 @@
\begin{isabelle}\ \ \ \ \ %%%
@{thm concat.simps(1)[THEN eq_reflection]}\hspace{10mm}
- @{thm concat.simps(2)[THEN eq_reflection, no_vars]}
+ @{thm concat.simps(2)[THEN eq_reflection]}
\end{isabelle}
\noindent
@@ -285,8 +248,8 @@
builds finite unions of finite sets:
\begin{isabelle}\ \ \ \ \ %%%
- @{thm concat_empty_fset[THEN eq_reflection, no_vars]}\hspace{10mm}
- @{thm concat_insert_fset[THEN eq_reflection, no_vars]}
+ @{thm concat_empty_fset[THEN eq_reflection]}\hspace{10mm}
+ @{thm concat_insert_fset[THEN eq_reflection]}
\end{isabelle}
\noindent
@@ -325,7 +288,7 @@
of \emph{aggregate equivalence relation}, \emph{respectfulness} and \emph{preservation}
from Homeier \cite{Homeier05}.
- {\bf EXAMPLE BY HUFFMAN @{thm map_concat_fset[no_vars]}}
+ {\bf EXAMPLE BY HUFFMAN @{thm map_concat_fset}}
In addition we are able to clearly specify what is involved
in the lifting process (this was only hinted at in \cite{Homeier05} and
@@ -383,7 +346,7 @@
also the following map for function types
\begin{isabelle}\ \ \ \ \ %%%
- @{thm map_fun_def[no_vars, THEN eq_reflection]}
+ @{thm map_fun_def[THEN eq_reflection]}
\end{isabelle}
\noindent
@@ -423,7 +386,7 @@
relations over function types
%
\begin{isabelle}\ \ \ \ \ %%%
- @{thm fun_rel_def[of "R\<^isub>1" "R\<^isub>2", no_vars, THEN eq_reflection]}
+ @{thm fun_rel_def[of "R\<^isub>1" "R\<^isub>2", THEN eq_reflection]}
\hfill\numbered{relfun}
\end{isabelle}
@@ -449,9 +412,9 @@
holds if and only if
\begin{isabelle}\ \ \ \ \ %%%%
\begin{tabular}{rl}
- (i) & \begin{isa}@{thm (rhs1) Quotient_def[of "R", no_vars]}\end{isa}\\
- (ii) & \begin{isa}@{thm (rhs2) Quotient_def[of "R", no_vars]}\end{isa}\\
- (iii) & \begin{isa}@{thm (rhs3) Quotient_def[of "R", no_vars]}\end{isa}\\
+ (i) & \begin{isa}@{thm (rhs1) Quotient_def[of "R"]}\end{isa}\\
+ (ii) & \begin{isa}@{thm (rhs2) Quotient_def[of "R"]}\end{isa}\\
+ (iii) & \begin{isa}@{thm (rhs3) Quotient_def[of "R"]}\end{isa}\\
\end{tabular}
\end{isabelle}
\end{definition}
@@ -918,7 +881,7 @@
with @{text "nat \<times> nat"} and we also quotient this type to yield integers,
then we need to show this preservation property.
- %%%@ {thm [display, indent=10] insert_preserve2[no_vars]}
+ %%%@ {thm [display, indent=10] Cons_prs2}
%Given two quotients, one of which quotients a container, and the
%other quotients the type in the container, we can write the
@@ -1132,7 +1095,7 @@
%%% should include a proof sketch?
%\begin{isabelle}\ \ \ \ \ %%%
- %@{thm (concl) ball_reg_eqv_range[of R\<^isub>1 R\<^isub>2, no_vars]}
+ %@{thm (concl) ball_reg_eqv_range[of R\<^isub>1 R\<^isub>2]}
%\end{isabelle}
%\noindent
@@ -1183,7 +1146,7 @@
%@{term "Quotient R\<^isub>1 Abs\<^isub>1 Rep\<^isub>1"} and @{term "Quotient R\<^isub>2 Abs\<^isub>2 Rep\<^isub>2"}, we have:
%\begin{isabelle}\ \ \ \ \ %%%
- %@{thm (concl) lambda_prs[of _ "Abs\<^isub>1" "Rep\<^isub>1" _ "Abs\<^isub>2" "Rep\<^isub>2", no_vars]}
+ %@{thm (concl) lambda_prs[of _ "Abs\<^isub>1" "Rep\<^isub>1" _ "Abs\<^isub>2" "Rep\<^isub>2"]}
%\end{isabelle}
%\noindent
@@ -1192,7 +1155,7 @@
%which has been shown by Homeier~\cite{Homeier05}:
%\begin{isabelle}\ \ \ \ \ %%%
- %@{thm (concl) Quotient_rel_rep[no_vars]}
+ %@{thm (concl) Quotient_rel_rep}
%\end{isabelle}