Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/Isabelle/ZF/Constructible/   (Beweissystem Isabelle Version 2025-1©)  Datei vom 16.11.2025 mit Größe 11 kB image not shown  

Quelle  Rank_Separation.thy   Sprache: Isabelle

 
(*  Title:      ZF/Constructible/Rank_Separation.thy
    Author:     Lawrence C Paulson, Cambridge University Computer Laboratory
*)


section Separation for Facts About Order Types, Rank Functions and 
      Well-Founded Relations

theory Rank_Separation imports Rank Rec_Separation begin


textThis theory proves all instances needed for locales
 M_ordertype and  M_wfrank.  But the material is not
 needed for proving the relative consistency of AC.

subsectionThe Locale M_ordertype

subsubsectionSeparation for Order-Isomorphisms

lemma well_ord_iso_Reflects:
  "REFLECTS[\x. x\A \
                (y[L]. p[L]. fun_apply(L,f,x,y)  pair(L,y,x,p)  p  r),
        λi x. x ( Lset(i).  Lset(i).
                fun_apply(##Lset(i),f,x,y)  pair(##Lset(i),y,x,p)  p  r)]"
by (intro FOL_reflections function_reflections)

lemma well_ord_iso_separation:
     "\L(A); L(f); L(r)\
      ==> separation (L, λx. x (y[L]. (p[L].
                     fun_apply(L,f,x,y)  pair(L,y,x,p)  p  r)))"
apply (rule gen_separation_multi [OF well_ord_iso_Reflects, of "{A,f,r}"], 
       auto)
apply (rule_tac env="[A,f,r]" in DPow_LsetI)
apply (rule sep_rules | simp)+
done


subsubsectionSeparation for 🍋obase

