<?xml version="1.0" encoding="UTF-8"?>
<context:Context xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:context="http://emf.eventb.org/models/core/context/2014" name="pattern_safety">
  <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
    <details key="configuration" value="org.eventb.core.fwd;de.prob.symbolic.ctxBase;de.prob.units.mchBase;org.eventb.codegen.ui.cgConfig"/>
    <details key="name" value="pattern_safety"/>
  </annotations>
  <annotations source="http:///org/eventb/core/RodinReferenceNamesAnnotations">
    <details key="extends cLink" value="_-yB9QAAPEeis7pYemx4WBQ"/>
  </annotations>
  <attributes key="org.eventb.texttools.text_lastmodified">
    <value type="Long" value="ACED00057372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B02000078700000016128212865"/>
  </attributes>
  <attributes key="org.eventb.texttools.text_representation">
    <value type="String" value="[encoded data, 4660 characters]"/>
  </attributes>
  <extends href="../cLink.buc#http://emf.eventb.org/models/core/context/2014::Context::cLink"/>
  <constants name="replicator">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_-yB9QQAPEeis7pYemx4WBQ"/>
      <details key="identifier" value="replicator"/>
    </annotations>
  </constants>
  <constants name="ballot_box">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_-yCkUAAPEeis7pYemx4WBQ"/>
      <details key="identifier" value="ballot_box"/>
    </annotations>
  </constants>
  <constants name="safety_model">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_-yCkUQAPEeis7pYemx4WBQ"/>
      <details key="identifier" value="safety_model"/>
    </annotations>
  </constants>
  <constants name="safety_comp">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_H1oEsAAQEeis7pYemx4WBQ"/>
      <details key="identifier" value="safety_comp"/>
    </annotations>
  </constants>
  <constants name="safety_container">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_oim4QAAQEeis7pYemx4WBQ"/>
      <details key="identifier" value="safety_container"/>
    </annotations>
  </constants>
  <constants name="toy_model">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_oim4QQAQEeis7pYemx4WBQ"/>
      <details key="identifier" value="toy_model"/>
    </annotations>
  </constants>
  <constants name="toy_container">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_oim4QgAQEeis7pYemx4WBQ"/>
      <details key="identifier" value="toy_container"/>
    </annotations>
  </constants>
  <constants name="toy_app">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_oim4QwAQEeis7pYemx4WBQ"/>
      <details key="identifier" value="toy_app"/>
    </annotations>
  </constants>
  <constants name="toy_inp_1">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_9c9V0AAREeis7pYemx4WBQ"/>
      <details key="identifier" value="toy_inp_1"/>
    </annotations>
  </constants>
  <constants name="toy_inp_2">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_9c9V0QAREeis7pYemx4WBQ"/>
      <details key="identifier" value="toy_inp_2"/>
    </annotations>
  </constants>
  <constants name="toy_output">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_9lz6YAASEeis7pYemx4WBQ"/>
      <details key="identifier" value="toy_output"/>
    </annotations>
  </constants>
  <constants name="components_var">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_9lz6YQASEeis7pYemx4WBQ"/>
      <details key="identifier" value="components_var"/>
    </annotations>
  </constants>
  <constants name="container_var">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_kRNbAAEBEei-meqqkXX9bA"/>
      <details key="identifier" value="container_var"/>
    </annotations>
  </constants>
  <constants name="f_container_var">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_kRNbAQEBEei-meqqkXX9bA"/>
      <details key="identifier" value="f_container_var"/>
    </annotations>
  </constants>
  <constants name="inst_components_par">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_kRNbAgEBEei-meqqkXX9bA"/>
      <details key="identifier" value="inst_components_par"/>
    </annotations>
  </constants>
  <constants name="c_mult_others_par">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_kRNbAwEBEei-meqqkXX9bA"/>
      <details key="identifier" value="c_mult_others_par"/>
    </annotations>
  </constants>
  <constants name="c_multiplicity_var">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_kROCEAEBEei-meqqkXX9bA"/>
      <details key="identifier" value="c_multiplicity_var"/>
    </annotations>
  </constants>
  <constants name="to_unfold_c_var">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_kROCEQEBEei-meqqkXX9bA"/>
      <details key="identifier" value="to_unfold_c_var"/>
    </annotations>
  </constants>
  <axioms comment="safety pattern" name="replicator_ty" predicate="replicator ∈ Component">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_-yCkUgAPEeis7pYemx4WBQ"/>
      <details key="label" value="replicator_ty"/>
      <details key="comment" value="safety pattern"/>
    </annotations>
  </axioms>
  <axioms name="ballot_box_ty" predicate="ballot_box ∈ Component">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_-yCkUwAPEeis7pYemx4WBQ"/>
      <details key="label" value="ballot_box_ty"/>
    </annotations>
  </axioms>
  <axioms name="safety_comp" predicate="safety_comp ∈ Component">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_-yCkVAAPEeis7pYemx4WBQ"/>
      <details key="label" value="safety_comp"/>
    </annotations>
  </axioms>
  <axioms name="all_diff_component" predicate="replicator ≠ ballot_box ∧ replicator ≠ safety_comp ∧ ballot_box ≠ safety_comp">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_-yCkVQAPEeis7pYemx4WBQ"/>
      <details key="label" value="all_diff_component"/>
    </annotations>
  </axioms>
  <axioms name="safety_container" predicate="safety_container = {replicator ↦ safety_comp, ballot_box ↦ safety_comp}">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_oim4RAAQEeis7pYemx4WBQ"/>
      <details key="label" value="safety_container"/>
    </annotations>
  </axioms>
  <axioms name="toy_container_ty" predicate="toy_container ∈ Component ⇸ Component">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_oim4RQAQEeis7pYemx4WBQ"/>
      <details key="label" value="toy_container_ty"/>
    </annotations>
  </axioms>
  <axioms name="toy_container_def" predicate="toy_container = ∅">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_oim4RgAQEeis7pYemx4WBQ"/>
      <details key="label" value="toy_container_def"/>
    </annotations>
  </axioms>
  <axioms name="safety_model" predicate="safety_model ∈ Model">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_oinfUAAQEeis7pYemx4WBQ"/>
      <details key="label" value="safety_model"/>
    </annotations>
  </axioms>
  <axioms name="toy_model_ty" predicate="toy_model ∈ Model">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_9c9V0gAREeis7pYemx4WBQ"/>
      <details key="label" value="toy_model_ty"/>
    </annotations>
  </axioms>
  <axioms name="safety_diff_toy" predicate="safety_model ≠ toy_model">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_9c9V0wAREeis7pYemx4WBQ"/>
      <details key="label" value="safety_diff_toy"/>
    </annotations>
  </axioms>
  <axioms name="Model_def" predicate="Model = {safety_model,toy_model}">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_9c9V1AAREeis7pYemx4WBQ"/>
      <details key="label" value="Model_def"/>
    </annotations>
  </axioms>
  <axioms comment="toy application" name="toy_app_ty" predicate="toy_app ∈ Component">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_9c984AAREeis7pYemx4WBQ"/>
      <details key="label" value="toy_app_ty"/>
      <details key="comment" value="toy application"/>
    </annotations>
  </axioms>
  <axioms name="toy_inp_1_ty" predicate="toy_inp_1 ∈ IPort">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_9lz6YgASEeis7pYemx4WBQ"/>
      <details key="label" value="toy_inp_1_ty"/>
    </annotations>
  </axioms>
  <axioms name="toy_inp_2_ty" predicate="toy_inp_2 ∈ IPort">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_kROCEgEBEei-meqqkXX9bA"/>
      <details key="label" value="toy_inp_2_ty"/>
    </annotations>
  </axioms>
  <axioms name="toy_output_ty" predicate="toy_output ∈ OPort">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_kROCEwEBEei-meqqkXX9bA"/>
      <details key="label" value="toy_output_ty"/>
    </annotations>
  </axioms>
  <axioms name="components_var_def" predicate="components_var = {safety_model ↦ {replicator,ballot_box,safety_comp},&#xA;                                        toy_model ↦   {toy_app}&#xA;                                       }">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_kROCFAEBEei-meqqkXX9bA"/>
      <details key="label" value="components_var_def"/>
    </annotations>
  </axioms>
  <axioms name="container_var_def" predicate="container_var = {safety_model ↦ safety_container, toy_model ↦ toy_container}">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_kROCFQEBEei-meqqkXX9bA"/>
      <details key="label" value="container_var_def"/>
    </annotations>
  </axioms>
  <axioms name="f_container_var" predicate="f_container_var = {replicator ↦ safety_comp, ballot_box ↦ safety_comp}">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_kROCFgEBEei-meqqkXX9bA"/>
      <details key="label" value="f_container_var"/>
    </annotations>
  </axioms>
  <axioms name="f_acycl" predicate="∀m· container_var(m) ⊆ f_container_var&#xA;                   ∧ f_container_var;f_container_var ⊆ f_container_var&#xA;                   ∧ id ∩ f_container_var = ∅" theorem="true">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_kROCFwEBEei-meqqkXX9bA"/>
      <details key="label" value="f_acycl"/>
    </annotations>
  </axioms>
  <axioms name="inst_components_def" predicate="inst_components_par = {safety_comp ↦ toy_app}">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_kROpIAEBEei-meqqkXX9bA"/>
      <details key="label" value="inst_components_def"/>
    </annotations>
  </axioms>
  <axioms comment="pattern instantiation" name="c_mult_others_def" predicate="c_mult_others_par = {replicator ↦ 3, ballot_box ↦ 1}">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_kROpIQEBEei-meqqkXX9bA"/>
      <details key="label" value="c_mult_others_def"/>
      <details key="comment" value="pattern instantiation"/>
    </annotations>
  </axioms>
  <axioms name="c_muliplicity_var_def" predicate="c_multiplicity_var = {safety_model ↦ {safety_comp ↦ 1, replicator ↦ 3, ballot_box ↦ 1}}">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_kROpIgEBEei-meqqkXX9bA"/>
      <details key="label" value="c_muliplicity_var_def"/>
    </annotations>
  </axioms>
  <axioms name="c_multiplicity_assign&#xA;" predicate="c_multiplicity_var(safety_model) = c_mult_others_par&#xA; &#x9;&#x9;&#x9; {pc· pc ∈ dom(inst_components_par) ∣ pc ↦ card(inst_components_par[{pc}])}" theorem="true">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_kROpIwEBEei-meqqkXX9bA"/>
      <details key="label" value="c_multiplicity_assign&#xA;"/>
    </annotations>
  </axioms>
  <axioms name="to_unfold_c_var_def" predicate="to_unfold_c_var = {safety_comp}">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_kROpJAEBEei-meqqkXX9bA"/>
      <details key="label" value="to_unfold_c_var_def"/>
    </annotations>
  </axioms>
  <axioms name="to_unfold_c_var&#xA;" predicate="to_unfold_c_var = (components_var(safety_model) ∖ dom(container_var(safety_model)))" theorem="true">
    <annotations source="http:///org/eventb/core/RodinInternalAnnotations">
      <details key="name" value="_kROpJQEBEei-meqqkXX9bA"/>
      <details key="label" value="to_unfold_c_var&#xA;"/>
    </annotations>
  </axioms>
</context:Context>
