Various tweaks of the presentation
authorpaulson
Fri, 16 Aug 2002 17:19:43 +0200
changeset 13506 acc18a5d2b1a
parent 13505 52a16cb7fefb
child 13507 febb8e5d2a9d
Various tweaks of the presentation
src/ZF/Constructible/Internalize.thy
src/ZF/Constructible/L_axioms.thy
src/ZF/Constructible/Rec_Separation.thy
src/ZF/Constructible/WF_absolute.thy
src/ZF/Constructible/WFrec.thy
--- a/src/ZF/Constructible/Internalize.thy	Fri Aug 16 16:41:48 2002 +0200
+++ b/src/ZF/Constructible/Internalize.thy	Fri Aug 16 17:19:43 2002 +0200
@@ -565,6 +565,7 @@
 
 subsection{*Well-Founded Recursion!*}
 
+subsubsection{*The Operator @{term M_is_recfun}*}
 
 text{*Alternative definition, minimizing nesting of quantifiers around MH*}
 lemma M_is_recfun_iff:
--- a/src/ZF/Constructible/L_axioms.thy	Fri Aug 16 16:41:48 2002 +0200
+++ b/src/ZF/Constructible/L_axioms.thy	Fri Aug 16 17:19:43 2002 +0200
@@ -40,7 +40,7 @@
 apply (blast intro: transL)
 done
 
-subsubsection{*For L to satisfy Replacement *}
+subsection{*For L to satisfy Replacement *}
 
 (*Can't move these to Formula unless the definition of univalent is moved
 there too!*)
--- a/src/ZF/Constructible/Rec_Separation.thy	Fri Aug 16 16:41:48 2002 +0200
+++ b/src/ZF/Constructible/Rec_Separation.thy	Fri Aug 16 17:19:43 2002 +0200
@@ -172,7 +172,7 @@
 done
 
 
-subsection{*Separation for the Proof of @{text "wellfounded_on_trancl"}*}
+subsubsection{*Separation for the Proof of @{text "wellfounded_on_trancl"}*}
 
 lemma wellfounded_trancl_reflects:
   "REFLECTS[\<lambda>x. \<exists>w[L]. \<exists>wx[L]. \<exists>rp[L].
--- a/src/ZF/Constructible/WF_absolute.thy	Fri Aug 16 16:41:48 2002 +0200
+++ b/src/ZF/Constructible/WF_absolute.thy	Fri Aug 16 17:19:43 2002 +0200
@@ -601,7 +601,7 @@
 apply (simp_all add: wfrec_replacement_iff trans_eq_pair_wfrec_iff) 
 done
 
-section{*Absoluteness without assuming transitivity*}
+subsection{*Absoluteness without assuming transitivity*}
 lemma (in M_trancl) eq_pair_wfrec_iff:
   "[|wf(r);  M(r);  M(y); 
      strong_replacement(M, \<lambda>x z. \<exists>y[M]. \<exists>g[M].
--- a/src/ZF/Constructible/WFrec.thy	Fri Aug 16 16:41:48 2002 +0200
+++ b/src/ZF/Constructible/WFrec.thy	Fri Aug 16 17:19:43 2002 +0200
@@ -9,6 +9,8 @@
 theory WFrec = Wellorderings:
 
 
+subsection{*General Lemmas*}
+
 (*Many of these might be useful in WF.thy*)
 
 lemma apply_recfun2:
@@ -70,6 +72,8 @@
 apply (blast intro: sym)+
 done
 
+subsection{*Reworking of the Recursion Theory Within @{term M}*}
+
 lemma (in M_axioms) is_recfun_separation':
     "[| f \<in> r -`` {a} \<rightarrow> range(f); g \<in> r -`` {b} \<rightarrow> range(g);
         M(r); M(f); M(g); M(a); M(b) |] 
@@ -150,20 +154,6 @@
 apply (simp add: is_recfun_imp_function function_restrictI) 
 done
 
-(* ideas for further weaking the H-closure premise:
-apply (drule spec [THEN spec]) 
-apply (erule mp)
-apply (intro conjI)
-apply (blast dest!: pair_components_in_M)
-apply (blast intro!: function_restrictI dest!: pair_components_in_M)
-apply (blast intro!: function_restrictI dest!: pair_components_in_M)
-apply (simp only: subset_iff domain_iff restrict_iff vimage_iff) 
-apply (simp add: vimage_singleton_iff) 
-apply (intro allI impI conjI)
-apply (blast intro: transM dest!: pair_components_in_M)
-prefer 4;apply blast 
-*)
-
 lemma (in M_axioms) is_recfun_restrict:
      "[| wellfounded(M,r); trans(r); is_recfun(r,x,H,f); \<langle>y,x\<rangle> \<in> r; 
        M(r); M(f); 
@@ -280,6 +270,9 @@
       apply (blast dest: transM del: rev_rallE, assumption+)
 done
 
+
+subsection{*Relativization of the ZF Predicate @{term is_recfun}*}
+
 constdefs
   M_is_recfun :: "[i=>o, [i,i,i]=>o, i, i, i] => o"
    "M_is_recfun(M,MH,r,a,f) == 
@@ -339,6 +332,10 @@
 by (simp add: is_wfrec_def wfrec_replacement_def) 
 
 
+subsection{*Ordinal Arithmetic: Two Examples of Recursion*}
+
+subsubsection{*Ordinal Addition*}
+
 (*FIXME: update to use new techniques!!*)
 constdefs
  (*This expresses ordinal addition in the language of ZF.  It also 
@@ -485,7 +482,7 @@
 done
 
 
-text{*Ordinal Multiplication*}
+subsubsection{*Ordinal Multiplication*}
 
 lemma omult_eqns_unique:
      "[| omult_eqns(i,x,g,z); omult_eqns(i,x,g,z') |] ==> z=z'";