lemma obase_reflects:
  "REFLECTS[\a. \x[L]. \g[L]. \mx[L]. \par[L].
             ordinal(L,x)  membership(L,x,mx)  pred_set(L,A,a,r,par) 
             order_isomorphism(L,par,r,x,mx,g),
        λi a.  Lset(i).  Lset(i). mx  Lset(i). par  Lset(i).
             ordinal(##Lset(i),x)  membership(##Lset(i),x,mx)  pred_set(##Lset(i),A,a,r,par) 
             order_isomorphism(##Lset(i),par,r,x,mx,g)]"
by (intro FOL_reflections function_reflections fun_plus_reflections)

lemma obase_separation:
     🍋 part of the order type formalization
     "\L(A); L(r)\
      ==> separation(L, λa. x[L]. g[L]. mx[L]. par[L].
             ordinal(L,x)  membership(L,x,mx)  pred_set(L,A,a,r,par) 
             order_isomorphism(L,par,r,x,mx,g))"
apply (rule gen_separation_multi [OF obase_reflects, of "{A,r}"], auto)
apply (rule_tac env="[A,r]" in DPow_LsetI)
apply (rule ordinal_iff_sats sep_rules | simp)+
done


subsubsectionSeparation for a Theorem about 🍋obase

lemma obase_equals_reflects:
  "REFLECTS[\x. x\A \ \(\y[L]. \g[L].
                ordinal(L,y)  (my[L]. pxr[L].
                membership(L,y,my)  pred_set(L,A,x,r,pxr) 
                order_isomorphism(L,pxr,r,y,my,g))),
        λi x. x ¬( Lset(i).  Lset(i).
                ordinal(##Lset(i),y)  (my  Lset(i). pxr  Lset(i).
                membership(##Lset(i),y,my)  pred_set(##Lset(i),A,x,r,pxr) 
                order_isomorphism(##Lset(i),pxr,r,y,my,g)))]"
by (intro FOL_reflections function_reflections fun_plus_reflections)

lemma obase_equals_separation:
     "\L(A); L(r)\
      ==> separation (L, λx. x ¬(y[L]. g[L].
                              ordinal(L,y)  (my[L]. pxr[L].
                              membership(L,y,my)  pred_set(L,A,x,r,pxr) 
                              order_isomorphism(L,pxr,r,y,my,g))))"
apply (rule gen_separation_multi [OF obase_equals_reflects, of "{A,r}"], auto)
apply (rule_tac env="[A,r]" in DPow_LsetI)
apply (rule sep_rules | simp)+
done


subsubsectionReplacement for 🍋omap

lemma omap_reflects:
 "REFLECTS[\z. \a[L]. a\B \ (\x[L]. \g[L]. \mx[L]. \par[L].
     ordinal(L,x)  pair(L,a,x,z)  membership(L,x,mx) 
     pred_set(L,A,a,r,par)  order_isomorphism(L,par,r,x,mx,g)),
 λi z.  Lset(i). a ( Lset(i).  Lset(i). mx  Lset(i).
        par  Lset(i).
         ordinal(##Lset(i),x)  pair(##Lset(i),a,x,z) 
         membership(##Lset(i),x,mx)  pred_set(##Lset(i),A,a,r,par) 
         order_isomorphism(##Lset(i),par,r,x,mx,g))]"
by (intro FOL_reflections function_reflections fun_plus_reflections)

lemma omap_replacement:
     "\L(A); L(r)\
      ==> strong_replacement(L,
             λa z. x[L]. g[L]. mx[L]. par[L].
             ordinal(L,x)  pair(L,a,x,z)  membership(L,x,mx) 
             pred_set(L,A,a,r,par)  order_isomorphism(L,par,r,x,mx,g))"
apply (rule strong_replacementI)
apply (rule_tac u="{A,r,B}" in gen_separation_multi [OF omap_reflects], auto)
apply (rule_tac env="[A,B,r]" in DPow_LsetI)
apply (rule sep_rules | simp)+
done



subsectionInstantiating the locale M_ordertype
textSeparation (and Strong Replacement) for basic set-theoretic constructions
such as intersection, Cartesian Product and image.

lemma M_ordertype_axioms_L: "M_ordertype_axioms(L)"
  apply (rule M_ordertype_axioms.intro)
       apply (assumption | rule well_ord_iso_separation
         obase_separation obase_equals_separation
         omap_replacement)+
  done

theorem M_ordertype_L: "M_ordertype(L)"
  apply (rule M_ordertype.intro)
   apply (rule M_basic_L)
  apply (rule M_ordertype_axioms_L) 
  done


subsectionThe Locale M_wfrank

subsubsectionSeparation for 🍋wfrank

lemma wfrank_Reflects:
 "REFLECTS[\x. \rplus[L]. tran_closure(L,r,rplus) \
              ¬ (f[L]. M_is_recfun(L, λx f y. is_range(L,f,y), rplus, x, f)),
      λi x. rplus  Lset(i). tran_closure(##Lset(i),r,rplus) 
         ¬ ( Lset(i).
            M_is_recfun(##Lset(i), λx f y. is_range(##Lset(i),f,y),
                        rplus, x, f))]"
by (intro FOL_reflections function_reflections is_recfun_reflection tran_closure_reflection)

lemma wfrank_separation:
     "L(r) \
      separation (L, λx. rplus[L]. tran_closure(L,r,rplus) 
         ¬ (f[L]. M_is_recfun(L, λx f y. is_range(L,f,y), rplus, x, f)))"
apply (rule gen_separation [OF wfrank_Reflects], simp)
apply (rule_tac env="[r]" in DPow_LsetI)
apply (rule sep_rules tran_closure_iff_sats is_recfun_iff_sats | simp)+
done


subsubsectionReplacement for 🍋wfrank

lemma wfrank_replacement_Reflects:
 "REFLECTS[\z. \x[L]. x \ A \
        (rplus[L]. tran_closure(L,r,rplus) 
         (y[L]. f[L]. pair(L,x,y,z)  
                        M_is_recfun(L, λx f y. is_range(L,f,y), rplus, x, f) 
                        is_range(L,f,y))),
 λi z.  Lset(i). x  A 
      (rplus  Lset(i). tran_closure(##Lset(i),r,rplus) 
       ( Lset(i).  Lset(i). pair(##Lset(i),x,y,z)  
         M_is_recfun(##Lset(i), λx f y. is_range(##Lset(i),f,y), rplus, x, f) 
         is_range(##Lset(i),f,y)))]"
by (intro FOL_reflections function_reflections fun_plus_reflections
             is_recfun_reflection tran_closure_reflection)

lemma wfrank_strong_replacement:
     "L(r) \
      strong_replacement(L, λx z.
         rplus[L]. tran_closure(L,r,rplus) 
         (y[L]. f[L]. pair(L,x,y,z)  
                        M_is_recfun(L, λx f y. is_range(L,f,y), rplus, x, f) 
                        is_range(L,f,y)))"
apply (rule strong_replacementI)
apply (rule_tac u="{r,B}" 
         in gen_separation_multi [OF wfrank_replacement_Reflects], 
       auto)
apply (rule_tac env="[r,B]" in DPow_LsetI)
apply (rule sep_rules tran_closure_iff_sats is_recfun_iff_sats | simp)+
done


subsubsectionSeparation for Proving Ord_wfrank_range

lemma Ord_wfrank_Reflects:
 "REFLECTS[\x. \rplus[L]. tran_closure(L,r,rplus) \
          ¬ (f[L]. rangef[L].
             is_range(L,f,rangef) 
             M_is_recfun(L, λx f y. is_range(L,f,y), rplus, x, f) 
             ordinal(L,rangef)),
      λi x. rplus  Lset(i). tran_closure(##Lset(i),r,rplus) 
          ¬ ( Lset(i). rangef  Lset(i).
             is_range(##Lset(i),f,rangef) 
             M_is_recfun(##Lset(i), λx f y. is_range(##Lset(i),f,y),
                         rplus, x, f) 
             ordinal(##Lset(i),rangef))]"
by (intro FOL_reflections function_reflections is_recfun_reflection
          tran_closure_reflection ordinal_reflection)

lemma  Ord_wfrank_separation:
     "L(r) \
      separation (L, λx.
         rplus[L]. tran_closure(L,r,rplus) 
          ¬ (f[L]. rangef[L].
             is_range(L,f,rangef) 
             M_is_recfun(L, λx f y. is_range(L,f,y), rplus, x, f) 
             ordinal(L,rangef)))"
apply (rule gen_separation [OF Ord_wfrank_Reflects], simp)
apply (rule_tac env="[r]" in DPow_LsetI)
apply (rule sep_rules tran_closure_iff_sats is_recfun_iff_sats | simp)+
done


subsubsectionInstantiating the locale M_wfrank

lemma M_wfrank_axioms_L: "M_wfrank_axioms(L)"
  apply (rule M_wfrank_axioms.intro)
   apply (assumption | rule
     wfrank_separation wfrank_strong_replacement Ord_wfrank_separation)+
  done

theorem M_wfrank_L: "M_wfrank(L)"
  apply (rule M_wfrank.intro)
   apply (rule M_trancl_L)
  apply (rule M_wfrank_axioms_L) 
  done

lemmas exists_wfrank = M_wfrank.exists_wfrank [OF M_wfrank_L]
  and M_wellfoundedrank = M_wfrank.M_wellfoundedrank [OF M_wfrank_L]
  and Ord_wfrank_range = M_wfrank.Ord_wfrank_range [OF M_wfrank_L]
  and Ord_range_wellfoundedrank = M_wfrank.Ord_range_wellfoundedrank [OF M_wfrank_L]
  and function_wellfoundedrank = M_wfrank.function_wellfoundedrank [OF M_wfrank_L]
  and domain_wellfoundedrank = M_wfrank.domain_wellfoundedrank [OF M_wfrank_L]
  and wellfoundedrank_type = M_wfrank.wellfoundedrank_type [OF M_wfrank_L]
  and Ord_wellfoundedrank = M_wfrank.Ord_wellfoundedrank [OF M_wfrank_L]
  and wellfoundedrank_eq = M_wfrank.wellfoundedrank_eq [OF M_wfrank_L]
  and wellfoundedrank_lt = M_wfrank.wellfoundedrank_lt [OF M_wfrank_L]
  and wellfounded_imp_subset_rvimage = M_wfrank.wellfounded_imp_subset_rvimage [OF M_wfrank_L]
  and wellfounded_imp_wf = M_wfrank.wellfounded_imp_wf [OF M_wfrank_L]
  and wellfounded_on_imp_wf_on = M_wfrank.wellfounded_on_imp_wf_on [OF M_wfrank_L]
  and wf_abs = M_wfrank.wf_abs [OF M_wfrank_L]
  and wf_on_abs = M_wfrank.wf_on_abs [OF M_wfrank_L]

end

Messung V0.5
C=97 H=100 G=98

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.