<?xml version="1.0" encoding="UTF-8"?>
<machine:Machine xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:machine="http://emf.eventb.org/models/core/machine/2014" name="mComponent">
  <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
    <details key="configuration" value="org.eventb.core.fwd;de.prob.units.mchBase;org.eventb.codegen.ui.cgConfig"/>
    <details key="name" value="mComponent"/>
  </annotations>
  <annotations source="http:///org/eventb/core/RodinReferenceNamesAnnotations">
    <details key="sees cComponent" value="_cQf0YPqUEeectLZKwQfI0A"/>
  </annotations>
  <attributes key="org.eventb.texttools.text_lastmodified">
    <value type="Long" value="ACED00057372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B0200007870000001626783DA03"/>
  </attributes>
  <attributes key="org.eventb.texttools.text_representation">
    <value type="String" value="[encoded data, 9342 characters]"/>
  </attributes>
  <sees href="../cComponent.buc#http://emf.eventb.org/models/core/context/2014::Context::cComponent"/>
  <variables name="components">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_cQf0YfqUEeectLZKwQfI0A"/>
      <details key="identifier" value="components"/>
    </annotations>
  </variables>
  <variables name="container">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_cQf0YvqUEeectLZKwQfI0A"/>
      <details key="identifier" value="container"/>
    </annotations>
  </variables>
  <variables name="c_multiplicity">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_gmDo8PqgEeectLZKwQfI0A"/>
      <details key="identifier" value="c_multiplicity"/>
    </annotations>
  </variables>
  <variables name="to_clone_c">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_1dqNIPqkEeectLZKwQfI0A"/>
      <details key="identifier" value="to_clone_c"/>
    </annotations>
  </variables>
  <variables name="c_index">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_1dqNIfqkEeectLZKwQfI0A"/>
      <details key="identifier" value="c_index"/>
    </annotations>
  </variables>
  <variables name="to_unfold_c">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_1dqNIvqkEeectLZKwQfI0A"/>
      <details key="identifier" value="to_unfold_c"/>
    </annotations>
  </variables>
  <variables name="to_unfold_c_in">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_9phD8AKqEeiAPf1wPUl3Gw"/>
      <details key="identifier" value="to_unfold_c_in"/>
    </annotations>
  </variables>
  <variables name="inst2pat_c">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_xudpYAK5EeiAPf1wPUl3Gw"/>
      <details key="identifier" value="inst2pat_c"/>
    </annotations>
  </variables>
  <invariants name="comp" predicate="components ∈ Model ↔ Component">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_cQf0Y_qUEeectLZKwQfI0A"/>
      <details key="label" value="comp"/>
    </annotations>
  </invariants>
  <invariants name="comp_finite" predicate="∀m·finite(components[{m}])">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_cQf0ZPqUEeectLZKwQfI0A"/>
      <details key="label" value="comp_finite"/>
    </annotations>
  </invariants>
  <invariants name="comp_not_shared" predicate="components∼ ∈ Component ⇸ Model">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_ip9Q0PqUEeectLZKwQfI0A"/>
      <details key="label" value="comp_not_shared"/>
    </annotations>
  </invariants>
  <invariants name="c_mult" predicate="c_multiplicity ∈ components[Pattern] → ℕ">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_GMp30PqWEeectLZKwQfI0A"/>
      <details key="label" value="c_mult"/>
    </annotations>
  </invariants>
  <invariants name="cont_ty" predicate="container ∈ ran(components) ⇸ ran(components)">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_gmDo8fqgEeectLZKwQfI0A"/>
      <details key="label" value="cont_ty"/>
    </annotations>
  </invariants>
  <invariants name="cont_ctr" predicate="components;container;components∼ ⊆ id">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_gmDo8vqgEeectLZKwQfI0A"/>
      <details key="label" value="cont_ctr"/>
    </annotations>
  </invariants>
  <invariants name="acycl" predicate="∃f· f ∈ Component ↔ Component ∧ container ⊆ f ∧ f;f ⊆ f ∧ id ∩ f = ∅">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_oXBHAPqkEeectLZKwQfI0A"/>
      <details key="label" value="acycl"/>
    </annotations>
  </invariants>
  <invariants name="irrefl" predicate="container ∩ id = ∅" theorem="true">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_1dqNI_qkEeectLZKwQfI0A"/>
      <details key="label" value="irrefl"/>
    </annotations>
  </invariants>
  <invariants name="to_unfold_c_in" predicate="to_unfold_c_in ∈ components[{Pat}] ↔ components[{Inst}]">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_1dqNJPqkEeectLZKwQfI0A"/>
      <details key="label" value="to_unfold_c_in"/>
    </annotations>
  </invariants>
  <invariants comment="From new component to original component" name="to_clone_c" predicate="to_clone_c ∈ components[{Inst}] ⇸ components[{Pat}]">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_1dq0MPqkEeectLZKwQfI0A"/>
      <details key="label" value="to_clone_c"/>
      <details key="comment" value="From new component to original component"/>
    </annotations>
  </invariants>
  <invariants name="to_unfold_c" predicate="to_unfold_c ⊆ components[{Pat}]">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_l7KVEQA1EeictLZKwQfI0A"/>
      <details key="label" value="to_unfold_c"/>
    </annotations>
  </invariants>
  <invariants name="inst2pat_c_ty" predicate="inst2pat_c ∈ components[{Inst}] → components[{Pat}]">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_l7KVEgA1EeictLZKwQfI0A"/>
      <details key="label" value="inst2pat_c_ty"/>
    </annotations>
  </invariants>
  <invariants name="inst2pat_clone" predicate="to_clone_c ⊆ inst2pat_c">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_Hwdz4AKtEeiAPf1wPUl3Gw"/>
      <details key="label" value="inst2pat_clone"/>
    </annotations>
  </invariants>
  <invariants name="inst2pat_unfold_in" predicate="to_unfold_c_in;inst2pat_c ⊆ container">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_xudpYQK5EeiAPf1wPUl3Gw"/>
      <details key="label" value="inst2pat_unfold_in"/>
    </annotations>
  </invariants>
  <invariants name="pat2inst_unfold" predicate="to_unfold_c ∩ ran(inst2pat_c) = ∅">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_fxu54ALAEeiAPf1wPUl3Gw"/>
      <details key="label" value="pat2inst_unfold"/>
    </annotations>
  </invariants>
  <invariants name="unfold_root" predicate="to_unfold_c ∩ dom(container) = ∅">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_PaxdoAMwEei9ocE08JsPSw"/>
      <details key="label" value="unfold_root"/>
    </annotations>
  </invariants>
  <invariants name="unfold_in" predicate="dom(to_unfold_c_in) ⊆ dom(container)">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_PaxdoQMwEei9ocE08JsPSw"/>
      <details key="label" value="unfold_in"/>
    </annotations>
  </invariants>
  <invariants name="unfold_unfold_in" predicate="to_unfold_c ∩ dom(to_unfold_c_in) = ∅" theorem="true">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_nieoAAMxEei9ocE08JsPSw"/>
      <details key="label" value="unfold_unfold_in"/>
    </annotations>
  </invariants>
  <invariants name="unfold_clone" predicate="to_unfold_c ∩ ran(to_clone_c) = ∅" theorem="true">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_gxZD0AMzEei9ocE08JsPSw"/>
      <details key="label" value="unfold_clone"/>
    </annotations>
  </invariants>
  <invariants name="inst2pat_cont" predicate="inst2pat_c;container = container;inst2pat_c">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_gxZD0QMzEei9ocE08JsPSw"/>
      <details key="label" value="inst2pat_cont"/>
    </annotations>
  </invariants>
  <invariants name="c_index_ty" predicate="c_index ∈ dom(inst2pat_c) → ℕ">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_gxZD0gMzEei9ocE08JsPSw"/>
      <details key="label" value="c_index_ty"/>
    </annotations>
  </invariants>
  <invariants name="to_clone_c_mult" predicate="∀c· c∈dom(inst2pat_c) ⇒ c_index(c) ∈ 1‥c_multiplicity(inst2pat_c(c))">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_V6rHAAM1Eei9ocE08JsPSw"/>
      <details key="label" value="to_clone_c_mult"/>
    </annotations>
  </invariants>
  <variant expression="⋃ c · c∈(to_unfold_c ∪ ran(to_clone_c)) ∣ {c} × inter({ sc ∣ c∈sc ∧ container∼[sc] ⊆ sc})">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_yRrOsAK6EeiAPf1wPUl3Gw"/>
    </annotations>
  </variant>
  <events name="instanciate_pattern" extended="false">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="'"/>
      <details key="label" value="instanciate_pattern"/>
    </annotations>
    <parameters name="inst_components">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1UjgPqmEeectLZKwQfI0A"/>
        <details key="identifier" value="inst_components"/>
      </annotations>
    </parameters>
    <parameters name="c_mult_others">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1UjgfqmEeectLZKwQfI0A"/>
        <details key="identifier" value="c_mult_others"/>
      </annotations>
    </parameters>
    <guards name="ic" predicate="inst_components ∈ components[{Pat}] ↔ components[{Mdl}]">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1UjgvqmEeectLZKwQfI0A"/>
        <details key="label" value="ic"/>
      </annotations>
    </guards>
    <guards name="icr" predicate="inst_components∼ ∈ components[{Mdl}] ⇸ components[{Pat}]">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1Ujg_qmEeectLZKwQfI0A"/>
        <details key="label" value="icr"/>
      </annotations>
    </guards>
    <guards name="cm" predicate="c_mult_others ∈ components[{Pat}] ∖ dom(inst_components) → ℕ">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1UjhPqmEeectLZKwQfI0A"/>
        <details key="label" value="cm"/>
      </annotations>
    </guards>
    <actions name="c_mult" action="c_multiplicity ≔ c_multiplicity  (c_mult_others  {pc· pc ∈ dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])})">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1UjhfqmEeectLZKwQfI0A"/>
        <details key="label" value="c_mult"/>
      </annotations>
    </actions>
    <actions name="to_unfold_c" action="to_unfold_c ≔ (components[{Pat}] ∖ dom(container))">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1WYt_qmEeectLZKwQfI0A"/>
        <details key="label" value="to_unfold_c"/>
      </annotations>
    </actions>
    <actions name="to_unfold_c_in" action="to_unfold_c_in ≔ ∅">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1WYuPqmEeectLZKwQfI0A"/>
        <details key="label" value="to_unfold_c_in"/>
      </annotations>
    </actions>
    <actions name="components_inst" action="components ≔ {Inst} ⩤ components">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1W_xPqmEeectLZKwQfI0A"/>
        <details key="label" value="components_inst"/>
      </annotations>
    </actions>
    <actions name="container_inst" action="container ≔ components[{Inst}] ⩤ container">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1W_xfqmEeectLZKwQfI0A"/>
        <details key="label" value="container_inst"/>
      </annotations>
    </actions>
    <actions name="to_clone_c" action="to_clone_c ≔ ∅">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1W_xvqmEeectLZKwQfI0A"/>
        <details key="label" value="to_clone_c"/>
      </annotations>
    </actions>
    <actions name="c_index" action="c_index ≔ ∅">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1W_x_qmEeectLZKwQfI0A"/>
        <details key="label" value="c_index"/>
      </annotations>
    </actions>
    <actions name="pat2inst_c" action="inst2pat_c ≔ ∅">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1W_yPqmEeectLZKwQfI0A"/>
        <details key="label" value="pat2inst_c"/>
      </annotations>
    </actions>
  </events>
  <events name="unfold_root_c" convergence="convergent" extended="false">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_O1VxoPqmEeectLZKwQfI0A"/>
      <details key="label" value="unfold_root_c"/>
    </annotations>
    <parameters name="c">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1VxofqmEeectLZKwQfI0A"/>
        <details key="identifier" value="c"/>
      </annotations>
    </parameters>
    <parameters name="new_c">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1WYsPqmEeectLZKwQfI0A"/>
        <details key="identifier" value="new_c"/>
      </annotations>
    </parameters>
    <guards name="c_ty" predicate="c ∈ to_unfold_c">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1WYsfqmEeectLZKwQfI0A"/>
        <details key="label" value="c_ty"/>
      </annotations>
    </guards>
    <guards name="new_c_ty" predicate="new_c ∈ 1‥c_multiplicity(c) ↣ Component ∖ ran(components)">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1WYsvqmEeectLZKwQfI0A"/>
        <details key="label" value="new_c_ty"/>
      </annotations>
    </guards>
    <actions name="new_c_model" action="components ≔ components ∪ ({Inst}×ran(new_c))">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1Xm1PqmEeectLZKwQfI0A"/>
        <details key="label" value="new_c_model"/>
      </annotations>
    </actions>
    <actions name="to_clone_c" action="to_clone_c ≔ to_clone_c ∪ (ran(new_c)×{c})">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1Xm1fqmEeectLZKwQfI0A"/>
        <details key="label" value="to_clone_c"/>
      </annotations>
    </actions>
    <actions name="c_index" action="c_index ≔ c_index ∪ new_c∼">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1Xm1vqmEeectLZKwQfI0A"/>
        <details key="label" value="c_index"/>
      </annotations>
    </actions>
    <actions name="to_unfold_c" action="to_unfold_c ≔ to_unfold_c ∖ {c}">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1Xm1_qmEeectLZKwQfI0A"/>
        <details key="label" value="to_unfold_c"/>
      </annotations>
    </actions>
    <actions name="pat2inst_c" action="inst2pat_c ≔ inst2pat_c ∪ (ran(new_c) × {c})">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1YN4PqmEeectLZKwQfI0A"/>
        <details key="label" value="pat2inst_c"/>
      </annotations>
    </actions>
  </events>
  <events comment="Variante: spécifier directement la fermeture transitive." name="clone_c" convergence="convergent" extended="false">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_O1WYufqmEeectLZKwQfI0A"/>
      <details key="label" value="clone_c"/>
      <details key="comment" value="Variante: spécifier directement la fermeture transitive."/>
    </annotations>
    <parameters name="c">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1W_wPqmEeectLZKwQfI0A"/>
        <details key="identifier" value="c"/>
      </annotations>
    </parameters>
    <guards name="c_ty" predicate="c ∈ dom(to_clone_c)">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1WYs_qmEeectLZKwQfI0A"/>
        <details key="label" value="c_ty"/>
      </annotations>
    </guards>
    <actions name="to_unfold_c_in" action="to_unfold_c_in ≔ to_unfold_c_in ∪ (container∼[{to_clone_c(c)}] × {c})">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1YN4fqmEeectLZKwQfI0A"/>
        <details key="label" value="to_unfold_c_in"/>
      </annotations>
    </actions>
    <actions name="cloned_c" action="to_clone_c ≔ {c} ⩤ to_clone_c">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1YN4vqmEeectLZKwQfI0A"/>
        <details key="label" value="cloned_c"/>
      </annotations>
    </actions>
  </events>
  <events comment="réplication des éléments composants // A voir: duplication du contenu de C" name="unfold_node_c" convergence="convergent" extended="false">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_O1W_yfqmEeectLZKwQfI0A"/>
      <details key="label" value="unfold_node_c"/>
      <details key="comment" value="réplication des éléments composants // A voir: duplication du contenu de C"/>
    </annotations>
    <parameters name="c">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1W_wfqmEeectLZKwQfI0A"/>
        <details key="identifier" value="c"/>
      </annotations>
    </parameters>
    <parameters name="dest">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1Xm0PqmEeectLZKwQfI0A"/>
        <details key="identifier" value="dest"/>
      </annotations>
    </parameters>
    <parameters name="new_c">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1Xm0fqmEeectLZKwQfI0A"/>
        <details key="identifier" value="new_c"/>
      </annotations>
    </parameters>
    <guards name="c_ty" predicate="c ↦ dest ∈ to_unfold_c_in">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1WYtPqmEeectLZKwQfI0A"/>
        <details key="label" value="c_ty"/>
      </annotations>
    </guards>
    <guards name="new_c_ty" predicate="new_c ∈ 1‥c_multiplicity(c) ↣ Component ∖ ran(components)">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1WYtfqmEeectLZKwQfI0A"/>
        <details key="label" value="new_c_ty"/>
      </annotations>
    </guards>
    <actions name="new_c_model" action="components ≔ components ∪ ({Inst}×ran(new_c))">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_lyJKIPreEeerIsS6OyYQ4w"/>
        <details key="label" value="new_c_model"/>
      </annotations>
    </actions>
    <actions name="new_c_container" action="container ≔ container ∪ (ran(new_c)×{dest})">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_rQ0PgftxEeectLZKwQfI0A"/>
        <details key="label" value="new_c_container"/>
      </annotations>
    </actions>
    <actions name="to_clone_c" action="to_clone_c ≔ to_clone_c ∪ (ran(new_c)×{c})">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_xQWRoP01EeeINffjS36taQ"/>
        <details key="label" value="to_clone_c"/>
      </annotations>
    </actions>
    <actions name="c_index" action="c_index ≔ c_index ∪ new_c∼">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_254qkAA2EeictLZKwQfI0A"/>
        <details key="label" value="c_index"/>
      </annotations>
    </actions>
    <actions name="to_unfold_c_in" action="to_unfold_c_in ≔ to_unfold_c_in ∖ {c ↦ dest}">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_254qkQA2EeictLZKwQfI0A"/>
        <details key="label" value="to_unfold_c_in"/>
      </annotations>
    </actions>
    <actions name="pat2inst_c" action="inst2pat_c ≔ inst2pat_c ∪ (ran(new_c) × {c})">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_i0ODcAIQEei9ocE08JsPSw"/>
        <details key="label" value="pat2inst_c"/>
      </annotations>
    </actions>
  </events>
  <events comment="transformation du modèle" name="apply_pattern" extended="false">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_O1Xm2PqmEeectLZKwQfI0A"/>
      <details key="label" value="apply_pattern"/>
      <details key="comment" value="transformation du modèle"/>
    </annotations>
    <parameters comment="instance mapping" name="inst_components">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_rQ0PgPtxEeectLZKwQfI0A"/>
        <details key="identifier" value="inst_components"/>
        <details key="comment" value="instance mapping"/>
      </annotations>
    </parameters>
    <parameters name="new_components">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_h4VmkAKrEeiAPf1wPUl3Gw"/>
        <details key="identifier" value="new_components"/>
      </annotations>
    </parameters>
    <guards name="ic" predicate="inst_components ∈ components[{Inst}] ⤔ components[{Mdl}]">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1WYtvqmEeectLZKwQfI0A"/>
        <details key="label" value="ic"/>
      </annotations>
    </guards>
    <guards name="nc" predicate="new_components ∈ components[{Inst}] ∖ dom(inst_components) ↣ Component ∖ ran(components)">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1W_wvqmEeectLZKwQfI0A"/>
        <details key="label" value="nc"/>
      </annotations>
    </guards>
    <guards name="acycl_inst_components" predicate="dom(inst_components) ◁ container;inst_components ⊆ inst_components;container">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1W_w_qmEeectLZKwQfI0A"/>
        <details key="label" value="acycl_inst_components"/>
      </annotations>
    </guards>
    <guards name="acycl_container" predicate="container[dom(inst_components)] ⊆ dom(inst_components)">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_O1Xm0vqmEeectLZKwQfI0A"/>
        <details key="label" value="acycl_container"/>
      </annotations>
    </guards>
    <actions name="m" action="components ≔ components ∪ ({Mdl}×ran(new_components))">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_reToAAK7EeiAPf1wPUl3Gw"/>
        <details key="label" value="m"/>
      </annotations>
    </actions>
    <actions name="f" action="container ≔ container ∪ ((inst_components ∪ new_components)∼;container;(inst_components ∪ new_components))">
      <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
        <details key="name" value="_szQBsAK7EeiAPf1wPUl3Gw"/>
        <details key="label" value="f"/>
      </annotations>
    </actions>
  </events>
</machine:Machine>
