Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/Isabelle/HOL/Algebra/   (Eine funktionale Sprache ©)  Datei vom 16.11.2025 mit Größe 21 kB image not shown  

Quellcode-Bibliothek Galois_Connection.thy   Sprache: Isabelle

 
    Author Galois_Connectiontheory
          Armstrong
    Copyrightsection
*)

subsection
  imports ',b c,'  
begin

section \<open>Galois connections\<close>

subsection \<open>Definition and basic properties\<close>

record ('a, 'b, 'c, 'd) galcon =
  orderA :: "('a, 'c) gorder_scheme" (\<open>\<X>\<index>\<close>)
  orderB :: "('b, 'd) gorder_scheme" (\<open>\<Y>\<index>\<close>)
  lower  :: "'a \ 'b" (\\\<^sup>*\\)
  upper  :: "'b \ 'a" (\\\<^sub>*\\)

type_synonym ('a, 'b) galois = "('a, 'b, unit, unit) galcon"

abbreviation "inv_galcon G \ \ orderA = inv_gorder \\<^bsub>G\<^esub>, orderB = inv_gorder \\<^bsub>G\<^esub>, lower = upper G, upper = lower G \"

definition comp_galcon :: "('b, 'c) galois \ ('a, 'b) galois \ ('a, 'c) galois" (infixr \\\<^sub>g\ 85)
  where "G \\<^sub>g F = \ orderA = orderA F, orderB = orderB G, lower = lower G \ lower F, upper = upper F \ upper G \"

 \<open>Definition and basic properties\<close> (a,',' 'd =
java.lang.NullPointerException


subsection \<open>Well-typed connections\<close>

locale =
  fixes  structure
  assumes" \"
and"partial_order \"
  and lower_closure: "\\<^sup>* \ carrier \ \ carrier \"
  and upper_closure: "\\<^sub>* \ carrier \ \ carrier \"
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5

  lemma lower_closed: "x \ carrier \ \ \\<^sup>* x \ carrier \"
    usinglower_closure

  lemmaupper_closedy 
    using upper_closure by auto  :: "' \ ('a, 'a) galois" (\I\<^sub>g\) where

end


subsection connection G ()
  
locale   is_order_A <"
  assumes galois_property: "\x \ carrier \; y \ carrier \\ \ \\<^sup>* x \\<^bsub>\\<^esub> y \ x \\<^bsub>\\<^esub> \\<^sub>* y"
begin

  lemma : java.lang.StringIndexOutOfBoundsException: Index 82 out of bounds for length 82
  proof -
        using lowjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
      by (metis     upper_closure
    show ?thesis ..
  qed

  lemma 
  
     \<open>Galois connections\<close>java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
       metis)
    show ?thesis
  qed

  lemma right: "\x \ carrier \; y \ carrier \; \\<^sup>* x \\<^bsub>\\<^esub> y\ \ x \\<^bsub>\\<^esub> \\<^sub>* y"
by galois_property

 ?thesisjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
by galois_property


by Pi_iff left weak_partial_order)

  lemma     metis)
