|
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
|
|
<org.eventb.core.contextFile org.eventb.core.configuration="org.eventb.core.fwd;de.prob.symbolic.ctxBase;de.prob.units.mchBase;org.eventb.codegen.ui.cgConfig" org.eventb.texttools.text_lastmodified="1516796717157" org.eventb.texttools.text_representation="context pattern_safety extends cLink constants replicator ballot_box safety_model safety_comp safety_container toy_model toy_container toy_app toy_inp_1 toy_inp_2 toy_output components_var container_var f_container_var inst_components_par c_mult_others_par c_multiplicity_var to_unfold_c_var axioms @replicator_ty replicator ∈ Component // safety pattern @ballot_box_ty ballot_box ∈ Component @safety_comp safety_comp ∈ Component @all_diff_component replicator ≠ ballot_box ∧ replicator ≠ safety_comp ∧ ballot_box ≠ safety_comp @safety_container safety_container = {replicator ↦ safety_comp, ballot_box ↦ safety_comp} @toy_container_ty toy_container ∈ Component ⇸ Component @toy_container_def toy_container = ∅ @safety_model safety_model ∈ Model @toy_model_ty toy_model ∈ Model @safety_diff_toy safety_model ≠ toy_model @Model_def Model = {safety_model,toy_model} @toy_app_ty toy_app ∈ Component // toy application @toy_inp_1_ty toy_inp_1 ∈ IPort @toy_inp_2_ty toy_inp_2 ∈ IPort @toy_output_ty toy_output ∈ OPort @components_var_def components_var = {safety_model ↦ {replicator,ballot_box,safety_comp}, toy_model ↦ {toy_app} } @container_var_def container_var = {safety_model ↦ safety_container, toy_model ↦ toy_container} @f_container_var f_container_var = {replicator ↦ safety_comp, ballot_box ↦ safety_comp} theorem @f_acycl ∀m· container_var(m) ⊆ f_container_var ∧ f_container_var;f_container_var ⊆ f_container_var ∧ id ∩ f_container_var = ∅ @inst_components_def inst_components_par = {safety_comp ↦ toy_app} @c_mult_others_def c_mult_others_par = {replicator ↦ 3, ballot_box ↦ 1} // pattern instantiation @c_muliplicity_var_def c_multiplicity_var = {safety_model ↦ {safety_comp ↦ 1, replicator ↦ 3, ballot_box ↦ 1}} theorem @c_multiplicity_assign 		c_multiplicity_var(safety_model) = c_mult_others_par 			 {pc· pc ∈ dom(inst_components_par) ∣ pc ↦ card(inst_components_par[{pc}])} @to_unfold_c_var_def to_unfold_c_var = {safety_comp} theorem @to_unfold_c_var 		to_unfold_c_var = (components_var(safety_model) ∖ dom(container_var(safety_model))) end " version="3"> |
|
|
<org.eventb.core.extendsContext name="_-yB9QAAPEeis7pYemx4WBQ" org.eventb.core.target="cLink"/> |
|
|
<org.eventb.core.constant name="_-yB9QQAPEeis7pYemx4WBQ" org.eventb.core.identifier="replicator"/> |
|
|
<org.eventb.core.constant name="_-yCkUAAPEeis7pYemx4WBQ" org.eventb.core.identifier="ballot_box"/> |
|
|
<org.eventb.core.constant name="_-yCkUQAPEeis7pYemx4WBQ" org.eventb.core.identifier="safety_model"/> |
|
|
<org.eventb.core.axiom name="_-yCkUgAPEeis7pYemx4WBQ" org.eventb.core.comment="safety pattern" org.eventb.core.label="replicator_ty" org.eventb.core.predicate="replicator ∈ Component"/> |
|
|
<org.eventb.core.axiom name="_-yCkUwAPEeis7pYemx4WBQ" org.eventb.core.label="ballot_box_ty" org.eventb.core.predicate="ballot_box ∈ Component"/> |
|
|
<org.eventb.core.axiom name="_-yCkVAAPEeis7pYemx4WBQ" org.eventb.core.label="safety_comp" org.eventb.core.predicate="safety_comp ∈ Component"/> |
|
|
<org.eventb.core.axiom name="_-yCkVQAPEeis7pYemx4WBQ" org.eventb.core.label="all_diff_component" org.eventb.core.predicate="replicator ≠ ballot_box ∧ replicator ≠ safety_comp ∧ ballot_box ≠ safety_comp"/> |
|
|
<org.eventb.core.constant name="_H1oEsAAQEeis7pYemx4WBQ" org.eventb.core.identifier="safety_comp"/> |
|
|
<org.eventb.core.constant name="_oim4QAAQEeis7pYemx4WBQ" org.eventb.core.identifier="safety_container"/> |
|
|
<org.eventb.core.constant name="_oim4QQAQEeis7pYemx4WBQ" org.eventb.core.identifier="toy_model"/> |
|
|
<org.eventb.core.constant name="_oim4QgAQEeis7pYemx4WBQ" org.eventb.core.identifier="toy_container"/> |
|
|
<org.eventb.core.constant name="_oim4QwAQEeis7pYemx4WBQ" org.eventb.core.identifier="toy_app"/> |
|
|
<org.eventb.core.axiom name="_oim4RAAQEeis7pYemx4WBQ" org.eventb.core.label="safety_container" org.eventb.core.predicate="safety_container = {replicator ↦ safety_comp, ballot_box ↦ safety_comp}"/> |
|
|
<org.eventb.core.axiom name="_oim4RQAQEeis7pYemx4WBQ" org.eventb.core.label="toy_container_ty" org.eventb.core.predicate="toy_container ∈ Component ⇸ Component"/> |
|
|
<org.eventb.core.axiom name="_oim4RgAQEeis7pYemx4WBQ" org.eventb.core.label="toy_container_def" org.eventb.core.predicate="toy_container = ∅"/> |
|
|
<org.eventb.core.axiom name="_oinfUAAQEeis7pYemx4WBQ" org.eventb.core.label="safety_model" org.eventb.core.predicate="safety_model ∈ Model"/> |
|
|
<org.eventb.core.constant name="_9c9V0AAREeis7pYemx4WBQ" org.eventb.core.identifier="toy_inp_1"/> |
|
|
<org.eventb.core.constant name="_9c9V0QAREeis7pYemx4WBQ" org.eventb.core.identifier="toy_inp_2"/> |
|
|
<org.eventb.core.axiom name="_9c9V0gAREeis7pYemx4WBQ" org.eventb.core.label="toy_model_ty" org.eventb.core.predicate="toy_model ∈ Model"/> |
|
|
<org.eventb.core.axiom name="_9c9V0wAREeis7pYemx4WBQ" org.eventb.core.label="safety_diff_toy" org.eventb.core.predicate="safety_model ≠ toy_model"/> |
|
|
<org.eventb.core.axiom name="_9c9V1AAREeis7pYemx4WBQ" org.eventb.core.label="Model_def" org.eventb.core.predicate="Model = {safety_model,toy_model}"/> |
|
|
<org.eventb.core.axiom name="_9c984AAREeis7pYemx4WBQ" org.eventb.core.comment="toy application" org.eventb.core.label="toy_app_ty" org.eventb.core.predicate="toy_app ∈ Component"/> |
|
|
<org.eventb.core.constant name="_9lz6YAASEeis7pYemx4WBQ" org.eventb.core.identifier="toy_output"/> |
|
|
<org.eventb.core.constant name="_9lz6YQASEeis7pYemx4WBQ" org.eventb.core.identifier="components_var"/> |
|
|
<org.eventb.core.axiom name="_9lz6YgASEeis7pYemx4WBQ" org.eventb.core.label="toy_inp_1_ty" org.eventb.core.predicate="toy_inp_1 ∈ IPort"/> |
|
|
<org.eventb.core.constant name="_kRNbAAEBEei-meqqkXX9bA" org.eventb.core.identifier="container_var"/> |
|
|
<org.eventb.core.constant name="_kRNbAQEBEei-meqqkXX9bA" org.eventb.core.identifier="f_container_var"/> |
|
|
<org.eventb.core.constant name="_kRNbAgEBEei-meqqkXX9bA" org.eventb.core.identifier="inst_components_par"/> |
|
|
<org.eventb.core.constant name="_kRNbAwEBEei-meqqkXX9bA" org.eventb.core.identifier="c_mult_others_par"/> |
|
|
<org.eventb.core.constant name="_kROCEAEBEei-meqqkXX9bA" org.eventb.core.identifier="c_multiplicity_var"/> |
|
|
<org.eventb.core.constant name="_kROCEQEBEei-meqqkXX9bA" org.eventb.core.identifier="to_unfold_c_var"/> |
|
|
<org.eventb.core.axiom name="_kROCEgEBEei-meqqkXX9bA" org.eventb.core.label="toy_inp_2_ty" org.eventb.core.predicate="toy_inp_2 ∈ IPort"/> |
|
|
<org.eventb.core.axiom name="_kROCEwEBEei-meqqkXX9bA" org.eventb.core.label="toy_output_ty" org.eventb.core.predicate="toy_output ∈ OPort"/> |
|
|
<org.eventb.core.axiom name="_kROCFAEBEei-meqqkXX9bA" org.eventb.core.label="components_var_def" org.eventb.core.predicate="components_var = {safety_model ↦ {replicator,ballot_box,safety_comp}, toy_model ↦ {toy_app} }"/> |
|
|
<org.eventb.core.axiom name="_kROCFQEBEei-meqqkXX9bA" org.eventb.core.label="container_var_def" org.eventb.core.predicate="container_var = {safety_model ↦ safety_container, toy_model ↦ toy_container}"/> |
|
|
<org.eventb.core.axiom name="_kROCFgEBEei-meqqkXX9bA" org.eventb.core.label="f_container_var" org.eventb.core.predicate="f_container_var = {replicator ↦ safety_comp, ballot_box ↦ safety_comp}"/> |
|
|
<org.eventb.core.axiom name="_kROCFwEBEei-meqqkXX9bA" org.eventb.core.label="f_acycl" org.eventb.core.predicate="∀m· container_var(m) ⊆ f_container_var ∧ f_container_var;f_container_var ⊆ f_container_var ∧ id ∩ f_container_var = ∅" org.eventb.core.theorem="true"/> |
|
|
<org.eventb.core.axiom name="_kROpIAEBEei-meqqkXX9bA" org.eventb.core.label="inst_components_def" org.eventb.core.predicate="inst_components_par = {safety_comp ↦ toy_app}"/> |
|
|
<org.eventb.core.axiom name="_kROpIQEBEei-meqqkXX9bA" org.eventb.core.comment="pattern instantiation" org.eventb.core.label="c_mult_others_def" org.eventb.core.predicate="c_mult_others_par = {replicator ↦ 3, ballot_box ↦ 1}"/> |
|
|
<org.eventb.core.axiom name="_kROpIgEBEei-meqqkXX9bA" org.eventb.core.label="c_muliplicity_var_def" org.eventb.core.predicate="c_multiplicity_var = {safety_model ↦ {safety_comp ↦ 1, replicator ↦ 3, ballot_box ↦ 1}}"/> |
|
|
<org.eventb.core.axiom name="_kROpIwEBEei-meqqkXX9bA" org.eventb.core.label="c_multiplicity_assign " org.eventb.core.predicate="c_multiplicity_var(safety_model) = c_mult_others_par 			 {pc· pc ∈ dom(inst_components_par) ∣ pc ↦ card(inst_components_par[{pc}])}" org.eventb.core.theorem="true"/> |
|
|
<org.eventb.core.axiom name="_kROpJAEBEei-meqqkXX9bA" org.eventb.core.label="to_unfold_c_var_def" org.eventb.core.predicate="to_unfold_c_var = {safety_comp}"/> |
|
|
<org.eventb.core.axiom name="_kROpJQEBEei-meqqkXX9bA" org.eventb.core.label="to_unfold_c_var " org.eventb.core.predicate="to_unfold_c_var = (components_var(safety_model) ∖ dom(container_var(safety_model)))" org.eventb.core.theorem="true"/> |
|
|
</org.eventb.core.contextFile>
|
|
|
|