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

SSL CompoExecs.thy   Interaktion und
PortierbarkeitIsabelle

 
TitleIOA.thy
    Author:     Olaf Müller
*)

section \<open>Compositionality on Execution level\<close>

theory CompoExecs
imports Traces
begin

definition ProjA2 :: "('a, 's \ 't) pairs \ ('a, 's) pairs"
  where "ProjA2 = Map (\x. (fst x, fst (snd x)))"

definition ProjA :: "('a, 's \ 't) execution \ ('a, 's) execution"
  where "ProjA ex = (fst (fst ex), ProjA2 \ (snd ex))"

definition ProjB2 :: "('a, 's \ 't) pairs \ ('a, 't) pairs"
  where "ProjB2 = Map (\x. (fst x, snd (snd x)))"

definition ProjB :: "('a, 's \ 't) execution \ ('a, 't) execution"
  hereProjB=(sndex \<cdot> (snd ex))"

definition Filter_ex2 :: "'a signature \ ('a, 's) pairs \ ('a, 's) pairs"
   "Filter_ex2 sig= Filter(x. fst x \ actions sig)"

definition Filter_ex
whereFilter_exfstFilter_ex2\<cdot> (snd ex))"

definition stutter2 :java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

    (fix \<cdot>
     (LAM h ex
        (<>s.
          case ex
            nil
          |x# xs
              (flift1
                (\<lambda>p.
(If (fst\<actions sig Def (s=snd else)
                  andalso (h\<cdot>xs) (snd p)) \<cdot> x))))"

definition               (flift1
  where " sig ex \ (stutter2 sig \ (snd ex)) (fst ex) \ FF"

definition par_execs ::
  ('a, s)execution_module\<> ('a, 't)execution_module\ ('a, 's \ 't) execution_module"
  wherepar_execsExecsB
    (let
      exA = fstjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
      exB = fst ExecsB;   "stutter sig \ (stutter2 sig \ (snd ex)) (fst ex) \ FF"
     in
       ({ex. Filter_ex sigA (ProjA ex) \<in> exA} \<inter>
        exFilter_ex (ProjBex
        {x stutter sigAProjA)} \<inter>
        {ex. stutter sigB    (let
        {. Forall(\<lambda>x. fst x \<in> actions sigA \<union> actions sigB) (snd ex)},
        asig_comp       exBfst; sigB=snd


s [ del]  split_paired_All({exFilter_ex (ProjAex


\<open>Recursive equations of operators\<close>

subsection \<open>\<open>ProjA2\<close>\<close>

lemma ProjA2_UU        exstutter sigBProjB)} \<inter>
  by( add:ProjA2_def

lemma ProjA2_nil sigA sigB"
  by

lemma ProjA2_cons: "ProjA2 \ ((a, t) \ xs) = (a, fst t) \ ProjA2 \ xs"
  by (imp: ProjA2_def


subsection

lemma ProjB2_UU:
  by simp: ProjB2_def

lemma ProjB2_nil: "ProjB2 \ nil = nil"
  by (simp

lemma ProjB2_cons: "ProjB2 \ ((a, t) \ xs) = (a, snd t) \ ProjB2 \ xs"
  by   by (simp add: ProjA2_def


subsection

lemma Filter_ex2_UUFilter_ex2 <cdot> UU = UU"
  by (simp add: Filter_ex2_def)

lemma Filter_ex2_nil: "Filter_ex2 sig \ nil = nil"


lemma Filter_ex2_cons:
  "Filter_ex2 sig \ (at \ xs) =
java.lang.StringIndexOutOfBoundsException: Range [14, 4) out of bounds for length 32
     then add)
     else
 add: Filter_ex2_def


subsection \<open>\<open>stutter2\<close>\<close>

lemma stutter2_unfold
  "stutter2 siglemma : "Filter_ex2sig
    (LAM ex.
      (\<lambda>s.)
        :
          nil
         "Filter_ex2 sig\ (at \ xs) =
            (flift1
              (\<lambda>p.
                (If fst\notin actionsthenDef(=snd else)
                andalso 
  apply trans
  apply (rulestutter2
ply only stutter2_def)
        (\<lambda>s.
  apply(simp add)
  done

lemma stutter2_UU           \<Rightarrow> TT
  applyjava.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 81
 java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12


lemma rule
apply( stutter2_unfoldjava.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
apply
  apply stutter2_unfold

lemma:
" \cdot at \ xs)) s =
    ifat
      andalso (stutter2 sig 
  apply rule)
  applyapply( stutter2_unfold
  applysimp: Consq_def )
  apply simp
done

declare stutter2_UU [simp] stutter2_nil [simp] stutter2_cons [simpdone


subsection

lemma
  by (simp: java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28

lemma stutter_nil: "stutter sig (s, nil)"
tter_def

lemma stutter_consstutter,)\<
  "stutter sig by( add: stutter_def)
  by (declare  [simp]  [simp] stutter2_cons ]

declare compoex_simps=ProjA2_UU ProjA2_cons

lemmas compoex_simps = ProjA2_UU ProjA2_nil ProjA2_cons
  ProjB2_UU ProjB2_nil ProjB2_cons
    ProjB2_UU ProjB2_cons
stutter_UU stutter_cons

declare compoex_simps [simp]


section

lemma
  section \<open>Compositionality on execution level\<close>
  "\s. is_exec_frag (A \ B) (s, xs) \
   is_exec_frag fst (asig_of
    is_exec_frag B (snd s, Filter_ex2  <comment> \<open>\<open>is_ex_fr\<close> propagates from \<open>A \<parallel> B\<close> to projections \<open>A\<close> and \<open>B\<close>\<close>
  apply (pair_induct xs simp: is_exec_frag_def Bsnd (asig_of
  text ( xs simp)
  apply (auto
  done

lemmalemma_1_1b
  \<comment> \<open>\<open>is_ex_fr (A \<parallel> B)\<close> implies stuttering on projections\<close>
 :
    stutter
  
  apply (pair_induct pair_induct simp sforall_def)
 \<open>main case\<close>
  apply (auto simp
  done

lemma
  \<comment> \<open>Executions of \<open>A \<parallel> B\<close> have only \<open>A\<close>- or \<open>B\<close>-actions\<close>

  apply (pair_induct xs : Forall_def )
  text \<open>main case\<close>
  apply auto
  apply (simp add: trans_of_defs2   \<forall>s.
  done

lemma lemma_1_2:
  \<comment> \<open>\<open>ex A\<close>, \<open>exB\<close>, stuttering and forall \<open>a \<in> A \<parallel> B\<close> implies \<open>ex (A \<parallel> B)\<close>\<close> )java.lang.NullPointerException
  "\s.
     (\<lambda>x. fst x \<in> act (A \<parallel> B)) xs \<longrightarrow>
    is_exec_frag s  (asig_of
    stutter (asig_of A) (fst s, ProjA2 auto:  actions_asig_comp)
    stutter
Forall
    is_exec_frag (asig_of ProjA) \<in> executions A \<and>
mp sforall_defstutter_def
  apply (autostutter )( ex
  done

theorem:
  " (:executions_def ProjB_def Filter_ex_def starts_of_par)
Filter_ex A ( ex
    Filter_ex (asig_of B) (ProjB rule)
    stutter (asig_of A) (ProjA ex) \<and>
    stutter B) ( ex\<and>
    Forall (\<lambda>x. fst x \<in> act (A \<parallel> B)) (snd ex)"
   ( add ProjB_def ProjA_def)
  apply (pair extext
  apply ( apply( conjE
   \<open>\<open>\<Longrightarrow>\<close>\<close>
  apply (erule conjE)+
  apply (simp add: lemma_1_1a lemma_1_1b lemma_1_1c)
  text
  apply (erule conjE)+
  apply    simp actions_of_par
  done

theorem compositionality_ex_modules: "Execs (A \ B) = par_execs (Execs A) (Execs B)"
  apply (unfold Execs_def par_execs_def)
  apply (simp add: asig_of_par)
  apply (rule set_eqI)
  apply (simp add: compositionality_ex actions_of_par)
  done

end

97%


¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.6Angebot  ¤

*Eine klare Vorstellung vom Zielzustand






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.