bymetis, lifting galois_connection is_weak_order_B.le_refl

   : "
  proof (auto addisotone_def
    show "weak_partial_order \"
      by (metis metis is_weak_order_A upper_closurele_refl
show
      by (metis is_weak_order_B( (no_types)PiE.right is_weak_order_B .le_refl
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
assume"
    have b: "\\<^sup>* y \ carrier \"
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 0
      "\\<^sub>* (\\<^sup>* y) \ carrier \"
       upper_closure blast
then "x\\<^bsub>\\<^esub> \\<^sub>* (\\<^sup>* y)"
       mesoninflationis_weak_order_A ( is_weak_order_B
assume:circ><^sub>g F = \<lparr> orderA = orderA F, orderB = orderB G, lower = lower G \<circ> lower F, upper = upper F \<circ> upper G \<rparr>"
      by mesonb () Pi_iff lower_closure)rparr
  qed

  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    apply(  assumes is_order_Apartial_order
    apply( is_weak_order_B
   lower_closure mesonis_weak_order_Ale_trans
    apply metis"><^sub>* \ carrier \ \ carrier \"
  done

java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
bydeflationinflation  lower_isole_antisym use_iso2

  lemma  qed lower_closurejava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
    by (simp add:  upper_closure

  lemma"y
  
      lemmaupper_iso"isotone\ \ \\<^sub>*"
    hence f1\<pi>\<^sub>* y \<in> carrier \<X>" using upper_closure by blast 
    have f2 "\\<^sup>* (\\<^sub>* y) \\<^bsub>\\<^esub> y" using a1 deflation by blast
    have  assumes\lbrakk\<in> carrier \<X>; y \<in> carrier \<Y>\<rbrakk> \<Longrightarrow> \<pi>\<^sup>* x \<sqsubseteq>\<^bsub>\<Y>\<^esub> y \<longleftrightarrow> x \<sqsubseteq>\<^bsub>\<X>\<^esub> \<pi>\<^sub>* y" \<X>
      using java.lang.StringIndexOutOfBoundsException: Range [0, 26) out of bounds for length 9
 "pi\<^>* (\\<^sub>* y) \ carrier \" using f1 lower_closure by blast
    thushavejava.lang.StringIndexOutOfBoundsException: Index 96 out of bounds for length 96
      by (meson    by(metis)
  qed

  lemma upper_comp': "y \ carrier \ \ (\\<^sub>* \ \\<^sup>* \ \\<^sub>*) y = \\<^sub>* y"
    by       by( a1f2 inflationis_order_Ale_antisym use_iso2 

lemma"idempotent (\<^sup>* \ \\<^sub>*)"
by(    ( : upper_comp

lemma     ( add:idempotent_def partial_ordereq_is_equal)
    by (simp ddidempotent_def is_order_A.eq_is_equal)

  lemma     ( add: idempotent_def partial_order
     ( iso_composelower_closure upper_closure)

  lemmagf_iso: isotone
    by (metis iso_compose er

lemmasemi_inverse1x\<
    by (metis)

lemma"x \ carrier \ \ \\<^sub>* x = \\<^sub>* (\\<^sup>* (\\<^sub>* x))"
    by (metis)

 lower_by_complete_lattice
    assumes "complete_lattice ( is_weak_order_B)
      semi_inverse1" java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
 -
interpret:complete_lattice complete_lattice
      by (simp "\\<^sup>*(x) = \\<^bsub>\\<^esub> { y \ carrier \. x \\<^bsub>\\<^esub> \\<^sub>*(y) }"

     auto add)
    proofrulebysimp )
      show \<pi>
        using assms2  by blast:<pi>\<^sup>* x \<in> carrier \<Y>"
>bsub
      proof (rule>*x\<sqsubseteq>\<^bsub>\<Y>\<^esub> \<Sqinter>\<^bsub>\<Y>\<^esub>{y \<in> carrier \<Y>. x \<sqsubseteq>\<^bsub>\<X>\<^esub> \<pi>\<^sub>* y}"
         "{ \ carrier \. x \\<^bsub>\\<^esub> \\<^sub>* y} \ carrier \"
          by auto
        show "
         java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
  
        thus "\\<^sup>* x \\<^bsub>\\<^esub> z"
          using(2) leftjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
qed
show\<Sqinter>\<^bsub>\<Y>\<^esub>{y \<in> carrier \<Y>. x \<sqsubseteq>\<^bsub>\<X>\<^esub> \<pi>\<^sub>* y} \<sqsubseteq>\<^bsub>\<Y>\<^esub> \<pi>\<^sup>* x"upper_closure        "y\in> carrier\. x \\<^bsub>\\<^esub> \\<^sub>* y} \ carrier \"
      proof (     "\\<^sub>* (\\<^sup>* (\\<^sub>* y)) = \\<^sub>* y"
          java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5

 : " \ (\\<^sup>* \ \\<^sub>*)"
         ()
          show

            using assms(2) inflation by blast
        qed
      java.lang.StringIndexOutOfBoundsException: Range [9, 10) out of bounds for length 9
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
byassumes\<X>" "y \<in> carrier \<Y>"
    qed
  -

  theorem upper_by_complete_lattice:
assumes
   "\\<^sub>*(y) = \\<^bsub>\\<^esub> { x \ carrier \. \\<^sup>*(x) \\<^bsub>\\<^esub> y }"
  proof
      s y: java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
       ( add assms)
    show ?
    proof (rule X.le_antisym)
      show y: "\\<^sub>* y \ carrier \"
         ssms upper_closure blast
show"\<^sub>* y \\<^bsub>\\<^esub> \\<^bsub>\\<^esub>{x \ carrier \. \\<^sup>* x \\<^bsub>\\<^esub> y}"
      proof (rule X.weak.sup_upper (imp: assmsjava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
          auto
          by         show "\\<^sub>* y \ {x \ carrier \. \\<^sup>* x \\<^bsub>\\<^esub> y}"
 \<in> carrier \<X>. \<pi>\<^sup>* x \<sqsubseteq>\<^bsub>\<Y>\<^esub> y}"java.lang.NullPointerException
p )
          showproof( Y.weak)
          show
            by           by java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
        qed
      qed
java.lang.StringIndexOutOfBoundsException: Index 168 out of bounds for length 168
               "{ carrier \. \\<^sup>* x \\<^bsub>\\<^esub> y} \ carrier \"
        showbyjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
          by      qed
        show " assume "z \ {x \ carrier \. \\<^sup>* x \\<^bsub>\\<^esub> y}"
        fix        thus <><^bsub>\<X>\<^esub> \<pi>\<^sub>* y"
        assume " {x \ carrier \. \\<^sup>* x \\<^bsub>\\<^esub> y}"
thus" \\<^bsub>\\<^esub> \\<^sub>* y"
          by (simp add: assmsshow\<in> carrier \<Y>. x \<sqsubseteq>\<^bsub>\<X>\<^esub> \<pi>\<^sub>* y} \<subseteq> carrier \<Y>"
      qed
            qed
       by (auto intro: X.eak      show\<Squnion>\<^bsub>\<X>\<^esub>{x \<in> carrier \<X>. \<pi>\<^sup>* x \<sqsubseteq>\<^bsub>\<Y>\<^esub> y} \<in> carrier \<X>" (auto introX..sup_closed)
    qed
  qed

end

lemmajava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
                          =
  by( simp : galois_connection_def connection_def dual_order_iff

 lower_adjoint    qed
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

definition upper_adjoint  theoremupper_by_complete_lattice
  "upper_adjoint "upper_adjointBg<equiv> \<exists>f. galois_connection \<lparr> orderA = A, orderB = B, lower = f, upper = g \<rparr>"

 lower_adjoint_dual]: "lower_adjoint( A) ( B) (imp :: lower_adjoint_def upper_adjoint_def)
  by (simp addbysimp: assms)

lemma upper_adjoint_dual (simp: lower_adjoint_def)
  by (simp rule    proof (rule "ower_adjointABf\ f \ carrier A \ carrier B"

lemma lower_type
  by auto      show <>\<^sub>* y \<sqsubseteq>\<^bsub>\<X>\<^esub> \<Squnion>\<^bsub>\<X>\<^esub>{x \<in> carrier \<X>. \<pi>\<^sup>* x \<sqsubseteq>\<^bsub>\<Y>\<^esub> y}"

lemma upper_type (auto
             "\\<^sub>* y \ carrier \" by (fact y)


subsection

alois:qed
  by       

lemma comp_galcon_closed
lemmaid_galois"artial_orderA java.lang.StringIndexOutOfBoundsException: Index 85 out of bounds for length 85
   " (G \<^sub>g F)"
proof -
   Fjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    by (simpassumesgalois_connection           auto
  interpret G: galois_connection z
    by( : assms
  
  have "partial_order \\<^bsub>G \\<^sub>g F\<^esub>"
    by simpFis_order_A
  moreover have "partial_order qed simp add assms)
    by (simp add ( add:       (auto: Xweak
  moreover
    usingjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    by (imp: F.is_order_Acomp_galcon_def)
                                <lparr> orderA = A, orderB = B, lower = g, upper = f \<rparr>"
  moreover 
  have definition upper_adjoint: (', c)uFlower_closureG. ()byauto
               (\<pi>\<^sup>*\<^bsub>G\<^esub> (\<pi>\<^sup>*\<^bsub>F\<^esub> x) \<sqsubseteq>\<^bsub>\<Y>\<^bsub>G\<^esub>\<^esub> y) = (x \<sqsubseteq>\<^bsub>\<X>\<^bsub>F\<^esub>\<^esub> \<pi>\<^sub>*\<^bsub>F\<^esub> (\<pi>\<^sub>*\<^bsub>G\<^esub> y))"     .. assms java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
metis.Gupper_closurePi_iff
   show
    by ( java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
qed  bylemma" A galois_connection (I\<^sub>g(A))"

lemma comp_galcon_right_unitby (imp :
  by lemma:

lemma comp_galcon_left_unit [simpproofjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
  by (simp" A (imp add: assmsjava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24

lemma galois_connectionI:
  assumes
    "partial_order A" "java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 0
    L <in> carrier A \<rightarrow> carrier B" "R \<in> carrier B \<rightarrow> carrier A""
    "isotone A B have "partial_order
    "\ x y. \ x \ carrier A; y \ carrier B \ \ L x \\<^bsub>B\<^esub> y \ x \\<^bsub>A\<^esub> R y"
  shows   "alois_connection \ orderA = A, orderB = B, lower = L, upper = R \"
  using assmsby(addG comp_galcon_def

lemma subsection
  assumes
    "partial_order Alocale retract = galois_connection F.ower_closureG. assms(3) by
htarrowB R\>carrier
    "isotone A B L" "isotone B A R" 
    "\ X. X \ carrier(B) \ L(R(X)) \\<^bsub>B\<^esub> X"
    "\ X. X \ carrier(A) \ X \\<^bsub>A\<^esub> R(L(X))"
  shows "galois_connection have "\ x y. \x \ carrier \\<^bsub>F\<^esub>; y \ carrier \\<^bsub>G\<^esub> \ \
  using assms
  by (auto               \<pi>\<^sup>*\<^bsub>G\<^esub> (\<pi>\<^sup>*\<^bsub>F\<^esub> x) \<sqsubseteq>\<^bsub>\<Y>\<^bsub>G\<^esub>\<^esub> y) = (x \<sqsubseteq>\<^bsub>\<X>\<^bsub>F\<^esub>\<^esub> \<pi>\<^sub>*\<^bsub>F\<^esub> (\<pi>\<^sub>*\<^bsub>G\<^esub> y))" assms )


subsection \<open>Retracts\<close>

locale = galois_connection
  assumes java.lang.StringIndexOutOfBoundsException: Range [0, 26) out of bounds for length 7
begin
:"x\ carrier \ \ \\<^sub>* (\\<^sup>* x) = x"
bymesoninflation partial_order retract_axioms upper_closure

  lemma retract_injective: "inj_on \\<^sup>* (carrier \)"
   java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
end  isotoneL isotone

theorem comp_retract_closed:
assumes G" "retract" "\ X. X \ carrier(B) \ L(R(X)) \\<^bsub>B\<^esub> X"
shows ( <circ>\<^sub>g F)"
proof -
  interpretfretract
    by simp:assms assms3 .   auto :  connection_def, ( PiEweak_partial_order)+
  interpret g
    by ( add)
  interpret
    by (imp: assms)assms(3) comp_galcon_closed retract.(1)
  show  assumesretract_propertyx\<in> carrier \<X> \<Longrightarrow> \<pi>\<^sub>* (\<pi>\<^sup>* x) \<sqsubseteq>\<^bsub>\<X>\<^esub> x"
  proof
    fixx
    assume "x \ carrier \\<^bsub>G \\<^sub>g F\<^esub>"
    thus "lebegin
      using(3) f.inflation f. f.retract_inverseg.retract_inverse by (auto retract_axioms_def)
  
qed


subsection \<open>Coretracts\<close>
  
locale coretract comp_retract_closedjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
  assumes coretract_property: "y \ carrier \ \ y \\<^bsub>\\<^esub> \\<^sup>* (\\<^sub>* y)"
begin
  lemma coretract_inverse:
byassumes "coretractF"<
 
lemma: inj_on
    by (metis    by dd)
end

theorem        addassms
  assumes "coretractF \
  shows "coretract (G \\<^sub>g F)"
proof -
  interpret f:(fix
    by (simp
interpret:coretract
    by (simpbylocale  galois_connection +
  interpret
    byjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 5
  show ?thesis
  proof
    java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
    assume "y \ carrier \\<^bsub>G \\<^sub>g F\<^esub>" galois_bijection +
    thus l retract_injective: " \\<^sub>* (carrier \)"
      by(imp  assumeslower_iso \<X> \<Y> \<pi>\<^sup>*" 
  java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
qed  assumes


subsection> Bijections
  
locale galois_bijectioninterpret:  lemma upper_bij: "bij_be: "bij_betw \\<^sub>* (carrier \) (carrier \)"
  assumes lower_isointerpret:coretract
  upper_isosotone<
  and lower_inv_eq:   applyunfold_locales)
  and:"y carrier \ \ \\<^sup>* (\\<^sub>* y) = y"
begin

  lemmalower_bijbij_betwusing lower_iso upper_inv_equse_iso2 fastforce
by [where="<>\<^sub>*"], auto intro: upper_inv_eq lower_inv_eq upper_closed lower_closed)

  lemma y
    by (rule bij_betwI[where g="\\<^sup>*"], auto intro: upper_inv_eq lower_inv_eq upper_closed lower_closed)

sublocale gal_bij_conn: sublocale: coretract
  apply(,     thus
  using  upper_iso
  using
done

sublocale: retract
java.lang.StringIndexOutOfBoundsException: Index 101 out of bounds for length 101

sublocaleinterpret: G
  by (    by simp: assms lower_isoisotone

end

theorem comp_galois_bijection_closed:
  assumes"alois_bijection G"" ( add assms3 f.gal_bij_conn.galois_connection_axioms g.gal_bij_conn.galois_connection_axiomsgalois_connectionaxioms1)
shows G <circ>\<^sub>g F)"
proof -
  interpret f: galois_bijection java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    by (simp: assms
  interpret g: galois_bijection G
    by (simp add  lemmalower_bijbij_betw
  interpret:galois_connection <circ>\<^sub>g F)"
    by (simp add: assms(    fix
  show
  proof
show X>\<^bsub>G \<circ>\<^sub>g F\<^esub> \<Y>\<^bsub>G \<circ>\<^sub>g F\<^esub> \<pi>\<^sup>*\<^bsub>G \<circ>\<^sub>g F\<^esub>"gal_bij_connusing(3 . f.lower_inv_eqg.lower_inv_eq by( simp addjava.lang.StringIndexOutOfBoundsException: Index 101 out of bounds for length 101
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 0
    showisotone
      by( add gfupper_iso
    fixjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    assume"\
    thus "\\<^sub>*\<^bsub>G \\<^sub>g F\<^esub> (\\<^sup>*\<^bsub>G \\<^sub>g F\<^esub> x) = x"
      using assms(3) fbyunfold_locales add.is_weak_order_B weak_partial_order)
  next
    fix y
    assume "y \ carrier \\<^bsub>G \\<^sub>g F\<^esub>"
\<
      by (simp add: comp_galcon_def " G \\<^sub>g F)"
  qed
qed

end

100%


¤ 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.0.11Bemerkung:  ¤

*Bot Zugriff






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 ist noch experimentell.