Commit 0596a3cd authored by Arnaud Dieumegard's avatar Arnaud Dieumegard

Update Event-B models and proofs

parent 84bd12fa
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>pseim</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.rodinp.core.rodinbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.rodinp.core.rodinnature</nature>
</natures>
</projectDescription>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>MODELS_INC_V9_VAR</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.rodinp.core.rodinbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.rodinp.core.rodinnature</nature>
</natures>
</projectDescription>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.scContextFile org.eventb.core.accurate="true" org.eventb.core.configuration="org.eventb.core.fwd;de.prob.symbolic.ctxBase;de.prob.units.mchBase">
<org.eventb.core.scExtendsContext name="'" org.eventb.core.scTarget="/pseim/cModel.bcc|org.eventb.core.scContextFile#cModel" org.eventb.core.source="/pseim/cComponent.buc|org.eventb.core.contextFile#cComponent|org.eventb.core.extendsContext#_IT7_UPqUEeectLZKwQfI0A"/>
<org.eventb.core.scInternalContext name="cModel">
<org.eventb.core.scAxiom name="'" org.eventb.core.label="Pattern_ty" org.eventb.core.predicate="Pattern⊆Model" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcfqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="(" org.eventb.core.label="Mdl_ty" org.eventb.core.predicate="Mdl∈Model ∖ Pattern" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcvqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name=")" org.eventb.core.label="Pat_ty" org.eventb.core.predicate="Pat∈Pattern" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wc_qkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="*" org.eventb.core.label="Inst_ty" org.eventb.core.predicate="Inst∈Model ∖ Pattern" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_fxjdEQKnEeiAPf1wPUl3Gw" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="+" org.eventb.core.label="Inst_Mdl" org.eventb.core.predicate="Inst≠Mdl" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_DGgrYAUMEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scConstant name="Inst" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_fxjdEAKnEeiAPf1wPUl3Gw" org.eventb.core.type="Model"/>
<org.eventb.core.scConstant name="Mdl" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_h20JYPqkEeectLZKwQfI0A" org.eventb.core.type="Model"/>
<org.eventb.core.scCarrierSet name="Model" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.carrierSet#_5dsj0PqTEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.scConstant name="Pat" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_b4aBsPraEeerIsS6OyYQ4w" org.eventb.core.type="Model"/>
<org.eventb.core.scConstant name="Pattern" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_h20wcPqkEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.scCarrierSet name="Property" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.carrierSet#_9dBM4ADlEei-meqqkXX9bA" org.eventb.core.type="ℙ(Property)"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scCarrierSet name="Component" org.eventb.core.source="/pseim/cComponent.buc|org.eventb.core.contextFile#cComponent|org.eventb.core.carrierSet#_IT7_UfqUEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component)"/>
</org.eventb.core.scContextFile>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.scContextFile org.eventb.core.accurate="true" org.eventb.core.configuration="org.eventb.core.fwd;de.prob.symbolic.ctxBase;de.prob.units.mchBase">
<org.eventb.core.scExtendsContext name="'" org.eventb.core.scTarget="/MODELS_INC_V9_VAR/cModel.bcc|org.eventb.core.scContextFile#cModel" org.eventb.core.source="/MODELS_INC_V9_VAR/cComponent.buc|org.eventb.core.contextFile#cComponent|org.eventb.core.extendsContext#_IT7_UPqUEeectLZKwQfI0A"/>
<org.eventb.core.scInternalContext name="cModel">
<org.eventb.core.scAxiom name="'" org.eventb.core.label="Pattern_ty" org.eventb.core.predicate="Pattern⊆Model" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcfqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="(" org.eventb.core.label="Mdl_ty" org.eventb.core.predicate="Mdl∈Model ∖ Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcvqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name=")" org.eventb.core.label="Pat_ty" org.eventb.core.predicate="Pat∈Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wc_qkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="*" org.eventb.core.label="Inst_ty" org.eventb.core.predicate="Inst∈Model ∖ Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_fxjdEQKnEeiAPf1wPUl3Gw" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="+" org.eventb.core.label="Inst_Mdl" org.eventb.core.predicate="Inst≠Mdl" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_DGgrYAUMEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scConstant name="Inst" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_fxjdEAKnEeiAPf1wPUl3Gw" org.eventb.core.type="Model"/>
<org.eventb.core.scConstant name="Mdl" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_h20JYPqkEeectLZKwQfI0A" org.eventb.core.type="Model"/>
<org.eventb.core.scCarrierSet name="Model" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.carrierSet#_5dsj0PqTEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.scConstant name="Pat" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_b4aBsPraEeerIsS6OyYQ4w" org.eventb.core.type="Model"/>
<org.eventb.core.scConstant name="Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_h20wcPqkEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.scCarrierSet name="Property" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.carrierSet#_9dBM4ADlEei-meqqkXX9bA" org.eventb.core.type="ℙ(Property)"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scCarrierSet name="Component" org.eventb.core.source="/MODELS_INC_V9_VAR/cComponent.buc|org.eventb.core.contextFile#cComponent|org.eventb.core.carrierSet#_IT7_UfqUEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component)"/>
</org.eventb.core.scContextFile>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.poFile org.eventb.core.poStamp="4">
<org.eventb.core.poPredicateSet name="ABSHYP" org.eventb.core.poStamp="4">
<org.eventb.core.poIdentifier name="Model" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.poIdentifier name="Property" org.eventb.core.type="ℙ(Property)"/>
<org.eventb.core.poIdentifier name="Inst" org.eventb.core.type="Model"/>
<org.eventb.core.poIdentifier name="Mdl" org.eventb.core.type="Model"/>
<org.eventb.core.poIdentifier name="Pat" org.eventb.core.type="Model"/>
<org.eventb.core.poIdentifier name="Pattern" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.poPredicate name="Propertz" org.eventb.core.predicate="Pattern⊆Model" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcfqkEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="Propert{" org.eventb.core.predicate="Mdl∈Model ∖ Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcvqkEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="Propert|" org.eventb.core.predicate="Pat∈Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wc_qkEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="Propert}" org.eventb.core.predicate="Inst∈Model ∖ Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_fxjdEQKnEeiAPf1wPUl3Gw"/>
<org.eventb.core.poPredicate name="Propert~" org.eventb.core.predicate="Inst≠Mdl" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_DGgrYAUMEei9ocE08JsPSw"/>
<org.eventb.core.poIdentifier name="Component" org.eventb.core.type="ℙ(Component)"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="ALLHYP" org.eventb.core.parentSet="/MODELS_INC_V9_VAR/cComponent.bpo|org.eventb.core.poFile#cComponent|org.eventb.core.poPredicateSet#ABSHYP" org.eventb.core.poStamp="4"/>
</org.eventb.core.poFile>
<?xml version="1.0" encoding="UTF-8"?>
<org.eventb.core.psFile/>
\ No newline at end of file
<?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.texttools.text_lastmodified="1522154685480" org.eventb.texttools.text_representation="context cComponent extends cModel&#10;&#10;sets Component&#10;end&#10;" version="3">
<org.eventb.core.contextFile org.eventb.core.configuration="org.eventb.core.fwd;de.prob.symbolic.ctxBase;de.prob.units.mchBase" org.eventb.texttools.text_lastmodified="1574795349084" org.eventb.texttools.text_representation="context cComponent extends cModel&#10;&#10;sets Component&#10;end&#10;" version="3">
<org.eventb.core.extendsContext name="_IT7_UPqUEeectLZKwQfI0A" org.eventb.core.target="cModel"/>
<org.eventb.core.carrierSet name="_IT7_UfqUEeectLZKwQfI0A" org.eventb.core.identifier="Component"/>
</org.eventb.core.contextFile>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.scContextFile org.eventb.core.accurate="true" org.eventb.core.configuration="org.eventb.core.fwd;de.prob.symbolic.ctxBase;de.prob.units.mchBase;org.eventb.codegen.ui.cgConfig">
<org.eventb.core.scExtendsContext name="'" org.eventb.core.scTarget="/pseim/cPort.bcc|org.eventb.core.scContextFile#cPort" org.eventb.core.source="/pseim/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.extendsContext#'"/>
<org.eventb.core.scInternalContext name="cModel">
<org.eventb.core.scAxiom name="'" org.eventb.core.label="Pattern_ty" org.eventb.core.predicate="Pattern⊆Model" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcfqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="(" org.eventb.core.label="Mdl_ty" org.eventb.core.predicate="Mdl∈Model ∖ Pattern" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcvqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name=")" org.eventb.core.label="Pat_ty" org.eventb.core.predicate="Pat∈Pattern" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wc_qkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="*" org.eventb.core.label="Inst_ty" org.eventb.core.predicate="Inst∈Model ∖ Pattern" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_fxjdEQKnEeiAPf1wPUl3Gw" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="+" org.eventb.core.label="Inst_Mdl" org.eventb.core.predicate="Inst≠Mdl" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_DGgrYAUMEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scConstant name="Inst" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_fxjdEAKnEeiAPf1wPUl3Gw" org.eventb.core.type="Model"/>
<org.eventb.core.scConstant name="Mdl" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_h20JYPqkEeectLZKwQfI0A" org.eventb.core.type="Model"/>
<org.eventb.core.scCarrierSet name="Model" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.carrierSet#_5dsj0PqTEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.scConstant name="Pat" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_b4aBsPraEeerIsS6OyYQ4w" org.eventb.core.type="Model"/>
<org.eventb.core.scConstant name="Pattern" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_h20wcPqkEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.scCarrierSet name="Property" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.carrierSet#_9dBM4ADlEei-meqqkXX9bA" org.eventb.core.type="ℙ(Property)"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scInternalContext name="cComponent">
<org.eventb.core.scExtendsContext name="'" org.eventb.core.scTarget="/pseim/cModel.bcc|org.eventb.core.scContextFile#cModel" org.eventb.core.source="/pseim/cComponent.buc|org.eventb.core.contextFile#cComponent|org.eventb.core.extendsContext#_IT7_UPqUEeectLZKwQfI0A"/>
<org.eventb.core.scCarrierSet name="Component" org.eventb.core.source="/pseim/cComponent.buc|org.eventb.core.contextFile#cComponent|org.eventb.core.carrierSet#_IT7_UfqUEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component)"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scInternalContext name="cPort">
<org.eventb.core.scExtendsContext name="'" org.eventb.core.scTarget="/pseim/cComponent.bcc|org.eventb.core.scContextFile#cComponent" org.eventb.core.source="/pseim/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.extendsContext#'"/>
<org.eventb.core.scAxiom name="cComponenu" org.eventb.core.label="part" org.eventb.core.predicate="partition(Port,IPort,OPort)" org.eventb.core.source="/pseim/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.axiom#_Y1LocvqyEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scConstant name="IPort" org.eventb.core.source="/pseim/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.constant#_Y1LocPqyEeectLZKwQfI0A" org.eventb.core.type="ℙ(Port)"/>
<org.eventb.core.scConstant name="OPort" org.eventb.core.source="/pseim/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.constant#_Y1LocfqyEeectLZKwQfI0A" org.eventb.core.type="ℙ(Port)"/>
<org.eventb.core.scCarrierSet name="Port" org.eventb.core.source="/pseim/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.carrierSet#_YwaNQPqeEeectLZKwQfI0A" org.eventb.core.type="ℙ(Port)"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scAxiom name="cComponenu" org.eventb.core.label="link_k" org.eventb.core.predicate="partition(Link,Transpose,Identity,Shift,First,Rotate)" org.eventb.core.source="/pseim/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.axiom#_u1ZfsfgzEeeeS5KQUtrGlw" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="cComponenv" org.eventb.core.label="LKind" org.eventb.core.predicate="LKind={Transpose,Identity,Shift,First,Rotate}" org.eventb.core.source="/pseim/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.axiom#_u1ZfsvgzEeeeS5KQUtrGlw" org.eventb.core.theorem="false"/>
<org.eventb.core.scConstant name="First" org.eventb.core.source="/pseim/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.constant#_WzjhM_g8EeeeS5KQUtrGlw" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.scConstant name="Identity" org.eventb.core.source="/pseim/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.constant#_WzjhMfg8EeeeS5KQUtrGlw" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.scConstant name="LKind" org.eventb.core.source="/pseim/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.constant#_u1ZfsPgzEeeeS5KQUtrGlw" org.eventb.core.type="ℙ(ℙ(Link))"/>
<org.eventb.core.scCarrierSet name="Link" org.eventb.core.source="/pseim/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.carrierSet#_IabHcPoIEeeOzddrJxUeNA" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.scConstant name="Rotate" org.eventb.core.source="/pseim/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.constant#_WzjhNPg8EeeeS5KQUtrGlw" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.scConstant name="Shift" org.eventb.core.source="/pseim/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.constant#_WzjhMvg8EeeeS5KQUtrGlw" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.scConstant name="Transpose" org.eventb.core.source="/pseim/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.constant#_WzjhMPg8EeeeS5KQUtrGlw" org.eventb.core.type="ℙ(Link)"/>
</org.eventb.core.scContextFile>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.scContextFile org.eventb.core.accurate="true" org.eventb.core.configuration="org.eventb.core.fwd;de.prob.symbolic.ctxBase;de.prob.units.mchBase;org.eventb.codegen.ui.cgConfig">
<org.eventb.core.scExtendsContext name="'" org.eventb.core.scTarget="/MODELS_INC_V9_VAR/cPort.bcc|org.eventb.core.scContextFile#cPort" org.eventb.core.source="/MODELS_INC_V9_VAR/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.extendsContext#'"/>
<org.eventb.core.scInternalContext name="cModel">
<org.eventb.core.scAxiom name="'" org.eventb.core.label="Pattern_ty" org.eventb.core.predicate="Pattern⊆Model" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcfqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="(" org.eventb.core.label="Mdl_ty" org.eventb.core.predicate="Mdl∈Model ∖ Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcvqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name=")" org.eventb.core.label="Pat_ty" org.eventb.core.predicate="Pat∈Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wc_qkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="*" org.eventb.core.label="Inst_ty" org.eventb.core.predicate="Inst∈Model ∖ Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_fxjdEQKnEeiAPf1wPUl3Gw" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="+" org.eventb.core.label="Inst_Mdl" org.eventb.core.predicate="Inst≠Mdl" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_DGgrYAUMEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scConstant name="Inst" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_fxjdEAKnEeiAPf1wPUl3Gw" org.eventb.core.type="Model"/>
<org.eventb.core.scConstant name="Mdl" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_h20JYPqkEeectLZKwQfI0A" org.eventb.core.type="Model"/>
<org.eventb.core.scCarrierSet name="Model" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.carrierSet#_5dsj0PqTEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.scConstant name="Pat" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_b4aBsPraEeerIsS6OyYQ4w" org.eventb.core.type="Model"/>
<org.eventb.core.scConstant name="Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_h20wcPqkEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.scCarrierSet name="Property" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.carrierSet#_9dBM4ADlEei-meqqkXX9bA" org.eventb.core.type="ℙ(Property)"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scInternalContext name="cComponent">
<org.eventb.core.scExtendsContext name="'" org.eventb.core.scTarget="/MODELS_INC_V9_VAR/cModel.bcc|org.eventb.core.scContextFile#cModel" org.eventb.core.source="/MODELS_INC_V9_VAR/cComponent.buc|org.eventb.core.contextFile#cComponent|org.eventb.core.extendsContext#_IT7_UPqUEeectLZKwQfI0A"/>
<org.eventb.core.scCarrierSet name="Component" org.eventb.core.source="/MODELS_INC_V9_VAR/cComponent.buc|org.eventb.core.contextFile#cComponent|org.eventb.core.carrierSet#_IT7_UfqUEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component)"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scInternalContext name="cPort">
<org.eventb.core.scExtendsContext name="'" org.eventb.core.scTarget="/MODELS_INC_V9_VAR/cComponent.bcc|org.eventb.core.scContextFile#cComponent" org.eventb.core.source="/MODELS_INC_V9_VAR/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.extendsContext#'"/>
<org.eventb.core.scAxiom name="cComponenu" org.eventb.core.label="part" org.eventb.core.predicate="partition(Port,IPort,OPort)" org.eventb.core.source="/MODELS_INC_V9_VAR/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.axiom#_Y1LocvqyEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scConstant name="IPort" org.eventb.core.source="/MODELS_INC_V9_VAR/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.constant#_Y1LocPqyEeectLZKwQfI0A" org.eventb.core.type="ℙ(Port)"/>
<org.eventb.core.scConstant name="OPort" org.eventb.core.source="/MODELS_INC_V9_VAR/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.constant#_Y1LocfqyEeectLZKwQfI0A" org.eventb.core.type="ℙ(Port)"/>
<org.eventb.core.scCarrierSet name="Port" org.eventb.core.source="/MODELS_INC_V9_VAR/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.carrierSet#_YwaNQPqeEeectLZKwQfI0A" org.eventb.core.type="ℙ(Port)"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scAxiom name="cComponenu" org.eventb.core.label="link_k" org.eventb.core.predicate="partition(Link,Transpose,Identity,Shift,First,Rotate)" org.eventb.core.source="/MODELS_INC_V9_VAR/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.axiom#_u1ZfsfgzEeeeS5KQUtrGlw" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="cComponenv" org.eventb.core.label="LKind" org.eventb.core.predicate="LKind={Transpose,Identity,Shift,First,Rotate}" org.eventb.core.source="/MODELS_INC_V9_VAR/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.axiom#_u1ZfsvgzEeeeS5KQUtrGlw" org.eventb.core.theorem="false"/>
<org.eventb.core.scConstant name="First" org.eventb.core.source="/MODELS_INC_V9_VAR/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.constant#_WzjhM_g8EeeeS5KQUtrGlw" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.scConstant name="Identity" org.eventb.core.source="/MODELS_INC_V9_VAR/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.constant#_WzjhMfg8EeeeS5KQUtrGlw" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.scConstant name="LKind" org.eventb.core.source="/MODELS_INC_V9_VAR/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.constant#_u1ZfsPgzEeeeS5KQUtrGlw" org.eventb.core.type="ℙ(ℙ(Link))"/>
<org.eventb.core.scCarrierSet name="Link" org.eventb.core.source="/MODELS_INC_V9_VAR/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.carrierSet#_IabHcPoIEeeOzddrJxUeNA" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.scConstant name="Rotate" org.eventb.core.source="/MODELS_INC_V9_VAR/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.constant#_WzjhNPg8EeeeS5KQUtrGlw" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.scConstant name="Shift" org.eventb.core.source="/MODELS_INC_V9_VAR/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.constant#_WzjhMvg8EeeeS5KQUtrGlw" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.scConstant name="Transpose" org.eventb.core.source="/MODELS_INC_V9_VAR/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.constant#_WzjhMPg8EeeeS5KQUtrGlw" org.eventb.core.type="ℙ(Link)"/>
</org.eventb.core.scContextFile>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.poFile org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="ABSHYP" org.eventb.core.poStamp="0">
<org.eventb.core.poIdentifier name="Model" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.poIdentifier name="Property" org.eventb.core.type="ℙ(Property)"/>
<org.eventb.core.poIdentifier name="Inst" org.eventb.core.type="Model"/>
<org.eventb.core.poIdentifier name="Mdl" org.eventb.core.type="Model"/>
<org.eventb.core.poIdentifier name="Pat" org.eventb.core.type="Model"/>
<org.eventb.core.poIdentifier name="Pattern" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.poPredicate name="Propertz" org.eventb.core.predicate="Pattern⊆Model" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcfqkEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="Propert{" org.eventb.core.predicate="Mdl∈Model ∖ Pattern" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcvqkEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="Propert|" org.eventb.core.predicate="Pat∈Pattern" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wc_qkEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="Propert}" org.eventb.core.predicate="Inst∈Model ∖ Pattern" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_fxjdEQKnEeiAPf1wPUl3Gw"/>
<org.eventb.core.poPredicate name="Propert~" org.eventb.core.predicate="Inst≠Mdl" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_DGgrYAUMEei9ocE08JsPSw"/>
<org.eventb.core.poIdentifier name="Component" org.eventb.core.type="ℙ(Component)"/>
<org.eventb.core.poIdentifier name="Port" org.eventb.core.type="ℙ(Port)"/>
<org.eventb.core.poIdentifier name="IPort" org.eventb.core.type="ℙ(Port)"/>
<org.eventb.core.poIdentifier name="OPort" org.eventb.core.type="ℙ(Port)"/>
<org.eventb.core.poPredicate name="Componenu" org.eventb.core.predicate="partition(Port,IPort,OPort)" org.eventb.core.source="/pseim/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.axiom#_Y1LocvqyEeectLZKwQfI0A"/>
<org.eventb.core.poIdentifier name="Link" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.poIdentifier name="First" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.poIdentifier name="Identity" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.poIdentifier name="LKind" org.eventb.core.type="ℙ(ℙ(Link))"/>
<org.eventb.core.poIdentifier name="Rotate" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.poIdentifier name="Shift" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.poIdentifier name="Transpose" org.eventb.core.type="ℙ(Link)"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="ALLHYP" org.eventb.core.parentSet="/pseim/cLink.bpo|org.eventb.core.poFile#cLink|org.eventb.core.poPredicateSet#ABSHYP" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="partition(Link,Transpose,Identity,Shift,First,Rotate)" org.eventb.core.source="/pseim/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.axiom#_u1ZfsfgzEeeeS5KQUtrGlw"/>
<org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="LKind={Transpose,Identity,Shift,First,Rotate}" org.eventb.core.source="/pseim/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.axiom#_u1ZfsvgzEeeeS5KQUtrGlw"/>
</org.eventb.core.poPredicateSet>
</org.eventb.core.poFile>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.poFile org.eventb.core.poStamp="2">
<org.eventb.core.poPredicateSet name="ABSHYP" org.eventb.core.poStamp="2">
<org.eventb.core.poIdentifier name="Model" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.poIdentifier name="Property" org.eventb.core.type="ℙ(Property)"/>
<org.eventb.core.poIdentifier name="Inst" org.eventb.core.type="Model"/>
<org.eventb.core.poIdentifier name="Mdl" org.eventb.core.type="Model"/>
<org.eventb.core.poIdentifier name="Pat" org.eventb.core.type="Model"/>
<org.eventb.core.poIdentifier name="Pattern" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.poPredicate name="Propertz" org.eventb.core.predicate="Pattern⊆Model" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcfqkEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="Propert{" org.eventb.core.predicate="Mdl∈Model ∖ Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcvqkEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="Propert|" org.eventb.core.predicate="Pat∈Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wc_qkEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="Propert}" org.eventb.core.predicate="Inst∈Model ∖ Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_fxjdEQKnEeiAPf1wPUl3Gw"/>
<org.eventb.core.poPredicate name="Propert~" org.eventb.core.predicate="Inst≠Mdl" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_DGgrYAUMEei9ocE08JsPSw"/>
<org.eventb.core.poIdentifier name="Component" org.eventb.core.type="ℙ(Component)"/>
<org.eventb.core.poIdentifier name="Port" org.eventb.core.type="ℙ(Port)"/>
<org.eventb.core.poIdentifier name="IPort" org.eventb.core.type="ℙ(Port)"/>
<org.eventb.core.poIdentifier name="OPort" org.eventb.core.type="ℙ(Port)"/>
<org.eventb.core.poPredicate name="Componenu" org.eventb.core.predicate="partition(Port,IPort,OPort)" org.eventb.core.source="/MODELS_INC_V9_VAR/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.axiom#_Y1LocvqyEeectLZKwQfI0A"/>
<org.eventb.core.poIdentifier name="Link" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.poIdentifier name="First" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.poIdentifier name="Identity" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.poIdentifier name="LKind" org.eventb.core.type="ℙ(ℙ(Link))"/>
<org.eventb.core.poIdentifier name="Rotate" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.poIdentifier name="Shift" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.poIdentifier name="Transpose" org.eventb.core.type="ℙ(Link)"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="ALLHYP" org.eventb.core.parentSet="/MODELS_INC_V9_VAR/cLink.bpo|org.eventb.core.poFile#cLink|org.eventb.core.poPredicateSet#ABSHYP" org.eventb.core.poStamp="2">
<org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="partition(Link,Transpose,Identity,Shift,First,Rotate)" org.eventb.core.source="/MODELS_INC_V9_VAR/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.axiom#_u1ZfsfgzEeeeS5KQUtrGlw"/>
<org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="LKind={Transpose,Identity,Shift,First,Rotate}" org.eventb.core.source="/MODELS_INC_V9_VAR/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.axiom#_u1ZfsvgzEeeeS5KQUtrGlw"/>
</org.eventb.core.poPredicateSet>
</org.eventb.core.poFile>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.scContextFile org.eventb.core.accurate="true" org.eventb.core.configuration="org.eventb.core.fwd;de.prob.symbolic.ctxBase;de.prob.units.mchBase">
<org.eventb.core.scAxiom name="'" org.eventb.core.label="Pattern_ty" org.eventb.core.predicate="Pattern⊆Model" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcfqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="(" org.eventb.core.label="Mdl_ty" org.eventb.core.predicate="Mdl∈Model ∖ Pattern" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcvqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name=")" org.eventb.core.label="Pat_ty" org.eventb.core.predicate="Pat∈Pattern" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wc_qkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="*" org.eventb.core.label="Inst_ty" org.eventb.core.predicate="Inst∈Model ∖ Pattern" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_fxjdEQKnEeiAPf1wPUl3Gw" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="+" org.eventb.core.label="Inst_Mdl" org.eventb.core.predicate="Inst≠Mdl" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_DGgrYAUMEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scConstant name="Inst" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_fxjdEAKnEeiAPf1wPUl3Gw" org.eventb.core.type="Model"/>
<org.eventb.core.scConstant name="Mdl" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_h20JYPqkEeectLZKwQfI0A" org.eventb.core.type="Model"/>
<org.eventb.core.scCarrierSet name="Model" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.carrierSet#_5dsj0PqTEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.scConstant name="Pat" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_b4aBsPraEeerIsS6OyYQ4w" org.eventb.core.type="Model"/>
<org.eventb.core.scConstant name="Pattern" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_h20wcPqkEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.scCarrierSet name="Property" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.carrierSet#_9dBM4ADlEei-meqqkXX9bA" org.eventb.core.type="ℙ(Property)"/>
</org.eventb.core.scContextFile>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.scContextFile org.eventb.core.accurate="true" org.eventb.core.configuration="org.eventb.core.fwd;de.prob.symbolic.ctxBase;de.prob.units.mchBase">
<org.eventb.core.scAxiom name="'" org.eventb.core.label="Pattern_ty" org.eventb.core.predicate="Pattern⊆Model" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcfqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="(" org.eventb.core.label="Mdl_ty" org.eventb.core.predicate="Mdl∈Model ∖ Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcvqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name=")" org.eventb.core.label="Pat_ty" org.eventb.core.predicate="Pat∈Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wc_qkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="*" org.eventb.core.label="Inst_ty" org.eventb.core.predicate="Inst∈Model ∖ Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_fxjdEQKnEeiAPf1wPUl3Gw" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="+" org.eventb.core.label="Inst_Mdl" org.eventb.core.predicate="Inst≠Mdl" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_DGgrYAUMEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scConstant name="Inst" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_fxjdEAKnEeiAPf1wPUl3Gw" org.eventb.core.type="Model"/>
<org.eventb.core.scConstant name="Mdl" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_h20JYPqkEeectLZKwQfI0A" org.eventb.core.type="Model"/>
<org.eventb.core.scCarrierSet name="Model" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.carrierSet#_5dsj0PqTEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.scConstant name="Pat" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_b4aBsPraEeerIsS6OyYQ4w" org.eventb.core.type="Model"/>
<org.eventb.core.scConstant name="Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_h20wcPqkEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.scCarrierSet name="Property" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.carrierSet#_9dBM4ADlEei-meqqkXX9bA" org.eventb.core.type="ℙ(Property)"/>
</org.eventb.core.scContextFile>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.poFile org.eventb.core.poStamp="4">
<org.eventb.core.poPredicateSet name="ABSHYP" org.eventb.core.poStamp="1">
<org.eventb.core.poIdentifier name="Model" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.poIdentifier name="Property" org.eventb.core.type="ℙ(Property)"/>
<org.eventb.core.poIdentifier name="Inst" org.eventb.core.type="Model"/>
<org.eventb.core.poIdentifier name="Mdl" org.eventb.core.type="Model"/>
<org.eventb.core.poIdentifier name="Pat" org.eventb.core.type="Model"/>
<org.eventb.core.poIdentifier name="Pattern" org.eventb.core.type="ℙ(Model)"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="ALLHYP" org.eventb.core.parentSet="/MODELS_INC_V9_VAR/cModel.bpo|org.eventb.core.poFile#cModel|org.eventb.core.poPredicateSet#ABSHYP" org.eventb.core.poStamp="4">
<org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="Pattern⊆Model" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcfqkEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="Mdl∈Model ∖ Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcvqkEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="Pat∈Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wc_qkEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="Inst∈Model ∖ Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_fxjdEQKnEeiAPf1wPUl3Gw"/>
<org.eventb.core.poPredicate name="PRD4" org.eventb.core.predicate="Inst≠Mdl" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_DGgrYAUMEei9ocE08JsPSw"/>
</org.eventb.core.poPredicateSet>
</org.eventb.core.poFile>
<?xml version="1.0" encoding="UTF-8"?>
<org.eventb.core.psFile/>
\ No newline at end of file
<?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.texttools.text_lastmodified="1517240994066" org.eventb.texttools.text_representation="context cModel&#10;&#10;sets Model Property&#10;&#10;constants Mdl Pattern Pat Inst&#10;&#10;axioms&#10; @Pattern_ty Pattern ⊆ Model&#10; @Mdl_ty Mdl ∈ Model ∖ Pattern&#10; @Pat_ty Pat ∈ Pattern&#10; @Inst_ty Inst ∈ Model ∖ Pattern&#10; @Inst_Mdl Inst ≠ Mdl&#10;end&#10;" version="3">
<org.eventb.core.contextFile org.eventb.core.configuration="org.eventb.core.fwd;de.prob.symbolic.ctxBase;de.prob.units.mchBase" org.eventb.texttools.text_lastmodified="1522407306730" org.eventb.texttools.text_representation="context cModel&#10;&#10;sets Model Property&#10;&#10;constants Mdl Pattern Pat Inst&#10;&#10;axioms&#10; @Pattern_ty Pattern ⊆ Model&#10; @Mdl_ty Mdl ∈ Model ∖ Pattern&#10; @Pat_ty Pat ∈ Pattern&#10; @Inst_ty Inst ∈ Model ∖ Pattern&#10; @Inst_Mdl Inst ≠ Mdl&#10;end&#10;" version="3">
<org.eventb.core.carrierSet name="_5dsj0PqTEeectLZKwQfI0A" org.eventb.core.identifier="Model"/>
<org.eventb.core.constant name="_h20JYPqkEeectLZKwQfI0A" org.eventb.core.identifier="Mdl"/>
<org.eventb.core.constant name="_h20wcPqkEeectLZKwQfI0A" org.eventb.core.identifier="Pattern"/>
......
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.scContextFile org.eventb.core.accurate="true" org.eventb.core.configuration="org.eventb.core.fwd;de.prob.symbolic.ctxBase;de.prob.units.mchBase">
<org.eventb.core.scExtendsContext name="'" org.eventb.core.scTarget="/pseim/cComponent.bcc|org.eventb.core.scContextFile#cComponent" org.eventb.core.source="/pseim/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.extendsContext#'"/>
<org.eventb.core.scInternalContext name="cModel">
<org.eventb.core.scAxiom name="'" org.eventb.core.label="Pattern_ty" org.eventb.core.predicate="Pattern⊆Model" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcfqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="(" org.eventb.core.label="Mdl_ty" org.eventb.core.predicate="Mdl∈Model ∖ Pattern" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcvqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name=")" org.eventb.core.label="Pat_ty" org.eventb.core.predicate="Pat∈Pattern" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wc_qkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="*" org.eventb.core.label="Inst_ty" org.eventb.core.predicate="Inst∈Model ∖ Pattern" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_fxjdEQKnEeiAPf1wPUl3Gw" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="+" org.eventb.core.label="Inst_Mdl" org.eventb.core.predicate="Inst≠Mdl" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_DGgrYAUMEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scConstant name="Inst" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_fxjdEAKnEeiAPf1wPUl3Gw" org.eventb.core.type="Model"/>
<org.eventb.core.scConstant name="Mdl" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_h20JYPqkEeectLZKwQfI0A" org.eventb.core.type="Model"/>
<org.eventb.core.scCarrierSet name="Model" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.carrierSet#_5dsj0PqTEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.scConstant name="Pat" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_b4aBsPraEeerIsS6OyYQ4w" org.eventb.core.type="Model"/>
<org.eventb.core.scConstant name="Pattern" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_h20wcPqkEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.scCarrierSet name="Property" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.carrierSet#_9dBM4ADlEei-meqqkXX9bA" org.eventb.core.type="ℙ(Property)"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scInternalContext name="cComponent">
<org.eventb.core.scExtendsContext name="'" org.eventb.core.scTarget="/pseim/cModel.bcc|org.eventb.core.scContextFile#cModel" org.eventb.core.source="/pseim/cComponent.buc|org.eventb.core.contextFile#cComponent|org.eventb.core.extendsContext#_IT7_UPqUEeectLZKwQfI0A"/>
<org.eventb.core.scCarrierSet name="Component" org.eventb.core.source="/pseim/cComponent.buc|org.eventb.core.contextFile#cComponent|org.eventb.core.carrierSet#_IT7_UfqUEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component)"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scAxiom name="cComponenu" org.eventb.core.label="part" org.eventb.core.predicate="partition(Port,IPort,OPort)" org.eventb.core.source="/pseim/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.axiom#_Y1LocvqyEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scConstant name="IPort" org.eventb.core.source="/pseim/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.constant#_Y1LocPqyEeectLZKwQfI0A" org.eventb.core.type="ℙ(Port)"/>
<org.eventb.core.scConstant name="OPort" org.eventb.core.source="/pseim/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.constant#_Y1LocfqyEeectLZKwQfI0A" org.eventb.core.type="ℙ(Port)"/>
<org.eventb.core.scCarrierSet name="Port" org.eventb.core.source="/pseim/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.carrierSet#_YwaNQPqeEeectLZKwQfI0A" org.eventb.core.type="ℙ(Port)"/>
</org.eventb.core.scContextFile>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.scContextFile org.eventb.core.accurate="true" org.eventb.core.configuration="org.eventb.core.fwd;de.prob.symbolic.ctxBase;de.prob.units.mchBase">
<org.eventb.core.scExtendsContext name="'" org.eventb.core.scTarget="/MODELS_INC_V9_VAR/cComponent.bcc|org.eventb.core.scContextFile#cComponent" org.eventb.core.source="/MODELS_INC_V9_VAR/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.extendsContext#'"/>
<org.eventb.core.scInternalContext name="cModel">
<org.eventb.core.scAxiom name="'" org.eventb.core.label="Pattern_ty" org.eventb.core.predicate="Pattern⊆Model" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcfqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="(" org.eventb.core.label="Mdl_ty" org.eventb.core.predicate="Mdl∈Model ∖ Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcvqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name=")" org.eventb.core.label="Pat_ty" org.eventb.core.predicate="Pat∈Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wc_qkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="*" org.eventb.core.label="Inst_ty" org.eventb.core.predicate="Inst∈Model ∖ Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_fxjdEQKnEeiAPf1wPUl3Gw" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="+" org.eventb.core.label="Inst_Mdl" org.eventb.core.predicate="Inst≠Mdl" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_DGgrYAUMEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scConstant name="Inst" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_fxjdEAKnEeiAPf1wPUl3Gw" org.eventb.core.type="Model"/>
<org.eventb.core.scConstant name="Mdl" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_h20JYPqkEeectLZKwQfI0A" org.eventb.core.type="Model"/>
<org.eventb.core.scCarrierSet name="Model" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.carrierSet#_5dsj0PqTEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.scConstant name="Pat" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_b4aBsPraEeerIsS6OyYQ4w" org.eventb.core.type="Model"/>
<org.eventb.core.scConstant name="Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_h20wcPqkEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.scCarrierSet name="Property" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.carrierSet#_9dBM4ADlEei-meqqkXX9bA" org.eventb.core.type="ℙ(Property)"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scInternalContext name="cComponent">
<org.eventb.core.scExtendsContext name="'" org.eventb.core.scTarget="/MODELS_INC_V9_VAR/cModel.bcc|org.eventb.core.scContextFile#cModel" org.eventb.core.source="/MODELS_INC_V9_VAR/cComponent.buc|org.eventb.core.contextFile#cComponent|org.eventb.core.extendsContext#_IT7_UPqUEeectLZKwQfI0A"/>
<org.eventb.core.scCarrierSet name="Component" org.eventb.core.source="/MODELS_INC_V9_VAR/cComponent.buc|org.eventb.core.contextFile#cComponent|org.eventb.core.carrierSet#_IT7_UfqUEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component)"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scAxiom name="cComponenu" org.eventb.core.label="part" org.eventb.core.predicate="partition(Port,IPort,OPort)" org.eventb.core.source="/MODELS_INC_V9_VAR/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.axiom#_Y1LocvqyEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scConstant name="IPort" org.eventb.core.source="/MODELS_INC_V9_VAR/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.constant#_Y1LocPqyEeectLZKwQfI0A" org.eventb.core.type="ℙ(Port)"/>
<org.eventb.core.scConstant name="OPort" org.eventb.core.source="/MODELS_INC_V9_VAR/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.constant#_Y1LocfqyEeectLZKwQfI0A" org.eventb.core.type="ℙ(Port)"/>
<org.eventb.core.scCarrierSet name="Port" org.eventb.core.source="/MODELS_INC_V9_VAR/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.carrierSet#_YwaNQPqeEeectLZKwQfI0A" org.eventb.core.type="ℙ(Port)"/>
</org.eventb.core.scContextFile>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.poFile org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="ABSHYP" org.eventb.core.poStamp="0">
<org.eventb.core.poIdentifier name="Model" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.poIdentifier name="Property" org.eventb.core.type="ℙ(Property)"/>
<org.eventb.core.poIdentifier name="Inst" org.eventb.core.type="Model"/>
<org.eventb.core.poIdentifier name="Mdl" org.eventb.core.type="Model"/>
<org.eventb.core.poIdentifier name="Pat" org.eventb.core.type="Model"/>
<org.eventb.core.poIdentifier name="Pattern" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.poPredicate name="Propertz" org.eventb.core.predicate="Pattern⊆Model" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcfqkEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="Propert{" org.eventb.core.predicate="Mdl∈Model ∖ Pattern" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcvqkEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="Propert|" org.eventb.core.predicate="Pat∈Pattern" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wc_qkEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="Propert}" org.eventb.core.predicate="Inst∈Model ∖ Pattern" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_fxjdEQKnEeiAPf1wPUl3Gw"/>
<org.eventb.core.poPredicate name="Propert~" org.eventb.core.predicate="Inst≠Mdl" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_DGgrYAUMEei9ocE08JsPSw"/>
<org.eventb.core.poIdentifier name="Component" org.eventb.core.type="ℙ(Component)"/>
<org.eventb.core.poIdentifier name="Port" org.eventb.core.type="ℙ(Port)"/>
<org.eventb.core.poIdentifier name="IPort" org.eventb.core.type="ℙ(Port)"/>
<org.eventb.core.poIdentifier name="OPort" org.eventb.core.type="ℙ(Port)"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="ALLHYP" org.eventb.core.parentSet="/pseim/cPort.bpo|org.eventb.core.poFile#cPort|org.eventb.core.poPredicateSet#ABSHYP" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="partition(Port,IPort,OPort)" org.eventb.core.source="/pseim/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.axiom#_Y1LocvqyEeectLZKwQfI0A"/>
</org.eventb.core.poPredicateSet>
</org.eventb.core.poFile>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.poFile org.eventb.core.poStamp="2">
<org.eventb.core.poPredicateSet name="ABSHYP" org.eventb.core.poStamp="2">
<org.eventb.core.poIdentifier name="Model" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.poIdentifier name="Property" org.eventb.core.type="ℙ(Property)"/>
<org.eventb.core.poIdentifier name="Inst" org.eventb.core.type="Model"/>
<org.eventb.core.poIdentifier name="Mdl" org.eventb.core.type="Model"/>
<org.eventb.core.poIdentifier name="Pat" org.eventb.core.type="Model"/>
<org.eventb.core.poIdentifier name="Pattern" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.poPredicate name="Propertz" org.eventb.core.predicate="Pattern⊆Model" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcfqkEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="Propert{" org.eventb.core.predicate="Mdl∈Model ∖ Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcvqkEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="Propert|" org.eventb.core.predicate="Pat∈Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wc_qkEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="Propert}" org.eventb.core.predicate="Inst∈Model ∖ Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_fxjdEQKnEeiAPf1wPUl3Gw"/>
<org.eventb.core.poPredicate name="Propert~" org.eventb.core.predicate="Inst≠Mdl" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_DGgrYAUMEei9ocE08JsPSw"/>
<org.eventb.core.poIdentifier name="Component" org.eventb.core.type="ℙ(Component)"/>
<org.eventb.core.poIdentifier name="Port" org.eventb.core.type="ℙ(Port)"/>
<org.eventb.core.poIdentifier name="IPort" org.eventb.core.type="ℙ(Port)"/>
<org.eventb.core.poIdentifier name="OPort" org.eventb.core.type="ℙ(Port)"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="ALLHYP" org.eventb.core.parentSet="/MODELS_INC_V9_VAR/cPort.bpo|org.eventb.core.poFile#cPort|org.eventb.core.poPredicateSet#ABSHYP" org.eventb.core.poStamp="2">
<org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="partition(Port,IPort,OPort)" org.eventb.core.source="/MODELS_INC_V9_VAR/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.axiom#_Y1LocvqyEeectLZKwQfI0A"/>
</org.eventb.core.poPredicateSet>
</org.eventb.core.poFile>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.scMachineFile org.eventb.core.accurate="true" org.eventb.core.configuration="org.eventb.core.fwd;de.prob.units.mchBase;org.eventb.codegen.ui.cgConfig">
<org.eventb.core.scSeesContext name="'" org.eventb.core.scTarget="/pseim/cComponent.bcc" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.seesContext#_cQf0YPqUEeectLZKwQfI0A"/>
<org.eventb.core.scInternalContext name="cModel">
<org.eventb.core.scAxiom name="'" org.eventb.core.label="Pattern_ty" org.eventb.core.predicate="Pattern⊆Model" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcfqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="(" org.eventb.core.label="Mdl_ty" org.eventb.core.predicate="Mdl∈Model ∖ Pattern" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcvqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name=")" org.eventb.core.label="Pat_ty" org.eventb.core.predicate="Pat∈Pattern" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wc_qkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="*" org.eventb.core.label="Inst_ty" org.eventb.core.predicate="Inst∈Model ∖ Pattern" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_fxjdEQKnEeiAPf1wPUl3Gw" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="+" org.eventb.core.label="Inst_Mdl" org.eventb.core.predicate="Inst≠Mdl" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_DGgrYAUMEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scConstant name="Inst" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_fxjdEAKnEeiAPf1wPUl3Gw" org.eventb.core.type="Model"/>
<org.eventb.core.scConstant name="Mdl" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_h20JYPqkEeectLZKwQfI0A" org.eventb.core.type="Model"/>
<org.eventb.core.scCarrierSet name="Model" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.carrierSet#_5dsj0PqTEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.scConstant name="Pat" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_b4aBsPraEeerIsS6OyYQ4w" org.eventb.core.type="Model"/>
<org.eventb.core.scConstant name="Pattern" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_h20wcPqkEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.scCarrierSet name="Property" org.eventb.core.source="/pseim/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.carrierSet#_9dBM4ADlEei-meqqkXX9bA" org.eventb.core.type="ℙ(Property)"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scInternalContext name="cComponent">
<org.eventb.core.scExtendsContext name="'" org.eventb.core.scTarget="/pseim/cModel.bcc|org.eventb.core.scContextFile#cModel" org.eventb.core.source="/pseim/cComponent.buc|org.eventb.core.contextFile#cComponent|org.eventb.core.extendsContext#_IT7_UPqUEeectLZKwQfI0A"/>
<org.eventb.core.scCarrierSet name="Component" org.eventb.core.source="/pseim/cComponent.buc|org.eventb.core.contextFile#cComponent|org.eventb.core.carrierSet#_IT7_UfqUEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component)"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scInvariant name="cComponenu" org.eventb.core.label="comp" org.eventb.core.predicate="components∈Model ↔ Component" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_cQf0Y_qUEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponenv" org.eventb.core.label="comp_finite" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_cQf0ZPqUEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponenw" org.eventb.core.label="comp_not_shared" org.eventb.core.predicate="components∼∈Component ⇸ Model" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_ip9Q0PqUEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponenx" org.eventb.core.label="c_mult" org.eventb.core.predicate="c_multiplicity∈components[Pattern] → ℕ" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_GMp30PqWEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeny" org.eventb.core.label="cont_ty" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gmDo8fqgEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponenz" org.eventb.core.label="cont_ctr" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gmDo8vqgEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponen{" org.eventb.core.label="acycl" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_oXBHAPqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponen|" org.eventb.core.label="irrefl" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dqNI_qkEeectLZKwQfI0A" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponen}" org.eventb.core.label="to_unfold_c_in" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dqNJPqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponen~" org.eventb.core.label="to_clone_c" org.eventb.core.predicate="to_clone_c∈components[{Inst}] ⇸ components[{Pat}]" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dq0MPqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo'" org.eventb.core.label="to_unfold_c" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_l7KVEQA1EeictLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo(" org.eventb.core.label="inst2pat_c_ty" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_l7KVEgA1EeictLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo)" org.eventb.core.label="inst2pat_clone" org.eventb.core.predicate="to_clone_c⊆inst2pat_c" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_Hwdz4AKtEeiAPf1wPUl3Gw" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo*" org.eventb.core.label="inst2pat_unfold_in" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_xudpYQK5EeiAPf1wPUl3Gw" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo+" org.eventb.core.label="pat2inst_unfold" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_fxu54ALAEeiAPf1wPUl3Gw" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo," org.eventb.core.label="unfold_root" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_PaxdoAMwEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo-" org.eventb.core.label="unfold_in" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_PaxdoQMwEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo." org.eventb.core.label="unfold_unfold_in" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_nieoAAMxEei9ocE08JsPSw" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeo/" org.eventb.core.label="unfold_clone" org.eventb.core.predicate="to_unfold_c∩ran(to_clone_c)=(∅ ⦂ ℙ(Component))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0AMzEei9ocE08JsPSw" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeo0" org.eventb.core.label="inst2pat_cont" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0QMzEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo1" org.eventb.core.label="c_index_ty" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0gMzEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo2" org.eventb.core.label="to_clone_c_mult" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_V6rHAAM1Eei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scVariable name="c_index" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variable#_1dqNIfqkEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×ℤ)"/>
<org.eventb.core.scVariable name="c_multiplicity" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variable#_gmDo8PqgEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×ℤ)"/>
<org.eventb.core.scVariable name="components" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variable#_cQf0YfqUEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model×Component)"/>
<org.eventb.core.scVariable name="container" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variable#_cQf0YvqUEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scVariable name="inst2pat_c" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variable#_xudpYAK5EeiAPf1wPUl3Gw" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scVariable name="to_clone_c" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variable#_1dqNIPqkEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scVariable name="to_unfold_c" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variable#_1dqNIvqkEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component)"/>
<org.eventb.core.scVariable name="to_unfold_c_in" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variable#_9phD8AKqEeiAPf1wPUl3Gw" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scVariant name="to_unfold_c_io" org.eventb.core.expression="⋃c⦂Component·c∈to_unfold_c∪ran(to_clone_c) ∣ {c} × inter({sc⦂ℙ(Component)·c∈sc∧container∼[sc]⊆sc ∣ sc})" org.eventb.core.label="VARIANT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variant#_yRrOsAK6EeiAPf1wPUl3Gw"/>
<org.eventb.core.scEvent name="to_unfold_c_ip" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="instanciate_pattern" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'">
<org.eventb.core.scGuard name="'" org.eventb.core.label="ic" org.eventb.core.predicate="inst_components∈components[{Pat}] ↔ components[{Mdl}]" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.guard#_O1UjgvqmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="(" org.eventb.core.label="icr" org.eventb.core.predicate="inst_components∼∈components[{Mdl}] ⇸ components[{Pat}]" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.guard#_O1Ujg_qmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name=")" org.eventb.core.label="cm" org.eventb.core.predicate="c_mult_others∈components[{Pat}] ∖ dom(inst_components) → ℕ" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.guard#_O1UjhPqmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scParameter name="c_mult_others" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.parameter#_O1UjgfqmEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×ℤ)"/>
<org.eventb.core.scParameter name="inst_components" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.parameter#_O1UjgPqmEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scAction name="inst_componentt" org.eventb.core.assignment="c_multiplicity ≔ c_multiplicity(c_mult_others{pc⦂Component·pc∈dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])})" org.eventb.core.label="c_mult" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1UjhfqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_componentu" org.eventb.core.assignment="to_unfold_c ≔ components[{Pat}] ∖ dom(container)" org.eventb.core.label="to_unfold_c" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1WYt_qmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_componentv" org.eventb.core.assignment="to_unfold_c_in ≔ ∅ ⦂ ℙ(Component×Component)" org.eventb.core.label="to_unfold_c_in" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1WYuPqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_componentw" org.eventb.core.assignment="components ≔ {Inst} ⩤ components" org.eventb.core.label="components_inst" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1W_xPqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_componentx" org.eventb.core.assignment="container ≔ components[{Inst}] ⩤ container" org.eventb.core.label="container_inst" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1W_xfqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_componenty" org.eventb.core.assignment="to_clone_c ≔ ∅ ⦂ ℙ(Component×Component)" org.eventb.core.label="to_clone_c" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1W_xvqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_componentz" org.eventb.core.assignment="c_index ≔ ∅ ⦂ ℙ(Component×ℤ)" org.eventb.core.label="c_index" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1W_x_qmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_component{" org.eventb.core.assignment="inst2pat_c ≔ ∅ ⦂ ℙ(Component×Component)" org.eventb.core.label="pat2inst_c" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1W_yPqmEeectLZKwQfI0A"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="to_unfold_c_iq" org.eventb.core.accurate="true" org.eventb.core.convergence="1" org.eventb.core.extended="false" org.eventb.core.label="unfold_root_c" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A">
<org.eventb.core.scGuard name="'" org.eventb.core.label="c_ty" org.eventb.core.predicate="c∈to_unfold_c" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.guard#_O1WYsfqmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="(" org.eventb.core.label="new_c_ty" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(c) ↣ Component ∖ ran(components)" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.guard#_O1WYsvqmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scParameter name="c" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.parameter#_O1VxofqmEeectLZKwQfI0A" org.eventb.core.type="Component"/>
<org.eventb.core.scParameter name="new_c" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.parameter#_O1WYsPqmEeectLZKwQfI0A" org.eventb.core.type="ℙ(ℤ×Component)"/>
<org.eventb.core.scAction name="new_d" org.eventb.core.assignment="components ≔ components∪({Inst} × ran(new_c))" org.eventb.core.label="new_c_model" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.action#_O1Xm1PqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="new_e" org.eventb.core.assignment="to_clone_c ≔ to_clone_c∪(ran(new_c) × {c})" org.eventb.core.label="to_clone_c" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.action#_O1Xm1fqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="new_f" org.eventb.core.assignment="c_index ≔ c_index∪new_c∼" org.eventb.core.label="c_index" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.action#_O1Xm1vqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="new_g" org.eventb.core.assignment="to_unfold_c ≔ to_unfold_c ∖ {c}" org.eventb.core.label="to_unfold_c" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.action#_O1Xm1_qmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="new_h" org.eventb.core.assignment="inst2pat_c ≔ inst2pat_c∪(ran(new_c) × {c})" org.eventb.core.label="pat2inst_c" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.action#_O1YN4PqmEeectLZKwQfI0A"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="to_unfold_c_ir" org.eventb.core.accurate="true" org.eventb.core.convergence="1" org.eventb.core.extended="false" org.eventb.core.label="clone_c" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A">
<org.eventb.core.scGuard name="'" org.eventb.core.label="c_ty" org.eventb.core.predicate="c∈dom(to_clone_c)" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.guard#_O1WYs_qmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scParameter name="c" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.parameter#_O1W_wPqmEeectLZKwQfI0A" org.eventb.core.type="Component"/>
<org.eventb.core.scAction name="d" org.eventb.core.assignment="to_unfold_c_in ≔ to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c})" org.eventb.core.label="to_unfold_c_in" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.action#_O1YN4fqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="e" org.eventb.core.assignment="to_clone_c ≔ {c} ⩤ to_clone_c" org.eventb.core.label="cloned_c" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.action#_O1YN4vqmEeectLZKwQfI0A"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="to_unfold_c_is" org.eventb.core.accurate="true" org.eventb.core.convergence="1" org.eventb.core.extended="false" org.eventb.core.label="unfold_node_c" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A">
<org.eventb.core.scGuard name="'" org.eventb.core.label="c_ty" org.eventb.core.predicate="c ↦ dest∈to_unfold_c_in" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.guard#_O1WYtPqmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="(" org.eventb.core.label="new_c_ty" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(c) ↣ Component ∖ ran(components)" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.guard#_O1WYtfqmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scParameter name="c" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.parameter#_O1W_wfqmEeectLZKwQfI0A" org.eventb.core.type="Component"/>
<org.eventb.core.scParameter name="dest" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.parameter#_O1Xm0PqmEeectLZKwQfI0A" org.eventb.core.type="Component"/>
<org.eventb.core.scParameter name="new_c" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.parameter#_O1Xm0fqmEeectLZKwQfI0A" org.eventb.core.type="ℙ(ℤ×Component)"/>
<org.eventb.core.scAction name="new_d" org.eventb.core.assignment="components ≔ components∪({Inst} × ran(new_c))" org.eventb.core.label="new_c_model" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.action#_lyJKIPreEeerIsS6OyYQ4w"/>
<org.eventb.core.scAction name="new_e" org.eventb.core.assignment="container ≔ container∪(ran(new_c) × {dest})" org.eventb.core.label="new_c_container" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.action#_rQ0PgftxEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="new_f" org.eventb.core.assignment="to_clone_c ≔ to_clone_c∪(ran(new_c) × {c})" org.eventb.core.label="to_clone_c" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.action#_xQWRoP01EeeINffjS36taQ"/>
<org.eventb.core.scAction name="new_g" org.eventb.core.assignment="c_index ≔ c_index∪new_c∼" org.eventb.core.label="c_index" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.action#_254qkAA2EeictLZKwQfI0A"/>
<org.eventb.core.scAction name="new_h" org.eventb.core.assignment="to_unfold_c_in ≔ to_unfold_c_in ∖ {c ↦ dest}" org.eventb.core.label="to_unfold_c_in" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.action#_254qkQA2EeictLZKwQfI0A"/>
<org.eventb.core.scAction name="new_i" org.eventb.core.assignment="inst2pat_c ≔ inst2pat_c∪(ran(new_c) × {c})" org.eventb.core.label="pat2inst_c" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.action#_i0ODcAIQEei9ocE08JsPSw"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="to_unfold_c_it" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="apply_pattern" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1Xm2PqmEeectLZKwQfI0A">
<org.eventb.core.scGuard name="'" org.eventb.core.label="ic" org.eventb.core.predicate="inst_components∈components[{Inst}] ⤔ components[{Mdl}]" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1Xm2PqmEeectLZKwQfI0A|org.eventb.core.guard#_O1WYtvqmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="(" org.eventb.core.label="nc" org.eventb.core.predicate="new_components∈components[{Inst}] ∖ dom(inst_components) ↣ Component ∖ ran(components)" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1Xm2PqmEeectLZKwQfI0A|org.eventb.core.guard#_O1W_wvqmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name=")" org.eventb.core.label="acycl_inst_components" org.eventb.core.predicate="dom(inst_components) ◁ container;inst_components⊆inst_components;container" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1Xm2PqmEeectLZKwQfI0A|org.eventb.core.guard#_O1W_w_qmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="*" org.eventb.core.label="acycl_container" org.eventb.core.predicate="container[dom(inst_components)]⊆dom(inst_components)" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1Xm2PqmEeectLZKwQfI0A|org.eventb.core.guard#_O1Xm0vqmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scParameter name="inst_components" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1Xm2PqmEeectLZKwQfI0A|org.eventb.core.parameter#_rQ0PgPtxEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scParameter name="new_components" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1Xm2PqmEeectLZKwQfI0A|org.eventb.core.parameter#_h4VmkAKrEeiAPf1wPUl3Gw" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scAction name="inst_componentt" org.eventb.core.assignment="components ≔ components∪({Mdl} × ran(new_components))" org.eventb.core.label="m" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1Xm2PqmEeectLZKwQfI0A|org.eventb.core.action#_reToAAK7EeiAPf1wPUl3Gw"/>
<org.eventb.core.scAction name="inst_componentu" org.eventb.core.assignment="container ≔ container∪((inst_components∪new_components)∼;container;(inst_components∪new_components))" org.eventb.core.label="f" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1Xm2PqmEeectLZKwQfI0A|org.eventb.core.action#_szQBsAK7EeiAPf1wPUl3Gw"/>
</org.eventb.core.scEvent>
</org.eventb.core.scMachineFile>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.scMachineFile org.eventb.core.accurate="true" org.eventb.core.configuration="org.eventb.core.fwd;de.prob.units.mchBase;org.eventb.codegen.ui.cgConfig">
<org.eventb.core.scSeesContext name="'" org.eventb.core.scTarget="/MODELS_INC_V9_VAR/cComponent.bcc" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.seesContext#_cQf0YPqUEeectLZKwQfI0A"/>
<org.eventb.core.scInternalContext name="cModel">
<org.eventb.core.scAxiom name="'" org.eventb.core.label="Pattern_ty" org.eventb.core.predicate="Pattern⊆Model" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcfqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="(" org.eventb.core.label="Mdl_ty" org.eventb.core.predicate="Mdl∈Model ∖ Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcvqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name=")" org.eventb.core.label="Pat_ty" org.eventb.core.predicate="Pat∈Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wc_qkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="*" org.eventb.core.label="Inst_ty" org.eventb.core.predicate="Inst∈Model ∖ Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_fxjdEQKnEeiAPf1wPUl3Gw" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="+" org.eventb.core.label="Inst_Mdl" org.eventb.core.predicate="Inst≠Mdl" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_DGgrYAUMEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scConstant name="Inst" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_fxjdEAKnEeiAPf1wPUl3Gw" org.eventb.core.type="Model"/>
<org.eventb.core.scConstant name="Mdl" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_h20JYPqkEeectLZKwQfI0A" org.eventb.core.type="Model"/>
<org.eventb.core.scCarrierSet name="Model" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.carrierSet#_5dsj0PqTEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.scConstant name="Pat" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_b4aBsPraEeerIsS6OyYQ4w" org.eventb.core.type="Model"/>
<org.eventb.core.scConstant name="Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_h20wcPqkEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.scCarrierSet name="Property" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.carrierSet#_9dBM4ADlEei-meqqkXX9bA" org.eventb.core.type="ℙ(Property)"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scInternalContext name="cComponent">
<org.eventb.core.scExtendsContext name="'" org.eventb.core.scTarget="/MODELS_INC_V9_VAR/cModel.bcc|org.eventb.core.scContextFile#cModel" org.eventb.core.source="/MODELS_INC_V9_VAR/cComponent.buc|org.eventb.core.contextFile#cComponent|org.eventb.core.extendsContext#_IT7_UPqUEeectLZKwQfI0A"/>
<org.eventb.core.scCarrierSet name="Component" org.eventb.core.source="/MODELS_INC_V9_VAR/cComponent.buc|org.eventb.core.contextFile#cComponent|org.eventb.core.carrierSet#_IT7_UfqUEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component)"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scInvariant name="cComponenu" org.eventb.core.label="comp" org.eventb.core.predicate="components∈Model ↔ Component" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_cQf0Y_qUEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponenv" org.eventb.core.label="comp_finite" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_cQf0ZPqUEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponenw" org.eventb.core.label="comp_not_shared" org.eventb.core.predicate="components∼∈Component ⇸ Model" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_ip9Q0PqUEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponenx" org.eventb.core.label="c_mult" org.eventb.core.predicate="c_multiplicity∈components[{Pat}] → ℕ" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_GMp30PqWEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeny" org.eventb.core.label="cont_ty" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gmDo8fqgEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponenz" org.eventb.core.label="cl_ty" org.eventb.core.predicate="containers∈ran(components) ↔ ran(components)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gmDo8vqgEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponen{" org.eventb.core.label="cl_fin" org.eventb.core.predicate="∀c⦂Component·finite(containers∼[{c}])" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_oXBHAPqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponen|" org.eventb.core.label="cl_cont" org.eventb.core.predicate="container⊆containers" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dqNI_qkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponen}" org.eventb.core.label="cl_trans" org.eventb.core.predicate="containers;containers⊆containers" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dqNJPqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponen~" org.eventb.core.label="cl_left" org.eventb.core.predicate="containers⊆container;(containers∪(id ⦂ ℙ(Component×Component)))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dq0MPqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo'" org.eventb.core.label="cl_irrefl" org.eventb.core.predicate="containers∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_l7KVEQA1EeictLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo(" org.eventb.core.label="cl_comp" org.eventb.core.predicate="components;containers;components∼⊆(id ⦂ ℙ(Model×Model))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_l7KVEgA1EeictLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo)" org.eventb.core.label="cl_compr" org.eventb.core.predicate="components;containers∼;components∼⊆(id ⦂ ℙ(Model×Model))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_Hwdz4AKtEeiAPf1wPUl3Gw" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeo*" org.eventb.core.label="cont_ctr" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_xudpYQK5EeiAPf1wPUl3Gw" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeo+" org.eventb.core.label="cont_fin" org.eventb.core.predicate="∀c⦂Component·finite(container∼[{c}])" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_fxu54ALAEeiAPf1wPUl3Gw" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeo," org.eventb.core.label="irrefl" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_PaxdoAMwEei9ocE08JsPSw" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeo-" org.eventb.core.label="cont_mono" org.eventb.core.predicate="∀s⦂Component,c⦂Component·s ↦ c∈container⇒containers∼[{s}]⊂containers∼[{c}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_nieoAAMxEei9ocE08JsPSw" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeo." org.eventb.core.label="to_unfold_c_in" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0AMzEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo/" org.eventb.core.label="to_unfold_c" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0QMzEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo0" org.eventb.core.label="inst2pat_c_ty" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0gMzEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo1" org.eventb.core.label="inst2pat_unfold_in" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_V6rHAAM1Eei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo2" org.eventb.core.label="pat2inst_unfold" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_4gspwAkfEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo3" org.eventb.core.label="unfold_root" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_ClMccAk_EeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo4" org.eventb.core.label="unfold_in" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_6Bzq0AlZEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo5" org.eventb.core.label="unfold_mul" org.eventb.core.predicate="∀c⦂Component·c∈to_unfold_c⇒c_multiplicity(c)&gt;0" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_-v2gwAl5EeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo6" org.eventb.core.label="unfold_in_mul" org.eventb.core.predicate="∀c⦂Component·c∈dom(to_unfold_c_in)⇒c_multiplicity(c)&gt;0" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_Ar4dsAl8EeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo7" org.eventb.core.label="unfold_in_i2p" org.eventb.core.predicate="ran(to_unfold_c_in)⊆dom(inst2pat_c)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_byYtUAxjEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo8" org.eventb.core.label="unfold_cont" org.eventb.core.predicate="(inst2pat_c;to_unfold_c_in)∩container=(∅ ⦂ ℙ(Component×Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_ptqDcQxlEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo9" org.eventb.core.label="unfold_unfold_in" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_ptqDcgxlEeqU6uo9ksjEPA" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeo:" org.eventb.core.label="unfold_fin" org.eventb.core.predicate="∀c⦂Component·finite(to_unfold_c_in[{c}])" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_MM724AxtEeqU6uo9ksjEPA" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeo;" org.eventb.core.label="inst2pat_cont" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_MM724QxtEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo=" org.eventb.core.label="c_index_ty" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#__R1F0QyBEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo&gt;" org.eventb.core.label="to_clone_c_mult" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_nEDgcg3EEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo?" org.eventb.core.label="M_fin" org.eventb.core.predicate="finite(ran(c_multiplicity))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_nEDgcw3EEeqU6uo9ksjEPA" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeo@" org.eventb.core.label="M" org.eventb.core.predicate="M=max(ran(c_multiplicity))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_nEDgdA3EEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoA" org.eventb.core.label="P" org.eventb.core.predicate="P=components[{Pat}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_nEDgdQ3EEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoB" org.eventb.core.label="P_fin" org.eventb.core.predicate="finite(P)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_3N038Q6WEeqU6uo9ksjEPA" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeoC" org.eventb.core.label="c_indexes_ty" org.eventb.core.predicate="c_indexes∈dom(inst2pat_c) ↣ (P ⇸ 1 ‥ M)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_rcyHQA6gEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoD" org.eventb.core.label="c_indexes_dom" org.eventb.core.predicate="∀i⦂Component·i∈dom(inst2pat_c)⇒dom(c_indexes(i))=(containers∪(id ⦂ ℙ(Component×Component)))[{inst2pat_c(i)}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_rcyHQQ6gEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoE" org.eventb.core.label="c_indexes_val" org.eventb.core.predicate="∀i⦂Component·i∈dom(inst2pat_c)⇒c_indexes(i)=inst2pat_c∼;((containers∪(id ⦂ ℙ(Component×Component)))[{i}] ◁ c_index)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_2SMx0Q7FEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoF" org.eventb.core.label="i2p_dom" org.eventb.core.predicate="∀i⦂Component·i∈dom(inst2pat_c)⇒containers[{i}]⊆dom(inst2pat_c)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_2SMx0g7FEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoG" org.eventb.core.label="unfold_index_ext" org.eventb.core.predicate="∀c⦂Component,m⦂ℙ(Component×ℤ)·c∈to_unfold_c∧m∈ran(c_indexes)⇒c∉dom(m)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_2SMx0w7FEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoH" org.eventb.core.label="unfold_in_index_ext" org.eventb.core.predicate="∀c⦂Component,i⦂Component,m⦂ℙ(Component×ℤ)·c ↦ i∈to_unfold_c_in∧c_indexes(i)⊆m∧m∈ran(c_indexes)⇒c∉dom(m)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_2SMx1A7FEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoI" org.eventb.core.label="unfold_index" org.eventb.core.predicate="∀c⦂Component,k⦂ℤ·c∈to_unfold_c∧k∈1 ‥ M⇒{c ↦ k}∉ran(c_indexes)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_iR6UgA7fEeqU6uo9ksjEPA" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeoJ" org.eventb.core.label="unfold_in_index" org.eventb.core.predicate="∀c⦂Component,i⦂Component,k⦂ℤ·c ↦ i∈to_unfold_c_in∧k∈1 ‥ M⇒c_indexes(i){c ↦ k}∉ran(c_indexes)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_BSFPUBEBEeqU6uo9ksjEPA" org.eventb.core.theorem="true"/>
<org.eventb.core.scVariable name="M" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variable#__R1F0AyBEeqU6uo9ksjEPA" org.eventb.core.type="ℤ"/>
<org.eventb.core.scVariable name="P" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variable#_nEDgcA3EEeqU6uo9ksjEPA" org.eventb.core.type="ℙ(Component)"/>
<org.eventb.core.scVariable name="c_index" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variable#_1dqNIfqkEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×ℤ)"/>
<org.eventb.core.scVariable name="c_indexes" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variable#_nEDgcQ3EEeqU6uo9ksjEPA" org.eventb.core.type="ℙ(Component×ℙ(Component×ℤ))"/>
<org.eventb.core.scVariable name="c_multiplicity" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variable#_1dqNIPqkEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×ℤ)"/>
<org.eventb.core.scVariable name="components" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variable#_cQf0YfqUEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model×Component)"/>
<org.eventb.core.scVariable name="container" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variable#_cQf0YvqUEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scVariable name="containers" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variable#_gmDo8PqgEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scVariable name="inst2pat_c" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variable#_xudpYAK5EeiAPf1wPUl3Gw" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scVariable name="to_unfold_c" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variable#_1dqNIvqkEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component)"/>
<org.eventb.core.scVariable name="to_unfold_c_in" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variable#_9phD8AKqEeiAPf1wPUl3Gw" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scVariant name="to_unfold_c_io" org.eventb.core.expression="(P ⇸ 1 ‥ M) ∖ c_indexes[dom(inst2pat_c)]" org.eventb.core.label="VARIANT" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variant#_gEhCEQhLEeqU6uo9ksjEPA"/>
<org.eventb.core.scEvent name="to_unfold_c_ip" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="instanciate_pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'">
<org.eventb.core.scGuard name="'" org.eventb.core.label="ic" org.eventb.core.predicate="inst_components∈components[{Pat}] ↔ components[{Mdl}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.guard#_O1UjgvqmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="(" org.eventb.core.label="icr" org.eventb.core.predicate="inst_components∼∈components[{Mdl}] ⇸ components[{Pat}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.guard#_O1Ujg_qmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name=")" org.eventb.core.label="cm" org.eventb.core.predicate="c_mult_others∈components[{Pat}] ∖ dom(inst_components) → ℕ" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.guard#_O1UjhPqmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="*" org.eventb.core.label="cmult" org.eventb.core.predicate="c_mult=c_mult_others{pc⦂Component·pc∈dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])}" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.guard#_O1WYsfqmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scParameter name="c_mult" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.parameter#_O1VxofqmEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×ℤ)"/>
<org.eventb.core.scParameter name="c_mult_others" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.parameter#_O1UjgfqmEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×ℤ)"/>
<org.eventb.core.scParameter name="inst_components" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.parameter#_O1UjgPqmEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scAction name="inst_componentt" org.eventb.core.assignment="c_multiplicity ≔ c_mult" org.eventb.core.label="c_mult" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1UjhfqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_componentu" org.eventb.core.assignment="to_unfold_c ≔ (components[{Pat}] ∖ dom(container)) ∖ c_multiplicity∼[{0}]" org.eventb.core.label="to_unfold_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1WYt_qmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_componentv" org.eventb.core.assignment="to_unfold_c_in ≔ ∅ ⦂ ℙ(Component×Component)" org.eventb.core.label="to_unfold_c_in" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1WYuPqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_componentw" org.eventb.core.assignment="components ≔ {Inst} ⩤ components" org.eventb.core.label="components_inst" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1W_xPqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_componentx" org.eventb.core.assignment="container ≔ components[{Inst}] ⩤ container" org.eventb.core.label="container_inst" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1W_xfqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_componenty" org.eventb.core.assignment="c_index ≔ ∅ ⦂ ℙ(Component×ℤ)" org.eventb.core.label="c_index" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1W_xvqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_componentz" org.eventb.core.assignment="c_indexes ≔ ∅ ⦂ ℙ(Component×ℙ(Component×ℤ))" org.eventb.core.label="c_indexes" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1W_x_qmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_component{" org.eventb.core.assignment="inst2pat_c ≔ ∅ ⦂ ℙ(Component×Component)" org.eventb.core.label="pat2inst_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1W_yPqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_component|" org.eventb.core.assignment="M ≔ max(ran(c_mult))" org.eventb.core.label="M" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1Xm1PqmEeectLZKwQfI0A"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="to_unfold_c_iq" org.eventb.core.accurate="true" org.eventb.core.convergence="1" org.eventb.core.extended="false" org.eventb.core.label="unfold_root_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A">
<org.eventb.core.scGuard name="'" org.eventb.core.label="c_ty" org.eventb.core.predicate="c∈to_unfold_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.guard#_O1WYsvqmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="(" org.eventb.core.label="new_c_ty" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(c) ↣ Component ∖ ran(components)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.guard#_O1WYs_qmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name=")" org.eventb.core.label="new_c_fin" org.eventb.core.predicate="finite(ran(new_c))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.guard#_O1WYtPqmEeectLZKwQfI0A" org.eventb.core.theorem="true"/>
<org.eventb.core.scGuard name="*" org.eventb.core.label="new_c_card" org.eventb.core.predicate="card(ran(new_c))=c_multiplicity(c)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.guard#_O1WYtfqmEeectLZKwQfI0A" org.eventb.core.theorem="true"/>
<org.eventb.core.scParameter name="c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.parameter#_O1WYsPqmEeectLZKwQfI0A" org.eventb.core.type="Component"/>
<org.eventb.core.scParameter name="new_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.parameter#_O1W_wPqmEeectLZKwQfI0A" org.eventb.core.type="ℙ(ℤ×Component)"/>
<org.eventb.core.scAction name="new_d" org.eventb.core.assignment="components ≔ components∪({Inst} × ran(new_c))" org.eventb.core.label="new_c_model" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.action#_O1Xm1fqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="new_e" org.eventb.core.assignment="to_unfold_c_in ≔ to_unfold_c_in∪((container∼[{c}] ∖ c_multiplicity∼[{0}]) × ran(new_c))" org.eventb.core.label="to_unfold_c_in" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.action#_O1Xm1vqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="new_f" org.eventb.core.assignment="c_index ≔ c_index∪new_c∼" org.eventb.core.label="c_index" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.action#_O1Xm1_qmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="new_g" org.eventb.core.assignment="to_unfold_c ≔ to_unfold_c ∖ {c}" org.eventb.core.label="to_unfold_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.action#_O1YN4PqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="new_h" org.eventb.core.assignment="inst2pat_c ≔ inst2pat_c∪(ran(new_c) × {c})" org.eventb.core.label="pat2inst_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.action#_O1YN4fqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="new_i" org.eventb.core.assignment="c_indexes ≔ c_indexes∪{i⦂Component·i∈ran(new_c) ∣ i ↦ {c ↦ new_c∼(i)}}" org.eventb.core.label="c_indexes" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.action#_O1YN4vqmEeectLZKwQfI0A"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="to_unfold_c_ir" org.eventb.core.accurate="true" org.eventb.core.convergence="1" org.eventb.core.extended="false" org.eventb.core.label="unfold_node_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A">
<org.eventb.core.scGuard name="'" org.eventb.core.label="c_ty" org.eventb.core.predicate="c ↦ dest∈to_unfold_c_in" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.guard#_O1WYtvqmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="(" org.eventb.core.label="new_c_ty" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(c) ↣ Component ∖ ran(components)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.guard#_O1W_wvqmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name=")" org.eventb.core.label="new_c_fin" org.eventb.core.predicate="finite(ran(new_c))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.guard#_O1W_w_qmEeectLZKwQfI0A" org.eventb.core.theorem="true"/>
<org.eventb.core.scGuard name="*" org.eventb.core.label="new_c_card" org.eventb.core.predicate="card(ran(new_c))=c_multiplicity(c)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.guard#_O1Xm0vqmEeectLZKwQfI0A" org.eventb.core.theorem="true"/>
<org.eventb.core.scParameter name="c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.parameter#_O1W_wfqmEeectLZKwQfI0A" org.eventb.core.type="Component"/>
<org.eventb.core.scParameter name="dest" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.parameter#_O1Xm0PqmEeectLZKwQfI0A" org.eventb.core.type="Component"/>
<org.eventb.core.scParameter name="new_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.parameter#_O1Xm0fqmEeectLZKwQfI0A" org.eventb.core.type="ℙ(ℤ×Component)"/>
<org.eventb.core.scAction name="new_d" org.eventb.core.assignment="components ≔ components∪({Inst} × ran(new_c))" org.eventb.core.label="new_c_model" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.action#_lyJKIPreEeerIsS6OyYQ4w"/>
<org.eventb.core.scAction name="new_e" org.eventb.core.assignment="container ≔ container∪(ran(new_c) × {dest})" org.eventb.core.label="new_c_container" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.action#_rQ0PgftxEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="new_f" org.eventb.core.assignment="c_index ≔ c_index∪new_c∼" org.eventb.core.label="c_index" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.action#_xQWRoP01EeeINffjS36taQ"/>
<org.eventb.core.scAction name="new_g" org.eventb.core.assignment="to_unfold_c_in ≔ (to_unfold_c_in ∖ {c ↦ dest})∪((container∼[{c}] ∖ c_multiplicity∼[{0}]) × ran(new_c))" org.eventb.core.label="to_unfold_c_in" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.action#_254qkAA2EeictLZKwQfI0A"/>
<org.eventb.core.scAction name="new_h" org.eventb.core.assignment="inst2pat_c ≔ inst2pat_c∪(ran(new_c) × {c})" org.eventb.core.label="pat2inst_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.action#_ptpcYAxlEeqU6uo9ksjEPA"/>
<org.eventb.core.scAction name="new_i" org.eventb.core.assignment="containers ≔ containers∪(ran(new_c) × {dest})∪(ran(new_c) × containers[{dest}])" org.eventb.core.label="cont" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.action#_ptpcYQxlEeqU6uo9ksjEPA"/>
<org.eventb.core.scAction name="new_j" org.eventb.core.assignment="c_indexes ≔ c_indexes∪{i⦂Component·i∈ran(new_c) ∣ i ↦ c_indexes(dest){c ↦ new_c∼(i)}}" org.eventb.core.label="c_indexes" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.action#_ptpcYgxlEeqU6uo9ksjEPA"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="to_unfold_c_is" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="apply_pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A">
<org.eventb.core.scGuard name="'" org.eventb.core.label="ic" org.eventb.core.predicate="inst_components∈components[{Inst}] ⤔ components[{Mdl}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.guard#_AkqiQAhGEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="(" org.eventb.core.label="nc" org.eventb.core.predicate="new_components∈components[{Inst}] ∖ dom(inst_components) ↣ Component ∖ ran(components)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.guard#_AkqiQQhGEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name=")" org.eventb.core.label="acycl_inst_components" org.eventb.core.predicate="dom(inst_components) ◁ container;inst_components⊆inst_components;container" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.guard#_AkqiQghGEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="*" org.eventb.core.label="acycl_container" org.eventb.core.predicate="container[dom(inst_components)]⊆dom(inst_components)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.guard#_AkqiQwhGEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scParameter name="inst_components" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.parameter#_rQ0PgPtxEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scParameter name="new_components" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.parameter#_h4VmkAKrEeiAPf1wPUl3Gw" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scAction name="inst_componentt" org.eventb.core.assignment="components ≔ components∪({Mdl} × ran(new_components))" org.eventb.core.label="m" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.action#__Rz3sAyBEeqU6uo9ksjEPA"/>
<org.eventb.core.scAction name="inst_componentu" org.eventb.core.assignment="container ≔ container∪((inst_components∪new_components)∼;container;(inst_components∪new_components))" org.eventb.core.label="f" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.action#_nECSUA3EEeqU6uo9ksjEPA"/>
<org.eventb.core.scAction name="inst_componentv" org.eventb.core.assignment="containers ≔ containers∪(new_components∼;containers;inst_components;containers)∪(new_components∼;containers;(new_components∪inst_components))" org.eventb.core.label="c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.action#_nECSUQ3EEeqU6uo9ksjEPA"/>
</org.eventb.core.scEvent>
</org.eventb.core.scMachineFile>
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0" encoding="UTF-8"?>
<org.eventb.core.psFile/>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.psFile>
<org.eventb.core.psStatus name="cl_compr/THM" org.eventb.core.confidence="1000" org.eventb.core.poStamp="95" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="cont_ctr/THM" org.eventb.core.confidence="1000" org.eventb.core.poStamp="95" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="cont_fin/THM" org.eventb.core.confidence="1000" org.eventb.core.poStamp="95" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="irrefl/THM" org.eventb.core.confidence="1000" org.eventb.core.poStamp="95" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="cont_mono/THM" org.eventb.core.confidence="1000" org.eventb.core.poStamp="95" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_mul/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="95" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_in_mul/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="95" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_unfold_in/THM" org.eventb.core.confidence="1000" org.eventb.core.poStamp="95" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_fin/THM" org.eventb.core.confidence="1000" org.eventb.core.poStamp="95" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="to_clone_c_mult/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="95" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="M_fin/THM" org.eventb.core.confidence="0" org.eventb.core.poStamp="95" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="M/WD" org.eventb.core.confidence="0" org.eventb.core.poStamp="95" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="P_fin/THM" org.eventb.core.confidence="1000" org.eventb.core.poStamp="95" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="c_indexes_dom/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="95" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="c_indexes_cont/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="95" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="c_indexes_val/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="95" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_in_index/WD" org.eventb.core.confidence="0" org.eventb.core.poStamp="95" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="FIN" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/cmult/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/comp_finite/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/comp_not_shared/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/c_mult/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/cont_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/cl_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/cl_fin/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/cl_cont/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/cl_trans/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/cl_left/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/cl_irrefl/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/cl_comp/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/to_unfold_c_in/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/to_unfold_c/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/inst2pat_c_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/inst2pat_unfold_in/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/pat2inst_unfold/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/unfold_root/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/unfold_in/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/unfold_mul/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/unfold_in_mul/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/unfold_in_i2p/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/unfold_cont/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/inst2pat_cont/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/c_index_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/to_clone_c_mult/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/M/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/P/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/c_indexes_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/c_indexes_dom/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/c_indexes_cont/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/c_indexes_val/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/i2p_dom/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/unfold_index/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/unfold_in_index/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/M/WD" org.eventb.core.confidence="0" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_root_c/new_c_ty/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_root_c/new_c_fin/THM" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_root_c/new_c_card/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_root_c/new_c_card/THM" org.eventb.core.confidence="0" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_root_c/comp_finite/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_root_c/comp_not_shared/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_root_c/c_mult/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_root_c/cont_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_root_c/cl_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_root_c/cl_comp/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_root_c/to_unfold_c_in/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_root_c/to_unfold_c/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_root_c/inst2pat_c_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_root_c/inst2pat_unfold_in/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_root_c/pat2inst_unfold/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_root_c/unfold_root/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_root_c/unfold_in/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_root_c/unfold_mul/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_root_c/unfold_in_mul/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_root_c/unfold_in_i2p/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_root_c/unfold_cont/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_root_c/inst2pat_cont/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_root_c/c_index_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_root_c/to_clone_c_mult/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_root_c/P/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_root_c/c_indexes_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_root_c/c_indexes_dom/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_root_c/c_indexes_cont/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_root_c/c_indexes_val/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_root_c/i2p_dom/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_root_c/unfold_index/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_root_c/unfold_in_index/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_root_c/c_indexes/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_root_c/VAR" org.eventb.core.confidence="0" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/new_c_ty/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/new_c_fin/THM" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/new_c_card/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_c/new_c_card/THM" org.eventb.core.confidence="0" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/comp_finite/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/comp_not_shared/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_c/c_mult/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/cont_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_c/cl_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/cl_fin/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/cl_cont/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_c/cl_trans/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/cl_left/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_c/cl_irrefl/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/cl_comp/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/to_unfold_c_in/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/to_unfold_c/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_c/inst2pat_c_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_c/inst2pat_unfold_in/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_c/pat2inst_unfold/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_c/unfold_root/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_c/unfold_in/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_c/unfold_in_mul/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/unfold_in_i2p/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_c/unfold_cont/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/inst2pat_cont/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_c/c_index_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_c/to_clone_c_mult/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_c/P/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/c_indexes_ty/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="97" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/c_indexes_dom/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/c_indexes_cont/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/c_indexes_val/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/i2p_dom/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/unfold_index/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/unfold_in_index/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/c_indexes/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/VAR" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_pattern/comp_finite/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_pattern/comp_not_shared/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="apply_pattern/c_mult/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_pattern/cont_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="apply_pattern/cl_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="apply_pattern/cl_fin/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_pattern/cl_cont/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="apply_pattern/cl_trans/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_pattern/cl_left/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_pattern/cl_irrefl/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_pattern/cl_comp/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_pattern/to_unfold_c_in/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="apply_pattern/to_unfold_c/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="apply_pattern/inst2pat_c_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="apply_pattern/inst2pat_unfold_in/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="apply_pattern/unfold_root/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="apply_pattern/unfold_in/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="apply_pattern/unfold_cont/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_pattern/inst2pat_cont/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="apply_pattern/P/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_pattern/c_indexes_dom/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_pattern/c_indexes_cont/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_pattern/c_indexes_val/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_pattern/i2p_dom/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="97" org.eventb.core.psBroken="true" org.eventb.core.psManual="true"/>
</org.eventb.core.psFile>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.machineFile org.eventb.core.configuration="org.eventb.core.fwd;de.prob.units.mchBase;org.eventb.codegen.ui.cgConfig" org.eventb.texttools.text_lastmodified="1522155117059" org.eventb.texttools.text_representation="machine mComponent sees cComponent&#10;&#10;variables components container c_multiplicity to_clone_c c_index to_unfold_c to_unfold_c_in inst2pat_c&#10;&#10;invariants&#10; @comp components ∈ Model ↔ Component&#10; @comp_finite ∀m·finite(components[{m}])&#10; @comp_not_shared components∼ ∈ Component ⇸ Model&#10; @c_mult c_multiplicity ∈ components[Pattern] → ℕ&#10; @cont_ty container ∈ ran(components) ⇸ ran(components)&#10; @cont_ctr components;container;components∼ ⊆ id&#10; @acycl ∃f· f ∈ Component ↔ Component ∧ container ⊆ f ∧ f;f ⊆ f ∧ id ∩ f = ∅&#10; theorem @irrefl container ∩ id = ∅&#10; @to_unfold_c_in to_unfold_c_in ∈ components[{Pat}] ↔ components[{Inst}]&#10; @to_clone_c to_clone_c ∈ components[{Inst}] ⇸ components[{Pat}] // From new component to original component&#10; @to_unfold_c to_unfold_c ⊆ components[{Pat}]&#10; @inst2pat_c_ty inst2pat_c ∈ components[{Inst}] → components[{Pat}]&#10; @inst2pat_clone to_clone_c ⊆ inst2pat_c&#10; @inst2pat_unfold_in to_unfold_c_in;inst2pat_c ⊆ container&#10; @pat2inst_unfold to_unfold_c ∩ ran(inst2pat_c) = ∅&#10; @unfold_root to_unfold_c ∩ dom(container) = ∅&#10; @unfold_in dom(to_unfold_c_in) ⊆ dom(container)&#10; theorem @unfold_unfold_in to_unfold_c ∩ dom(to_unfold_c_in) = ∅&#10; theorem @unfold_clone to_unfold_c ∩ ran(to_clone_c) = ∅&#10; @inst2pat_cont inst2pat_c;container = container;inst2pat_c&#10; @c_index_ty c_index ∈ dom(inst2pat_c) → ℕ&#10; @to_clone_c_mult ∀c· c∈dom(inst2pat_c) ⇒ c_index(c) ∈ 1‥c_multiplicity(inst2pat_c(c))&#10;&#10;variant ⋃ c · c∈(to_unfold_c ∪ ran(to_clone_c)) ∣ {c} × inter({ sc ∣ c∈sc ∧ container∼[sc] ⊆ sc})&#10;&#10;events&#10; event instanciate_pattern&#10; any inst_components c_mult_others&#10; where&#10; @ic inst_components ∈ components[{Pat}] ↔ components[{Mdl}]&#10; @icr inst_components∼ ∈ components[{Mdl}] ⇸ components[{Pat}]&#10; @cm c_mult_others ∈ components[{Pat}] ∖ dom(inst_components) → ℕ&#10; then&#10; @c_mult c_multiplicity ≔ c_multiplicity  (c_mult_others  {pc· pc ∈ dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])})&#10; @to_unfold_c to_unfold_c ≔ (components[{Pat}] ∖ dom(container))&#10; @to_unfold_c_in to_unfold_c_in ≔ ∅&#10; @components_inst components ≔ {Inst} ⩤ components&#10; @container_inst container ≔ components[{Inst}] ⩤ container&#10; @to_clone_c to_clone_c ≔ ∅&#10; @c_index c_index ≔ ∅&#10; @pat2inst_c inst2pat_c ≔ ∅&#10; end&#10;&#10; convergent event unfold_root_c&#10; any c new_c&#10; where&#10; @c_ty c ∈ to_unfold_c&#10; @new_c_ty new_c ∈ 1‥c_multiplicity(c) ↣ Component ∖ ran(components)&#10; then&#10; @new_c_model components ≔ components ∪ ({Inst}×ran(new_c))&#10; @to_clone_c to_clone_c ≔ to_clone_c ∪ (ran(new_c)×{c})&#10; @c_index c_index ≔ c_index ∪ new_c∼&#10; @to_unfold_c to_unfold_c ≔ to_unfold_c ∖ {c}&#10; @pat2inst_c inst2pat_c ≔ inst2pat_c ∪ (ran(new_c) × {c})&#10; end&#10;&#10; convergent event clone_c // Variante: spécifier directement la fermeture transitive.&#10; any c&#10; where&#10; @c_ty c ∈ dom(to_clone_c)&#10; then&#10; @to_unfold_c_in to_unfold_c_in ≔ to_unfold_c_in ∪ (container∼[{to_clone_c(c)}] × {c})&#10; @cloned_c to_clone_c ≔ {c} ⩤ to_clone_c&#10; end&#10;&#10; convergent event unfold_node_c // réplication des éléments composants // A voir: duplication du contenu de C&#10; any c dest new_c&#10; where&#10; @c_ty c ↦ dest ∈ to_unfold_c_in&#10; @new_c_ty new_c ∈ 1‥c_multiplicity(c) ↣ Component ∖ ran(components)&#10; then&#10; @new_c_model components ≔ components ∪ ({Inst}×ran(new_c))&#10; @new_c_container container ≔ container ∪ (ran(new_c)×{dest})&#10; @to_clone_c to_clone_c ≔ to_clone_c ∪ (ran(new_c)×{c})&#10; @c_index c_index ≔ c_index ∪ new_c∼&#10; @to_unfold_c_in to_unfold_c_in ≔ to_unfold_c_in ∖ {c ↦ dest}&#10; @pat2inst_c inst2pat_c ≔ inst2pat_c ∪ (ran(new_c) × {c})&#10; end&#10;&#10; event apply_pattern // transformation du modèle&#10; any inst_components // instance mapping&#10; new_components&#10; where&#10; @ic inst_components ∈ components[{Inst}] ⤔ components[{Mdl}]&#10; @nc new_components ∈ components[{Inst}] ∖ dom(inst_components) ↣ Component ∖ ran(components)&#10; @acycl_inst_components dom(inst_components) ◁ container;inst_components ⊆ inst_components;container&#10; @acycl_container container[dom(inst_components)] ⊆ dom(inst_components)&#10; then&#10; @m components ≔ components ∪ ({Mdl}×ran(new_components))&#10; @f container ≔ container ∪ ((inst_components ∪ new_components)∼;container;(inst_components ∪ new_components))&#10; end&#10;end&#10;" version="5">
<org.eventb.core.machineFile org.eventb.core.configuration="org.eventb.core.fwd;de.prob.units.mchBase;org.eventb.codegen.ui.cgConfig" org.eventb.texttools.text_lastmodified="1574883333958" org.eventb.texttools.text_representation="machine mComponent sees cComponent&#10;&#10;variables components container containers c_multiplicity c_index to_unfold_c to_unfold_c_in inst2pat_c M P c_indexes&#10;&#10;invariants&#10; @comp components ∈ Model ↔ Component&#10; @comp_finite ∀m·finite(components[{m}])&#10; @comp_not_shared components∼ ∈ Component ⇸ Model&#10; @c_mult c_multiplicity ∈ components[{Pat}] → ℕ&#10; @cont_ty container ∈ ran(components) ⇸ ran(components)&#10; @cl_ty containers∈ran(components) ↔ ran(components)&#10; @cl_fin ∀c·finite(containers∼[{c}])&#10; @cl_cont container ⊆ containers&#10; @cl_trans containers;containers ⊆ containers&#10; @cl_left containers ⊆ container;(containers∪id)&#10; @cl_irrefl containers ∩ id = ∅&#10; @cl_comp components;containers;components∼ ⊆ id&#10; theorem @cl_compr components;containers∼;components∼ ⊆ id&#10; theorem @cont_ctr components;container;components∼ ⊆ id&#10; theorem @cont_fin ∀c·finite(container∼[{c}])&#10; theorem @irrefl container ∩ id = ∅&#10; theorem @cont_mono ∀s,c· s↦c∈container ⇒ containers∼[{s}] ⊂ containers∼[{c}]&#10; @to_unfold_c_in to_unfold_c_in ∈ components[{Pat}] ↔ components[{Inst}]&#10; @to_unfold_c to_unfold_c ⊆ components[{Pat}]&#10; @inst2pat_c_ty inst2pat_c ∈ components[{Inst}] → components[{Pat}]&#10; @inst2pat_unfold_in to_unfold_c_in;inst2pat_c ⊆ container&#10; @pat2inst_unfold to_unfold_c ∩ ran(inst2pat_c) = ∅&#10; @unfold_root to_unfold_c ∩ dom(container) = ∅&#10; @unfold_in dom(to_unfold_c_in) ⊆ dom(container)&#10; @unfold_mul ∀c·c∈to_unfold_c ⇒ c_multiplicity(c) &gt; 0&#10; @unfold_in_mul ∀c·c∈dom(to_unfold_c_in) ⇒ c_multiplicity(c) &gt; 0&#10; @unfold_in_i2p ran(to_unfold_c_in) ⊆ dom(inst2pat_c)&#10; @unfold_cont (inst2pat_c;to_unfold_c_in) ∩ container =∅&#10; theorem @unfold_unfold_in to_unfold_c ∩ dom(to_unfold_c_in) = ∅&#10; theorem @unfold_fin ∀c·finite(to_unfold_c_in[{c}])&#10; @inst2pat_cont inst2pat_c;container = container;inst2pat_c&#10; @c_index_ty c_index ∈ dom(inst2pat_c) → ℕ&#10; @to_clone_c_mult ∀c· c∈dom(inst2pat_c) ⇒ c_index(c) ∈ 1‥c_multiplicity(inst2pat_c(c))&#10; theorem @M_fin finite(ran(c_multiplicity))&#10; @M M = max(ran(c_multiplicity))&#10; @P P = components[{Pat}]&#10; theorem @P_fin finite(P)&#10; @c_indexes_ty c_indexes ∈ dom(inst2pat_c) ↣ (P ⇸ 1‥M)&#10; @c_indexes_dom ∀i·i∈dom(inst2pat_c) ⇒ dom(c_indexes(i)) = (containers∪id)[{inst2pat_c(i)}]&#10; @c_indexes_val ∀i·i∈dom(inst2pat_c) ⇒ c_indexes(i) = inst2pat_c∼;(((containers∪id)[{i}]) ◁ c_index)&#10; @i2p_dom ∀i·i∈dom(inst2pat_c) ⇒ containers[{i}] ⊆ dom(inst2pat_c)&#10; @unfold_index_ext ∀c,m· c ∈ to_unfold_c ∧ m∈ran(c_indexes) ⇒ c∉dom(m)&#10; @unfold_in_index_ext ∀c,i,m· c↦i ∈ to_unfold_c_in ∧ c_indexes(i)⊆m ∧ m ∈ ran(c_indexes) ⇒ c∉dom(m)&#10; theorem @unfold_index ∀c,k· c ∈ to_unfold_c ∧ k∈1‥M ⇒&#10; {c ↦ k} ∉ ran(c_indexes)&#10; theorem @unfold_in_index ∀c,i,k· c↦i ∈ to_unfold_c_in ∧ k∈1‥M ⇒&#10; (c_indexes(i)  {c↦k}) ∉ ran(c_indexes)&#10;&#10;variant&#10;&#9;(P⇸1‥M)∖c_indexes[dom(inst2pat_c)]&#10;&#10;events&#10; event instanciate_pattern&#10; any inst_components c_mult_others c_mult&#10; where&#10; @ic inst_components ∈ components[{Pat}] ↔ components[{Mdl}]&#10; @icr inst_components∼ ∈ components[{Mdl}] ⇸ components[{Pat}]&#10; @cm c_mult_others ∈ components[{Pat}] ∖ dom(inst_components) → ℕ&#10; @cmult c_mult = (c_mult_others  {pc· pc ∈ dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])})&#10; then&#10; @c_mult c_multiplicity ≔ c_mult&#10; @to_unfold_c to_unfold_c ≔ (components[{Pat}] ∖ dom(container))∖ c_multiplicity∼[{0}]&#10; @to_unfold_c_in to_unfold_c_in ≔ ∅&#10; @components_inst components ≔ {Inst} ⩤ components&#10; @container_inst container ≔ components[{Inst}] ⩤ container&#10; @c_index c_index ≔ ∅&#10; @c_indexes c_indexes ≔ ∅&#10; @pat2inst_c inst2pat_c ≔ ∅&#10; @M M ≔ max(ran(c_mult))&#10; end&#10;&#10; convergent event unfold_root_c&#10; any c new_c&#10; where&#10; @c_ty c ∈ to_unfold_c&#10; @new_c_ty new_c ∈ 1‥c_multiplicity(c) ↣ Component ∖ ran(components)&#10; theorem @new_c_fin finite(ran(new_c))&#10; theorem @new_c_card card(ran(new_c)) = c_multiplicity(c)&#10; then&#10; @new_c_model components ≔ components ∪ ({Inst}×ran(new_c))&#10; @to_unfold_c_in to_unfold_c_in ≔ to_unfold_c_in ∪&#10; ((container∼[{c}] ∖ c_multiplicity∼[{0}]) × ran(new_c))&#10; @c_index c_index ≔ c_index ∪ new_c∼&#10; @to_unfold_c to_unfold_c ≔ to_unfold_c ∖ {c}&#10; @pat2inst_c inst2pat_c ≔ inst2pat_c ∪ (ran(new_c) × {c})&#10; @c_indexes c_indexes ≔ c_indexes ∪ {i·i∈ran(new_c) ∣ i↦{c↦new_c∼(i)}}&#10; end&#10;&#10; convergent event unfold_node_c // réplication des éléments composants // A voir: duplication du contenu de C&#10; any c dest new_c&#10; where&#10; @c_ty c ↦ dest ∈ to_unfold_c_in&#10; @new_c_ty new_c ∈ 1‥c_multiplicity(c) ↣ Component ∖ ran(components)&#10; theorem @new_c_fin finite(ran(new_c))&#10; theorem @new_c_card card(ran(new_c)) = c_multiplicity(c)&#10; then&#10; @new_c_model components ≔ components ∪ ({Inst}×ran(new_c))&#10; @new_c_container container ≔ container ∪ (ran(new_c)×{dest})&#10; @c_index c_index ≔ c_index ∪ new_c∼&#10; @to_unfold_c_in to_unfold_c_in ≔ (to_unfold_c_in ∖ {c ↦ dest}) ∪&#10; ((container∼[{c}] ∖ c_multiplicity∼[{0}]) × ran(new_c))&#10; @pat2inst_c inst2pat_c ≔ inst2pat_c ∪ (ran(new_c) × {c})&#10; @cont containers ≔ containers ∪ (ran(new_c) × {dest}) ∪ (ran(new_c) × containers[{dest}])&#10; @c_indexes c_indexes ≔ c_indexes ∪ {i·i∈ran(new_c) ∣ i↦(c_indexes(dest)  {c↦new_c∼(i)})}&#10; end&#10;&#10; event apply_pattern // transformation du modèle&#10; any inst_components // instance mapping&#10; new_components&#10; where&#10; @ic inst_components ∈ components[{Inst}] ⤔ components[{Mdl}]&#10; @nc new_components ∈ components[{Inst}] ∖ dom(inst_components) ↣ Component ∖ ran(components)&#10; @acycl_inst_components dom(inst_components) ◁ container;inst_components ⊆ inst_components;container&#10; @acycl_container container[dom(inst_components)] ⊆ dom(inst_components)&#10; then&#10; @m components ≔ components ∪ ({Mdl}×ran(new_components))&#10; @f container ≔ container ∪ ((inst_components ∪ new_components)∼;container;(inst_components ∪ new_components))&#10; @c containers ≔ containers ∪ (new_components∼;containers;inst_components;containers) ∪ (new_components∼;containers;(new_components ∪ inst_components))&#10; end&#10;end&#10;" version="5">
<org.eventb.core.seesContext name="_cQf0YPqUEeectLZKwQfI0A" org.eventb.core.target="cComponent"/>
<org.eventb.core.event name="'" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="instanciate_pattern">
<org.eventb.core.parameter name="_O1UjgPqmEeectLZKwQfI0A" org.eventb.core.identifier="inst_components"/>
<org.eventb.core.guard name="_O1UjgvqmEeectLZKwQfI0A" org.eventb.core.label="ic" org.eventb.core.predicate="inst_components ∈ components[{Pat}] ↔ components[{Mdl}]"/>
<org.eventb.core.guard name="_O1Ujg_qmEeectLZKwQfI0A" org.eventb.core.label="icr" org.eventb.core.predicate="inst_components∼ ∈ components[{Mdl}] ⇸ components[{Pat}]"/>
<org.eventb.core.guard name="_O1UjhPqmEeectLZKwQfI0A" org.eventb.core.label="cm" org.eventb.core.predicate="c_mult_others ∈ components[{Pat}] ∖ dom(inst_components) → ℕ"/>
<org.eventb.core.action name="_O1UjhfqmEeectLZKwQfI0A" org.eventb.core.assignment="c_multiplicity ≔ c_multiplicity  (c_mult_others  {pc· pc ∈ dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])})" org.eventb.core.label="c_mult"/>
<org.eventb.core.action name="_O1UjhfqmEeectLZKwQfI0A" org.eventb.core.assignment="c_multiplicity ≔ c_mult" org.eventb.core.label="c_mult"/>
<org.eventb.core.parameter name="_O1UjgfqmEeectLZKwQfI0A" org.eventb.core.identifier="c_mult_others"/>
<org.eventb.core.action name="_O1WYt_qmEeectLZKwQfI0A" org.eventb.core.assignment="to_unfold_c ≔ (components[{Pat}] ∖ dom(container))" org.eventb.core.label="to_unfold_c"/>
<org.eventb.core.action name="_O1WYt_qmEeectLZKwQfI0A" org.eventb.core.assignment="to_unfold_c ≔ (components[{Pat}] ∖ dom(container))∖ c_multiplicity∼[{0}]" org.eventb.core.label="to_unfold_c"/>
<org.eventb.core.action name="_O1WYuPqmEeectLZKwQfI0A" org.eventb.core.assignment="to_unfold_c_in ≔ ∅" org.eventb.core.label="to_unfold_c_in"/>
<org.eventb.core.action name="_O1W_xPqmEeectLZKwQfI0A" org.eventb.core.assignment="components ≔ {Inst} ⩤ components" org.eventb.core.label="components_inst"/>
<org.eventb.core.action name="_O1W_xfqmEeectLZKwQfI0A" org.eventb.core.assignment="container ≔ components[{Inst}] ⩤ container" org.eventb.core.label="container_inst"/>
<org.eventb.core.action name="_O1W_xvqmEeectLZKwQfI0A" org.eventb.core.assignment="to_clone_c ≔ ∅" org.eventb.core.label="to_clone_c"/>
<org.eventb.core.action name="_O1W_x_qmEeectLZKwQfI0A" org.eventb.core.assignment="c_index ≔ ∅" org.eventb.core.label="c_index"/>
<org.eventb.core.action name="_O1W_xvqmEeectLZKwQfI0A" org.eventb.core.assignment="c_index ≔ ∅" org.eventb.core.label="c_index"/>
<org.eventb.core.action name="_O1W_x_qmEeectLZKwQfI0A" org.eventb.core.assignment="c_indexes ≔ ∅" org.eventb.core.label="c_indexes"/>
<org.eventb.core.parameter name="_O1VxofqmEeectLZKwQfI0A" org.eventb.core.identifier="c_mult"/>
<org.eventb.core.guard name="_O1WYsfqmEeectLZKwQfI0A" org.eventb.core.label="cmult" org.eventb.core.predicate="c_mult = (c_mult_others  {pc· pc ∈ dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])})"/>
<org.eventb.core.action name="_O1W_yPqmEeectLZKwQfI0A" org.eventb.core.assignment="inst2pat_c ≔ ∅" org.eventb.core.label="pat2inst_c"/>
<org.eventb.core.action name="_O1Xm1PqmEeectLZKwQfI0A" org.eventb.core.assignment="M ≔ max(ran(c_mult))" org.eventb.core.label="M"/>
</org.eventb.core.event>
<org.eventb.core.variable name="_cQf0YfqUEeectLZKwQfI0A" org.eventb.core.identifier="components"/>
<org.eventb.core.variable name="_cQf0YvqUEeectLZKwQfI0A" org.eventb.core.identifier="container"/>
<org.eventb.core.invariant name="_cQf0Y_qUEeectLZKwQfI0A" org.eventb.core.label="comp" org.eventb.core.predicate="components ∈ Model ↔ Component"/>
<org.eventb.core.invariant name="_cQf0ZPqUEeectLZKwQfI0A" org.eventb.core.label="comp_finite" org.eventb.core.predicate="∀m·finite(components[{m}])"/>
<org.eventb.core.invariant name="_ip9Q0PqUEeectLZKwQfI0A" org.eventb.core.label="comp_not_shared" org.eventb.core.predicate="components∼ ∈ Component ⇸ Model"/>
<org.eventb.core.invariant name="_GMp30PqWEeectLZKwQfI0A" org.eventb.core.label="c_mult" org.eventb.core.predicate="c_multiplicity ∈ components[Pattern] → ℕ"/>
<org.eventb.core.variable name="_gmDo8PqgEeectLZKwQfI0A" org.eventb.core.identifier="c_multiplicity"/>
<org.eventb.core.invariant name="_GMp30PqWEeectLZKwQfI0A" org.eventb.core.label="c_mult" org.eventb.core.predicate="c_multiplicity ∈ components[{Pat}] → ℕ"/>
<org.eventb.core.variable name="_gmDo8PqgEeectLZKwQfI0A" org.eventb.core.identifier="containers"/>
<org.eventb.core.invariant name="_gmDo8fqgEeectLZKwQfI0A" org.eventb.core.label="cont_ty" org.eventb.core.predicate="container ∈ ran(components) ⇸ ran(components)"/>
<org.eventb.core.invariant name="_gmDo8vqgEeectLZKwQfI0A" org.eventb.core.label="cont_ctr" org.eventb.core.predicate="components;container;components∼ ⊆ id"/>
<org.eventb.core.invariant name="_oXBHAPqkEeectLZKwQfI0A" org.eventb.core.label="acycl" org.eventb.core.predicate="∃f· f ∈ Component ↔ Component ∧ container ⊆ f ∧ f;f ⊆ f ∧ id ∩ f = ∅"/>
<org.eventb.core.variable name="_1dqNIPqkEeectLZKwQfI0A" org.eventb.core.identifier="to_clone_c"/>
<org.eventb.core.invariant name="_gmDo8vqgEeectLZKwQfI0A" org.eventb.core.label="cl_ty" org.eventb.core.predicate="containers∈ran(components) ↔ ran(components)"/>
<org.eventb.core.invariant name="_oXBHAPqkEeectLZKwQfI0A" org.eventb.core.label="cl_fin" org.eventb.core.predicate="∀c·finite(containers∼[{c}])"/>
<org.eventb.core.variable name="_1dqNIPqkEeectLZKwQfI0A" org.eventb.core.identifier="c_multiplicity"/>
<org.eventb.core.variable name="_1dqNIfqkEeectLZKwQfI0A" org.eventb.core.identifier="c_index"/>
<org.eventb.core.variable name="_1dqNIvqkEeectLZKwQfI0A" org.eventb.core.identifier="to_unfold_c"/>
<org.eventb.core.invariant name="_1dqNI_qkEeectLZKwQfI0A" org.eventb.core.label="irrefl" org.eventb.core.predicate="container ∩ id = ∅" org.eventb.core.theorem="true"/>
<org.eventb.core.invariant name="_1dqNJPqkEeectLZKwQfI0A" org.eventb.core.label="to_unfold_c_in" org.eventb.core.predicate="to_unfold_c_in ∈ components[{Pat}] ↔ components[{Inst}]"/>
<org.eventb.core.invariant name="_1dq0MPqkEeectLZKwQfI0A" org.eventb.core.comment="From new component to original component" org.eventb.core.label="to_clone_c" org.eventb.core.predicate="to_clone_c ∈ components[{Inst}] ⇸ components[{Pat}]"/>
<org.eventb.core.invariant name="_1dqNI_qkEeectLZKwQfI0A" org.eventb.core.label="cl_cont" org.eventb.core.predicate="container ⊆ containers"/>
<org.eventb.core.invariant name="_1dqNJPqkEeectLZKwQfI0A" org.eventb.core.label="cl_trans" org.eventb.core.predicate="containers;containers ⊆ containers"/>
<org.eventb.core.invariant name="_1dq0MPqkEeectLZKwQfI0A" org.eventb.core.label="cl_left" org.eventb.core.predicate="containers ⊆ container;(containers∪id)"/>
<org.eventb.core.event name="_O1VxoPqmEeectLZKwQfI0A" org.eventb.core.convergence="1" org.eventb.core.extended="false" org.eventb.core.label="unfold_root_c">
<org.eventb.core.guard name="_O1WYsfqmEeectLZKwQfI0A" org.eventb.core.label="c_ty" org.eventb.core.predicate="c ∈ to_unfold_c"/>
<org.eventb.core.guard name="_O1WYsvqmEeectLZKwQfI0A" org.eventb.core.label="new_c_ty" org.eventb.core.predicate="new_c ∈ 1‥c_multiplicity(c) ↣ Component ∖ ran(components)"/>
<org.eventb.core.parameter name="_O1VxofqmEeectLZKwQfI0A" org.eventb.core.identifier="c"/>
<org.eventb.core.parameter name="_O1WYsPqmEeectLZKwQfI0A" org.eventb.core.identifier="new_c"/>
<org.eventb.core.action name="_O1Xm1PqmEeectLZKwQfI0A" org.eventb.core.assignment="components ≔ components ∪ ({Inst}×ran(new_c))" org.eventb.core.label="new_c_model"/>
<org.eventb.core.action name="_O1Xm1fqmEeectLZKwQfI0A" org.eventb.core.assignment="to_clone_c ≔ to_clone_c ∪ (ran(new_c)×{c})" org.eventb.core.label="to_clone_c"/>
<org.eventb.core.action name="_O1Xm1vqmEeectLZKwQfI0A" org.eventb.core.assignment="c_index ≔ c_index ∪ new_c∼" org.eventb.core.label="c_index"/>
<org.eventb.core.action name="_O1Xm1_qmEeectLZKwQfI0A" org.eventb.core.assignment="to_unfold_c ≔ to_unfold_c ∖ {c}" org.eventb.core.label="to_unfold_c"/>
<org.eventb.core.action name="_O1YN4PqmEeectLZKwQfI0A" org.eventb.core.assignment="inst2pat_c ≔ inst2pat_c ∪ (ran(new_c) × {c})" org.eventb.core.label="pat2inst_c"/>
<org.eventb.core.guard name="_O1WYsvqmEeectLZKwQfI0A" org.eventb.core.label="c_ty" org.eventb.core.predicate="c ∈ to_unfold_c"/>
<org.eventb.core.parameter name="_O1WYsPqmEeectLZKwQfI0A" org.eventb.core.identifier="c"/>
<org.eventb.core.action name="_O1Xm1fqmEeectLZKwQfI0A" org.eventb.core.assignment="components ≔ components ∪ ({Inst}×ran(new_c))" org.eventb.core.label="new_c_model"/>
<org.eventb.core.action name="_O1Xm1vqmEeectLZKwQfI0A" org.eventb.core.assignment="to_unfold_c_in ≔ to_unfold_c_in ∪&#10; ((container∼[{c}] ∖ c_multiplicity∼[{0}]) × ran(new_c))" org.eventb.core.label="to_unfold_c_in"/>
<org.eventb.core.action name="_O1Xm1_qmEeectLZKwQfI0A" org.eventb.core.assignment="c_index ≔ c_index ∪ new_c∼" org.eventb.core.label="c_index"/>
<org.eventb.core.guard name="_O1WYs_qmEeectLZKwQfI0A" org.eventb.core.label="new_c_ty" org.eventb.core.predicate="new_c ∈ 1‥c_multiplicity(c) ↣ Component ∖ ran(components)"/>
<org.eventb.core.guard name="_O1WYtPqmEeectLZKwQfI0A" org.eventb.core.label="new_c_fin" org.eventb.core.predicate="finite(ran(new_c))" org.eventb.core.theorem="true"/>
<org.eventb.core.parameter name="_O1W_wPqmEeectLZKwQfI0A" org.eventb.core.identifier="new_c"/>
<org.eventb.core.guard name="_O1WYtfqmEeectLZKwQfI0A" org.eventb.core.label="new_c_card" org.eventb.core.predicate="card(ran(new_c)) = c_multiplicity(c)" org.eventb.core.theorem="true"/>
<org.eventb.core.action name="_O1YN4PqmEeectLZKwQfI0A" org.eventb.core.assignment="to_unfold_c ≔ to_unfold_c ∖ {c}" org.eventb.core.label="to_unfold_c"/>
<org.eventb.core.action name="_O1YN4fqmEeectLZKwQfI0A" org.eventb.core.assignment="inst2pat_c ≔ inst2pat_c ∪ (ran(new_c) × {c})" org.eventb.core.label="pat2inst_c"/>
<org.eventb.core.action name="_O1YN4vqmEeectLZKwQfI0A" org.eventb.core.assignment="c_indexes ≔ c_indexes ∪ {i·i∈ran(new_c) ∣ i↦{c↦new_c∼(i)}}" org.eventb.core.label="c_indexes"/>
</org.eventb.core.event>
<org.eventb.core.event name="_O1WYufqmEeectLZKwQfI0A" org.eventb.core.comment="Variante: spécifier directement la fermeture transitive." org.eventb.core.convergence="1" org.eventb.core.extended="false" org.eventb.core.label="clone_c">
<org.eventb.core.action name="_O1YN4fqmEeectLZKwQfI0A" org.eventb.core.assignment="to_unfold_c_in ≔ to_unfold_c_in ∪ (container∼[{to_clone_c(c)}] × {c})" org.eventb.core.label="to_unfold_c_in"/>
<org.eventb.core.action name="_O1YN4vqmEeectLZKwQfI0A" org.eventb.core.assignment="to_clone_c ≔ {c} ⩤ to_clone_c" org.eventb.core.label="cloned_c"/>
<org.eventb.core.parameter name="_O1W_wPqmEeectLZKwQfI0A" org.eventb.core.identifier="c"/>
<org.eventb.core.guard name="_O1WYs_qmEeectLZKwQfI0A" org.eventb.core.label="c_ty" org.eventb.core.predicate="c ∈ dom(to_clone_c)"/>
</org.eventb.core.event>
<org.eventb.core.event name="_O1W_yfqmEeectLZKwQfI0A" org.eventb.core.comment="réplication des éléments composants // A voir: duplication du contenu de C" org.eventb.core.convergence="1" org.eventb.core.extended="false" org.eventb.core.label="unfold_node_c">
<org.eventb.core.event name="_O1WYufqmEeectLZKwQfI0A" org.eventb.core.comment="réplication des éléments composants // A voir: duplication du contenu de C" org.eventb.core.convergence="1" org.eventb.core.extended="false" org.eventb.core.label="unfold_node_c">
<org.eventb.core.parameter name="_O1W_wfqmEeectLZKwQfI0A" org.eventb.core.identifier="c"/>
<org.eventb.core.guard name="_O1WYtvqmEeectLZKwQfI0A" org.eventb.core.label="c_ty" org.eventb.core.predicate="c ↦ dest ∈ to_unfold_c_in"/>
<org.eventb.core.parameter name="_O1Xm0PqmEeectLZKwQfI0A" org.eventb.core.identifier="dest"/>
<org.eventb.core.parameter name="_O1Xm0fqmEeectLZKwQfI0A" org.eventb.core.identifier="new_c"/>
<org.eventb.core.guard name="_O1W_wvqmEeectLZKwQfI0A" org.eventb.core.label="new_c_ty" org.eventb.core.predicate="new_c ∈ 1‥c_multiplicity(c) ↣ Component ∖ ran(components)"/>
<org.eventb.core.guard name="_O1W_w_qmEeectLZKwQfI0A" org.eventb.core.label="new_c_fin" org.eventb.core.predicate="finite(ran(new_c))" org.eventb.core.theorem="true"/>
<org.eventb.core.guard name="_O1Xm0vqmEeectLZKwQfI0A" org.eventb.core.label="new_c_card" org.eventb.core.predicate="card(ran(new_c)) = c_multiplicity(c)" org.eventb.core.theorem="true"/>
<org.eventb.core.action name="_lyJKIPreEeerIsS6OyYQ4w" org.eventb.core.assignment="components ≔ components ∪ ({Inst}×ran(new_c))" org.eventb.core.label="new_c_model"/>
<org.eventb.core.action name="_rQ0PgftxEeectLZKwQfI0A" org.eventb.core.assignment="container ≔ container ∪ (ran(new_c)×{dest})" org.eventb.core.label="new_c_container"/>
<org.eventb.core.action name="_xQWRoP01EeeINffjS36taQ" org.eventb.core.assignment="to_clone_c ≔ to_clone_c ∪ (ran(new_c)×{c})" org.eventb.core.label="to_clone_c"/>
<org.eventb.core.action name="_254qkAA2EeictLZKwQfI0A" org.eventb.core.assignment="c_index ≔ c_index ∪ new_c∼" org.eventb.core.label="c_index"/>
<org.eventb.core.action name="_254qkQA2EeictLZKwQfI0A" org.eventb.core.assignment="to_unfold_c_in ≔ to_unfold_c_in ∖ {c ↦ dest}" org.eventb.core.label="to_unfold_c_in"/>
<org.eventb.core.action name="_i0ODcAIQEei9ocE08JsPSw" org.eventb.core.assignment="inst2pat_c ≔ inst2pat_c ∪ (ran(new_c) × {c})" org.eventb.core.label="pat2inst_c"/>
<org.eventb.core.guard name="_O1WYtPqmEeectLZKwQfI0A" org.eventb.core.label="c_ty" org.eventb.core.predicate="c ↦ dest ∈ to_unfold_c_in"/>
<org.eventb.core.guard name="_O1WYtfqmEeectLZKwQfI0A" org.eventb.core.label="new_c_ty" org.eventb.core.predicate="new_c ∈ 1‥c_multiplicity(c) ↣ Component ∖ ran(components)"/>
<org.eventb.core.parameter name="_O1Xm0fqmEeectLZKwQfI0A" org.eventb.core.identifier="new_c"/>
<org.eventb.core.action name="_xQWRoP01EeeINffjS36taQ" org.eventb.core.assignment="c_index ≔ c_index ∪ new_c∼" org.eventb.core.label="c_index"/>
<org.eventb.core.action name="_254qkAA2EeictLZKwQfI0A" org.eventb.core.assignment="to_unfold_c_in ≔ (to_unfold_c_in ∖ {c ↦ dest}) ∪&#10; ((container∼[{c}] ∖ c_multiplicity∼[{0}]) × ran(new_c))" org.eventb.core.label="to_unfold_c_in"/>
<org.eventb.core.action name="_ptpcYAxlEeqU6uo9ksjEPA" org.eventb.core.assignment="inst2pat_c ≔ inst2pat_c ∪ (ran(new_c) × {c})" org.eventb.core.label="pat2inst_c"/>
<org.eventb.core.action name="_ptpcYQxlEeqU6uo9ksjEPA" org.eventb.core.assignment="containers ≔ containers ∪ (ran(new_c) × {dest}) ∪ (ran(new_c) × containers[{dest}])" org.eventb.core.label="cont"/>
<org.eventb.core.action name="_ptpcYgxlEeqU6uo9ksjEPA" org.eventb.core.assignment="c_indexes ≔ c_indexes ∪ {i·i∈ran(new_c) ∣ i↦(c_indexes(dest)  {c↦new_c∼(i)})}" org.eventb.core.label="c_indexes"/>
</org.eventb.core.event>
<org.eventb.core.event name="_O1Xm2PqmEeectLZKwQfI0A" org.eventb.core.comment="transformation du modèle" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="apply_pattern">
<org.eventb.core.guard name="_O1WYtvqmEeectLZKwQfI0A" org.eventb.core.label="ic" org.eventb.core.predicate="inst_components ∈ components[{Inst}] ⤔ components[{Mdl}]"/>
<org.eventb.core.guard name="_O1W_wvqmEeectLZKwQfI0A" org.eventb.core.label="nc" org.eventb.core.predicate="new_components ∈ components[{Inst}] ∖ dom(inst_components) ↣ Component ∖ ran(components)"/>
<org.eventb.core.guard name="_O1W_w_qmEeectLZKwQfI0A" org.eventb.core.label="acycl_inst_components" org.eventb.core.predicate="dom(inst_components) ◁ container;inst_components ⊆ inst_components;container"/>
<org.eventb.core.guard name="_O1Xm0vqmEeectLZKwQfI0A" org.eventb.core.label="acycl_container" org.eventb.core.predicate="container[dom(inst_components)] ⊆ dom(inst_components)"/>
<org.eventb.core.event name="_O1W_yfqmEeectLZKwQfI0A" org.eventb.core.comment="transformation du modèle" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="apply_pattern">
<org.eventb.core.parameter name="_rQ0PgPtxEeectLZKwQfI0A" org.eventb.core.comment="instance mapping" org.eventb.core.identifier="inst_components"/>
<org.eventb.core.guard name="_AkqiQAhGEeqU6uo9ksjEPA" org.eventb.core.label="ic" org.eventb.core.predicate="inst_components ∈ components[{Inst}] ⤔ components[{Mdl}]"/>
<org.eventb.core.parameter name="_h4VmkAKrEeiAPf1wPUl3Gw" org.eventb.core.identifier="new_components"/>
<org.eventb.core.action name="_reToAAK7EeiAPf1wPUl3Gw" org.eventb.core.assignment="components ≔ components ∪ ({Mdl}×ran(new_components))" org.eventb.core.label="m"/>
<org.eventb.core.action name="_szQBsAK7EeiAPf1wPUl3Gw" org.eventb.core.assignment="container ≔ container ∪ ((inst_components ∪ new_components)∼;container;(inst_components ∪ new_components))" org.eventb.core.label="f"/>
<org.eventb.core.guard name="_AkqiQQhGEeqU6uo9ksjEPA" org.eventb.core.label="nc" org.eventb.core.predicate="new_components ∈ components[{Inst}] ∖ dom(inst_components) ↣ Component ∖ ran(components)"/>
<org.eventb.core.guard name="_AkqiQghGEeqU6uo9ksjEPA" org.eventb.core.label="acycl_inst_components" org.eventb.core.predicate="dom(inst_components) ◁ container;inst_components ⊆ inst_components;container"/>
<org.eventb.core.guard name="_AkqiQwhGEeqU6uo9ksjEPA" org.eventb.core.label="acycl_container" org.eventb.core.predicate="container[dom(inst_components)] ⊆ dom(inst_components)"/>
<org.eventb.core.action name="__Rz3sAyBEeqU6uo9ksjEPA" org.eventb.core.assignment="components ≔ components ∪ ({Mdl}×ran(new_components))" org.eventb.core.label="m"/>
<org.eventb.core.action name="_nECSUA3EEeqU6uo9ksjEPA" org.eventb.core.assignment="container ≔ container ∪ ((inst_components ∪ new_components)∼;container;(inst_components ∪ new_components))" org.eventb.core.label="f"/>
<org.eventb.core.action name="_nECSUQ3EEeqU6uo9ksjEPA" org.eventb.core.assignment="containers ≔ containers ∪ (new_components∼;containers;inst_components;containers) ∪ (new_components∼;containers;(new_components ∪ inst_components))" org.eventb.core.label="c"/>
</org.eventb.core.event>
<org.eventb.core.invariant name="_l7KVEQA1EeictLZKwQfI0A" org.eventb.core.label="to_unfold_c" org.eventb.core.predicate="to_unfold_c ⊆ components[{Pat}]"/>
<org.eventb.core.invariant name="_l7KVEgA1EeictLZKwQfI0A" org.eventb.core.label="inst2pat_c_ty" org.eventb.core.predicate="inst2pat_c ∈ components[{Inst}] → components[{Pat}]"/>
<org.eventb.core.invariant name="_l7KVEQA1EeictLZKwQfI0A" org.eventb.core.label="cl_irrefl" org.eventb.core.predicate="containers ∩ id = ∅"/>
<org.eventb.core.invariant name="_l7KVEgA1EeictLZKwQfI0A" org.eventb.core.label="cl_comp" org.eventb.core.predicate="components;containers;components∼ ⊆ id"/>
<org.eventb.core.variable name="_9phD8AKqEeiAPf1wPUl3Gw" org.eventb.core.identifier="to_unfold_c_in"/>
<org.eventb.core.invariant name="_Hwdz4AKtEeiAPf1wPUl3Gw" org.eventb.core.label="inst2pat_clone" org.eventb.core.predicate="to_clone_c ⊆ inst2pat_c"/>
<org.eventb.core.invariant name="_Hwdz4AKtEeiAPf1wPUl3Gw" org.eventb.core.label="cl_compr" org.eventb.core.predicate="components;containers∼;components∼ ⊆ id" org.eventb.core.theorem="true"/>
<org.eventb.core.variable name="_xudpYAK5EeiAPf1wPUl3Gw" org.eventb.core.identifier="inst2pat_c"/>
<org.eventb.core.invariant name="_xudpYQK5EeiAPf1wPUl3Gw" org.eventb.core.label="inst2pat_unfold_in" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c ⊆ container"/>
<org.eventb.core.variant name="_yRrOsAK6EeiAPf1wPUl3Gw" org.eventb.core.expression="⋃ c · c∈(to_unfold_c ∪ ran(to_clone_c)) ∣ {c} × inter({ sc ∣ c∈sc ∧ container∼[sc] ⊆ sc})"/>
<org.eventb.core.invariant name="_fxu54ALAEeiAPf1wPUl3Gw" org.eventb.core.label="pat2inst_unfold" org.eventb.core.predicate="to_unfold_c ∩ ran(inst2pat_c) = ∅"/>
<org.eventb.core.invariant name="_PaxdoAMwEei9ocE08JsPSw" org.eventb.core.label="unfold_root" org.eventb.core.predicate="to_unfold_c ∩ dom(container) = ∅"/>
<org.eventb.core.invariant name="_PaxdoQMwEei9ocE08JsPSw" org.eventb.core.label="unfold_in" org.eventb.core.predicate="dom(to_unfold_c_in) ⊆ dom(container)"/>
<org.eventb.core.invariant name="_nieoAAMxEei9ocE08JsPSw" org.eventb.core.label="unfold_unfold_in" org.eventb.core.predicate="to_unfold_c ∩ dom(to_unfold_c_in) = ∅" org.eventb.core.theorem="true"/>
<org.eventb.core.invariant name="_gxZD0AMzEei9ocE08JsPSw" org.eventb.core.label="unfold_clone" org.eventb.core.predicate="to_unfold_c ∩ ran(to_clone_c) = ∅" org.eventb.core.theorem="true"/>
<org.eventb.core.invariant name="_gxZD0QMzEei9ocE08JsPSw" org.eventb.core.label="inst2pat_cont" org.eventb.core.predicate="inst2pat_c;container = container;inst2pat_c"/>
<org.eventb.core.invariant name="_gxZD0gMzEei9ocE08JsPSw" org.eventb.core.label="c_index_ty" org.eventb.core.predicate="c_index ∈ dom(inst2pat_c) → ℕ"/>
<org.eventb.core.invariant name="_V6rHAAM1Eei9ocE08JsPSw" org.eventb.core.label="to_clone_c_mult" org.eventb.core.predicate="∀c· c∈dom(inst2pat_c) ⇒ c_index(c) ∈ 1‥c_multiplicity(inst2pat_c(c))"/>
<org.eventb.core.invariant name="_xudpYQK5EeiAPf1wPUl3Gw" org.eventb.core.label="cont_ctr" org.eventb.core.predicate="components;container;components∼ ⊆ id" org.eventb.core.theorem="true"/>
<org.eventb.core.invariant name="_fxu54ALAEeiAPf1wPUl3Gw" org.eventb.core.label="cont_fin" org.eventb.core.predicate="∀c·finite(container∼[{c}])" org.eventb.core.theorem="true"/>
<org.eventb.core.invariant name="_PaxdoAMwEei9ocE08JsPSw" org.eventb.core.label="irrefl" org.eventb.core.predicate="container ∩ id = ∅" org.eventb.core.theorem="true"/>
<org.eventb.core.invariant name="_nieoAAMxEei9ocE08JsPSw" org.eventb.core.label="cont_mono" org.eventb.core.predicate="∀s,c· s↦c∈container ⇒ containers∼[{s}] ⊂ containers∼[{c}]" org.eventb.core.theorem="true"/>
<org.eventb.core.invariant name="_gxZD0AMzEei9ocE08JsPSw" org.eventb.core.label="to_unfold_c_in" org.eventb.core.predicate="to_unfold_c_in ∈ components[{Pat}] ↔ components[{Inst}]"/>
<org.eventb.core.invariant name="_gxZD0QMzEei9ocE08JsPSw" org.eventb.core.label="to_unfold_c" org.eventb.core.predicate="to_unfold_c ⊆ components[{Pat}]"/>
<org.eventb.core.invariant name="_gxZD0gMzEei9ocE08JsPSw" org.eventb.core.label="inst2pat_c_ty" org.eventb.core.predicate="inst2pat_c ∈ components[{Inst}] → components[{Pat}]"/>
<org.eventb.core.invariant name="_V6rHAAM1Eei9ocE08JsPSw" org.eventb.core.label="inst2pat_unfold_in" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c ⊆ container"/>
<org.eventb.core.variant name="_gEhCEQhLEeqU6uo9ksjEPA" org.eventb.core.expression="(P⇸1‥M)∖c_indexes[dom(inst2pat_c)]"/>
<org.eventb.core.invariant name="_4gspwAkfEeqU6uo9ksjEPA" org.eventb.core.label="pat2inst_unfold" org.eventb.core.predicate="to_unfold_c ∩ ran(inst2pat_c) = ∅"/>
<org.eventb.core.invariant name="_ClMccAk_EeqU6uo9ksjEPA" org.eventb.core.label="unfold_root" org.eventb.core.predicate="to_unfold_c ∩ dom(container) = ∅"/>
<org.eventb.core.invariant name="_6Bzq0AlZEeqU6uo9ksjEPA" org.eventb.core.label="unfold_in" org.eventb.core.predicate="dom(to_unfold_c_in) ⊆ dom(container)"/>
<org.eventb.core.invariant name="_-v2gwAl5EeqU6uo9ksjEPA" org.eventb.core.label="unfold_mul" org.eventb.core.predicate="∀c·c∈to_unfold_c ⇒ c_multiplicity(c) &gt; 0"/>
<org.eventb.core.invariant name="_Ar4dsAl8EeqU6uo9ksjEPA" org.eventb.core.label="unfold_in_mul" org.eventb.core.predicate="∀c·c∈dom(to_unfold_c_in) ⇒ c_multiplicity(c) &gt; 0"/>
<org.eventb.core.invariant name="_byYtUAxjEeqU6uo9ksjEPA" org.eventb.core.label="unfold_in_i2p" org.eventb.core.predicate="ran(to_unfold_c_in) ⊆ dom(inst2pat_c)"/>
<org.eventb.core.invariant name="_ptqDcQxlEeqU6uo9ksjEPA" org.eventb.core.label="unfold_cont" org.eventb.core.predicate="(inst2pat_c;to_unfold_c_in) ∩ container =∅"/>
<org.eventb.core.invariant name="_ptqDcgxlEeqU6uo9ksjEPA" org.eventb.core.label="unfold_unfold_in" org.eventb.core.predicate="to_unfold_c ∩ dom(to_unfold_c_in) = ∅" org.eventb.core.theorem="true"/>
<org.eventb.core.invariant name="_MM724AxtEeqU6uo9ksjEPA" org.eventb.core.label="unfold_fin" org.eventb.core.predicate="∀c·finite(to_unfold_c_in[{c}])" org.eventb.core.theorem="true"/>
<org.eventb.core.invariant name="_MM724QxtEeqU6uo9ksjEPA" org.eventb.core.label="inst2pat_cont" org.eventb.core.predicate="inst2pat_c;container = container;inst2pat_c"/>
<org.eventb.core.variable name="__R1F0AyBEeqU6uo9ksjEPA" org.eventb.core.identifier="M"/>
<org.eventb.core.invariant name="__R1F0QyBEeqU6uo9ksjEPA" org.eventb.core.label="c_index_ty" org.eventb.core.predicate="c_index ∈ dom(inst2pat_c) → ℕ"/>
<org.eventb.core.variable name="_nEDgcA3EEeqU6uo9ksjEPA" org.eventb.core.identifier="P"/>
<org.eventb.core.variable name="_nEDgcQ3EEeqU6uo9ksjEPA" org.eventb.core.identifier="c_indexes"/>
<org.eventb.core.invariant name="_nEDgcg3EEeqU6uo9ksjEPA" org.eventb.core.label="to_clone_c_mult" org.eventb.core.predicate="∀c· c∈dom(inst2pat_c) ⇒ c_index(c) ∈ 1‥c_multiplicity(inst2pat_c(c))"/>
<org.eventb.core.invariant name="_nEDgcw3EEeqU6uo9ksjEPA" org.eventb.core.label="M_fin" org.eventb.core.predicate="finite(ran(c_multiplicity))" org.eventb.core.theorem="true"/>
<org.eventb.core.invariant name="_nEDgdA3EEeqU6uo9ksjEPA" org.eventb.core.label="M" org.eventb.core.predicate="M = max(ran(c_multiplicity))"/>
<org.eventb.core.invariant name="_nEDgdQ3EEeqU6uo9ksjEPA" org.eventb.core.label="P" org.eventb.core.predicate="P = components[{Pat}]"/>
<org.eventb.core.invariant name="_3N038Q6WEeqU6uo9ksjEPA" org.eventb.core.label="P_fin" org.eventb.core.predicate="finite(P)" org.eventb.core.theorem="true"/>
<org.eventb.core.invariant name="_rcyHQA6gEeqU6uo9ksjEPA" org.eventb.core.label="c_indexes_ty" org.eventb.core.predicate="c_indexes ∈ dom(inst2pat_c) ↣ (P ⇸ 1‥M)"/>
<org.eventb.core.invariant name="_rcyHQQ6gEeqU6uo9ksjEPA" org.eventb.core.label="c_indexes_dom" org.eventb.core.predicate="∀i·i∈dom(inst2pat_c) ⇒ dom(c_indexes(i)) = (containers∪id)[{inst2pat_c(i)}]"/>
<org.eventb.core.invariant name="_2SMx0Q7FEeqU6uo9ksjEPA" org.eventb.core.label="c_indexes_val" org.eventb.core.predicate="∀i·i∈dom(inst2pat_c) ⇒ c_indexes(i) = inst2pat_c∼;(((containers∪id)[{i}]) ◁ c_index)"/>
<org.eventb.core.invariant name="_2SMx0g7FEeqU6uo9ksjEPA" org.eventb.core.label="i2p_dom" org.eventb.core.predicate="∀i·i∈dom(inst2pat_c) ⇒ containers[{i}] ⊆ dom(inst2pat_c)"/>
<org.eventb.core.invariant name="_2SMx0w7FEeqU6uo9ksjEPA" org.eventb.core.label="unfold_index_ext" org.eventb.core.predicate="∀c,m· c ∈ to_unfold_c ∧ m∈ran(c_indexes) ⇒ c∉dom(m)"/>
<org.eventb.core.invariant name="_2SMx1A7FEeqU6uo9ksjEPA" org.eventb.core.label="unfold_in_index_ext" org.eventb.core.predicate="∀c,i,m· c↦i ∈ to_unfold_c_in ∧ c_indexes(i)⊆m ∧ m ∈ ran(c_indexes) ⇒ c∉dom(m)"/>
<org.eventb.core.invariant name="_iR6UgA7fEeqU6uo9ksjEPA" org.eventb.core.label="unfold_index" org.eventb.core.predicate="∀c,k· c ∈ to_unfold_c ∧ k∈1‥M ⇒&#10; {c ↦ k} ∉ ran(c_indexes)" org.eventb.core.theorem="true"/>
<org.eventb.core.invariant name="_BSFPUBEBEeqU6uo9ksjEPA" org.eventb.core.label="unfold_in_index" org.eventb.core.predicate="∀c,i,k· c↦i ∈ to_unfold_c_in ∧ k∈1‥M ⇒&#10; (c_indexes(i)  {c↦k}) ∉ ran(c_indexes)" org.eventb.core.theorem="true"/>
</org.eventb.core.machineFile>
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.psFile>
<org.eventb.core.psStatus name="transp_src/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="77" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="transp_dst/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="77" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="transp_correct1/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="77" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="transp_correct2/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="77" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="FIN" org.eventb.core.confidence="0" org.eventb.core.poStamp="77" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/transp_ctr1/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/transp_ctr2/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/transp_ctr3/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/transp_ctr4/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/link_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/link_finite/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/link_not_shared/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/src_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/dst_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/link_cii/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/link_coi/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/link_coo/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/link_cio/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/transp_src/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/transp_dst/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/c_links_done/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/inst2pat_l_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/inst2pat_l_preserve_type/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/inst2pat_l_src/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/inst2pat_l_dst/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/transp_correct1/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/transp_correct2/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_root_c/link_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_root_c/transp_src/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_root_c/transp_dst/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_root_c/c_links_done/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_root_c/inst2pat_l_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_root_c/transp_correct1/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_root_c/transp_correct2/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_p/src_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_p/dst_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_p/link_cii/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_p/link_coi/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_p/link_coo/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_p/link_cio/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_p/transp_src/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_p/transp_dst/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_p/inst2pat_l_src/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_p/inst2pat_l_dst/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_p/transp_correct1/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_p/transp_correct2/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_c/link_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_c/link_cii/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_c/link_coi/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/link_coo/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_c/transp_src/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_c/transp_dst/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_c/c_links_done/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_c/inst2pat_l_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/transp_correct1/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/transp_correct2/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/src_o/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/dst_i/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/sci/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/sci_ctr/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/dci/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/dci_ctr/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/spi_ty/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/spi_ctr/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/spi_p_index/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/dpi_ty/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/dpi_ctr/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/dpi_p_index/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/new_l_ty/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/link_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/link_finite/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/link_not_shared/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/src_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/dst_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/link_cii/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/link_coi/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/link_coo/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/link_cio/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/transp_src/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/transp_dst/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/c_links_done/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/inst2pat_l_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/inst2pat_l_preserve_type/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/inst2pat_l_src/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/inst2pat_l_dst/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/transp_correct1/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/transp_correct2/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/nsrc/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/ndst/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_link_oi_Transpose/VAR" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="apply_pattern/link_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_pattern/link_finite/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_pattern/link_not_shared/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_pattern/src_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_pattern/dst_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_pattern/link_cii/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_pattern/link_coi/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_pattern/link_coo/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_pattern/link_cio/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_pattern/transp_src/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="apply_pattern/transp_dst/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="apply_pattern/c_links_done/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="apply_pattern/inst2pat_l_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="apply_pattern/inst2pat_l_src/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="apply_pattern/inst2pat_l_dst/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="apply_pattern/transp_correct1/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="apply_pattern/transp_correct2/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="apply_link_pattern/link_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_link_pattern/link_finite/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_link_pattern/link_not_shared/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_link_pattern/src_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_link_pattern/dst_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_link_pattern/link_cii/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_link_pattern/link_coi/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_link_pattern/link_coo/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_link_pattern/link_cio/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_link_pattern/transp_src/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_link_pattern/transp_dst/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_link_pattern/c_links_done/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_link_pattern/inst2pat_l_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_link_pattern/inst2pat_l_src/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_link_pattern/inst2pat_l_dst/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_link_pattern/transp_correct1/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_link_pattern/transp_correct2/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="79" org.eventb.core.psManual="true"/>
</org.eventb.core.psFile>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.machineFile org.eventb.core.configuration="org.eventb.core.fwd;de.prob.units.mchBase;org.eventb.codegen.ui.cgConfig" org.eventb.texttools.text_lastmodified="1522166476577" org.eventb.texttools.text_representation="machine mLink refines mPort sees cLink&#10;&#10;variables components container c_multiplicity to_clone_c c_index to_unfold_c to_unfold_c_in inst2pat_c properties ports p_multiplicity p_index to_unfold_p_in inst2pat_p links src dst c_links_done inst2pat_l&#10;&#10;invariants&#10; @link_ty links ∈ ran(components) ↔ Link&#10; @link_finite ∀c·finite(links[{c}])&#10; @link_not_shared links∼ ∈ Link ⇸ Component&#10; @src_ty src ∈ ran(links) → ran(ports)&#10; @dst_ty dst ∈ ran(links) → ran(ports)&#10; @link_cii links; ((src ⊗ dst) ▷ (IPort × IPort)) ⊆ ports ⊗ (container∼; ports)&#10; @link_coi links; ((src ⊗ dst) ▷ (OPort × IPort)) ⊆ (container∼;ports) ⊗ (container∼; ports)&#10; @link_coo links; ((src ⊗ dst) ▷ (OPort × OPort)) ⊆ (container∼; ports) ⊗ ports&#10; @link_cio links; ((src ⊗ dst) ▷ (IPort × OPort)) ⊆ ports ⊗ ports&#10; @transp_src ∀l·l∈(components;links)[{Pat}]∩Transpose ⇒ p_multiplicity(src(l)) = c_multiplicity(ports∼(dst(l)))&#10; @transp_dst ∀l·l∈(components;links)[{Pat}]∩Transpose ⇒ p_multiplicity(dst(l)) = c_multiplicity(ports∼(src(l)))&#10; @c_links_done c_links_done ⊆ (components;links)[{Pat}] × components[{Inst}]&#10; @inst2pat_l_ty inst2pat_l ∈ (components;links)[{Inst}] → (components;links)[{Pat}]&#10; @inst2pat_l_preserve_type ∀K·K∈LKind ⇒ inst2pat_l[K] ⊆ K&#10; @inst2pat_l_src inst2pat_l;src = src;inst2pat_p&#10; @inst2pat_l_dst inst2pat_l;dst = dst;inst2pat_p&#10; @transp_correct1 ∀l·l∈(components;links)[{Inst}] ∩ Transpose ⇒ p_index(src(l)) = c_index(ports∼(dst(l)))&#10; @transp_correct2 ∀l·l∈(components;links)[{Inst}] ∩ Transpose ⇒ p_index(dst(l)) = c_index(ports∼(src(l)))&#10;&#10;variant ((components;links)[{Pat}] × components[{Inst}]) ∖ c_links_done&#10;&#10;events&#10; event instanciate_pattern extends instanciate_pattern&#10; where&#10; @transp_ctr1 ∀l·l∈(components;links)[{Pat}]∩Transpose ∧ ports∼(dst(l)) ∈ dom(inst_components) ⇒ card(inst_ports[{src(l)}])=card(inst_components[{ports∼(dst(l))}])&#10; @transp_ctr2 ∀l·l∈(components;links)[{Pat}]∩Transpose ∧ ports∼(dst(l)) ∉ dom(inst_components) ⇒ card(inst_ports[{src(l)}])=c_mult_others(ports∼(dst(l)))&#10; @transp_ctr3 ∀l·l∈(components;links)[{Pat}]∩Transpose ∧ ports∼(src(l)) ∈ dom(inst_components) ⇒ card(inst_ports[{dst(l)}])=card(inst_components[{ports∼(src(l))}])&#10; @transp_ctr4 ∀l·l∈(components;links)[{Pat}]∩Transpose ∧ ports∼(src(l)) ∉ dom(inst_components) ⇒ card(inst_ports[{dst(l)}])=c_mult_others(ports∼(src(l)))&#10; then&#10; @links links ≔ components[{Inst}] ⩤ links&#10; @src src ≔ (components;links)[{Inst}] ⩤ src&#10; @dst dst ≔ (components;links)[{Inst}] ⩤ dst&#10; @inst2pat_l inst2pat_l ≔ ∅&#10; @c_links_done c_links_done ≔ ∅&#10; end&#10;&#10; event unfold_root_c extends unfold_root_c&#10; end&#10;&#10; event unfold_p extends unfold_p&#10; end&#10;&#10; event clone_c extends clone_c&#10; end&#10;&#10; event unfold_node_c extends unfold_node_c&#10; end&#10;&#10; convergent event unfold_node_link_oi_Transpose // between 2 subcomponents&#10; any spi sci dpi&#10; dci // source/dest ports and components in instance&#10; l new_l&#10; c // container&#10;&#10; where&#10; @l_ty l ∈ (components;links)[{Pat}] ∩ Transpose&#10; @src_o src(l) ∈ OPort&#10; @dst_i dst(l) ∈ IPort&#10; @c c ∈ components[{Inst}] ∩ dom(inst2pat_c)&#10; @not_done l↦c ∉ c_links_done&#10; @sci sci ∈ 1‥c_multiplicity(ports∼(src(l))) ↣ container∼[{c}]&#10; @sci_ctr inst2pat_c[ran(sci)] ⊆ {ports∼(src(l))}&#10; @sci_c_index sci;c_index = id&#10; @dci dci ∈ 1‥c_multiplicity(ports∼(dst(l))) ↣ container∼[{c}]&#10; @dci_ctr inst2pat_c[ran(dci)] ⊆ {ports∼(dst(l))}&#10; @dci_c_index dci;c_index = id&#10; @spi_ty spi ∈ ran(sci) → (1‥p_multiplicity(src(l)) ↣ inst2pat_p∼[{src(l)}])&#10; @spi_ctr ∀ci·ci∈ran(sci) ⇒ spi(ci) ∈ 1‥p_multiplicity(src(l)) ↣ ports[{ci}] ∩ OPort&#10; @spi_p_index ∀ci·ci∈ran(sci) ⇒ spi(ci);p_index = id&#10; @dpi_ty dpi ∈ ran(dci) → (1‥p_multiplicity(dst(l)) ↣ inst2pat_p∼[{dst(l)}])&#10; @dpi_ctr ∀ci·ci∈ran(dci) ⇒ dpi(ci) ∈ 1‥p_multiplicity(dst(l)) ↣ ports[{ci}] ∩ IPort&#10; @dpi_p_index ∀ci·ci∈ran(dci) ⇒ dpi(ci);p_index = id&#10; @new_l_ty new_l ∈ 1‥p_multiplicity(src(l)) × 1‥c_multiplicity(ports∼(src(l))) ↣ Transpose ∖ ran(links)&#10; then&#10; @links links ≔ links ∪ ({c} × ran(new_l))&#10; @nsrc src ≔ src ∪ {ip,ic· ip ↦ ic ∈ dom(new_l) ∣ new_l(ip↦ic) ↦ spi(sci(ic))(ip)}&#10; @ndst dst ≔ dst ∪ {ip,ic· ip ↦ ic ∈ dom(new_l) ∣ new_l(ip↦ic) ↦ dpi(dci(ip))(ic)}&#10; @inst2pat_l inst2pat_l ≔ inst2pat_l ∪ (ran(new_l) × {l})&#10; @c_links_done c_links_done ≔ c_links_done ∪ {l↦c}&#10; end&#10;&#10; event apply_pattern extends apply_pattern&#10; any inst_links new_links&#10; where&#10; @inst_links_ty inst_links ∈ (components;links)[{Inst}] ⤔ (components;links)[{Mdl}]&#10; @inst_src inst_links ; src ⊆ src; inst_ports // Les ports sources d'un lien instancié sont instanciés&#10; @inst_dst inst_links ; dst ⊆ dst; inst_ports // Les ports cibles d'un lien instancié sont instanciés&#10; @nl new_links ∈ (components;links)[{Inst}] ∖ dom(inst_links) ↣ Link ∖ ran(links)&#10; then&#10; @s src ≔ src  (new_links∼;src;(inst_ports ∪ new_ports))&#10; @d dst ≔ dst  (new_links∼;dst;(inst_ports ∪ new_ports))&#10; @l links ≔ links ∪ ((inst_components∪new_components)∼;links;new_links)&#10; end&#10;end&#10;" version="5">
<org.eventb.core.refinesMachine name="_a6WF0MOWEeeQteb5bDCu6g" org.eventb.core.target="mPort"/>
<org.eventb.core.seesContext name="_a6WF0cOWEeeQteb5bDCu6g" org.eventb.core.target="cLink"/>
<org.eventb.core.event name="'" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="instanciate_pattern">
<org.eventb.core.refinesEvent name="_ypF-0PlnEeeeS5KQUtrGlw" org.eventb.core.target="instanciate_pattern"/>
<org.eventb.core.guard name="_S_eIJL4_EeeN0675uvquSw" org.eventb.core.label="transp_ctr1" org.eventb.core.predicate="∀l·l∈(components;links)[{Pat}]∩Transpose ∧ ports∼(dst(l)) ∈ dom(inst_components) ⇒ card(inst_ports[{src(l)}])=card(inst_components[{ports∼(dst(l))}])"/>
<org.eventb.core.guard name="_S_eIJb4_EeeN0675uvquSw" org.eventb.core.label="transp_ctr2" org.eventb.core.predicate="∀l·l∈(components;links)[{Pat}]∩Transpose ∧ ports∼(dst(l)) ∉ dom(inst_components) ⇒ card(inst_ports[{src(l)}])=c_mult_others(ports∼(dst(l)))"/>
<org.eventb.core.guard name="_S_eIJr4_EeeN0675uvquSw" org.eventb.core.label="transp_ctr3" org.eventb.core.predicate="∀l·l∈(components;links)[{Pat}]∩Transpose ∧ ports∼(src(l)) ∈ dom(inst_components) ⇒ card(inst_ports[{dst(l)}])=card(inst_components[{ports∼(src(l))}])"/>
<org.eventb.core.guard name="_S_eIJ74_EeeN0675uvquSw" org.eventb.core.label="transp_ctr4" org.eventb.core.predicate="∀l·l∈(components;links)[{Pat}]∩Transpose ∧ ports∼(src(l)) ∉ dom(inst_components) ⇒ card(inst_ports[{dst(l)}])=c_mult_others(ports∼(src(l)))"/>
<org.eventb.core.action name="_S_evNr4_EeeN0675uvquSw" org.eventb.core.assignment="links ≔ components[{Inst}] ⩤ links" org.eventb.core.label="links"/>
<org.eventb.core.action name="_oe6yMMOjEeeQteb5bDCu6g" org.eventb.core.assignment="src ≔ (components;links)[{Inst}] ⩤ src" org.eventb.core.label="src"/>
<org.eventb.core.action name="_oe6yMcOjEeeQteb5bDCu6g" org.eventb.core.assignment="dst ≔ (components;links)[{Inst}] ⩤ dst" org.eventb.core.label="dst"/>
<org.eventb.core.action name="_0IWfoAK-EeiAPf1wPUl3Gw" org.eventb.core.assignment="inst2pat_l ≔ ∅" org.eventb.core.label="inst2pat_l"/>
<org.eventb.core.action name="_SwNs4ALXEei9ocE08JsPSw" org.eventb.core.assignment="c_links_done ≔ ∅" org.eventb.core.label="c_links_done"/>
</org.eventb.core.event>
<org.eventb.core.variable name="_S_fWQr4_EeeN0675uvquSw" org.eventb.core.identifier="components"/>
<org.eventb.core.variable name="_S_fWRL4_EeeN0675uvquSw" org.eventb.core.identifier="container"/>
<org.eventb.core.variable name="_S_fWRb4_EeeN0675uvquSw" org.eventb.core.identifier="c_multiplicity"/>
<org.eventb.core.variable name="_S_fWRr4_EeeN0675uvquSw" org.eventb.core.identifier="to_clone_c"/>
<org.eventb.core.invariant name="_S_fWR74_EeeN0675uvquSw" org.eventb.core.label="link_ty" org.eventb.core.predicate="links ∈ ran(components) ↔ Link"/>
<org.eventb.core.invariant name="_S_fWSL4_EeeN0675uvquSw" org.eventb.core.label="link_finite" org.eventb.core.predicate="∀c·finite(links[{c}])"/>
<org.eventb.core.invariant name="_S_f9UL4_EeeN0675uvquSw" org.eventb.core.label="link_not_shared" org.eventb.core.predicate="links∼ ∈ Link ⇸ Component"/>
<org.eventb.core.invariant name="_S_f9Ub4_EeeN0675uvquSw" org.eventb.core.label="src_ty" org.eventb.core.predicate="src ∈ ran(links) → ran(ports)"/>
<org.eventb.core.invariant name="_S_f9Ur4_EeeN0675uvquSw" org.eventb.core.label="dst_ty" org.eventb.core.predicate="dst ∈ ran(links) → ran(ports)"/>
<org.eventb.core.variable name="_73nGMMOYEeeQteb5bDCu6g" org.eventb.core.identifier="c_index"/>
<org.eventb.core.variable name="_0ffzsMOZEeeQteb5bDCu6g" org.eventb.core.identifier="to_unfold_c"/>
<org.eventb.core.invariant name="_0ffzssOZEeeQteb5bDCu6g" org.eventb.core.label="link_cii" org.eventb.core.predicate="links; ((src ⊗ dst) ▷ (IPort × IPort)) ⊆ ports ⊗ (container∼; ports)"/>
<org.eventb.core.variable name="_j2NdQOGVEeeUoZak4Ibgcg" org.eventb.core.identifier="to_unfold_c_in"/>
<org.eventb.core.variable name="_j2NdQeGVEeeUoZak4Ibgcg" org.eventb.core.identifier="inst2pat_c"/>
<org.eventb.core.event name="_JZbnAOGWEeeUoZak4Ibgcg" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="unfold_root_c">
<org.eventb.core.refinesEvent name="_7XcAsAK3EeiAPf1wPUl3Gw" org.eventb.core.target="unfold_root_c"/>
</org.eventb.core.event>
<org.eventb.core.variable name="_QZUfgOTyEeemadOWCHlIvw" org.eventb.core.identifier="cProperties"/>
<org.eventb.core.variable name="_QZUfgeTyEeemadOWCHlIvw" org.eventb.core.identifier="ports"/>
<org.eventb.core.event name="_QZUfguTyEeemadOWCHlIvw" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="unfold_p">
<org.eventb.core.refinesEvent name="_-RPi0P06Eees7pYemx4WBQ" org.eventb.core.target="unfold_p"/>
</org.eventb.core.event>
<org.eventb.core.event name="_QZVGk-TyEeemadOWCHlIvw" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="clone_c">
<org.eventb.core.refinesEvent name="_-RQJ4P06Eees7pYemx4WBQ" org.eventb.core.target="clone_c"/>
</org.eventb.core.event>
<org.eventb.core.variable name="_Z5iv0Pg-EeeeS5KQUtrGlw" org.eventb.core.identifier="p_multiplicity"/>
<org.eventb.core.variable name="_Z5iv0fg-EeeeS5KQUtrGlw" org.eventb.core.identifier="p_index"/>
<org.eventb.core.invariant name="_Z5iv0vg-EeeeS5KQUtrGlw" org.eventb.core.label="link_coi" org.eventb.core.predicate="links; ((src ⊗ dst) ▷ (OPort × IPort)) ⊆ (container∼;ports) ⊗ (container∼; ports)"/>
<org.eventb.core.event name="_H7W2gPg_EeeeS5KQUtrGlw" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="unfold_node_c">
<org.eventb.core.refinesEvent name="_7XlKoAK3EeiAPf1wPUl3Gw" org.eventb.core.target="unfold_node_c"/>
</org.eventb.core.event>
<org.eventb.core.event name="_ypJCIflnEeeeS5KQUtrGlw" org.eventb.core.comment="between 2 subcomponents" org.eventb.core.convergence="1" org.eventb.core.extended="false" org.eventb.core.label="unfold_node_link_oi_Transpose">
<org.eventb.core.parameter name="_S_dhEr4_EeeN0675uvquSw" org.eventb.core.identifier="spi"/>
<org.eventb.core.parameter name="_S_eIIL4_EeeN0675uvquSw" org.eventb.core.identifier="sci"/>
<org.eventb.core.parameter name="_JZbnAuGWEeeUoZak4Ibgcg" org.eventb.core.identifier="dpi"/>
<org.eventb.core.guard name="_JZbnBOGWEeeUoZak4Ibgcg" org.eventb.core.label="l_ty" org.eventb.core.predicate="l ∈ (components;links)[{Pat}] ∩ Transpose"/>
<org.eventb.core.guard name="_nOhFweGpEeeUoZak4Ibgcg" org.eventb.core.label="src_o" org.eventb.core.predicate="src(l) ∈ OPort"/>
<org.eventb.core.guard name="_yq8FweGpEeeUoZak4Ibgcg" org.eventb.core.label="dst_i" org.eventb.core.predicate="dst(l) ∈ IPort"/>
<org.eventb.core.guard name="_3EQ2ceGpEeeUoZak4Ibgcg" org.eventb.core.label="c" org.eventb.core.predicate="c ∈ components[{Inst}] ∩ dom(inst2pat_c)"/>
<org.eventb.core.guard name="_RYtJ0uT7EeemadOWCHlIvw" org.eventb.core.label="not_done" org.eventb.core.predicate="l↦c ∉ c_links_done"/>
<org.eventb.core.guard name="_RYtJ0-T7EeemadOWCHlIvw" org.eventb.core.label="sci" org.eventb.core.predicate="sci ∈ 1‥c_multiplicity(ports∼(src(l))) ↣ container∼[{c}]"/>
<org.eventb.core.guard name="_RYtJ1OT7EeemadOWCHlIvw" org.eventb.core.label="sci_ctr" org.eventb.core.predicate="inst2pat_c[ran(sci)] ⊆ {ports∼(src(l))}"/>
<org.eventb.core.parameter name="_nOhFwOGpEeeUoZak4Ibgcg" org.eventb.core.comment="source/dest ports and components in instance" org.eventb.core.identifier="dci"/>
<org.eventb.core.parameter name="_RYtJ0OT7EeemadOWCHlIvw" org.eventb.core.identifier="l"/>
<org.eventb.core.parameter name="_nHIsIARrEei9ocE08JsPSw" org.eventb.core.identifier="new_l"/>
<org.eventb.core.parameter name="_nHJTMARrEei9ocE08JsPSw" org.eventb.core.comment="container" org.eventb.core.identifier="c"/>
<org.eventb.core.guard name="_RYtJ1eT7EeemadOWCHlIvw" org.eventb.core.label="sci_c_index" org.eventb.core.predicate="sci;c_index = id"/>
<org.eventb.core.guard name="_WfAcMAK-EeiAPf1wPUl3Gw" org.eventb.core.label="dci" org.eventb.core.predicate="dci ∈ 1‥c_multiplicity(ports∼(dst(l))) ↣ container∼[{c}]"/>
<org.eventb.core.guard name="_nHJTNQRrEei9ocE08JsPSw" org.eventb.core.label="dci_ctr" org.eventb.core.predicate="inst2pat_c[ran(dci)] ⊆ {ports∼(dst(l))}"/>
<org.eventb.core.action name="_ov6eYALXEei9ocE08JsPSw" org.eventb.core.assignment="links ≔ links ∪ ({c} × ran(new_l))" org.eventb.core.label="links"/>
<org.eventb.core.action name="_ztHbMAaaEeiFlqW-8GKglg" org.eventb.core.assignment="src ≔ src ∪ {ip,ic· ip ↦ ic ∈ dom(new_l) ∣ new_l(ip↦ic) ↦ spi(sci(ic))(ip)}" org.eventb.core.label="nsrc"/>
<org.eventb.core.action name="_1ZIboAabEeiFlqW-8GKglg" org.eventb.core.assignment="dst ≔ dst ∪ {ip,ic· ip ↦ ic ∈ dom(new_l) ∣ new_l(ip↦ic) ↦ dpi(dci(ip))(ic)}" org.eventb.core.label="ndst"/>
<org.eventb.core.guard name="_DdBJsAc3EeiFlqW-8GKglg" org.eventb.core.label="dci_c_index" org.eventb.core.predicate="dci;c_index = id"/>
<org.eventb.core.guard name="_70QzIAc3EeiFlqW-8GKglg" org.eventb.core.label="spi_ty" org.eventb.core.predicate="spi ∈ ran(sci) → (1‥p_multiplicity(src(l)) ↣ inst2pat_p∼[{src(l)}])"/>
<org.eventb.core.guard name="_6bPz8AdGEeiFlqW-8GKglg" org.eventb.core.label="spi_ctr" org.eventb.core.predicate="∀ci·ci∈ran(sci) ⇒ spi(ci) ∈ 1‥p_multiplicity(src(l)) ↣ ports[{ci}] ∩ OPort"/>
<org.eventb.core.guard name="_6bPz8QdGEeiFlqW-8GKglg" org.eventb.core.label="spi_p_index" org.eventb.core.predicate="∀ci·ci∈ran(sci) ⇒ spi(ci);p_index = id"/>
<org.eventb.core.guard name="_nxuuQQi-EeiFlqW-8GKglg" org.eventb.core.label="dpi_ty" org.eventb.core.predicate="dpi ∈ ran(dci) → (1‥p_multiplicity(dst(l)) ↣ inst2pat_p∼[{dst(l)}])"/>
<org.eventb.core.guard name="_quOpsAjAEeiFlqW-8GKglg" org.eventb.core.label="dpi_ctr" org.eventb.core.predicate="∀ci·ci∈ran(dci) ⇒ dpi(ci) ∈ 1‥p_multiplicity(dst(l)) ↣ ports[{ci}] ∩ IPort"/>
<org.eventb.core.guard name="_BL1LoAkjEeiFlqW-8GKglg" org.eventb.core.label="dpi_p_index" org.eventb.core.predicate="∀ci·ci∈ran(dci) ⇒ dpi(ci);p_index = id"/>
<org.eventb.core.guard name="_BL1ysAkjEeiFlqW-8GKglg" org.eventb.core.label="new_l_ty" org.eventb.core.predicate="new_l ∈ 1‥p_multiplicity(src(l)) × 1‥c_multiplicity(ports∼(src(l))) ↣ Transpose ∖ ran(links)"/>
<org.eventb.core.action name="_1ZIboQabEeiFlqW-8GKglg" org.eventb.core.assignment="inst2pat_l ≔ inst2pat_l ∪ (ran(new_l) × {l})" org.eventb.core.label="inst2pat_l"/>
<org.eventb.core.action name="_czs-oAi3EeiFlqW-8GKglg" org.eventb.core.assignment="c_links_done ≔ c_links_done ∪ {l↦c}" org.eventb.core.label="c_links_done"/>
</org.eventb.core.event>
<org.eventb.core.variable name="_Ajk8sPloEeeeS5KQUtrGlw" org.eventb.core.identifier="to_unfold_p_in"/>
<org.eventb.core.invariant name="_GNeQ0_qOEeectLZKwQfI0A" org.eventb.core.label="link_coo" org.eventb.core.predicate="links; ((src ⊗ dst) ▷ (OPort × OPort)) ⊆ (container∼; ports) ⊗ ports"/>
<org.eventb.core.invariant name="_GNe34PqOEeectLZKwQfI0A" org.eventb.core.label="link_cio" org.eventb.core.predicate="links; ((src ⊗ dst) ▷ (IPort × OPort)) ⊆ ports ⊗ ports"/>
<org.eventb.core.invariant name="_69ZZAPq0EeectLZKwQfI0A" org.eventb.core.label="transp_src" org.eventb.core.predicate="∀l·l∈(components;links)[{Pat}]∩Transpose ⇒ p_multiplicity(src(l)) = c_multiplicity(ports∼(dst(l)))"/>
<org.eventb.core.variable name="_X1DEEAA3EeictLZKwQfI0A" org.eventb.core.identifier="inst2pat_p"/>
<org.eventb.core.variable name="_X1DEEQA3EeictLZKwQfI0A" org.eventb.core.identifier="links"/>
<org.eventb.core.variable name="_X1DEEgA3EeictLZKwQfI0A" org.eventb.core.identifier="src"/>
<org.eventb.core.variable name="_X1DEEwA3EeictLZKwQfI0A" org.eventb.core.identifier="dst"/>
<org.eventb.core.invariant name="_X1DEFAA3EeictLZKwQfI0A" org.eventb.core.label="transp_dst" org.eventb.core.predicate="∀l·l∈(components;links)[{Pat}]∩Transpose ⇒ p_multiplicity(dst(l)) = c_multiplicity(ports∼(src(l)))"/>
<org.eventb.core.event name="_u6P4gAK9EeiAPf1wPUl3Gw" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="apply_pattern">
<org.eventb.core.refinesEvent name="_u6P4gQK9EeiAPf1wPUl3Gw" org.eventb.core.target="apply_pattern"/>
<org.eventb.core.parameter name="_nHJTMQRrEei9ocE08JsPSw" org.eventb.core.identifier="inst_links"/>
<org.eventb.core.action name="_czuz0gi3EeiFlqW-8GKglg" org.eventb.core.assignment="src ≔ src  (new_links∼;src;(inst_ports ∪ new_ports))" org.eventb.core.label="s"/>
<org.eventb.core.parameter name="_nxuuQAi-EeiFlqW-8GKglg" org.eventb.core.identifier="new_links"/>
<org.eventb.core.guard name="_Bszp0AsoEeigQsLVMUeRQw" org.eventb.core.label="inst_links_ty" org.eventb.core.predicate="inst_links ∈ (components;links)[{Inst}] ⤔ (components;links)[{Mdl}]"/>
<org.eventb.core.guard name="_G8ASkAsoEeigQsLVMUeRQw" org.eventb.core.comment="Les ports sources d'un lien instancié sont instanciés" org.eventb.core.label="inst_src" org.eventb.core.predicate="inst_links ; src ⊆ src; inst_ports"/>
<org.eventb.core.guard name="_78O84AsoEeigQsLVMUeRQw" org.eventb.core.comment="Les ports cibles d'un lien instancié sont instanciés" org.eventb.core.label="inst_dst" org.eventb.core.predicate="inst_links ; dst ⊆ dst; inst_ports"/>
<org.eventb.core.guard name="_78O84QsoEeigQsLVMUeRQw" org.eventb.core.label="nl" org.eventb.core.predicate="new_links ∈ (components;links)[{Inst}] ∖ dom(inst_links) ↣ Link ∖ ran(links)"/>
<org.eventb.core.action name="_vsWoMAs_EeiJbMmmYBswhA" org.eventb.core.assignment="dst ≔ dst  (new_links∼;dst;(inst_ports ∪ new_ports))" org.eventb.core.label="d"/>
<org.eventb.core.action name="_Ce3aEAtCEeiJbMmmYBswhA" org.eventb.core.assignment="links ≔ links ∪ ((inst_components∪new_components)∼;links;new_links)" org.eventb.core.label="l"/>
</org.eventb.core.event>
<org.eventb.core.invariant name="_ocRYQAbKEeiFlqW-8GKglg" org.eventb.core.label="c_links_done" org.eventb.core.predicate="c_links_done ⊆ (components;links)[{Pat}] × components[{Inst}]"/>
<org.eventb.core.invariant name="_ocRYQQbKEeiFlqW-8GKglg" org.eventb.core.label="inst2pat_l_ty" org.eventb.core.predicate="inst2pat_l ∈ (components;links)[{Inst}] → (components;links)[{Pat}]"/>
<org.eventb.core.variable name="_cztlsAi3EeiFlqW-8GKglg" org.eventb.core.identifier="c_links_done"/>
<org.eventb.core.invariant name="_cztlsQi3EeiFlqW-8GKglg" org.eventb.core.label="inst2pat_l_preserve_type" org.eventb.core.predicate="∀K·K∈LKind ⇒ inst2pat_l[K] ⊆ K"/>
<org.eventb.core.variant name="_K8id4Ai5EeiFlqW-8GKglg" org.eventb.core.expression="((components;links)[{Pat}] × components[{Inst}]) ∖ c_links_done"/>
<org.eventb.core.variable name="_rQxpAAskEeigQsLVMUeRQw" org.eventb.core.identifier="inst2pat_l"/>
<org.eventb.core.invariant name="_rQxpAQskEeigQsLVMUeRQw" org.eventb.core.label="inst2pat_l_src" org.eventb.core.predicate="inst2pat_l;src = src;inst2pat_p"/>
<org.eventb.core.invariant name="_rQxpAgskEeigQsLVMUeRQw" org.eventb.core.label="inst2pat_l_dst" org.eventb.core.predicate="inst2pat_l;dst = dst;inst2pat_p"/>
<org.eventb.core.invariant name="_EviiYAslEeigQsLVMUeRQw" org.eventb.core.label="transp_correct1" org.eventb.core.predicate="∀l·l∈(components;links)[{Inst}] ∩ Transpose ⇒ p_index(src(l)) = c_index(ports∼(dst(l)))"/>
<org.eventb.core.invariant name="_EviiYQslEeigQsLVMUeRQw" org.eventb.core.label="transp_correct2" org.eventb.core.predicate="∀l·l∈(components;links)[{Inst}] ∩ Transpose ⇒ p_index(dst(l)) = c_index(ports∼(src(l)))"/>
</org.eventb.core.machineFile>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.machineFile org.eventb.core.configuration="org.eventb.core.fwd;de.prob.units.mchBase;org.eventb.codegen.ui.cgConfig" org.eventb.texttools.text_lastmodified="1575026825109" org.eventb.texttools.text_representation="machine mLink refines mPort sees cLink&#10;&#10;variables components container containers c_multiplicity c_index to_unfold_c to_unfold_c_in inst2pat_c M P c_indexes cProperties ports p_multiplicity p_index to_unfold_p_in inst2pat_p links src dst c_links_done inst2pat_l&#10;&#10;invariants&#10; @link_ty links ∈ ran(components) ↔ Link&#10; @link_finite ∀c·finite(links[{c}])&#10; @link_not_shared links∼ ∈ Link ⇸ Component&#10; @src_ty src ∈ ran(links) → ran(ports)&#10; @dst_ty dst ∈ ran(links) → ran(ports)&#10; @link_cii links; ((src ⊗ dst) ▷ (IPort × IPort)) ⊆ ports ⊗ (container∼; ports)&#10; @link_coi links; ((src ⊗ dst) ▷ (OPort × IPort)) ⊆ (container∼;ports) ⊗ (container∼; ports)&#10; @link_coo links; ((src ⊗ dst) ▷ (OPort × OPort)) ⊆ (container∼; ports) ⊗ ports&#10; @link_cio links; ((src ⊗ dst) ▷ (IPort × OPort)) ⊆ ports ⊗ ports&#10; @transp_src ∀l·l∈(components;links)[{Pat}]∩Transpose ⇒ p_multiplicity(src(l)) = c_multiplicity(ports∼(dst(l)))&#10; @transp_dst ∀l·l∈(components;links)[{Pat}]∩Transpose ⇒ p_multiplicity(dst(l)) = c_multiplicity(ports∼(src(l)))&#10; @c_links_done c_links_done ⊆ (components;links)[{Pat}] × components[{Inst}]&#10; @inst2pat_l_ty inst2pat_l ∈ (components;links)[{Inst}] → (components;links)[{Pat}]&#10; @inst2pat_l_preserve_type ∀K·K∈LKind ⇒ inst2pat_l[K] ⊆ K&#10; @inst2pat_l_src inst2pat_l;src = src;inst2pat_p&#10; @inst2pat_l_dst inst2pat_l;dst = dst;inst2pat_p&#10; @transp_correct1 ∀l·l∈(components;links)[{Inst}] ∩ Transpose ⇒ p_index(src(l)) = c_index(ports∼(dst(l)))&#10; @transp_correct2 ∀l·l∈(components;links)[{Inst}] ∩ Transpose ⇒ p_index(dst(l)) = c_index(ports∼(src(l)))&#10;&#10;variant ((components;links)[{Pat}] × components[{Inst}]) ∖ c_links_done&#10;&#10;events&#10; event instanciate_pattern extends instanciate_pattern&#10; where&#10; @transp_ctr1 ∀l·l∈(components;links)[{Pat}]∩Transpose ∧ ports∼(dst(l)) ∈ dom(inst_components) ⇒ card(inst_ports[{src(l)}])=card(inst_components[{ports∼(dst(l))}])&#10; @transp_ctr2 ∀l·l∈(components;links)[{Pat}]∩Transpose ∧ ports∼(dst(l)) ∉ dom(inst_components) ⇒ card(inst_ports[{src(l)}])=c_mult_others(ports∼(dst(l)))&#10; @transp_ctr3 ∀l·l∈(components;links)[{Pat}]∩Transpose ∧ ports∼(src(l)) ∈ dom(inst_components) ⇒ card(inst_ports[{dst(l)}])=card(inst_components[{ports∼(src(l))}])&#10; @transp_ctr4 ∀l·l∈(components;links)[{Pat}]∩Transpose ∧ ports∼(src(l)) ∉ dom(inst_components) ⇒ card(inst_ports[{dst(l)}])=c_mult_others(ports∼(src(l)))&#10; then&#10; @links links ≔ components[{Inst}] ⩤ links&#10; @src src ≔ (components;links)[{Inst}] ⩤ src&#10; @dst dst ≔ (components;links)[{Inst}] ⩤ dst&#10; @inst2pat_l inst2pat_l ≔ ∅&#10; @c_links_done c_links_done ≔ ∅&#10; end&#10;&#10; event unfold_root_c extends unfold_root_c&#10; end&#10;&#10; event unfold_p extends unfold_p&#10; end&#10;&#10;&#10; event unfold_node_c extends unfold_node_c&#10; end&#10;&#10; convergent event unfold_node_link_oi_Transpose // between 2 subcomponents&#10; any spi sci dpi&#10; dci // source/dest ports and components in instance&#10; l new_l&#10; c // container&#10;&#10; where&#10; @l_ty l ∈ (components;links)[{Pat}] ∩ Transpose&#10; @src_o src(l) ∈ OPort&#10; @dst_i dst(l) ∈ IPort&#10; @c c ∈ components[{Inst}] ∩ dom(inst2pat_c)&#10; @not_done l↦c ∉ c_links_done&#10; @sci sci ∈ 1‥c_multiplicity(ports∼(src(l))) ↣ container∼[{c}]&#10; @sci_ctr inst2pat_c[ran(sci)] ⊆ {ports∼(src(l))}&#10; @sci_c_index sci;c_index = id&#10; @dci dci ∈ 1‥c_multiplicity(ports∼(dst(l))) ↣ container∼[{c}]&#10; @dci_ctr inst2pat_c[ran(dci)] ⊆ {ports∼(dst(l))}&#10; @dci_c_index dci;c_index = id&#10; @spi_ty spi ∈ ran(sci) → (1‥p_multiplicity(src(l)) ↣ inst2pat_p∼[{src(l)}])&#10; @spi_ctr ∀ci·ci∈ran(sci) ⇒ spi(ci) ∈ 1‥p_multiplicity(src(l)) ↣ ports[{ci}] ∩ OPort&#10; @spi_p_index ∀ci·ci∈ran(sci) ⇒ spi(ci);p_index = id&#10; @dpi_ty dpi ∈ ran(dci) → (1‥p_multiplicity(dst(l)) ↣ inst2pat_p∼[{dst(l)}])&#10; @dpi_ctr ∀ci·ci∈ran(dci) ⇒ dpi(ci) ∈ 1‥p_multiplicity(dst(l)) ↣ ports[{ci}] ∩ IPort&#10; @dpi_p_index ∀ci·ci∈ran(dci) ⇒ dpi(ci);p_index = id&#10; @new_l_ty new_l ∈ 1‥p_multiplicity(src(l)) × 1‥c_multiplicity(ports∼(src(l))) ↣ Transpose ∖ ran(links)&#10; then&#10; @links links ≔ links ∪ ({c} × ran(new_l))&#10; @nsrc src ≔ src ∪ {ip,ic· ip ↦ ic ∈ dom(new_l) ∣ new_l(ip↦ic) ↦ spi(sci(ic))(ip)}&#10; @ndst dst ≔ dst ∪ {ip,ic· ip ↦ ic ∈ dom(new_l) ∣ new_l(ip↦ic) ↦ dpi(dci(ip))(ic)}&#10; @inst2pat_l inst2pat_l ≔ inst2pat_l ∪ (ran(new_l) × {l})&#10; @c_links_done c_links_done ≔ c_links_done ∪ {l↦c}&#10; end&#10;&#10; event apply_pattern extends apply_pattern&#10; any inst_links new_links&#10; where&#10; @inst_links_ty inst_links ∈ (components;links)[{Inst}] ⤔ (components;links)[{Mdl}]&#10; @inst_src inst_links ; src ⊆ src; inst_ports // Les ports sources d'un lien instancié sont instanciés&#10; @inst_dst inst_links ; dst ⊆ dst; inst_ports // Les ports cibles d'un lien instancié sont instanciés&#10; @nl new_links ∈ (components;links)[{Inst}] ∖ dom(inst_links) ↣ Link ∖ ran(links)&#10; then&#10; @s src ≔ src  (new_links∼;src;(inst_ports ∪ new_ports))&#10; @d dst ≔ dst  (new_links∼;dst;(inst_ports ∪ new_ports))&#10; @l links ≔ links ∪ ((inst_components∪new_components)∼;links;new_links)&#10; end&#10;&#10; event apply_link_pattern extends apply_link_pattern&#10; any inst_links new_links&#10; where&#10; @inst_links_ty inst_links ⊆ links [{comp}]&#10; @inst_src src[inst_links] = dom(src_ports)&#10; @inst_dst dst[inst_links] = dom(dst_ports)&#10; @nl new_links ∈ (components;links)[{Inst}] ↣ Link ∖ ran(links)&#10; then&#10; @s src ≔ (inst_links ⩤ src)  (new_links∼;src;new_ports)&#10; @d dst ≔ (inst_links ⩤ dst)  (new_links∼;dst;new_ports)&#10; @l links ≔ (links ⩥ inst_links) ∪ ((inst_components∪new_components)∼;links;new_links)&#10; end&#10;end&#10;" version="5">
<org.eventb.core.refinesMachine name="_a6WF0MOWEeeQteb5bDCu6g" org.eventb.core.target="mPort"/>
<org.eventb.core.seesContext name="_a6WF0cOWEeeQteb5bDCu6g" org.eventb.core.target="cLink"/>
<org.eventb.core.event name="'" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="instanciate_pattern">
<org.eventb.core.refinesEvent name="_ypF-0PlnEeeeS5KQUtrGlw" org.eventb.core.target="instanciate_pattern"/>
<org.eventb.core.guard name="_S_eIJL4_EeeN0675uvquSw" org.eventb.core.label="transp_ctr1" org.eventb.core.predicate="∀l·l∈(components;links)[{Pat}]∩Transpose ∧ ports∼(dst(l)) ∈ dom(inst_components) ⇒ card(inst_ports[{src(l)}])=card(inst_components[{ports∼(dst(l))}])"/>
<org.eventb.core.guard name="_S_eIJb4_EeeN0675uvquSw" org.eventb.core.label="transp_ctr2" org.eventb.core.predicate="∀l·l∈(components;links)[{Pat}]∩Transpose ∧ ports∼(dst(l)) ∉ dom(inst_components) ⇒ card(inst_ports[{src(l)}])=c_mult_others(ports∼(dst(l)))"/>
<org.eventb.core.guard name="_S_eIJr4_EeeN0675uvquSw" org.eventb.core.label="transp_ctr3" org.eventb.core.predicate="∀l·l∈(components;links)[{Pat}]∩Transpose ∧ ports∼(src(l)) ∈ dom(inst_components) ⇒ card(inst_ports[{dst(l)}])=card(inst_components[{ports∼(src(l))}])"/>
<org.eventb.core.guard name="_S_eIJ74_EeeN0675uvquSw" org.eventb.core.label="transp_ctr4" org.eventb.core.predicate="∀l·l∈(components;links)[{Pat}]∩Transpose ∧ ports∼(src(l)) ∉ dom(inst_components) ⇒ card(inst_ports[{dst(l)}])=c_mult_others(ports∼(src(l)))"/>
<org.eventb.core.action name="_S_evNr4_EeeN0675uvquSw" org.eventb.core.assignment="links ≔ components[{Inst}] ⩤ links" org.eventb.core.label="links"/>
<org.eventb.core.action name="_oe6yMMOjEeeQteb5bDCu6g" org.eventb.core.assignment="src ≔ (components;links)[{Inst}] ⩤ src" org.eventb.core.label="src"/>
<org.eventb.core.action name="_oe6yMcOjEeeQteb5bDCu6g" org.eventb.core.assignment="dst ≔ (components;links)[{Inst}] ⩤ dst" org.eventb.core.label="dst"/>
<org.eventb.core.action name="_0IWfoAK-EeiAPf1wPUl3Gw" org.eventb.core.assignment="inst2pat_l ≔ ∅" org.eventb.core.label="inst2pat_l"/>
<org.eventb.core.action name="_SwNs4ALXEei9ocE08JsPSw" org.eventb.core.assignment="c_links_done ≔ ∅" org.eventb.core.label="c_links_done"/>
</org.eventb.core.event>
<org.eventb.core.variable name="_S_fWQr4_EeeN0675uvquSw" org.eventb.core.identifier="components"/>
<org.eventb.core.variable name="_S_fWRL4_EeeN0675uvquSw" org.eventb.core.identifier="container"/>
<org.eventb.core.variable name="_S_fWRb4_EeeN0675uvquSw" org.eventb.core.identifier="containers"/>
<org.eventb.core.variable name="_S_fWRr4_EeeN0675uvquSw" org.eventb.core.identifier="c_multiplicity"/>
<org.eventb.core.invariant name="_S_fWR74_EeeN0675uvquSw" org.eventb.core.label="link_ty" org.eventb.core.predicate="links ∈ ran(components) ↔ Link"/>
<org.eventb.core.invariant name="_S_fWSL4_EeeN0675uvquSw" org.eventb.core.label="link_finite" org.eventb.core.predicate="∀c·finite(links[{c}])"/>
<org.eventb.core.invariant name="_S_f9UL4_EeeN0675uvquSw" org.eventb.core.label="link_not_shared" org.eventb.core.predicate="links∼ ∈ Link ⇸ Component"/>
<org.eventb.core.invariant name="_S_f9Ub4_EeeN0675uvquSw" org.eventb.core.label="src_ty" org.eventb.core.predicate="src ∈ ran(links) → ran(ports)"/>
<org.eventb.core.invariant name="_S_f9Ur4_EeeN0675uvquSw" org.eventb.core.label="dst_ty" org.eventb.core.predicate="dst ∈ ran(links) → ran(ports)"/>
<org.eventb.core.variable name="_73nGMMOYEeeQteb5bDCu6g" org.eventb.core.identifier="c_index"/>
<org.eventb.core.variable name="_0ffzsMOZEeeQteb5bDCu6g" org.eventb.core.identifier="to_unfold_c"/>
<org.eventb.core.invariant name="_0ffzssOZEeeQteb5bDCu6g" org.eventb.core.label="link_cii" org.eventb.core.predicate="links; ((src ⊗ dst) ▷ (IPort × IPort)) ⊆ ports ⊗ (container∼; ports)"/>
<org.eventb.core.variable name="_j2NdQOGVEeeUoZak4Ibgcg" org.eventb.core.identifier="to_unfold_c_in"/>
<org.eventb.core.variable name="_j2NdQeGVEeeUoZak4Ibgcg" org.eventb.core.identifier="inst2pat_c"/>
<org.eventb.core.event name="_JZbnAOGWEeeUoZak4Ibgcg" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="unfold_root_c">
<org.eventb.core.refinesEvent name="_7XcAsAK3EeiAPf1wPUl3Gw" org.eventb.core.target="unfold_root_c"/>
</org.eventb.core.event>
<org.eventb.core.variable name="_QZUfgOTyEeemadOWCHlIvw" org.eventb.core.identifier="M"/>
<org.eventb.core.variable name="_QZUfgeTyEeemadOWCHlIvw" org.eventb.core.identifier="P"/>
<org.eventb.core.event name="_QZUfguTyEeemadOWCHlIvw" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="unfold_p">
<org.eventb.core.refinesEvent name="_-RPi0P06Eees7pYemx4WBQ" org.eventb.core.target="unfold_p"/>
</org.eventb.core.event>
<org.eventb.core.event name="_QZVGk-TyEeemadOWCHlIvw" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="unfold_node_c">
<org.eventb.core.refinesEvent name="_K9uI4BKbEeqU6uo9ksjEPA" org.eventb.core.target="unfold_node_c"/>
</org.eventb.core.event>
<org.eventb.core.variable name="_Z5iv0Pg-EeeeS5KQUtrGlw" org.eventb.core.identifier="c_indexes"/>
<org.eventb.core.variable name="_Z5iv0fg-EeeeS5KQUtrGlw" org.eventb.core.identifier="cProperties"/>
<org.eventb.core.invariant name="_Z5iv0vg-EeeeS5KQUtrGlw" org.eventb.core.label="link_coi" org.eventb.core.predicate="links; ((src ⊗ dst) ▷ (OPort × IPort)) ⊆ (container∼;ports) ⊗ (container∼; ports)"/>
<org.eventb.core.event name="_H7W2gPg_EeeeS5KQUtrGlw" org.eventb.core.comment="between 2 subcomponents" org.eventb.core.convergence="1" org.eventb.core.extended="false" org.eventb.core.label="unfold_node_link_oi_Transpose">
<org.eventb.core.parameter name="_S_dhEr4_EeeN0675uvquSw" org.eventb.core.identifier="spi"/>
<org.eventb.core.parameter name="_S_eIIL4_EeeN0675uvquSw" org.eventb.core.identifier="sci"/>
<org.eventb.core.parameter name="_JZbnAuGWEeeUoZak4Ibgcg" org.eventb.core.identifier="dpi"/>
<org.eventb.core.parameter name="_nOhFwOGpEeeUoZak4Ibgcg" org.eventb.core.comment="source/dest ports and components in instance" org.eventb.core.identifier="dci"/>
<org.eventb.core.parameter name="_RYtJ0OT7EeemadOWCHlIvw" org.eventb.core.identifier="l"/>
<org.eventb.core.parameter name="_nHIsIARrEei9ocE08JsPSw" org.eventb.core.identifier="new_l"/>
<org.eventb.core.parameter name="_nHJTMARrEei9ocE08JsPSw" org.eventb.core.comment="container" org.eventb.core.identifier="c"/>
<org.eventb.core.guard name="_JZbnBOGWEeeUoZak4Ibgcg" org.eventb.core.label="l_ty" org.eventb.core.predicate="l ∈ (components;links)[{Pat}] ∩ Transpose"/>
<org.eventb.core.guard name="_nOhFweGpEeeUoZak4Ibgcg" org.eventb.core.label="src_o" org.eventb.core.predicate="src(l) ∈ OPort"/>
<org.eventb.core.guard name="_yq8FweGpEeeUoZak4Ibgcg" org.eventb.core.label="dst_i" org.eventb.core.predicate="dst(l) ∈ IPort"/>
<org.eventb.core.guard name="_3EQ2ceGpEeeUoZak4Ibgcg" org.eventb.core.label="c" org.eventb.core.predicate="c ∈ components[{Inst}] ∩ dom(inst2pat_c)"/>
<org.eventb.core.guard name="_RYtJ0uT7EeemadOWCHlIvw" org.eventb.core.label="not_done" org.eventb.core.predicate="l↦c ∉ c_links_done"/>
<org.eventb.core.guard name="_RYtJ0-T7EeemadOWCHlIvw" org.eventb.core.label="sci" org.eventb.core.predicate="sci ∈ 1‥c_multiplicity(ports∼(src(l))) ↣ container∼[{c}]"/>
<org.eventb.core.guard name="_RYtJ1OT7EeemadOWCHlIvw" org.eventb.core.label="sci_ctr" org.eventb.core.predicate="inst2pat_c[ran(sci)] ⊆ {ports∼(src(l))}"/>
<org.eventb.core.guard name="_RYtJ1eT7EeemadOWCHlIvw" org.eventb.core.label="sci_c_index" org.eventb.core.predicate="sci;c_index = id"/>
<org.eventb.core.guard name="_WfAcMAK-EeiAPf1wPUl3Gw" org.eventb.core.label="dci" org.eventb.core.predicate="dci ∈ 1‥c_multiplicity(ports∼(dst(l))) ↣ container∼[{c}]"/>
<org.eventb.core.guard name="_nHJTNQRrEei9ocE08JsPSw" org.eventb.core.label="dci_ctr" org.eventb.core.predicate="inst2pat_c[ran(dci)] ⊆ {ports∼(dst(l))}"/>
<org.eventb.core.guard name="_DdBJsAc3EeiFlqW-8GKglg" org.eventb.core.label="dci_c_index" org.eventb.core.predicate="dci;c_index = id"/>
<org.eventb.core.guard name="_70QzIAc3EeiFlqW-8GKglg" org.eventb.core.label="spi_ty" org.eventb.core.predicate="spi ∈ ran(sci) → (1‥p_multiplicity(src(l)) ↣ inst2pat_p∼[{src(l)}])"/>
<org.eventb.core.guard name="_6bPz8AdGEeiFlqW-8GKglg" org.eventb.core.label="spi_ctr" org.eventb.core.predicate="∀ci·ci∈ran(sci) ⇒ spi(ci) ∈ 1‥p_multiplicity(src(l)) ↣ ports[{ci}] ∩ OPort"/>
<org.eventb.core.guard name="_6bPz8QdGEeiFlqW-8GKglg" org.eventb.core.label="spi_p_index" org.eventb.core.predicate="∀ci·ci∈ran(sci) ⇒ spi(ci);p_index = id"/>
<org.eventb.core.guard name="_nxuuQQi-EeiFlqW-8GKglg" org.eventb.core.label="dpi_ty" org.eventb.core.predicate="dpi ∈ ran(dci) → (1‥p_multiplicity(dst(l)) ↣ inst2pat_p∼[{dst(l)}])"/>
<org.eventb.core.guard name="_quOpsAjAEeiFlqW-8GKglg" org.eventb.core.label="dpi_ctr" org.eventb.core.predicate="∀ci·ci∈ran(dci) ⇒ dpi(ci) ∈ 1‥p_multiplicity(dst(l)) ↣ ports[{ci}] ∩ IPort"/>
<org.eventb.core.guard name="_BL1LoAkjEeiFlqW-8GKglg" org.eventb.core.label="dpi_p_index" org.eventb.core.predicate="∀ci·ci∈ran(dci) ⇒ dpi(ci);p_index = id"/>
<org.eventb.core.guard name="_BL1ysAkjEeiFlqW-8GKglg" org.eventb.core.label="new_l_ty" org.eventb.core.predicate="new_l ∈ 1‥p_multiplicity(src(l)) × 1‥c_multiplicity(ports∼(src(l))) ↣ Transpose ∖ ran(links)"/>
<org.eventb.core.action name="_ov6eYALXEei9ocE08JsPSw" org.eventb.core.assignment="links ≔ links ∪ ({c} × ran(new_l))" org.eventb.core.label="links"/>
<org.eventb.core.action name="_ztHbMAaaEeiFlqW-8GKglg" org.eventb.core.assignment="src ≔ src ∪ {ip,ic· ip ↦ ic ∈ dom(new_l) ∣ new_l(ip↦ic) ↦ spi(sci(ic))(ip)}" org.eventb.core.label="nsrc"/>
<org.eventb.core.action name="_1ZIboAabEeiFlqW-8GKglg" org.eventb.core.assignment="dst ≔ dst ∪ {ip,ic· ip ↦ ic ∈ dom(new_l) ∣ new_l(ip↦ic) ↦ dpi(dci(ip))(ic)}" org.eventb.core.label="ndst"/>
<org.eventb.core.action name="_1ZIboQabEeiFlqW-8GKglg" org.eventb.core.assignment="inst2pat_l ≔ inst2pat_l ∪ (ran(new_l) × {l})" org.eventb.core.label="inst2pat_l"/>
<org.eventb.core.action name="_czs-oAi3EeiFlqW-8GKglg" org.eventb.core.assignment="c_links_done ≔ c_links_done ∪ {l↦c}" org.eventb.core.label="c_links_done"/>
</org.eventb.core.event>
<org.eventb.core.event name="_ypJCIflnEeeeS5KQUtrGlw" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="apply_pattern">
<org.eventb.core.refinesEvent name="_K9vXABKbEeqU6uo9ksjEPA" org.eventb.core.target="apply_pattern"/>
<org.eventb.core.parameter name="_nHJTMQRrEei9ocE08JsPSw" org.eventb.core.identifier="inst_links"/>
<org.eventb.core.parameter name="_nxuuQAi-EeiFlqW-8GKglg" org.eventb.core.identifier="new_links"/>
<org.eventb.core.guard name="_Bszp0AsoEeigQsLVMUeRQw" org.eventb.core.label="inst_links_ty" org.eventb.core.predicate="inst_links ∈ (components;links)[{Inst}] ⤔ (components;links)[{Mdl}]"/>
<org.eventb.core.guard name="_G8ASkAsoEeigQsLVMUeRQw" org.eventb.core.comment="Les ports sources d'un lien instancié sont instanciés" org.eventb.core.label="inst_src" org.eventb.core.predicate="inst_links ; src ⊆ src; inst_ports"/>
<org.eventb.core.guard name="_78O84AsoEeigQsLVMUeRQw" org.eventb.core.comment="Les ports cibles d'un lien instancié sont instanciés" org.eventb.core.label="inst_dst" org.eventb.core.predicate="inst_links ; dst ⊆ dst; inst_ports"/>
<org.eventb.core.guard name="_78O84QsoEeigQsLVMUeRQw" org.eventb.core.label="nl" org.eventb.core.predicate="new_links ∈ (components;links)[{Inst}] ∖ dom(inst_links) ↣ Link ∖ ran(links)"/>
<org.eventb.core.action name="_czuz0gi3EeiFlqW-8GKglg" org.eventb.core.assignment="src ≔ src  (new_links∼;src;(inst_ports ∪ new_ports))" org.eventb.core.label="s"/>
<org.eventb.core.action name="_vsWoMAs_EeiJbMmmYBswhA" org.eventb.core.assignment="dst ≔ dst  (new_links∼;dst;(inst_ports ∪ new_ports))" org.eventb.core.label="d"/>
<org.eventb.core.action name="_Ce3aEAtCEeiJbMmmYBswhA" org.eventb.core.assignment="links ≔ links ∪ ((inst_components∪new_components)∼;links;new_links)" org.eventb.core.label="l"/>
</org.eventb.core.event>
<org.eventb.core.variable name="_Ajk8sPloEeeeS5KQUtrGlw" org.eventb.core.identifier="ports"/>
<org.eventb.core.invariant name="_GNeQ0_qOEeectLZKwQfI0A" org.eventb.core.label="link_coo" org.eventb.core.predicate="links; ((src ⊗ dst) ▷ (OPort × OPort)) ⊆ (container∼; ports) ⊗ ports"/>
<org.eventb.core.invariant name="_GNe34PqOEeectLZKwQfI0A" org.eventb.core.label="link_cio" org.eventb.core.predicate="links; ((src ⊗ dst) ▷ (IPort × OPort)) ⊆ ports ⊗ ports"/>
<org.eventb.core.invariant name="_69ZZAPq0EeectLZKwQfI0A" org.eventb.core.label="transp_src" org.eventb.core.predicate="∀l·l∈(components;links)[{Pat}]∩Transpose ⇒ p_multiplicity(src(l)) = c_multiplicity(ports∼(dst(l)))"/>
<org.eventb.core.variable name="_X1DEEAA3EeictLZKwQfI0A" org.eventb.core.identifier="p_multiplicity"/>
<org.eventb.core.variable name="_X1DEEQA3EeictLZKwQfI0A" org.eventb.core.identifier="p_index"/>
<org.eventb.core.variable name="_X1DEEgA3EeictLZKwQfI0A" org.eventb.core.identifier="to_unfold_p_in"/>
<org.eventb.core.variable name="_X1DEEwA3EeictLZKwQfI0A" org.eventb.core.identifier="inst2pat_p"/>
<org.eventb.core.invariant name="_X1DEFAA3EeictLZKwQfI0A" org.eventb.core.label="transp_dst" org.eventb.core.predicate="∀l·l∈(components;links)[{Pat}]∩Transpose ⇒ p_multiplicity(dst(l)) = c_multiplicity(ports∼(src(l)))"/>
<org.eventb.core.event name="_u6P4gAK9EeiAPf1wPUl3Gw" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="apply_link_pattern">
<org.eventb.core.refinesEvent name="_K9v-EBKbEeqU6uo9ksjEPA" org.eventb.core.target="apply_link_pattern"/>
<org.eventb.core.parameter name="_F143MvJAEemlHb-ZV1EcBQ" org.eventb.core.identifier="inst_links"/>
<org.eventb.core.parameter name="_F143M_JAEemlHb-ZV1EcBQ" org.eventb.core.identifier="new_links"/>
<org.eventb.core.guard name="_F143NPJAEemlHb-ZV1EcBQ" org.eventb.core.label="inst_links_ty" org.eventb.core.predicate="inst_links ⊆ links [{comp}]"/>
<org.eventb.core.guard name="_F143NfJAEemlHb-ZV1EcBQ" org.eventb.core.label="inst_src" org.eventb.core.predicate="src[inst_links] = dom(src_ports)"/>
<org.eventb.core.guard name="_F143NvJAEemlHb-ZV1EcBQ" org.eventb.core.label="inst_dst" org.eventb.core.predicate="dst[inst_links] = dom(dst_ports)"/>
<org.eventb.core.guard name="_F143N_JAEemlHb-ZV1EcBQ" org.eventb.core.label="nl" org.eventb.core.predicate="new_links ∈ (components;links)[{Inst}] ↣ Link ∖ ran(links)"/>
<org.eventb.core.action name="_F143OPJAEemlHb-ZV1EcBQ" org.eventb.core.assignment="src ≔ (inst_links ⩤ src)  (new_links∼;src;new_ports)" org.eventb.core.label="s"/>
<org.eventb.core.action name="_F143OfJAEemlHb-ZV1EcBQ" org.eventb.core.assignment="dst ≔ (inst_links ⩤ dst)  (new_links∼;dst;new_ports)" org.eventb.core.label="d"/>
<org.eventb.core.action name="_F143OvJAEemlHb-ZV1EcBQ" org.eventb.core.assignment="links ≔ (links ⩥ inst_links) ∪ ((inst_components∪new_components)∼;links;new_links)" org.eventb.core.label="l"/>
</org.eventb.core.event>
<org.eventb.core.invariant name="_ocRYQAbKEeiFlqW-8GKglg" org.eventb.core.label="c_links_done" org.eventb.core.predicate="c_links_done ⊆ (components;links)[{Pat}] × components[{Inst}]"/>
<org.eventb.core.invariant name="_ocRYQQbKEeiFlqW-8GKglg" org.eventb.core.label="inst2pat_l_ty" org.eventb.core.predicate="inst2pat_l ∈ (components;links)[{Inst}] → (components;links)[{Pat}]"/>
<org.eventb.core.variable name="_cztlsAi3EeiFlqW-8GKglg" org.eventb.core.identifier="links"/>
<org.eventb.core.invariant name="_cztlsQi3EeiFlqW-8GKglg" org.eventb.core.label="inst2pat_l_preserve_type" org.eventb.core.predicate="∀K·K∈LKind ⇒ inst2pat_l[K] ⊆ K"/>
<org.eventb.core.variant name="_K8id4Ai5EeiFlqW-8GKglg" org.eventb.core.expression="((components;links)[{Pat}] × components[{Inst}]) ∖ c_links_done"/>
<org.eventb.core.variable name="_rQxpAAskEeigQsLVMUeRQw" org.eventb.core.identifier="src"/>
<org.eventb.core.invariant name="_rQxpAQskEeigQsLVMUeRQw" org.eventb.core.label="inst2pat_l_src" org.eventb.core.predicate="inst2pat_l;src = src;inst2pat_p"/>
<org.eventb.core.invariant name="_rQxpAgskEeigQsLVMUeRQw" org.eventb.core.label="inst2pat_l_dst" org.eventb.core.predicate="inst2pat_l;dst = dst;inst2pat_p"/>
<org.eventb.core.invariant name="_EviiYAslEeigQsLVMUeRQw" org.eventb.core.label="transp_correct1" org.eventb.core.predicate="∀l·l∈(components;links)[{Inst}] ∩ Transpose ⇒ p_index(src(l)) = c_index(ports∼(dst(l)))"/>
<org.eventb.core.invariant name="_EviiYQslEeigQsLVMUeRQw" org.eventb.core.label="transp_correct2" org.eventb.core.predicate="∀l·l∈(components;links)[{Inst}] ∩ Transpose ⇒ p_index(dst(l)) = c_index(ports∼(src(l)))"/>
<org.eventb.core.variable name="_K9xMMBKbEeqU6uo9ksjEPA" org.eventb.core.identifier="dst"/>
<org.eventb.core.variable name="_K9xMMRKbEeqU6uo9ksjEPA" org.eventb.core.identifier="c_links_done"/>
<org.eventb.core.variable name="_K9xMMhKbEeqU6uo9ksjEPA" org.eventb.core.identifier="inst2pat_l"/>
</org.eventb.core.machineFile>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.scMachineFile org.eventb.core.accurate="true" org.eventb.core.configuration="org.eventb.core.fwd;de.prob.units.mchBase">
<org.eventb.core.scRefinesMachine name="'" org.eventb.core.scTarget="/MODELS_INC_V9_VAR/mProperty.bcm" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.refinesMachine#_gbAPMADlEei-meqqkXX9bA"/>
<org.eventb.core.scSeesContext name="(" org.eventb.core.scTarget="/MODELS_INC_V9_VAR/cPort.bcc" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.seesContext#_0kfYMfqeEeectLZKwQfI0A"/>
<org.eventb.core.scInternalContext name="cModel">
<org.eventb.core.scAxiom name="'" org.eventb.core.label="Pattern_ty" org.eventb.core.predicate="Pattern⊆Model" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcfqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="(" org.eventb.core.label="Mdl_ty" org.eventb.core.predicate="Mdl∈Model ∖ Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcvqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name=")" org.eventb.core.label="Pat_ty" org.eventb.core.predicate="Pat∈Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wc_qkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="*" org.eventb.core.label="Inst_ty" org.eventb.core.predicate="Inst∈Model ∖ Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_fxjdEQKnEeiAPf1wPUl3Gw" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="+" org.eventb.core.label="Inst_Mdl" org.eventb.core.predicate="Inst≠Mdl" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_DGgrYAUMEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scConstant name="Inst" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_fxjdEAKnEeiAPf1wPUl3Gw" org.eventb.core.type="Model"/>
<org.eventb.core.scConstant name="Mdl" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_h20JYPqkEeectLZKwQfI0A" org.eventb.core.type="Model"/>
<org.eventb.core.scCarrierSet name="Model" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.carrierSet#_5dsj0PqTEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.scConstant name="Pat" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_b4aBsPraEeerIsS6OyYQ4w" org.eventb.core.type="Model"/>
<org.eventb.core.scConstant name="Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_h20wcPqkEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.scCarrierSet name="Property" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.carrierSet#_9dBM4ADlEei-meqqkXX9bA" org.eventb.core.type="ℙ(Property)"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scInternalContext name="cComponent">
<org.eventb.core.scExtendsContext name="'" org.eventb.core.scTarget="/MODELS_INC_V9_VAR/cModel.bcc|org.eventb.core.scContextFile#cModel" org.eventb.core.source="/MODELS_INC_V9_VAR/cComponent.buc|org.eventb.core.contextFile#cComponent|org.eventb.core.extendsContext#_IT7_UPqUEeectLZKwQfI0A"/>
<org.eventb.core.scCarrierSet name="Component" org.eventb.core.source="/MODELS_INC_V9_VAR/cComponent.buc|org.eventb.core.contextFile#cComponent|org.eventb.core.carrierSet#_IT7_UfqUEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component)"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scInternalContext name="cPort">
<org.eventb.core.scExtendsContext name="'" org.eventb.core.scTarget="/MODELS_INC_V9_VAR/cComponent.bcc|org.eventb.core.scContextFile#cComponent" org.eventb.core.source="/MODELS_INC_V9_VAR/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.extendsContext#'"/>
<org.eventb.core.scAxiom name="cComponenu" org.eventb.core.label="part" org.eventb.core.predicate="partition(Port,IPort,OPort)" org.eventb.core.source="/MODELS_INC_V9_VAR/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.axiom#_Y1LocvqyEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scConstant name="IPort" org.eventb.core.source="/MODELS_INC_V9_VAR/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.constant#_Y1LocPqyEeectLZKwQfI0A" org.eventb.core.type="ℙ(Port)"/>
<org.eventb.core.scConstant name="OPort" org.eventb.core.source="/MODELS_INC_V9_VAR/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.constant#_Y1LocfqyEeectLZKwQfI0A" org.eventb.core.type="ℙ(Port)"/>
<org.eventb.core.scCarrierSet name="Port" org.eventb.core.source="/MODELS_INC_V9_VAR/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.carrierSet#_YwaNQPqeEeectLZKwQfI0A" org.eventb.core.type="ℙ(Port)"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scInvariant name="cComponenu" org.eventb.core.label="comp" org.eventb.core.predicate="components∈Model ↔ Component" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_cQf0Y_qUEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponenv" org.eventb.core.label="comp_finite" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_cQf0ZPqUEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponenw" org.eventb.core.label="comp_not_shared" org.eventb.core.predicate="components∼∈Component ⇸ Model" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_ip9Q0PqUEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponenx" org.eventb.core.label="c_mult" org.eventb.core.predicate="c_multiplicity∈components[{Pat}] → ℕ" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_GMp30PqWEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeny" org.eventb.core.label="cont_ty" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gmDo8fqgEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponenz" org.eventb.core.label="cl_ty" org.eventb.core.predicate="containers∈ran(components) ↔ ran(components)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gmDo8vqgEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponen{" org.eventb.core.label="cl_fin" org.eventb.core.predicate="∀c⦂Component·finite(containers∼[{c}])" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_oXBHAPqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponen|" org.eventb.core.label="cl_cont" org.eventb.core.predicate="container⊆containers" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dqNI_qkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponen}" org.eventb.core.label="cl_trans" org.eventb.core.predicate="containers;containers⊆containers" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dqNJPqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponen~" org.eventb.core.label="cl_left" org.eventb.core.predicate="containers⊆container;(containers∪(id ⦂ ℙ(Component×Component)))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dq0MPqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo'" org.eventb.core.label="cl_irrefl" org.eventb.core.predicate="containers∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_l7KVEQA1EeictLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo(" org.eventb.core.label="cl_comp" org.eventb.core.predicate="components;containers;components∼⊆(id ⦂ ℙ(Model×Model))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_l7KVEgA1EeictLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo)" org.eventb.core.label="cl_compr" org.eventb.core.predicate="components;containers∼;components∼⊆(id ⦂ ℙ(Model×Model))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_Hwdz4AKtEeiAPf1wPUl3Gw" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeo*" org.eventb.core.label="cont_ctr" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_xudpYQK5EeiAPf1wPUl3Gw" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeo+" org.eventb.core.label="cont_fin" org.eventb.core.predicate="∀c⦂Component·finite(container∼[{c}])" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_fxu54ALAEeiAPf1wPUl3Gw" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeo," org.eventb.core.label="irrefl" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_PaxdoAMwEei9ocE08JsPSw" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeo-" org.eventb.core.label="cont_mono" org.eventb.core.predicate="∀s⦂Component,c⦂Component·s ↦ c∈container⇒containers∼[{s}]⊂containers∼[{c}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_nieoAAMxEei9ocE08JsPSw" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeo." org.eventb.core.label="to_unfold_c_in" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0AMzEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo/" org.eventb.core.label="to_unfold_c" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0QMzEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo0" org.eventb.core.label="inst2pat_c_ty" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0gMzEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo1" org.eventb.core.label="inst2pat_unfold_in" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_V6rHAAM1Eei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo2" org.eventb.core.label="pat2inst_unfold" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_4gspwAkfEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo3" org.eventb.core.label="unfold_root" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_ClMccAk_EeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo4" org.eventb.core.label="unfold_in" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_6Bzq0AlZEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo5" org.eventb.core.label="unfold_mul" org.eventb.core.predicate="∀c⦂Component·c∈to_unfold_c⇒c_multiplicity(c)&gt;0" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_-v2gwAl5EeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo6" org.eventb.core.label="unfold_in_mul" org.eventb.core.predicate="∀c⦂Component·c∈dom(to_unfold_c_in)⇒c_multiplicity(c)&gt;0" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_Ar4dsAl8EeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo7" org.eventb.core.label="unfold_in_i2p" org.eventb.core.predicate="ran(to_unfold_c_in)⊆dom(inst2pat_c)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_byYtUAxjEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo8" org.eventb.core.label="unfold_cont" org.eventb.core.predicate="(inst2pat_c;to_unfold_c_in)∩container=(∅ ⦂ ℙ(Component×Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_ptqDcQxlEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo9" org.eventb.core.label="unfold_unfold_in" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_ptqDcgxlEeqU6uo9ksjEPA" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeo:" org.eventb.core.label="unfold_fin" org.eventb.core.predicate="∀c⦂Component·finite(to_unfold_c_in[{c}])" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_MM724AxtEeqU6uo9ksjEPA" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeo;" org.eventb.core.label="inst2pat_cont" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_MM724QxtEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo=" org.eventb.core.label="c_index_ty" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#__R1F0QyBEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo&gt;" org.eventb.core.label="to_clone_c_mult" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_nEDgcg3EEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo?" org.eventb.core.label="M_fin" org.eventb.core.predicate="finite(ran(c_multiplicity))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_nEDgcw3EEeqU6uo9ksjEPA" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeo@" org.eventb.core.label="M" org.eventb.core.predicate="M=max(ran(c_multiplicity))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_nEDgdA3EEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoA" org.eventb.core.label="P" org.eventb.core.predicate="P=components[{Pat}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_nEDgdQ3EEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoB" org.eventb.core.label="P_fin" org.eventb.core.predicate="finite(P)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_3N038Q6WEeqU6uo9ksjEPA" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeoC" org.eventb.core.label="c_indexes_ty" org.eventb.core.predicate="c_indexes∈dom(inst2pat_c) ↣ (P ⇸ 1 ‥ M)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_rcyHQA6gEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoD" org.eventb.core.label="c_indexes_dom" org.eventb.core.predicate="∀i⦂Component·i∈dom(inst2pat_c)⇒dom(c_indexes(i))=(containers∪(id ⦂ ℙ(Component×Component)))[{inst2pat_c(i)}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_rcyHQQ6gEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoE" org.eventb.core.label="c_indexes_val" org.eventb.core.predicate="∀i⦂Component·i∈dom(inst2pat_c)⇒c_indexes(i)=inst2pat_c∼;((containers∪(id ⦂ ℙ(Component×Component)))[{i}] ◁ c_index)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_2SMx0Q7FEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoF" org.eventb.core.label="i2p_dom" org.eventb.core.predicate="∀i⦂Component·i∈dom(inst2pat_c)⇒containers[{i}]⊆dom(inst2pat_c)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_2SMx0g7FEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoG" org.eventb.core.label="unfold_index_ext" org.eventb.core.predicate="∀c⦂Component,m⦂ℙ(Component×ℤ)·c∈to_unfold_c∧m∈ran(c_indexes)⇒c∉dom(m)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_2SMx0w7FEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoH" org.eventb.core.label="unfold_in_index_ext" org.eventb.core.predicate="∀c⦂Component,i⦂Component,m⦂ℙ(Component×ℤ)·c ↦ i∈to_unfold_c_in∧c_indexes(i)⊆m∧m∈ran(c_indexes)⇒c∉dom(m)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_2SMx1A7FEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoI" org.eventb.core.label="unfold_index" org.eventb.core.predicate="∀c⦂Component,k⦂ℤ·c∈to_unfold_c∧k∈1 ‥ M⇒{c ↦ k}∉ran(c_indexes)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_iR6UgA7fEeqU6uo9ksjEPA" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeoJ" org.eventb.core.label="unfold_in_index" org.eventb.core.predicate="∀c⦂Component,i⦂Component,k⦂ℤ·c ↦ i∈to_unfold_c_in∧k∈1 ‥ M⇒c_indexes(i){c ↦ k}∉ran(c_indexes)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_BSFPUBEBEeqU6uo9ksjEPA" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeoK" org.eventb.core.label="prop" org.eventb.core.predicate="cProperties∈Component ↔ Property" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.invariant#_0kf_RPqeEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoL" org.eventb.core.label="port" org.eventb.core.predicate="ports∈ran(components) ↔ Port" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.invariant#_0kf_RPqeEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoM" org.eventb.core.label="port_finite" org.eventb.core.predicate="∀c⦂Component·finite(ports[{c}])" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.invariant#_0kf_RfqeEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoN" org.eventb.core.label="port_not_shared" org.eventb.core.predicate="ports∼∈Port ⇸ Component" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.invariant#_0kf_RvqeEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoO" org.eventb.core.label="p_mult" org.eventb.core.predicate="p_multiplicity∈(components;ports)[Pattern] → ℕ" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.invariant#_0kf_R_qeEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoP" org.eventb.core.label="to_unfold_p_in" org.eventb.core.predicate="to_unfold_p_in∈(components;ports)[{Pat}] ↔ components[{Inst}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.invariant#_btIX4vqwEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoQ" org.eventb.core.label="inst2pat_p_ty" org.eventb.core.predicate="inst2pat_p∈(components;ports)[{Inst}] → (components;ports)[{Pat}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.invariant#_zYW3EfqwEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoR" org.eventb.core.label="inst2pat_commp" org.eventb.core.predicate="inst2pat_p;ports∼=ports∼;inst2pat_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.invariant#_F0IYkPriEeerIsS6OyYQ4w" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoS" org.eventb.core.label="to_unfold_p_inst2pat" org.eventb.core.predicate="ran(to_unfold_p_in)⊆dom(inst2pat_c)" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.invariant#_ui7VEAFGEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoT" org.eventb.core.label="to_unfold_p_in_comp" org.eventb.core.predicate="to_unfold_p_in;inst2pat_c⊆ports∼" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.invariant#_zY448gK7EeiAPf1wPUl3Gw" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoU" org.eventb.core.label="i2p_IPort" org.eventb.core.predicate="inst2pat_p[IPort]⊆IPort" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.invariant#_22_TUALCEeiAPf1wPUl3Gw" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoV" org.eventb.core.label="i2p_OPort" org.eventb.core.predicate="inst2pat_p[OPort]⊆OPort" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.invariant#_QFUfMAWQEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoW" org.eventb.core.label="p_index_ty" org.eventb.core.predicate="p_index∈dom(inst2pat_p) → ℕ" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.invariant#_QFVGQAWQEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scVariable name="M" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.variable#_oU9JIPqyEeectLZKwQfI0A" org.eventb.core.type="ℤ"/>
<org.eventb.core.scVariable name="P" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.variable#_6RL9kAA2EeictLZKwQfI0A" org.eventb.core.type="ℙ(Component)"/>
<org.eventb.core.scVariable name="cProperties" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.variable#_jRoOoPqxEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×Property)"/>
<org.eventb.core.scVariable name="c_index" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.variable#_btIX4fqwEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×ℤ)"/>
<org.eventb.core.scVariable name="c_indexes" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.variable#_h1eCEADlEei-meqqkXX9bA" org.eventb.core.type="ℙ(Component×ℙ(Component×ℤ))"/>
<org.eventb.core.scVariable name="c_multiplicity" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.variable#_0kf_Q_qeEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×ℤ)"/>
<org.eventb.core.scVariable name="components" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.variable#_0kf_QPqeEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model×Component)"/>
<org.eventb.core.scVariable name="container" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.variable#_0kf_QfqeEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scVariable name="containers" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.variable#_0kf_QvqeEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scVariable name="inst2pat_c" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.variable#_JtPOYPqxEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scVariable name="inst2pat_p" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.variable#_XAX34BKaEeqU6uo9ksjEPA" org.eventb.core.type="ℙ(Port×Port)"/>
<org.eventb.core.scVariable name="p_index" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.variable#_LcSJoRKaEeqU6uo9ksjEPA" org.eventb.core.type="ℙ(Port×ℤ)"/>
<org.eventb.core.scVariable name="p_multiplicity" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.variable#_zY448QK7EeiAPf1wPUl3Gw" org.eventb.core.type="ℙ(Port×ℤ)"/>
<org.eventb.core.scVariable name="ports" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.variable#_zY448AK7EeiAPf1wPUl3Gw" org.eventb.core.type="ℙ(Component×Port)"/>
<org.eventb.core.scVariable name="to_unfold_c" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.variable#_zYW3EPqwEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component)"/>
<org.eventb.core.scVariable name="to_unfold_c_in" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.variable#_ANiZwPqxEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scVariable name="to_unfold_p_in" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.variable#_LcSJohKaEeqU6uo9ksjEPA" org.eventb.core.type="ℙ(Port×Component)"/>
<org.eventb.core.scVariant name="to_unfold_p_io" org.eventb.core.expression="to_unfold_p_in" org.eventb.core.label="VARIANT" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.variant#_7pQu4Af5EeiFlqW-8GKglg"/>
<org.eventb.core.scEvent name="to_unfold_p_ip" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="instanciate_pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#'">
<org.eventb.core.scRefinesEvent name="'" org.eventb.core.scTarget="/MODELS_INC_V9_VAR/mProperty.bcm|org.eventb.core.scMachineFile#mProperty|org.eventb.core.scEvent#to_unfold_c_io" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#'|org.eventb.core.refinesEvent#_btHw0PqwEeectLZKwQfI0A"/>
<org.eventb.core.scGuard name="'" org.eventb.core.label="ic" org.eventb.core.predicate="inst_components∈components[{Pat}] ↔ components[{Mdl}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.guard#_O1UjgvqmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="(" org.eventb.core.label="icr" org.eventb.core.predicate="inst_components∼∈components[{Mdl}] ⇸ components[{Pat}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.guard#_O1Ujg_qmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name=")" org.eventb.core.label="cm" org.eventb.core.predicate="c_mult_others∈components[{Pat}] ∖ dom(inst_components) → ℕ" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.guard#_O1UjhPqmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="*" org.eventb.core.label="cmult" org.eventb.core.predicate="c_mult=c_mult_others{pc⦂Component·pc∈dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])}" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.guard#_O1WYsfqmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAction name="inst_componentt" org.eventb.core.assignment="c_multiplicity ≔ c_mult" org.eventb.core.label="c_mult" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1UjhfqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_componentu" org.eventb.core.assignment="to_unfold_c ≔ (components[{Pat}] ∖ dom(container)) ∖ c_multiplicity∼[{0}]" org.eventb.core.label="to_unfold_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1WYt_qmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_componentv" org.eventb.core.assignment="to_unfold_c_in ≔ ∅ ⦂ ℙ(Component×Component)" org.eventb.core.label="to_unfold_c_in" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1WYuPqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_componentw" org.eventb.core.assignment="components ≔ {Inst} ⩤ components" org.eventb.core.label="components_inst" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1W_xPqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_componentx" org.eventb.core.assignment="container ≔ components[{Inst}] ⩤ container" org.eventb.core.label="container_inst" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1W_xfqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_componenty" org.eventb.core.assignment="c_index ≔ ∅ ⦂ ℙ(Component×ℤ)" org.eventb.core.label="c_index" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1W_xvqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_componentz" org.eventb.core.assignment="c_indexes ≔ ∅ ⦂ ℙ(Component×ℙ(Component×ℤ))" org.eventb.core.label="c_indexes" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1W_x_qmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_component{" org.eventb.core.assignment="inst2pat_c ≔ ∅ ⦂ ℙ(Component×Component)" org.eventb.core.label="pat2inst_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1W_yPqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_component|" org.eventb.core.assignment="M ≔ max(ran(c_mult))" org.eventb.core.label="M" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1Xm1PqmEeectLZKwQfI0A"/>
<org.eventb.core.scParameter name="c_mult" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.parameter#_O1VxofqmEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×ℤ)"/>
<org.eventb.core.scParameter name="c_mult_others" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.parameter#_O1UjgfqmEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×ℤ)"/>
<org.eventb.core.scParameter name="inst_components" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.parameter#_O1UjgPqmEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scGuard name="inst_component}" org.eventb.core.label="ip" org.eventb.core.predicate="inst_ports∈(components;ports)[{Pat}] ↔ (components;ports)[{Mdl}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#'|org.eventb.core.guard#_btHw0_qwEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="inst_component~" org.eventb.core.label="ipr" org.eventb.core.predicate="inst_ports∼∈(components;ports)[{Mdl}] ⇸ (components;ports)[{Pat}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#'|org.eventb.core.guard#_btHw1PqwEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="inst_componenu'" org.eventb.core.label="pm" org.eventb.core.predicate="p_mult_others∈(components;ports)[{Pat}] ∖ dom(inst_ports) → ℕ" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#'|org.eventb.core.guard#_btHw1fqwEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="inst_componenu(" org.eventb.core.label="thm" org.eventb.core.predicate="∀p⦂Port·finite(inst_ports[{p}])" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#'|org.eventb.core.guard#_btHw1vqwEeectLZKwQfI0A" org.eventb.core.theorem="true"/>
<org.eventb.core.scParameter name="inst_ports" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#'|org.eventb.core.parameter#_btHw0fqwEeectLZKwQfI0A" org.eventb.core.type="ℙ(Port×Port)"/>
<org.eventb.core.scParameter name="p_mult_others" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#'|org.eventb.core.parameter#_btHw0vqwEeectLZKwQfI0A" org.eventb.core.type="ℙ(Port×ℤ)"/>
<org.eventb.core.scAction name="inst_componenu)" org.eventb.core.assignment="p_multiplicity ≔ p_multiplicity(p_mult_others{pp⦂Port·pp∈(components;ports)[{Pat}] ∣ pp ↦ card(inst_ports[{pp}])})" org.eventb.core.label="p_mult" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#'|org.eventb.core.action#_btIX4PqwEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_componenu*" org.eventb.core.assignment="inst2pat_p ≔ ∅ ⦂ ℙ(Port×Port)" org.eventb.core.label="inst2pat_p" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#'|org.eventb.core.action#_btJmA_qwEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_componenu+" org.eventb.core.assignment="ports ≔ components[{Inst}] ⩤ ports" org.eventb.core.label="ports" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#'|org.eventb.core.action#_btJmCfqwEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_componenu," org.eventb.core.assignment="to_unfold_p_in ≔ ∅ ⦂ ℙ(Port×Component)" org.eventb.core.label="unfold_p" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#'|org.eventb.core.action#_btJmCvqwEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_componenu-" org.eventb.core.assignment="p_index ≔ ∅ ⦂ ℙ(Port×ℤ)" org.eventb.core.label="p_index" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#'|org.eventb.core.action#_btKNEPqwEeectLZKwQfI0A"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="to_unfold_p_iq" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="unfold_root_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btIX4_qwEeectLZKwQfI0A">
<org.eventb.core.scRefinesEvent name="'" org.eventb.core.scTarget="/MODELS_INC_V9_VAR/mProperty.bcm|org.eventb.core.scMachineFile#mProperty|org.eventb.core.scEvent#to_unfold_c_ip" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btIX4_qwEeectLZKwQfI0A|org.eventb.core.refinesEvent#_jNxEQAKyEeiAPf1wPUl3Gw"/>
<org.eventb.core.scGuard name="'" org.eventb.core.label="c_ty" org.eventb.core.predicate="c∈to_unfold_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.guard#_O1WYsvqmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="(" org.eventb.core.label="new_c_ty" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(c) ↣ Component ∖ ran(components)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.guard#_O1WYs_qmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name=")" org.eventb.core.label="new_c_fin" org.eventb.core.predicate="finite(ran(new_c))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.guard#_O1WYtPqmEeectLZKwQfI0A" org.eventb.core.theorem="true"/>
<org.eventb.core.scGuard name="*" org.eventb.core.label="new_c_card" org.eventb.core.predicate="card(ran(new_c))=c_multiplicity(c)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.guard#_O1WYtfqmEeectLZKwQfI0A" org.eventb.core.theorem="true"/>
<org.eventb.core.scAction name="new_d" org.eventb.core.assignment="components ≔ components∪({Inst} × ran(new_c))" org.eventb.core.label="new_c_model" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.action#_O1Xm1fqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="new_e" org.eventb.core.assignment="to_unfold_c_in ≔ to_unfold_c_in∪((container∼[{c}] ∖ c_multiplicity∼[{0}]) × ran(new_c))" org.eventb.core.label="to_unfold_c_in" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.action#_O1Xm1vqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="new_f" org.eventb.core.assignment="c_index ≔ c_index∪new_c∼" org.eventb.core.label="c_index" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.action#_O1Xm1_qmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="new_g" org.eventb.core.assignment="to_unfold_c ≔ to_unfold_c ∖ {c}" org.eventb.core.label="to_unfold_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.action#_O1YN4PqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="new_h" org.eventb.core.assignment="inst2pat_c ≔ inst2pat_c∪(ran(new_c) × {c})" org.eventb.core.label="pat2inst_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.action#_O1YN4fqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="new_i" org.eventb.core.assignment="c_indexes ≔ c_indexes∪{i⦂Component·i∈ran(new_c) ∣ i ↦ {c ↦ new_c∼(i)}}" org.eventb.core.label="c_indexes" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.action#_O1YN4vqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="new_j" org.eventb.core.assignment="cProperties ≔ cProperties∪(ran(new_c) × cProperties[{c}])" org.eventb.core.label="prop" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.event#_btIX4_qwEeectLZKwQfI0A|org.eventb.core.action#_btIX4PqwEeectLZKwQfI0A"/>
<org.eventb.core.scParameter name="c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.parameter#_O1WYsPqmEeectLZKwQfI0A" org.eventb.core.type="Component"/>
<org.eventb.core.scParameter name="new_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.parameter#_O1W_wPqmEeectLZKwQfI0A" org.eventb.core.type="ℙ(ℤ×Component)"/>
<org.eventb.core.scAction name="new_k" org.eventb.core.assignment="to_unfold_p_in ≔ to_unfold_p_in∪(ports[{c}] × ran(new_c))" org.eventb.core.label="unfold_p_in" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btIX4_qwEeectLZKwQfI0A|org.eventb.core.action#_btKNFfqwEeectLZKwQfI0A"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="to_unfold_p_ir" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="unfold_node_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btJmBfqwEeectLZKwQfI0A">
<org.eventb.core.scRefinesEvent name="'" org.eventb.core.scTarget="/MODELS_INC_V9_VAR/mProperty.bcm|org.eventb.core.scMachineFile#mProperty|org.eventb.core.scEvent#to_unfold_c_iq" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btJmBfqwEeectLZKwQfI0A|org.eventb.core.refinesEvent#_LcQUcBKaEeqU6uo9ksjEPA"/>
<org.eventb.core.scGuard name="'" org.eventb.core.label="c_ty" org.eventb.core.predicate="c ↦ dest∈to_unfold_c_in" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.guard#_O1WYtvqmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="(" org.eventb.core.label="new_c_ty" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(c) ↣ Component ∖ ran(components)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.guard#_O1W_wvqmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name=")" org.eventb.core.label="new_c_fin" org.eventb.core.predicate="finite(ran(new_c))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.guard#_O1W_w_qmEeectLZKwQfI0A" org.eventb.core.theorem="true"/>
<org.eventb.core.scGuard name="*" org.eventb.core.label="new_c_card" org.eventb.core.predicate="card(ran(new_c))=c_multiplicity(c)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.guard#_O1Xm0vqmEeectLZKwQfI0A" org.eventb.core.theorem="true"/>
<org.eventb.core.scAction name="new_d" org.eventb.core.assignment="components ≔ components∪({Inst} × ran(new_c))" org.eventb.core.label="new_c_model" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.action#_lyJKIPreEeerIsS6OyYQ4w"/>
<org.eventb.core.scAction name="new_e" org.eventb.core.assignment="container ≔ container∪(ran(new_c) × {dest})" org.eventb.core.label="new_c_container" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.action#_rQ0PgftxEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="new_f" org.eventb.core.assignment="c_index ≔ c_index∪new_c∼" org.eventb.core.label="c_index" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.action#_xQWRoP01EeeINffjS36taQ"/>
<org.eventb.core.scAction name="new_g" org.eventb.core.assignment="to_unfold_c_in ≔ (to_unfold_c_in ∖ {c ↦ dest})∪((container∼[{c}] ∖ c_multiplicity∼[{0}]) × ran(new_c))" org.eventb.core.label="to_unfold_c_in" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.action#_254qkAA2EeictLZKwQfI0A"/>
<org.eventb.core.scAction name="new_h" org.eventb.core.assignment="inst2pat_c ≔ inst2pat_c∪(ran(new_c) × {c})" org.eventb.core.label="pat2inst_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.action#_ptpcYAxlEeqU6uo9ksjEPA"/>
<org.eventb.core.scAction name="new_i" org.eventb.core.assignment="containers ≔ containers∪(ran(new_c) × {dest})∪(ran(new_c) × containers[{dest}])" org.eventb.core.label="cont" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.action#_ptpcYQxlEeqU6uo9ksjEPA"/>
<org.eventb.core.scAction name="new_j" org.eventb.core.assignment="c_indexes ≔ c_indexes∪{i⦂Component·i∈ran(new_c) ∣ i ↦ c_indexes(dest){c ↦ new_c∼(i)}}" org.eventb.core.label="c_indexes" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.action#_ptpcYgxlEeqU6uo9ksjEPA"/>
<org.eventb.core.scAction name="new_k" org.eventb.core.assignment="cProperties ≔ cProperties∪(ran(new_c) × cProperties[{c}])" org.eventb.core.label="prop" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.event#_btJmBfqwEeectLZKwQfI0A|org.eventb.core.action#_btJmA_qwEeectLZKwQfI0A"/>
<org.eventb.core.scParameter name="c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.parameter#_O1W_wfqmEeectLZKwQfI0A" org.eventb.core.type="Component"/>
<org.eventb.core.scParameter name="dest" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.parameter#_O1Xm0PqmEeectLZKwQfI0A" org.eventb.core.type="Component"/>
<org.eventb.core.scParameter name="new_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.parameter#_O1Xm0fqmEeectLZKwQfI0A" org.eventb.core.type="ℙ(ℤ×Component)"/>
<org.eventb.core.scAction name="new_l" org.eventb.core.assignment="to_unfold_p_in ≔ to_unfold_p_in∪(ports[{c}] × ran(new_c))" org.eventb.core.label="unfold_p_in" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btJmBfqwEeectLZKwQfI0A|org.eventb.core.action#_GO3gcAK8EeiAPf1wPUl3Gw"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="to_unfold_p_is" org.eventb.core.accurate="true" org.eventb.core.convergence="1" org.eventb.core.extended="false" org.eventb.core.label="unfold_p" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btKNEfqwEeectLZKwQfI0A">
<org.eventb.core.scGuard name="'" org.eventb.core.label="p_ty" org.eventb.core.predicate="p ↦ c∈to_unfold_p_in" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btKNEfqwEeectLZKwQfI0A|org.eventb.core.guard#_btHw1_qwEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="(" org.eventb.core.label="new_p_ty" org.eventb.core.predicate="new_p∈1 ‥ p_multiplicity(p) ↣ Port ∖ ran(components;ports)" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btKNEfqwEeectLZKwQfI0A|org.eventb.core.guard#_btHw2PqwEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name=")" org.eventb.core.label="duplicate_IPorts_direction" org.eventb.core.predicate="p∈IPort⇒ran(new_p)⊆IPort" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btKNEfqwEeectLZKwQfI0A|org.eventb.core.guard#_btHw2fqwEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="*" org.eventb.core.label="duplicate_OPorts_direction" org.eventb.core.predicate="p∈OPort⇒ran(new_p)⊆OPort" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btKNEfqwEeectLZKwQfI0A|org.eventb.core.guard#_btI-8_qwEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scParameter name="c" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btKNEfqwEeectLZKwQfI0A|org.eventb.core.parameter#_btI-8vqwEeectLZKwQfI0A" org.eventb.core.type="Component"/>
<org.eventb.core.scParameter name="new_p" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btKNEfqwEeectLZKwQfI0A|org.eventb.core.parameter#_btJmB_qwEeectLZKwQfI0A" org.eventb.core.type="ℙ(ℤ×Port)"/>
<org.eventb.core.scParameter name="p" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btKNEfqwEeectLZKwQfI0A|org.eventb.core.parameter#_btI-8fqwEeectLZKwQfI0A" org.eventb.core.type="Port"/>
<org.eventb.core.scAction name="new_q" org.eventb.core.assignment="ports ≔ ports∪({c} × ran(new_p))" org.eventb.core.label="new_p_component" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btKNEfqwEeectLZKwQfI0A|org.eventb.core.action#_YHf5cAUuEei9ocE08JsPSw"/>
<org.eventb.core.scAction name="new_r" org.eventb.core.assignment="to_unfold_p_in ≔ to_unfold_p_in ∖ {p ↦ c}" org.eventb.core.label="dp" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btKNEfqwEeectLZKwQfI0A|org.eventb.core.action#_YHiVsAUuEei9ocE08JsPSw"/>
<org.eventb.core.scAction name="new_s" org.eventb.core.assignment="inst2pat_p ≔ inst2pat_p∪(ran(new_p) × {p})" org.eventb.core.label="inst2pat_p" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btKNEfqwEeectLZKwQfI0A|org.eventb.core.action#_YHiVsQUuEei9ocE08JsPSw"/>
<org.eventb.core.scAction name="new_t" org.eventb.core.assignment="p_index ≔ p_index∪new_p∼" org.eventb.core.label="p_index" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btKNEfqwEeectLZKwQfI0A|org.eventb.core.action#_f2PGEAspEeigQsLVMUeRQw"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="to_unfold_p_it" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="apply_pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btKNGPqwEeectLZKwQfI0A">
<org.eventb.core.scRefinesEvent name="'" org.eventb.core.scTarget="/MODELS_INC_V9_VAR/mProperty.bcm|org.eventb.core.scMachineFile#mProperty|org.eventb.core.scEvent#to_unfold_c_ir" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btKNGPqwEeectLZKwQfI0A|org.eventb.core.refinesEvent#_LcQ7gBKaEeqU6uo9ksjEPA"/>
<org.eventb.core.scGuard name="'" org.eventb.core.label="ic" org.eventb.core.predicate="inst_components∈components[{Inst}] ⤔ components[{Mdl}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.guard#_AkqiQAhGEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="(" org.eventb.core.label="nc" org.eventb.core.predicate="new_components∈components[{Inst}] ∖ dom(inst_components) ↣ Component ∖ ran(components)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.guard#_AkqiQQhGEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name=")" org.eventb.core.label="acycl_inst_components" org.eventb.core.predicate="dom(inst_components) ◁ container;inst_components⊆inst_components;container" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.guard#_AkqiQghGEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="*" org.eventb.core.label="acycl_container" org.eventb.core.predicate="container[dom(inst_components)]⊆dom(inst_components)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.guard#_AkqiQwhGEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="inst_componentw" org.eventb.core.label="inst_prop" org.eventb.core.predicate="inst_props∈Property ⇸ Property" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.event#_btKNEfqwEeectLZKwQfI0A|org.eventb.core.guard#_btHw0_qwEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAction name="inst_componentt" org.eventb.core.assignment="components ≔ components∪({Mdl} × ran(new_components))" org.eventb.core.label="m" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.action#__Rz3sAyBEeqU6uo9ksjEPA"/>
<org.eventb.core.scAction name="inst_componentu" org.eventb.core.assignment="container ≔ container∪((inst_components∪new_components)∼;container;(inst_components∪new_components))" org.eventb.core.label="f" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.action#_nECSUA3EEeqU6uo9ksjEPA"/>
<org.eventb.core.scAction name="inst_componentv" org.eventb.core.assignment="containers ≔ containers∪(new_components∼;containers;inst_components;containers)∪(new_components∼;containers;(new_components∪inst_components))" org.eventb.core.label="c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.action#_nECSUQ3EEeqU6uo9ksjEPA"/>
<org.eventb.core.scAction name="inst_componentx" org.eventb.core.assignment="cProperties ≔ cProperties∪((inst_components∪new_components)∼;cProperties;((id ⦂ ℙ(Property×Property))inst_props))" org.eventb.core.label="prop" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.event#_btKNEfqwEeectLZKwQfI0A|org.eventb.core.action#_bAhyggKxEeiAPf1wPUl3Gw"/>
<org.eventb.core.scParameter name="inst_components" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.parameter#_rQ0PgPtxEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scParameter name="new_components" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.parameter#_h4VmkAKrEeiAPf1wPUl3Gw" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scParameter name="inst_props" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.event#_btKNEfqwEeectLZKwQfI0A|org.eventb.core.parameter#_btHw0fqwEeectLZKwQfI0A" org.eventb.core.type="ℙ(Property×Property)"/>
<org.eventb.core.scGuard name="inst_componenty" org.eventb.core.label="ip" org.eventb.core.predicate="inst_ports∈(components;ports)[{Inst}] ⤔ (components;ports)[{Mdl}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btKNGPqwEeectLZKwQfI0A|org.eventb.core.guard#_btI-9PqwEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="inst_componentz" org.eventb.core.label="mp_i" org.eventb.core.predicate="inst_ports[IPort]⊆IPort" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btKNGPqwEeectLZKwQfI0A|org.eventb.core.guard#_btI-9fqwEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="inst_component{" org.eventb.core.label="mp_o" org.eventb.core.predicate="inst_ports[OPort]⊆OPort" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btKNGPqwEeectLZKwQfI0A|org.eventb.core.guard#_btI-9vqwEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="inst_component|" org.eventb.core.label="ports_inst_rel_comp_inst" org.eventb.core.predicate="ports∼[dom(inst_ports)]⊆dom(inst_components)" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btKNGPqwEeectLZKwQfI0A|org.eventb.core.guard#_btI-9_qwEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="inst_component}" org.eventb.core.label="ports_inst_rel_port_comp" org.eventb.core.predicate="inst_ports∼;ports∼;inst_components⊆ports∼" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btKNGPqwEeectLZKwQfI0A|org.eventb.core.guard#_btI--PqwEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="inst_component~" org.eventb.core.label="np" org.eventb.core.predicate="new_ports∈(components;ports)[{Inst}] ∖ dom(inst_ports) ↣ Port ∖ ran(components;ports)" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btKNGPqwEeectLZKwQfI0A|org.eventb.core.guard#_btI--fqwEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="inst_componenu'" org.eventb.core.label="np_i" org.eventb.core.predicate="new_ports[IPort]⊆IPort" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btKNGPqwEeectLZKwQfI0A|org.eventb.core.guard#_knJVMAK2EeiAPf1wPUl3Gw" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="inst_componenu(" org.eventb.core.label="np_o" org.eventb.core.predicate="new_ports[OPort]⊆OPort" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btKNGPqwEeectLZKwQfI0A|org.eventb.core.guard#_OuP8ACxHEeiUbZrF94gIyA" org.eventb.core.theorem="false"/>
<org.eventb.core.scParameter name="inst_ports" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btKNGPqwEeectLZKwQfI0A|org.eventb.core.parameter#_btKNE_qwEeectLZKwQfI0A" org.eventb.core.type="ℙ(Port×Port)"/>
<org.eventb.core.scParameter name="new_ports" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btKNGPqwEeectLZKwQfI0A|org.eventb.core.parameter#_LNbVcAWLEei9ocE08JsPSw" org.eventb.core.type="ℙ(Port×Port)"/>
<org.eventb.core.scAction name="inst_componenu)" org.eventb.core.assignment="ports ≔ ports∪((inst_components∪new_components)∼;ports;(inst_ports∪new_ports))" org.eventb.core.label="p" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_btKNGPqwEeectLZKwQfI0A|org.eventb.core.action#_nVtZw_I8EemlHb-ZV1EcBQ"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="to_unfold_p_iu" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="apply_link_pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_YUG9oAKzEeiAPf1wPUl3Gw">
<org.eventb.core.scRefinesEvent name="'" org.eventb.core.scTarget="/MODELS_INC_V9_VAR/mProperty.bcm|org.eventb.core.scMachineFile#mProperty|org.eventb.core.scEvent#to_unfold_c_ir" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_YUG9oAKzEeiAPf1wPUl3Gw|org.eventb.core.refinesEvent#_YUG9oQKzEeiAPf1wPUl3Gw"/>
<org.eventb.core.scGuard name="'" org.eventb.core.label="ic" org.eventb.core.predicate="inst_components∈components[{Inst}] ⤔ components[{Mdl}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.guard#_AkqiQAhGEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="(" org.eventb.core.label="nc" org.eventb.core.predicate="new_components∈components[{Inst}] ∖ dom(inst_components) ↣ Component ∖ ran(components)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.guard#_AkqiQQhGEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name=")" org.eventb.core.label="acycl_inst_components" org.eventb.core.predicate="dom(inst_components) ◁ container;inst_components⊆inst_components;container" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.guard#_AkqiQghGEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="*" org.eventb.core.label="acycl_container" org.eventb.core.predicate="container[dom(inst_components)]⊆dom(inst_components)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.guard#_AkqiQwhGEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="inst_componentw" org.eventb.core.label="inst_prop" org.eventb.core.predicate="inst_props∈Property ⇸ Property" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.event#_btKNEfqwEeectLZKwQfI0A|org.eventb.core.guard#_btHw0_qwEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAction name="inst_componentt" org.eventb.core.assignment="components ≔ components∪({Mdl} × ran(new_components))" org.eventb.core.label="m" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.action#__Rz3sAyBEeqU6uo9ksjEPA"/>
<org.eventb.core.scAction name="inst_componentu" org.eventb.core.assignment="container ≔ container∪((inst_components∪new_components)∼;container;(inst_components∪new_components))" org.eventb.core.label="f" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.action#_nECSUA3EEeqU6uo9ksjEPA"/>
<org.eventb.core.scAction name="inst_componentv" org.eventb.core.assignment="containers ≔ containers∪(new_components∼;containers;inst_components;containers)∪(new_components∼;containers;(new_components∪inst_components))" org.eventb.core.label="c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.action#_nECSUQ3EEeqU6uo9ksjEPA"/>
<org.eventb.core.scAction name="inst_componentx" org.eventb.core.assignment="cProperties ≔ cProperties∪((inst_components∪new_components)∼;cProperties;((id ⦂ ℙ(Property×Property))inst_props))" org.eventb.core.label="prop" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.event#_btKNEfqwEeectLZKwQfI0A|org.eventb.core.action#_bAhyggKxEeiAPf1wPUl3Gw"/>
<org.eventb.core.scParameter name="inst_components" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.parameter#_rQ0PgPtxEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scParameter name="new_components" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.parameter#_h4VmkAKrEeiAPf1wPUl3Gw" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scParameter name="inst_props" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.event#_btKNEfqwEeectLZKwQfI0A|org.eventb.core.parameter#_btHw0fqwEeectLZKwQfI0A" org.eventb.core.type="ℙ(Property×Property)"/>
<org.eventb.core.scGuard name="inst_componenty" org.eventb.core.label="comp" org.eventb.core.predicate="comp∈components[{Mdl}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_YUG9oAKzEeiAPf1wPUl3Gw|org.eventb.core.guard#_nVsyuPI8EemlHb-ZV1EcBQ" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="inst_componentz" org.eventb.core.label="comp_map" org.eventb.core.predicate="ran(inst_components)={comp}" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_YUG9oAKzEeiAPf1wPUl3Gw|org.eventb.core.guard#_nVsyufI8EemlHb-ZV1EcBQ" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="inst_component{" org.eventb.core.label="src_subc" org.eventb.core.predicate="src_subc × {comp}⊆container" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_YUG9oAKzEeiAPf1wPUl3Gw|org.eventb.core.guard#_nVsyuvI8EemlHb-ZV1EcBQ" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="inst_component|" org.eventb.core.label="dst_subc" org.eventb.core.predicate="dst_subc × {comp}⊆container" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_YUG9oAKzEeiAPf1wPUl3Gw|org.eventb.core.guard#_nVsyu_I8EemlHb-ZV1EcBQ" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="inst_component}" org.eventb.core.label="ip" org.eventb.core.predicate="src_ports∈(inst_components∼;ports ▷ IPort)[{comp}] ⤔ ports[src_subc]∩OPort" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_YUG9oAKzEeiAPf1wPUl3Gw|org.eventb.core.guard#_nVsyvPI8EemlHb-ZV1EcBQ" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="inst_component~" org.eventb.core.label="op" org.eventb.core.predicate="dst_ports∈(inst_components∼;ports ▷ OPort)[{comp}] ⤔ ports[dst_subc]∩IPort" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_YUG9oAKzEeiAPf1wPUl3Gw|org.eventb.core.guard#_nVsyvfI8EemlHb-ZV1EcBQ" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="inst_componenu'" org.eventb.core.label="np" org.eventb.core.predicate="new_ports∈(components;ports)[{Inst}] ∖ (dom(src_ports)∪dom(src_ports)) ↣ Port ∖ ran(components;ports)" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_YUG9oAKzEeiAPf1wPUl3Gw|org.eventb.core.guard#_nVsyvvI8EemlHb-ZV1EcBQ" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="inst_componenu(" org.eventb.core.label="np_i" org.eventb.core.predicate="new_ports[IPort]⊆IPort" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_YUG9oAKzEeiAPf1wPUl3Gw|org.eventb.core.guard#_nVtZwPI8EemlHb-ZV1EcBQ" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="inst_componenu)" org.eventb.core.label="np_o" org.eventb.core.predicate="new_ports[OPort]⊆OPort" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_YUG9oAKzEeiAPf1wPUl3Gw|org.eventb.core.guard#_nVtZwfI8EemlHb-ZV1EcBQ" org.eventb.core.theorem="false"/>
<org.eventb.core.scParameter name="comp" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_YUG9oAKzEeiAPf1wPUl3Gw|org.eventb.core.parameter#_nVsysvI8EemlHb-ZV1EcBQ" org.eventb.core.type="Component"/>
<org.eventb.core.scParameter name="dst_ports" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_YUG9oAKzEeiAPf1wPUl3Gw|org.eventb.core.parameter#_nVsytvI8EemlHb-ZV1EcBQ" org.eventb.core.type="ℙ(Port×Port)"/>
<org.eventb.core.scParameter name="dst_subc" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_YUG9oAKzEeiAPf1wPUl3Gw|org.eventb.core.parameter#_nVsytPI8EemlHb-ZV1EcBQ" org.eventb.core.type="ℙ(Component)"/>
<org.eventb.core.scParameter name="new_ports" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_YUG9oAKzEeiAPf1wPUl3Gw|org.eventb.core.parameter#_nVsyt_I8EemlHb-ZV1EcBQ" org.eventb.core.type="ℙ(Port×Port)"/>
<org.eventb.core.scParameter name="src_ports" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_YUG9oAKzEeiAPf1wPUl3Gw|org.eventb.core.parameter#_nVsytfI8EemlHb-ZV1EcBQ" org.eventb.core.type="ℙ(Port×Port)"/>
<org.eventb.core.scParameter name="src_subc" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_YUG9oAKzEeiAPf1wPUl3Gw|org.eventb.core.parameter#_nVsys_I8EemlHb-ZV1EcBQ" org.eventb.core.type="ℙ(Component)"/>
<org.eventb.core.scAction name="inst_componenu*" org.eventb.core.assignment="ports ≔ ports∪((inst_components∪new_components)∼;ports;new_ports)" org.eventb.core.label="p" org.eventb.core.source="/MODELS_INC_V9_VAR/mPort.bum|org.eventb.core.machineFile#mPort|org.eventb.core.event#_YUG9oAKzEeiAPf1wPUl3Gw|org.eventb.core.action#_LcSJoBKaEeqU6uo9ksjEPA"/>
</org.eventb.core.scEvent>
</org.eventb.core.scMachineFile>
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.psFile>
<org.eventb.core.psStatus name="FIN" org.eventb.core.confidence="0" org.eventb.core.poStamp="68" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/thm/THM" org.eventb.core.confidence="0" org.eventb.core.poStamp="69" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/port/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="69" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/port_finite/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="69" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/port_not_shared/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="69" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/p_mult/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="69" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="instanciate_pattern/to_unfold_p_in/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="69" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/inst2pat_p_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="69" org.eventb.core.psBroken="true" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/inst2pat_commp/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="69" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/to_unfold_p_inst2pat/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="69" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/to_unfold_p_in_comp/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="69" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/i2p_IPort/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="69" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/i2p_OPort/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="69" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/p_index_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="69" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="instanciate_pattern/p_mult/WD" org.eventb.core.confidence="0" org.eventb.core.poStamp="69" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_root_c/port/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="69" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_root_c/p_mult/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="69" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_root_c/to_unfold_p_in/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="69" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_root_c/inst2pat_p_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="69" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_root_c/inst2pat_commp/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="69" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_root_c/to_unfold_p_inst2pat/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="69" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_root_c/to_unfold_p_in_comp/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="69" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/port/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_c/p_mult/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/to_unfold_p_in/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/inst2pat_p_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/inst2pat_commp/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_node_c/to_unfold_p_inst2pat/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_node_c/to_unfold_p_in_comp/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_p/new_p_ty/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_p/port/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_p/port_finite/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="70" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_p/port_not_shared/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_p/p_mult/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_p/to_unfold_p_in/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_p/inst2pat_p_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_p/inst2pat_commp/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_p/to_unfold_p_inst2pat/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_p/to_unfold_p_in_comp/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_p/i2p_IPort/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_p/i2p_OPort/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="unfold_p/p_index_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="unfold_p/VAR" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="apply_pattern/port/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_pattern/port_finite/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="70" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="apply_pattern/port_not_shared/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_pattern/p_mult/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_pattern/to_unfold_p_in/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_pattern/inst2pat_p_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_pattern/inst2pat_commp/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_pattern/to_unfold_p_in_comp/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_link_pattern/port/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_link_pattern/port_finite/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_link_pattern/port_not_shared/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_link_pattern/p_mult/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_link_pattern/to_unfold_p_in/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_link_pattern/inst2pat_p_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_link_pattern/inst2pat_commp/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="true"/>
<org.eventb.core.psStatus name="apply_link_pattern/to_unfold_p_in_comp/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="70" org.eventb.core.psManual="true"/>
</org.eventb.core.psFile>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.machineFile org.eventb.core.configuration="org.eventb.core.fwd;de.prob.units.mchBase" org.eventb.texttools.text_lastmodified="1522339509396" org.eventb.texttools.text_representation="machine mPort refines mProperty sees cPort&#10;&#10;variables components container c_multiplicity to_clone_c c_index to_unfold_c to_unfold_c_in inst2pat_c cProperties ports p_multiplicity p_index to_unfold_p_in inst2pat_p&#10;&#10;invariants&#10; @port ports ∈ ran(components) ↔ Port&#10; @port_finite ∀c·finite(ports[{c}])&#10; @port_not_shared ports∼ ∈ Port ⇸ Component&#10; @p_mult p_multiplicity ∈ (components;ports)[Pattern] → ℕ&#10; @to_unfold_p_in to_unfold_p_in ∈ (components;ports)[{Pat}] ↔ components[{Inst}]&#10; @inst2pat_p_ty inst2pat_p ∈ (components;ports)[{Inst}] → (components;ports)[{Pat}]&#10; @inst2pat_commp inst2pat_p;ports∼ = ports∼;inst2pat_c&#10; @to_unfold_p_inst2pat ran(to_unfold_p_in) ⊆ dom(inst2pat_c)&#10; @to_unfold_p_in_comp to_unfold_p_in;inst2pat_c ⊆ ports∼&#10; @i2p_IPort inst2pat_p[IPort] ⊆ IPort&#10; @i2p_OPort inst2pat_p[OPort] ⊆ OPort&#10; @p_index_ty p_index ∈ dom(inst2pat_p) → ℕ&#10;&#10;variant to_unfold_p_in&#10;&#10;events&#10; event instanciate_pattern extends instanciate_pattern&#10; any inst_ports p_mult_others&#10; where&#10; @ip inst_ports ∈ (components;ports)[{Pat}] ↔ (components;ports)[{Mdl}]&#10; @ipr inst_ports∼ ∈ (components;ports)[{Mdl}] ⇸ (components;ports)[{Pat}]&#10; @pm p_mult_others ∈ (components;ports)[{Pat}] ∖ dom(inst_ports) → ℕ&#10; theorem @thm ∀p· finite(inst_ports[{p}])&#10; then&#10; @p_mult p_multiplicity ≔ p_multiplicity  (p_mult_others  {pp·pp∈(components;ports)[{Pat}] ∣ pp ↦ card(inst_ports[{pp}])})&#10; @inst2pat_p inst2pat_p ≔ ∅&#10; @ports ports ≔ (components[{Inst}]) ⩤ ports&#10; @unfold_p to_unfold_p_in ≔ ∅&#10; @p_index p_index ≔ ∅&#10; end&#10;&#10; event unfold_root_c extends unfold_root_c&#10; end&#10;&#10; event clone_c extends clone_c&#10; then&#10; @unfold_p_in to_unfold_p_in ≔ to_unfold_p_in ∪ (ports[{to_clone_c(c)}] × {c})&#10; end&#10;&#10; event unfold_node_c extends unfold_node_c&#10; end&#10;&#10; convergent event unfold_p&#10; any p // port to unfold&#10; c // target component&#10; new_p // replicated ports&#10;&#10; where&#10; @p_ty p ↦ c ∈ to_unfold_p_in&#10; @new_p_ty new_p ∈ 1‥p_multiplicity(p) ↣ Port ∖ ran(components;ports)&#10; @duplicate_IPorts_direction p ∈ IPort ⇒ ran(new_p) ⊆ IPort&#10; @duplicate_OPorts_direction p ∈ OPort ⇒ ran(new_p) ⊆ OPort&#10; then&#10; @new_p_component ports ≔ ports ∪ ({c} × ran(new_p))&#10; @dp to_unfold_p_in ≔ to_unfold_p_in ∖ {p↦c}&#10; @inst2pat_p inst2pat_p ≔ inst2pat_p ∪ (ran(new_p) × {p})&#10; @p_index p_index ≔ p_index ∪ new_p∼&#10; end&#10;&#10; event apply_pattern extends apply_pattern&#10; any inst_ports new_ports&#10; where&#10; @ip inst_ports ∈ (components;ports)[{Inst}] ⤔ (components;ports)[{Mdl}]&#10; @mp_i inst_ports[IPort] ⊆ IPort&#10; @mp_o inst_ports[OPort] ⊆ OPort&#10; @ports_inst_rel_comp_inst ports∼[dom(inst_ports)] ⊆ dom(inst_components) // Les ports instanciés sont des ports de composants instanciés&#10; @ports_inst_rel_port_comp inst_ports∼;ports∼;inst_components ⊆ ports∼&#10; @np new_ports ∈ (components;ports)[{Inst}] ∖ dom(inst_ports) ↣ Port ∖ ran(components;ports)&#10; @np_i new_ports[IPort] ⊆ IPort&#10; @np_o new_ports[OPort] ⊆ OPort&#10; then&#10; @c ports ≔ ports ∪ ((inst_components ∪ new_components)∼;ports;(inst_ports ∪ new_ports))&#10; end&#10;end&#10;" version="5">
<org.eventb.core.refinesMachine name="_gbAPMADlEei-meqqkXX9bA" org.eventb.core.target="mProperty"/>
<org.eventb.core.seesContext name="_0kfYMfqeEeectLZKwQfI0A" org.eventb.core.target="cPort"/>
<org.eventb.core.event name="'" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="instanciate_pattern">
<org.eventb.core.refinesEvent name="_btHw0PqwEeectLZKwQfI0A" org.eventb.core.target="instanciate_pattern"/>
<org.eventb.core.parameter name="_btHw0fqwEeectLZKwQfI0A" org.eventb.core.identifier="inst_ports"/>
<org.eventb.core.guard name="_btHw0_qwEeectLZKwQfI0A" org.eventb.core.label="ip" org.eventb.core.predicate="inst_ports ∈ (components;ports)[{Pat}] ↔ (components;ports)[{Mdl}]"/>
<org.eventb.core.guard name="_btHw1PqwEeectLZKwQfI0A" org.eventb.core.label="ipr" org.eventb.core.predicate="inst_ports∼ ∈ (components;ports)[{Mdl}] ⇸ (components;ports)[{Pat}]"/>
<org.eventb.core.guard name="_btHw1fqwEeectLZKwQfI0A" org.eventb.core.label="pm" org.eventb.core.predicate="p_mult_others ∈ (components;ports)[{Pat}] ∖ dom(inst_ports) → ℕ"/>
<org.eventb.core.action name="_btIX4PqwEeectLZKwQfI0A" org.eventb.core.assignment="p_multiplicity ≔ p_multiplicity  (p_mult_others  {pp·pp∈(components;ports)[{Pat}] ∣ pp ↦ card(inst_ports[{pp}])})" org.eventb.core.label="p_mult"/>
<org.eventb.core.parameter name="_btHw0vqwEeectLZKwQfI0A" org.eventb.core.identifier="p_mult_others"/>
<org.eventb.core.action name="_btJmA_qwEeectLZKwQfI0A" org.eventb.core.assignment="inst2pat_p ≔ ∅" org.eventb.core.label="inst2pat_p"/>
<org.eventb.core.action name="_btJmCfqwEeectLZKwQfI0A" org.eventb.core.assignment="ports ≔ (components[{Inst}]) ⩤ ports" org.eventb.core.label="ports"/>
<org.eventb.core.action name="_btJmCvqwEeectLZKwQfI0A" org.eventb.core.assignment="to_unfold_p_in ≔ ∅" org.eventb.core.label="unfold_p"/>
<org.eventb.core.action name="_btKNEPqwEeectLZKwQfI0A" org.eventb.core.assignment="p_index ≔ ∅" org.eventb.core.label="p_index"/>
<org.eventb.core.guard name="_btHw1vqwEeectLZKwQfI0A" org.eventb.core.label="thm" org.eventb.core.predicate="∀p· finite(inst_ports[{p}])" org.eventb.core.theorem="true"/>
</org.eventb.core.event>
<org.eventb.core.variable name="_0kf_QPqeEeectLZKwQfI0A" org.eventb.core.identifier="components"/>
<org.eventb.core.variable name="_0kf_QfqeEeectLZKwQfI0A" org.eventb.core.identifier="container"/>
<org.eventb.core.variable name="_0kf_QvqeEeectLZKwQfI0A" org.eventb.core.identifier="c_multiplicity"/>
<org.eventb.core.variable name="_0kf_Q_qeEeectLZKwQfI0A" org.eventb.core.identifier="to_clone_c"/>
<org.eventb.core.invariant name="_0kf_RPqeEeectLZKwQfI0A" org.eventb.core.label="port" org.eventb.core.predicate="ports ∈ ran(components) ↔ Port"/>
<org.eventb.core.invariant name="_0kf_RfqeEeectLZKwQfI0A" org.eventb.core.label="port_finite" org.eventb.core.predicate="∀c·finite(ports[{c}])"/>
<org.eventb.core.invariant name="_0kf_RvqeEeectLZKwQfI0A" org.eventb.core.label="port_not_shared" org.eventb.core.predicate="ports∼ ∈ Port ⇸ Component"/>
<org.eventb.core.invariant name="_0kf_R_qeEeectLZKwQfI0A" org.eventb.core.label="p_mult" org.eventb.core.predicate="p_multiplicity ∈ (components;ports)[Pattern] → ℕ"/>
<org.eventb.core.variable name="_btIX4fqwEeectLZKwQfI0A" org.eventb.core.identifier="c_index"/>
<org.eventb.core.invariant name="_btIX4vqwEeectLZKwQfI0A" org.eventb.core.label="to_unfold_p_in" org.eventb.core.predicate="to_unfold_p_in ∈ (components;ports)[{Pat}] ↔ components[{Inst}]"/>
<org.eventb.core.event name="_btIX4_qwEeectLZKwQfI0A" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="unfold_root_c">
<org.eventb.core.refinesEvent name="_jNxEQAKyEeiAPf1wPUl3Gw" org.eventb.core.target="unfold_root_c"/>
</org.eventb.core.event>
<org.eventb.core.event name="_btJmBfqwEeectLZKwQfI0A" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="clone_c">
<org.eventb.core.refinesEvent name="_SDieEP06Eees7pYemx4WBQ" org.eventb.core.target="clone_c"/>
<org.eventb.core.action name="_btKNFfqwEeectLZKwQfI0A" org.eventb.core.assignment="to_unfold_p_in ≔ to_unfold_p_in ∪ (ports[{to_clone_c(c)}] × {c})" org.eventb.core.label="unfold_p_in"/>
</org.eventb.core.event>
<org.eventb.core.event name="_btKNEfqwEeectLZKwQfI0A" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="unfold_node_c">
<org.eventb.core.refinesEvent name="_YT9zsAKzEeiAPf1wPUl3Gw" org.eventb.core.target="unfold_node_c"/>
</org.eventb.core.event>
<org.eventb.core.event name="_btKNGPqwEeectLZKwQfI0A" org.eventb.core.convergence="1" org.eventb.core.extended="false" org.eventb.core.label="unfold_p">
<org.eventb.core.parameter name="_btI-8fqwEeectLZKwQfI0A" org.eventb.core.comment="port to unfold" org.eventb.core.identifier="p"/>
<org.eventb.core.parameter name="_btI-8vqwEeectLZKwQfI0A" org.eventb.core.comment="target component" org.eventb.core.identifier="c"/>
<org.eventb.core.guard name="_btHw1_qwEeectLZKwQfI0A" org.eventb.core.label="p_ty" org.eventb.core.predicate="p ↦ c ∈ to_unfold_p_in"/>
<org.eventb.core.guard name="_btHw2PqwEeectLZKwQfI0A" org.eventb.core.label="new_p_ty" org.eventb.core.predicate="new_p ∈ 1‥p_multiplicity(p) ↣ Port ∖ ran(components;ports)"/>
<org.eventb.core.guard name="_btHw2fqwEeectLZKwQfI0A" org.eventb.core.label="duplicate_IPorts_direction" org.eventb.core.predicate="p ∈ IPort ⇒ ran(new_p) ⊆ IPort"/>
<org.eventb.core.action name="_GO3gcAK8EeiAPf1wPUl3Gw" org.eventb.core.assignment="ports ≔ ports ∪ ({c} × ran(new_p))" org.eventb.core.label="new_p_component"/>
<org.eventb.core.action name="_YHf5cAUuEei9ocE08JsPSw" org.eventb.core.assignment="to_unfold_p_in ≔ to_unfold_p_in ∖ {p↦c}" org.eventb.core.label="dp"/>
<org.eventb.core.parameter name="_btJmB_qwEeectLZKwQfI0A" org.eventb.core.comment="replicated ports" org.eventb.core.identifier="new_p"/>
<org.eventb.core.action name="_YHiVsAUuEei9ocE08JsPSw" org.eventb.core.assignment="inst2pat_p ≔ inst2pat_p ∪ (ran(new_p) × {p})" org.eventb.core.label="inst2pat_p"/>
<org.eventb.core.action name="_YHiVsQUuEei9ocE08JsPSw" org.eventb.core.assignment="p_index ≔ p_index ∪ new_p∼" org.eventb.core.label="p_index"/>
<org.eventb.core.guard name="_btI-8_qwEeectLZKwQfI0A" org.eventb.core.label="duplicate_OPorts_direction" org.eventb.core.predicate="p ∈ OPort ⇒ ran(new_p) ⊆ OPort"/>
</org.eventb.core.event>
<org.eventb.core.variable name="_zYW3EPqwEeectLZKwQfI0A" org.eventb.core.identifier="to_unfold_c"/>
<org.eventb.core.invariant name="_zYW3EfqwEeectLZKwQfI0A" org.eventb.core.label="inst2pat_p_ty" org.eventb.core.predicate="inst2pat_p ∈ (components;ports)[{Inst}] → (components;ports)[{Pat}]"/>
<org.eventb.core.variable name="_ANiZwPqxEeectLZKwQfI0A" org.eventb.core.identifier="to_unfold_c_in"/>
<org.eventb.core.variable name="_JtPOYPqxEeectLZKwQfI0A" org.eventb.core.identifier="inst2pat_c"/>
<org.eventb.core.variable name="_jRoOoPqxEeectLZKwQfI0A" org.eventb.core.identifier="cProperties"/>
<org.eventb.core.variable name="_oU9JIPqyEeectLZKwQfI0A" org.eventb.core.identifier="ports"/>
<org.eventb.core.invariant name="_F0IYkPriEeerIsS6OyYQ4w" org.eventb.core.label="inst2pat_commp" org.eventb.core.predicate="inst2pat_p;ports∼ = ports∼;inst2pat_c"/>
<org.eventb.core.variable name="_6RL9kAA2EeictLZKwQfI0A" org.eventb.core.identifier="p_multiplicity"/>
<org.eventb.core.variable name="_h1eCEADlEei-meqqkXX9bA" org.eventb.core.identifier="p_index"/>
<org.eventb.core.invariant name="_ui7VEAFGEei9ocE08JsPSw" org.eventb.core.label="to_unfold_p_inst2pat" org.eventb.core.predicate="ran(to_unfold_p_in) ⊆ dom(inst2pat_c)"/>
<org.eventb.core.event name="_YUG9oAKzEeiAPf1wPUl3Gw" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="apply_pattern">
<org.eventb.core.refinesEvent name="_YUG9oQKzEeiAPf1wPUl3Gw" org.eventb.core.target="apply_pattern"/>
<org.eventb.core.parameter name="_btKNE_qwEeectLZKwQfI0A" org.eventb.core.identifier="inst_ports"/>
<org.eventb.core.guard name="_btI-9PqwEeectLZKwQfI0A" org.eventb.core.label="ip" org.eventb.core.predicate="inst_ports ∈ (components;ports)[{Inst}] ⤔ (components;ports)[{Mdl}]"/>
<org.eventb.core.guard name="_btI-9fqwEeectLZKwQfI0A" org.eventb.core.label="mp_i" org.eventb.core.predicate="inst_ports[IPort] ⊆ IPort"/>
<org.eventb.core.guard name="_btI-9vqwEeectLZKwQfI0A" org.eventb.core.label="mp_o" org.eventb.core.predicate="inst_ports[OPort] ⊆ OPort"/>
<org.eventb.core.guard name="_btI-9_qwEeectLZKwQfI0A" org.eventb.core.comment="Les ports instanciés sont des ports de composants instanciés" org.eventb.core.label="ports_inst_rel_comp_inst" org.eventb.core.predicate="ports∼[dom(inst_ports)] ⊆ dom(inst_components)"/>
<org.eventb.core.guard name="_btI--PqwEeectLZKwQfI0A" org.eventb.core.label="ports_inst_rel_port_comp" org.eventb.core.predicate="inst_ports∼;ports∼;inst_components ⊆ ports∼"/>
<org.eventb.core.guard name="_btI--fqwEeectLZKwQfI0A" org.eventb.core.label="np" org.eventb.core.predicate="new_ports ∈ (components;ports)[{Inst}] ∖ dom(inst_ports) ↣ Port ∖ ran(components;ports)"/>
<org.eventb.core.guard name="_knJVMAK2EeiAPf1wPUl3Gw" org.eventb.core.label="np_i" org.eventb.core.predicate="new_ports[IPort] ⊆ IPort"/>
<org.eventb.core.parameter name="_LNbVcAWLEei9ocE08JsPSw" org.eventb.core.identifier="new_ports"/>
<org.eventb.core.action name="_f2PGEAspEeigQsLVMUeRQw" org.eventb.core.assignment="ports ≔ ports ∪ ((inst_components ∪ new_components)∼;ports;(inst_ports ∪ new_ports))" org.eventb.core.label="c"/>
<org.eventb.core.guard name="_OuP8ACxHEeiUbZrF94gIyA" org.eventb.core.label="np_o" org.eventb.core.predicate="new_ports[OPort] ⊆ OPort"/>
</org.eventb.core.event>
<org.eventb.core.variable name="_zY448AK7EeiAPf1wPUl3Gw" org.eventb.core.identifier="to_unfold_p_in"/>
<org.eventb.core.variable name="_zY448QK7EeiAPf1wPUl3Gw" org.eventb.core.identifier="inst2pat_p"/>
<org.eventb.core.invariant name="_zY448gK7EeiAPf1wPUl3Gw" org.eventb.core.label="to_unfold_p_in_comp" org.eventb.core.predicate="to_unfold_p_in;inst2pat_c ⊆ ports∼"/>
<org.eventb.core.invariant name="_22_TUALCEeiAPf1wPUl3Gw" org.eventb.core.label="i2p_IPort" org.eventb.core.predicate="inst2pat_p[IPort] ⊆ IPort"/>
<org.eventb.core.invariant name="_QFUfMAWQEei9ocE08JsPSw" org.eventb.core.label="i2p_OPort" org.eventb.core.predicate="inst2pat_p[OPort] ⊆ OPort"/>
<org.eventb.core.invariant name="_QFVGQAWQEei9ocE08JsPSw" org.eventb.core.label="p_index_ty" org.eventb.core.predicate="p_index ∈ dom(inst2pat_p) → ℕ"/>
<org.eventb.core.variant name="_7pQu4Af5EeiFlqW-8GKglg" org.eventb.core.expression="to_unfold_p_in"/>
</org.eventb.core.machineFile>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.machineFile org.eventb.core.configuration="org.eventb.core.fwd;de.prob.units.mchBase" org.eventb.texttools.text_lastmodified="1575026476482" org.eventb.texttools.text_representation="machine mPort refines mProperty sees cPort&#10;&#10;variables components container containers c_multiplicity c_index to_unfold_c to_unfold_c_in inst2pat_c cProperties M P c_indexes ports p_multiplicity p_index to_unfold_p_in inst2pat_p&#10;&#10;invariants&#10; @port ports ∈ ran(components) ↔ Port&#10; @port_finite ∀c·finite(ports[{c}])&#10; @port_not_shared ports∼ ∈ Port ⇸ Component&#10; @p_mult p_multiplicity ∈ (components;ports)[Pattern] → ℕ&#10; @to_unfold_p_in to_unfold_p_in ∈ (components;ports)[{Pat}] ↔ components[{Inst}]&#10; @inst2pat_p_ty inst2pat_p ∈ (components;ports)[{Inst}] → (components;ports)[{Pat}]&#10; @inst2pat_commp inst2pat_p;ports∼ = ports∼;inst2pat_c&#10; @to_unfold_p_inst2pat ran(to_unfold_p_in) ⊆ dom(inst2pat_c)&#10; @to_unfold_p_in_comp to_unfold_p_in;inst2pat_c ⊆ ports∼&#10; @i2p_IPort inst2pat_p[IPort] ⊆ IPort&#10; @i2p_OPort inst2pat_p[OPort] ⊆ OPort&#10; @p_index_ty p_index ∈ dom(inst2pat_p) → ℕ&#10;&#10;variant to_unfold_p_in&#10;&#10;events&#10; event instanciate_pattern extends instanciate_pattern&#10; any inst_ports p_mult_others&#10; where&#10; @ip inst_ports ∈ (components;ports)[{Pat}] ↔ (components;ports)[{Mdl}]&#10; @ipr inst_ports∼ ∈ (components;ports)[{Mdl}] ⇸ (components;ports)[{Pat}]&#10; @pm p_mult_others ∈ (components;ports)[{Pat}] ∖ dom(inst_ports) → ℕ&#10; theorem @thm ∀p· finite(inst_ports[{p}])&#10; then&#10; @p_mult p_multiplicity ≔ p_multiplicity  (p_mult_others  {pp·pp∈(components;ports)[{Pat}] ∣ pp ↦ card(inst_ports[{pp}])})&#10; @inst2pat_p inst2pat_p ≔ ∅&#10; @ports ports ≔ (components[{Inst}]) ⩤ ports&#10; @unfold_p to_unfold_p_in ≔ ∅&#10; @p_index p_index ≔ ∅&#10; end&#10;&#10; event unfold_root_c extends unfold_root_c&#10; then&#10;&#9;@unfold_p_in to_unfold_p_in ≔ to_unfold_p_in ∪ (ports[{c}] × ran(new_c))&#10; end&#10;&#10; event unfold_node_c extends unfold_node_c&#10; then&#10;&#9;@unfold_p_in to_unfold_p_in ≔ to_unfold_p_in ∪ (ports[{c}] × ran(new_c))&#10; end&#10;&#10; convergent event unfold_p&#10; any p // port to unfold&#10; c // target component&#10; new_p // replicated ports&#10;&#10; where&#10; @p_ty p ↦ c ∈ to_unfold_p_in&#10; @new_p_ty new_p ∈ 1‥p_multiplicity(p) ↣ Port ∖ ran(components;ports)&#10; @duplicate_IPorts_direction p ∈ IPort ⇒ ran(new_p) ⊆ IPort&#10; @duplicate_OPorts_direction p ∈ OPort ⇒ ran(new_p) ⊆ OPort&#10; then&#10; @new_p_component ports ≔ ports ∪ ({c} × ran(new_p))&#10; @dp to_unfold_p_in ≔ to_unfold_p_in ∖ {p↦c}&#10; @inst2pat_p inst2pat_p ≔ inst2pat_p ∪ (ran(new_p) × {p})&#10; @p_index p_index ≔ p_index ∪ new_p∼&#10; end&#10;&#10; event apply_pattern extends apply_pattern&#10; any inst_ports new_ports&#10; where&#10; @ip inst_ports ∈ (components;ports)[{Inst}] ⤔ (components;ports)[{Mdl}]&#10; @mp_i inst_ports[IPort] ⊆ IPort&#10; @mp_o inst_ports[OPort] ⊆ OPort&#10; @ports_inst_rel_comp_inst ports∼[dom(inst_ports)] ⊆ dom(inst_components) // Les ports instanciés sont des ports de composants instanciés&#10; @ports_inst_rel_port_comp inst_ports∼;ports∼;inst_components ⊆ ports∼&#10; @np new_ports ∈ (components;ports)[{Inst}] ∖ dom(inst_ports) ↣ Port ∖ ran(components;ports)&#10; @np_i new_ports[IPort] ⊆ IPort&#10; @np_o new_ports[OPort] ⊆ OPort&#10; then&#10; @p ports ≔ ports ∪ ((inst_components ∪ new_components)∼;ports;(inst_ports ∪ new_ports))&#10; end&#10;&#10; event apply_link_pattern extends apply_pattern&#10; any comp src_subc dst_subc src_ports dst_ports new_ports&#10; where&#10; @comp comp ∈ components[{Mdl}]&#10; @comp_map ran( inst_components) = {comp}&#10; @src_subc src_subc × {comp} ⊆ container&#10; @dst_subc dst_subc × {comp} ⊆ container&#10; @ip src_ports ∈ (inst_components∼;ports▷IPort)[{comp}] ⤔ ports[src_subc] ∩ OPort&#10; @op dst_ports ∈ (inst_components∼;ports▷OPort)[{comp}] ⤔ ports[dst_subc] ∩ IPort&#10; @np new_ports ∈ (components;ports)[{Inst}] ∖ (dom(src_ports) ∪ dom(src_ports)) ↣ Port ∖ ran(components;ports)&#10; @np_i new_ports[IPort] ⊆ IPort&#10; @np_o new_ports[OPort] ⊆ OPort&#10; then&#10; @p ports ≔ ports ∪ ((inst_components ∪ new_components)∼;ports;new_ports)&#10; end&#10;end&#10;" version="5">
<org.eventb.core.refinesMachine name="_gbAPMADlEei-meqqkXX9bA" org.eventb.core.target="mProperty"/>
<org.eventb.core.seesContext name="_0kfYMfqeEeectLZKwQfI0A" org.eventb.core.target="cPort"/>
<org.eventb.core.event name="'" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="instanciate_pattern">
<org.eventb.core.refinesEvent name="_btHw0PqwEeectLZKwQfI0A" org.eventb.core.target="instanciate_pattern"/>
<org.eventb.core.parameter name="_btHw0fqwEeectLZKwQfI0A" org.eventb.core.identifier="inst_ports"/>
<org.eventb.core.guard name="_btHw0_qwEeectLZKwQfI0A" org.eventb.core.label="ip" org.eventb.core.predicate="inst_ports ∈ (components;ports)[{Pat}] ↔ (components;ports)[{Mdl}]"/>
<org.eventb.core.guard name="_btHw1PqwEeectLZKwQfI0A" org.eventb.core.label="ipr" org.eventb.core.predicate="inst_ports∼ ∈ (components;ports)[{Mdl}] ⇸ (components;ports)[{Pat}]"/>
<org.eventb.core.guard name="_btHw1fqwEeectLZKwQfI0A" org.eventb.core.label="pm" org.eventb.core.predicate="p_mult_others ∈ (components;ports)[{Pat}] ∖ dom(inst_ports) → ℕ"/>
<org.eventb.core.action name="_btIX4PqwEeectLZKwQfI0A" org.eventb.core.assignment="p_multiplicity ≔ p_multiplicity  (p_mult_others  {pp·pp∈(components;ports)[{Pat}] ∣ pp ↦ card(inst_ports[{pp}])})" org.eventb.core.label="p_mult"/>
<org.eventb.core.parameter name="_btHw0vqwEeectLZKwQfI0A" org.eventb.core.identifier="p_mult_others"/>
<org.eventb.core.action name="_btJmA_qwEeectLZKwQfI0A" org.eventb.core.assignment="inst2pat_p ≔ ∅" org.eventb.core.label="inst2pat_p"/>
<org.eventb.core.action name="_btJmCfqwEeectLZKwQfI0A" org.eventb.core.assignment="ports ≔ (components[{Inst}]) ⩤ ports" org.eventb.core.label="ports"/>
<org.eventb.core.action name="_btJmCvqwEeectLZKwQfI0A" org.eventb.core.assignment="to_unfold_p_in ≔ ∅" org.eventb.core.label="unfold_p"/>
<org.eventb.core.action name="_btKNEPqwEeectLZKwQfI0A" org.eventb.core.assignment="p_index ≔ ∅" org.eventb.core.label="p_index"/>
<org.eventb.core.guard name="_btHw1vqwEeectLZKwQfI0A" org.eventb.core.label="thm" org.eventb.core.predicate="∀p· finite(inst_ports[{p}])" org.eventb.core.theorem="true"/>
</org.eventb.core.event>
<org.eventb.core.variable name="_0kf_QPqeEeectLZKwQfI0A" org.eventb.core.identifier="components"/>
<org.eventb.core.variable name="_0kf_QfqeEeectLZKwQfI0A" org.eventb.core.identifier="container"/>
<org.eventb.core.variable name="_0kf_QvqeEeectLZKwQfI0A" org.eventb.core.identifier="containers"/>
<org.eventb.core.variable name="_0kf_Q_qeEeectLZKwQfI0A" org.eventb.core.identifier="c_multiplicity"/>
<org.eventb.core.invariant name="_0kf_RPqeEeectLZKwQfI0A" org.eventb.core.label="port" org.eventb.core.predicate="ports ∈ ran(components) ↔ Port"/>
<org.eventb.core.invariant name="_0kf_RfqeEeectLZKwQfI0A" org.eventb.core.label="port_finite" org.eventb.core.predicate="∀c·finite(ports[{c}])"/>
<org.eventb.core.invariant name="_0kf_RvqeEeectLZKwQfI0A" org.eventb.core.label="port_not_shared" org.eventb.core.predicate="ports∼ ∈ Port ⇸ Component"/>
<org.eventb.core.invariant name="_0kf_R_qeEeectLZKwQfI0A" org.eventb.core.label="p_mult" org.eventb.core.predicate="p_multiplicity ∈ (components;ports)[Pattern] → ℕ"/>
<org.eventb.core.variable name="_btIX4fqwEeectLZKwQfI0A" org.eventb.core.identifier="c_index"/>
<org.eventb.core.invariant name="_btIX4vqwEeectLZKwQfI0A" org.eventb.core.label="to_unfold_p_in" org.eventb.core.predicate="to_unfold_p_in ∈ (components;ports)[{Pat}] ↔ components[{Inst}]"/>
<org.eventb.core.event name="_btIX4_qwEeectLZKwQfI0A" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="unfold_root_c">
<org.eventb.core.refinesEvent name="_jNxEQAKyEeiAPf1wPUl3Gw" org.eventb.core.target="unfold_root_c"/>
<org.eventb.core.action name="_btKNFfqwEeectLZKwQfI0A" org.eventb.core.assignment="to_unfold_p_in ≔ to_unfold_p_in ∪ (ports[{c}] × ran(new_c))" org.eventb.core.label="unfold_p_in"/>
</org.eventb.core.event>
<org.eventb.core.event name="_btJmBfqwEeectLZKwQfI0A" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="unfold_node_c">
<org.eventb.core.refinesEvent name="_LcQUcBKaEeqU6uo9ksjEPA" org.eventb.core.target="unfold_node_c"/>
<org.eventb.core.action name="_GO3gcAK8EeiAPf1wPUl3Gw" org.eventb.core.assignment="to_unfold_p_in ≔ to_unfold_p_in ∪ (ports[{c}] × ran(new_c))" org.eventb.core.label="unfold_p_in"/>
</org.eventb.core.event>
<org.eventb.core.event name="_btKNEfqwEeectLZKwQfI0A" org.eventb.core.convergence="1" org.eventb.core.extended="false" org.eventb.core.label="unfold_p">
<org.eventb.core.parameter name="_btI-8fqwEeectLZKwQfI0A" org.eventb.core.comment="port to unfold" org.eventb.core.identifier="p"/>
<org.eventb.core.parameter name="_btI-8vqwEeectLZKwQfI0A" org.eventb.core.comment="target component" org.eventb.core.identifier="c"/>
<org.eventb.core.parameter name="_btJmB_qwEeectLZKwQfI0A" org.eventb.core.comment="replicated ports" org.eventb.core.identifier="new_p"/>
<org.eventb.core.guard name="_btHw1_qwEeectLZKwQfI0A" org.eventb.core.label="p_ty" org.eventb.core.predicate="p ↦ c ∈ to_unfold_p_in"/>
<org.eventb.core.guard name="_btHw2PqwEeectLZKwQfI0A" org.eventb.core.label="new_p_ty" org.eventb.core.predicate="new_p ∈ 1‥p_multiplicity(p) ↣ Port ∖ ran(components;ports)"/>
<org.eventb.core.guard name="_btHw2fqwEeectLZKwQfI0A" org.eventb.core.label="duplicate_IPorts_direction" org.eventb.core.predicate="p ∈ IPort ⇒ ran(new_p) ⊆ IPort"/>
<org.eventb.core.guard name="_btI-8_qwEeectLZKwQfI0A" org.eventb.core.label="duplicate_OPorts_direction" org.eventb.core.predicate="p ∈ OPort ⇒ ran(new_p) ⊆ OPort"/>
<org.eventb.core.action name="_YHf5cAUuEei9ocE08JsPSw" org.eventb.core.assignment="ports ≔ ports ∪ ({c} × ran(new_p))" org.eventb.core.label="new_p_component"/>
<org.eventb.core.action name="_YHiVsAUuEei9ocE08JsPSw" org.eventb.core.assignment="to_unfold_p_in ≔ to_unfold_p_in ∖ {p↦c}" org.eventb.core.label="dp"/>
<org.eventb.core.action name="_YHiVsQUuEei9ocE08JsPSw" org.eventb.core.assignment="inst2pat_p ≔ inst2pat_p ∪ (ran(new_p) × {p})" org.eventb.core.label="inst2pat_p"/>
<org.eventb.core.action name="_f2PGEAspEeigQsLVMUeRQw" org.eventb.core.assignment="p_index ≔ p_index ∪ new_p∼" org.eventb.core.label="p_index"/>
</org.eventb.core.event>
<org.eventb.core.event name="_btKNGPqwEeectLZKwQfI0A" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="apply_pattern">
<org.eventb.core.refinesEvent name="_LcQ7gBKaEeqU6uo9ksjEPA" org.eventb.core.target="apply_pattern"/>
<org.eventb.core.parameter name="_btKNE_qwEeectLZKwQfI0A" org.eventb.core.identifier="inst_ports"/>
<org.eventb.core.parameter name="_LNbVcAWLEei9ocE08JsPSw" org.eventb.core.identifier="new_ports"/>
<org.eventb.core.guard name="_btI-9PqwEeectLZKwQfI0A" org.eventb.core.label="ip" org.eventb.core.predicate="inst_ports ∈ (components;ports)[{Inst}] ⤔ (components;ports)[{Mdl}]"/>
<org.eventb.core.guard name="_btI-9fqwEeectLZKwQfI0A" org.eventb.core.label="mp_i" org.eventb.core.predicate="inst_ports[IPort] ⊆ IPort"/>
<org.eventb.core.guard name="_btI-9vqwEeectLZKwQfI0A" org.eventb.core.label="mp_o" org.eventb.core.predicate="inst_ports[OPort] ⊆ OPort"/>
<org.eventb.core.guard name="_btI-9_qwEeectLZKwQfI0A" org.eventb.core.comment="Les ports instanciés sont des ports de composants instanciés" org.eventb.core.label="ports_inst_rel_comp_inst" org.eventb.core.predicate="ports∼[dom(inst_ports)] ⊆ dom(inst_components)"/>
<org.eventb.core.guard name="_btI--PqwEeectLZKwQfI0A" org.eventb.core.label="ports_inst_rel_port_comp" org.eventb.core.predicate="inst_ports∼;ports∼;inst_components ⊆ ports∼"/>
<org.eventb.core.guard name="_btI--fqwEeectLZKwQfI0A" org.eventb.core.label="np" org.eventb.core.predicate="new_ports ∈ (components;ports)[{Inst}] ∖ dom(inst_ports) ↣ Port ∖ ran(components;ports)"/>
<org.eventb.core.guard name="_knJVMAK2EeiAPf1wPUl3Gw" org.eventb.core.label="np_i" org.eventb.core.predicate="new_ports[IPort] ⊆ IPort"/>
<org.eventb.core.guard name="_OuP8ACxHEeiUbZrF94gIyA" org.eventb.core.label="np_o" org.eventb.core.predicate="new_ports[OPort] ⊆ OPort"/>
<org.eventb.core.action name="_nVtZw_I8EemlHb-ZV1EcBQ" org.eventb.core.assignment="ports ≔ ports ∪ ((inst_components ∪ new_components)∼;ports;(inst_ports ∪ new_ports))" org.eventb.core.label="p"/>
</org.eventb.core.event>
<org.eventb.core.variable name="_zYW3EPqwEeectLZKwQfI0A" org.eventb.core.identifier="to_unfold_c"/>
<org.eventb.core.invariant name="_zYW3EfqwEeectLZKwQfI0A" org.eventb.core.label="inst2pat_p_ty" org.eventb.core.predicate="inst2pat_p ∈ (components;ports)[{Inst}] → (components;ports)[{Pat}]"/>
<org.eventb.core.variable name="_ANiZwPqxEeectLZKwQfI0A" org.eventb.core.identifier="to_unfold_c_in"/>
<org.eventb.core.variable name="_JtPOYPqxEeectLZKwQfI0A" org.eventb.core.identifier="inst2pat_c"/>
<org.eventb.core.variable name="_jRoOoPqxEeectLZKwQfI0A" org.eventb.core.identifier="cProperties"/>
<org.eventb.core.variable name="_oU9JIPqyEeectLZKwQfI0A" org.eventb.core.identifier="M"/>
<org.eventb.core.invariant name="_F0IYkPriEeerIsS6OyYQ4w" org.eventb.core.label="inst2pat_commp" org.eventb.core.predicate="inst2pat_p;ports∼ = ports∼;inst2pat_c"/>
<org.eventb.core.variable name="_6RL9kAA2EeictLZKwQfI0A" org.eventb.core.identifier="P"/>
<org.eventb.core.variable name="_h1eCEADlEei-meqqkXX9bA" org.eventb.core.identifier="c_indexes"/>
<org.eventb.core.invariant name="_ui7VEAFGEei9ocE08JsPSw" org.eventb.core.label="to_unfold_p_inst2pat" org.eventb.core.predicate="ran(to_unfold_p_in) ⊆ dom(inst2pat_c)"/>
<org.eventb.core.event name="_YUG9oAKzEeiAPf1wPUl3Gw" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="apply_link_pattern">
<org.eventb.core.refinesEvent name="_YUG9oQKzEeiAPf1wPUl3Gw" org.eventb.core.target="apply_pattern"/>
<org.eventb.core.parameter name="_nVsysvI8EemlHb-ZV1EcBQ" org.eventb.core.identifier="comp"/>
<org.eventb.core.parameter name="_nVsys_I8EemlHb-ZV1EcBQ" org.eventb.core.identifier="src_subc"/>
<org.eventb.core.parameter name="_nVsytPI8EemlHb-ZV1EcBQ" org.eventb.core.identifier="dst_subc"/>
<org.eventb.core.parameter name="_nVsytfI8EemlHb-ZV1EcBQ" org.eventb.core.identifier="src_ports"/>
<org.eventb.core.parameter name="_nVsytvI8EemlHb-ZV1EcBQ" org.eventb.core.identifier="dst_ports"/>
<org.eventb.core.parameter name="_nVsyt_I8EemlHb-ZV1EcBQ" org.eventb.core.identifier="new_ports"/>
<org.eventb.core.guard name="_nVsyuPI8EemlHb-ZV1EcBQ" org.eventb.core.label="comp" org.eventb.core.predicate="comp ∈ components[{Mdl}]"/>
<org.eventb.core.guard name="_nVsyufI8EemlHb-ZV1EcBQ" org.eventb.core.label="comp_map" org.eventb.core.predicate="ran( inst_components) = {comp}"/>
<org.eventb.core.guard name="_nVsyuvI8EemlHb-ZV1EcBQ" org.eventb.core.label="src_subc" org.eventb.core.predicate="src_subc × {comp} ⊆ container"/>
<org.eventb.core.guard name="_nVsyu_I8EemlHb-ZV1EcBQ" org.eventb.core.label="dst_subc" org.eventb.core.predicate="dst_subc × {comp} ⊆ container"/>
<org.eventb.core.guard name="_nVsyvPI8EemlHb-ZV1EcBQ" org.eventb.core.label="ip" org.eventb.core.predicate="src_ports ∈ (inst_components∼;ports▷IPort)[{comp}] ⤔ ports[src_subc] ∩ OPort"/>
<org.eventb.core.guard name="_nVsyvfI8EemlHb-ZV1EcBQ" org.eventb.core.label="op" org.eventb.core.predicate="dst_ports ∈ (inst_components∼;ports▷OPort)[{comp}] ⤔ ports[dst_subc] ∩ IPort"/>
<org.eventb.core.guard name="_nVsyvvI8EemlHb-ZV1EcBQ" org.eventb.core.label="np" org.eventb.core.predicate="new_ports ∈ (components;ports)[{Inst}] ∖ (dom(src_ports) ∪ dom(src_ports)) ↣ Port ∖ ran(components;ports)"/>
<org.eventb.core.guard name="_nVtZwPI8EemlHb-ZV1EcBQ" org.eventb.core.label="np_i" org.eventb.core.predicate="new_ports[IPort] ⊆ IPort"/>
<org.eventb.core.guard name="_nVtZwfI8EemlHb-ZV1EcBQ" org.eventb.core.label="np_o" org.eventb.core.predicate="new_ports[OPort] ⊆ OPort"/>
<org.eventb.core.action name="_LcSJoBKaEeqU6uo9ksjEPA" org.eventb.core.assignment="ports ≔ ports ∪ ((inst_components ∪ new_components)∼;ports;new_ports)" org.eventb.core.label="p"/>
</org.eventb.core.event>
<org.eventb.core.variable name="_zY448AK7EeiAPf1wPUl3Gw" org.eventb.core.identifier="ports"/>
<org.eventb.core.variable name="_zY448QK7EeiAPf1wPUl3Gw" org.eventb.core.identifier="p_multiplicity"/>
<org.eventb.core.invariant name="_zY448gK7EeiAPf1wPUl3Gw" org.eventb.core.label="to_unfold_p_in_comp" org.eventb.core.predicate="to_unfold_p_in;inst2pat_c ⊆ ports∼"/>
<org.eventb.core.invariant name="_22_TUALCEeiAPf1wPUl3Gw" org.eventb.core.label="i2p_IPort" org.eventb.core.predicate="inst2pat_p[IPort] ⊆ IPort"/>
<org.eventb.core.invariant name="_QFUfMAWQEei9ocE08JsPSw" org.eventb.core.label="i2p_OPort" org.eventb.core.predicate="inst2pat_p[OPort] ⊆ OPort"/>
<org.eventb.core.invariant name="_QFVGQAWQEei9ocE08JsPSw" org.eventb.core.label="p_index_ty" org.eventb.core.predicate="p_index ∈ dom(inst2pat_p) → ℕ"/>
<org.eventb.core.variant name="_7pQu4Af5EeiFlqW-8GKglg" org.eventb.core.expression="to_unfold_p_in"/>
<org.eventb.core.variable name="_LcSJoRKaEeqU6uo9ksjEPA" org.eventb.core.identifier="p_index"/>
<org.eventb.core.variable name="_LcSJohKaEeqU6uo9ksjEPA" org.eventb.core.identifier="to_unfold_p_in"/>
<org.eventb.core.variable name="_XAX34BKaEeqU6uo9ksjEPA" org.eventb.core.identifier="inst2pat_p"/>
</org.eventb.core.machineFile>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.scMachineFile org.eventb.core.accurate="true" org.eventb.core.configuration="org.eventb.core.fwd;de.prob.units.mchBase">
<org.eventb.core.scRefinesMachine name="'" org.eventb.core.scTarget="/MODELS_INC_V9_VAR/mComponent.bcm" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.refinesMachine#_0kfYMPqeEeectLZKwQfI0A"/>
<org.eventb.core.scSeesContext name="(" org.eventb.core.scTarget="/MODELS_INC_V9_VAR/cComponent.bcc" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.seesContext#_Rf6I4ADlEei-meqqkXX9bA"/>
<org.eventb.core.scInternalContext name="cModel">
<org.eventb.core.scAxiom name="'" org.eventb.core.label="Pattern_ty" org.eventb.core.predicate="Pattern⊆Model" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcfqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="(" org.eventb.core.label="Mdl_ty" org.eventb.core.predicate="Mdl∈Model ∖ Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcvqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name=")" org.eventb.core.label="Pat_ty" org.eventb.core.predicate="Pat∈Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wc_qkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="*" org.eventb.core.label="Inst_ty" org.eventb.core.predicate="Inst∈Model ∖ Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_fxjdEQKnEeiAPf1wPUl3Gw" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="+" org.eventb.core.label="Inst_Mdl" org.eventb.core.predicate="Inst≠Mdl" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_DGgrYAUMEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scConstant name="Inst" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_fxjdEAKnEeiAPf1wPUl3Gw" org.eventb.core.type="Model"/>
<org.eventb.core.scConstant name="Mdl" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_h20JYPqkEeectLZKwQfI0A" org.eventb.core.type="Model"/>
<org.eventb.core.scCarrierSet name="Model" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.carrierSet#_5dsj0PqTEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.scConstant name="Pat" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_b4aBsPraEeerIsS6OyYQ4w" org.eventb.core.type="Model"/>
<org.eventb.core.scConstant name="Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_h20wcPqkEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.scCarrierSet name="Property" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.carrierSet#_9dBM4ADlEei-meqqkXX9bA" org.eventb.core.type="ℙ(Property)"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scInternalContext name="cComponent">
<org.eventb.core.scExtendsContext name="'" org.eventb.core.scTarget="/MODELS_INC_V9_VAR/cModel.bcc|org.eventb.core.scContextFile#cModel" org.eventb.core.source="/MODELS_INC_V9_VAR/cComponent.buc|org.eventb.core.contextFile#cComponent|org.eventb.core.extendsContext#_IT7_UPqUEeectLZKwQfI0A"/>
<org.eventb.core.scCarrierSet name="Component" org.eventb.core.source="/MODELS_INC_V9_VAR/cComponent.buc|org.eventb.core.contextFile#cComponent|org.eventb.core.carrierSet#_IT7_UfqUEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component)"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scInvariant name="cComponenu" org.eventb.core.label="comp" org.eventb.core.predicate="components∈Model ↔ Component" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_cQf0Y_qUEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponenv" org.eventb.core.label="comp_finite" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_cQf0ZPqUEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponenw" org.eventb.core.label="comp_not_shared" org.eventb.core.predicate="components∼∈Component ⇸ Model" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_ip9Q0PqUEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponenx" org.eventb.core.label="c_mult" org.eventb.core.predicate="c_multiplicity∈components[{Pat}] → ℕ" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_GMp30PqWEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeny" org.eventb.core.label="cont_ty" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gmDo8fqgEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponenz" org.eventb.core.label="cl_ty" org.eventb.core.predicate="containers∈ran(components) ↔ ran(components)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gmDo8vqgEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponen{" org.eventb.core.label="cl_fin" org.eventb.core.predicate="∀c⦂Component·finite(containers∼[{c}])" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_oXBHAPqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponen|" org.eventb.core.label="cl_cont" org.eventb.core.predicate="container⊆containers" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dqNI_qkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponen}" org.eventb.core.label="cl_trans" org.eventb.core.predicate="containers;containers⊆containers" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dqNJPqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponen~" org.eventb.core.label="cl_left" org.eventb.core.predicate="containers⊆container;(containers∪(id ⦂ ℙ(Component×Component)))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dq0MPqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo'" org.eventb.core.label="cl_irrefl" org.eventb.core.predicate="containers∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_l7KVEQA1EeictLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo(" org.eventb.core.label="cl_comp" org.eventb.core.predicate="components;containers;components∼⊆(id ⦂ ℙ(Model×Model))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_l7KVEgA1EeictLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo)" org.eventb.core.label="cl_compr" org.eventb.core.predicate="components;containers∼;components∼⊆(id ⦂ ℙ(Model×Model))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_Hwdz4AKtEeiAPf1wPUl3Gw" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeo*" org.eventb.core.label="cont_ctr" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_xudpYQK5EeiAPf1wPUl3Gw" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeo+" org.eventb.core.label="cont_fin" org.eventb.core.predicate="∀c⦂Component·finite(container∼[{c}])" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_fxu54ALAEeiAPf1wPUl3Gw" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeo," org.eventb.core.label="irrefl" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_PaxdoAMwEei9ocE08JsPSw" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeo-" org.eventb.core.label="cont_mono" org.eventb.core.predicate="∀s⦂Component,c⦂Component·s ↦ c∈container⇒containers∼[{s}]⊂containers∼[{c}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_nieoAAMxEei9ocE08JsPSw" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeo." org.eventb.core.label="to_unfold_c_in" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0AMzEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo/" org.eventb.core.label="to_unfold_c" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0QMzEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo0" org.eventb.core.label="inst2pat_c_ty" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0gMzEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo1" org.eventb.core.label="inst2pat_unfold_in" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_V6rHAAM1Eei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo2" org.eventb.core.label="pat2inst_unfold" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_4gspwAkfEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo3" org.eventb.core.label="unfold_root" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_ClMccAk_EeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo4" org.eventb.core.label="unfold_in" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_6Bzq0AlZEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo5" org.eventb.core.label="unfold_mul" org.eventb.core.predicate="∀c⦂Component·c∈to_unfold_c⇒c_multiplicity(c)&gt;0" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_-v2gwAl5EeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo6" org.eventb.core.label="unfold_in_mul" org.eventb.core.predicate="∀c⦂Component·c∈dom(to_unfold_c_in)⇒c_multiplicity(c)&gt;0" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_Ar4dsAl8EeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo7" org.eventb.core.label="unfold_in_i2p" org.eventb.core.predicate="ran(to_unfold_c_in)⊆dom(inst2pat_c)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_byYtUAxjEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo8" org.eventb.core.label="unfold_cont" org.eventb.core.predicate="(inst2pat_c;to_unfold_c_in)∩container=(∅ ⦂ ℙ(Component×Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_ptqDcQxlEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo9" org.eventb.core.label="unfold_unfold_in" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_ptqDcgxlEeqU6uo9ksjEPA" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeo:" org.eventb.core.label="unfold_fin" org.eventb.core.predicate="∀c⦂Component·finite(to_unfold_c_in[{c}])" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_MM724AxtEeqU6uo9ksjEPA" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeo;" org.eventb.core.label="inst2pat_cont" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_MM724QxtEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo=" org.eventb.core.label="c_index_ty" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#__R1F0QyBEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo&gt;" org.eventb.core.label="to_clone_c_mult" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_nEDgcg3EEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeo?" org.eventb.core.label="M_fin" org.eventb.core.predicate="finite(ran(c_multiplicity))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_nEDgcw3EEeqU6uo9ksjEPA" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeo@" org.eventb.core.label="M" org.eventb.core.predicate="M=max(ran(c_multiplicity))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_nEDgdA3EEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoA" org.eventb.core.label="P" org.eventb.core.predicate="P=components[{Pat}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_nEDgdQ3EEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoB" org.eventb.core.label="P_fin" org.eventb.core.predicate="finite(P)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_3N038Q6WEeqU6uo9ksjEPA" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeoC" org.eventb.core.label="c_indexes_ty" org.eventb.core.predicate="c_indexes∈dom(inst2pat_c) ↣ (P ⇸ 1 ‥ M)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_rcyHQA6gEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoD" org.eventb.core.label="c_indexes_dom" org.eventb.core.predicate="∀i⦂Component·i∈dom(inst2pat_c)⇒dom(c_indexes(i))=(containers∪(id ⦂ ℙ(Component×Component)))[{inst2pat_c(i)}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_rcyHQQ6gEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoE" org.eventb.core.label="c_indexes_val" org.eventb.core.predicate="∀i⦂Component·i∈dom(inst2pat_c)⇒c_indexes(i)=inst2pat_c∼;((containers∪(id ⦂ ℙ(Component×Component)))[{i}] ◁ c_index)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_2SMx0Q7FEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoF" org.eventb.core.label="i2p_dom" org.eventb.core.predicate="∀i⦂Component·i∈dom(inst2pat_c)⇒containers[{i}]⊆dom(inst2pat_c)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_2SMx0g7FEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoG" org.eventb.core.label="unfold_index_ext" org.eventb.core.predicate="∀c⦂Component,m⦂ℙ(Component×ℤ)·c∈to_unfold_c∧m∈ran(c_indexes)⇒c∉dom(m)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_2SMx0w7FEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoH" org.eventb.core.label="unfold_in_index_ext" org.eventb.core.predicate="∀c⦂Component,i⦂Component,m⦂ℙ(Component×ℤ)·c ↦ i∈to_unfold_c_in∧c_indexes(i)⊆m∧m∈ran(c_indexes)⇒c∉dom(m)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_2SMx1A7FEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="cComponeoI" org.eventb.core.label="unfold_index" org.eventb.core.predicate="∀c⦂Component,k⦂ℤ·c∈to_unfold_c∧k∈1 ‥ M⇒{c ↦ k}∉ran(c_indexes)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_iR6UgA7fEeqU6uo9ksjEPA" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeoJ" org.eventb.core.label="unfold_in_index" org.eventb.core.predicate="∀c⦂Component,i⦂Component,k⦂ℤ·c ↦ i∈to_unfold_c_in∧k∈1 ‥ M⇒c_indexes(i){c ↦ k}∉ran(c_indexes)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_BSFPUBEBEeqU6uo9ksjEPA" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="cComponeoK" org.eventb.core.label="prop" org.eventb.core.predicate="cProperties∈Component ↔ Property" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.invariant#_0kf_RPqeEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scVariable name="M" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.variable#_auDgABKZEeqU6uo9ksjEPA" org.eventb.core.type="ℤ"/>
<org.eventb.core.scVariable name="P" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.variable#_auDgARKZEeqU6uo9ksjEPA" org.eventb.core.type="ℙ(Component)"/>
<org.eventb.core.scVariable name="cProperties" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.variable#_JtPOYPqxEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×Property)"/>
<org.eventb.core.scVariable name="c_index" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.variable#_btIX4fqwEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×ℤ)"/>
<org.eventb.core.scVariable name="c_indexes" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.variable#_auDgAhKZEeqU6uo9ksjEPA" org.eventb.core.type="ℙ(Component×ℙ(Component×ℤ))"/>
<org.eventb.core.scVariable name="c_multiplicity" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.variable#_0kf_Q_qeEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×ℤ)"/>
<org.eventb.core.scVariable name="components" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.variable#_0kf_QPqeEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model×Component)"/>
<org.eventb.core.scVariable name="container" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.variable#_0kf_QfqeEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scVariable name="containers" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.variable#_0kf_QvqeEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scVariable name="inst2pat_c" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.variable#_gk8cUAK8EeiAPf1wPUl3Gw" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scVariable name="to_unfold_c" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.variable#_zYW3EPqwEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component)"/>
<org.eventb.core.scVariable name="to_unfold_c_in" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.variable#_ANiZwPqxEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scEvent name="to_unfold_c_io" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="instanciate_pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.event#'">
<org.eventb.core.scRefinesEvent name="'" org.eventb.core.scTarget="/MODELS_INC_V9_VAR/mComponent.bcm|org.eventb.core.scMachineFile#mComponent|org.eventb.core.scEvent#to_unfold_c_ip" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.event#'|org.eventb.core.refinesEvent#_btHw0PqwEeectLZKwQfI0A"/>
<org.eventb.core.scGuard name="'" org.eventb.core.label="ic" org.eventb.core.predicate="inst_components∈components[{Pat}] ↔ components[{Mdl}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.guard#_O1UjgvqmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="(" org.eventb.core.label="icr" org.eventb.core.predicate="inst_components∼∈components[{Mdl}] ⇸ components[{Pat}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.guard#_O1Ujg_qmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name=")" org.eventb.core.label="cm" org.eventb.core.predicate="c_mult_others∈components[{Pat}] ∖ dom(inst_components) → ℕ" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.guard#_O1UjhPqmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="*" org.eventb.core.label="cmult" org.eventb.core.predicate="c_mult=c_mult_others{pc⦂Component·pc∈dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])}" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.guard#_O1WYsfqmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAction name="inst_componentt" org.eventb.core.assignment="c_multiplicity ≔ c_mult" org.eventb.core.label="c_mult" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1UjhfqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_componentu" org.eventb.core.assignment="to_unfold_c ≔ (components[{Pat}] ∖ dom(container)) ∖ c_multiplicity∼[{0}]" org.eventb.core.label="to_unfold_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1WYt_qmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_componentv" org.eventb.core.assignment="to_unfold_c_in ≔ ∅ ⦂ ℙ(Component×Component)" org.eventb.core.label="to_unfold_c_in" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1WYuPqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_componentw" org.eventb.core.assignment="components ≔ {Inst} ⩤ components" org.eventb.core.label="components_inst" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1W_xPqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_componentx" org.eventb.core.assignment="container ≔ components[{Inst}] ⩤ container" org.eventb.core.label="container_inst" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1W_xfqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_componenty" org.eventb.core.assignment="c_index ≔ ∅ ⦂ ℙ(Component×ℤ)" org.eventb.core.label="c_index" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1W_xvqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_componentz" org.eventb.core.assignment="c_indexes ≔ ∅ ⦂ ℙ(Component×ℙ(Component×ℤ))" org.eventb.core.label="c_indexes" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1W_x_qmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_component{" org.eventb.core.assignment="inst2pat_c ≔ ∅ ⦂ ℙ(Component×Component)" org.eventb.core.label="pat2inst_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1W_yPqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="inst_component|" org.eventb.core.assignment="M ≔ max(ran(c_mult))" org.eventb.core.label="M" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1Xm1PqmEeectLZKwQfI0A"/>
<org.eventb.core.scParameter name="c_mult" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.parameter#_O1VxofqmEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×ℤ)"/>
<org.eventb.core.scParameter name="c_mult_others" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.parameter#_O1UjgfqmEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×ℤ)"/>
<org.eventb.core.scParameter name="inst_components" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.parameter#_O1UjgPqmEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×Component)"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="to_unfold_c_ip" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="unfold_root_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.event#_btIX4_qwEeectLZKwQfI0A">
<org.eventb.core.scRefinesEvent name="'" org.eventb.core.scTarget="/MODELS_INC_V9_VAR/mComponent.bcm|org.eventb.core.scMachineFile#mComponent|org.eventb.core.scEvent#to_unfold_c_iq" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.event#_btIX4_qwEeectLZKwQfI0A|org.eventb.core.refinesEvent#_bAhygAKxEeiAPf1wPUl3Gw"/>
<org.eventb.core.scGuard name="'" org.eventb.core.label="c_ty" org.eventb.core.predicate="c∈to_unfold_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.guard#_O1WYsvqmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="(" org.eventb.core.label="new_c_ty" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(c) ↣ Component ∖ ran(components)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.guard#_O1WYs_qmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name=")" org.eventb.core.label="new_c_fin" org.eventb.core.predicate="finite(ran(new_c))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.guard#_O1WYtPqmEeectLZKwQfI0A" org.eventb.core.theorem="true"/>
<org.eventb.core.scGuard name="*" org.eventb.core.label="new_c_card" org.eventb.core.predicate="card(ran(new_c))=c_multiplicity(c)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.guard#_O1WYtfqmEeectLZKwQfI0A" org.eventb.core.theorem="true"/>
<org.eventb.core.scAction name="new_d" org.eventb.core.assignment="components ≔ components∪({Inst} × ran(new_c))" org.eventb.core.label="new_c_model" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.action#_O1Xm1fqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="new_e" org.eventb.core.assignment="to_unfold_c_in ≔ to_unfold_c_in∪((container∼[{c}] ∖ c_multiplicity∼[{0}]) × ran(new_c))" org.eventb.core.label="to_unfold_c_in" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.action#_O1Xm1vqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="new_f" org.eventb.core.assignment="c_index ≔ c_index∪new_c∼" org.eventb.core.label="c_index" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.action#_O1Xm1_qmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="new_g" org.eventb.core.assignment="to_unfold_c ≔ to_unfold_c ∖ {c}" org.eventb.core.label="to_unfold_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.action#_O1YN4PqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="new_h" org.eventb.core.assignment="inst2pat_c ≔ inst2pat_c∪(ran(new_c) × {c})" org.eventb.core.label="pat2inst_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.action#_O1YN4fqmEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="new_i" org.eventb.core.assignment="c_indexes ≔ c_indexes∪{i⦂Component·i∈ran(new_c) ∣ i ↦ {c ↦ new_c∼(i)}}" org.eventb.core.label="c_indexes" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.action#_O1YN4vqmEeectLZKwQfI0A"/>
<org.eventb.core.scParameter name="c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.parameter#_O1WYsPqmEeectLZKwQfI0A" org.eventb.core.type="Component"/>
<org.eventb.core.scParameter name="new_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.parameter#_O1W_wPqmEeectLZKwQfI0A" org.eventb.core.type="ℙ(ℤ×Component)"/>
<org.eventb.core.scAction name="new_j" org.eventb.core.assignment="cProperties ≔ cProperties∪(ran(new_c) × cProperties[{c}])" org.eventb.core.label="prop" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.event#_btIX4_qwEeectLZKwQfI0A|org.eventb.core.action#_btIX4PqwEeectLZKwQfI0A"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="to_unfold_c_iq" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="unfold_node_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.event#_btJmBfqwEeectLZKwQfI0A">
<org.eventb.core.scRefinesEvent name="'" org.eventb.core.scTarget="/MODELS_INC_V9_VAR/mComponent.bcm|org.eventb.core.scMachineFile#mComponent|org.eventb.core.scEvent#to_unfold_c_ir" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.event#_btJmBfqwEeectLZKwQfI0A|org.eventb.core.refinesEvent#_MU_ooBH9EeqU6uo9ksjEPA"/>
<org.eventb.core.scGuard name="'" org.eventb.core.label="c_ty" org.eventb.core.predicate="c ↦ dest∈to_unfold_c_in" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.guard#_O1WYtvqmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="(" org.eventb.core.label="new_c_ty" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(c) ↣ Component ∖ ran(components)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.guard#_O1W_wvqmEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name=")" org.eventb.core.label="new_c_fin" org.eventb.core.predicate="finite(ran(new_c))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.guard#_O1W_w_qmEeectLZKwQfI0A" org.eventb.core.theorem="true"/>
<org.eventb.core.scGuard name="*" org.eventb.core.label="new_c_card" org.eventb.core.predicate="card(ran(new_c))=c_multiplicity(c)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.guard#_O1Xm0vqmEeectLZKwQfI0A" org.eventb.core.theorem="true"/>
<org.eventb.core.scAction name="new_d" org.eventb.core.assignment="components ≔ components∪({Inst} × ran(new_c))" org.eventb.core.label="new_c_model" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.action#_lyJKIPreEeerIsS6OyYQ4w"/>
<org.eventb.core.scAction name="new_e" org.eventb.core.assignment="container ≔ container∪(ran(new_c) × {dest})" org.eventb.core.label="new_c_container" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.action#_rQ0PgftxEeectLZKwQfI0A"/>
<org.eventb.core.scAction name="new_f" org.eventb.core.assignment="c_index ≔ c_index∪new_c∼" org.eventb.core.label="c_index" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.action#_xQWRoP01EeeINffjS36taQ"/>
<org.eventb.core.scAction name="new_g" org.eventb.core.assignment="to_unfold_c_in ≔ (to_unfold_c_in ∖ {c ↦ dest})∪((container∼[{c}] ∖ c_multiplicity∼[{0}]) × ran(new_c))" org.eventb.core.label="to_unfold_c_in" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.action#_254qkAA2EeictLZKwQfI0A"/>
<org.eventb.core.scAction name="new_h" org.eventb.core.assignment="inst2pat_c ≔ inst2pat_c∪(ran(new_c) × {c})" org.eventb.core.label="pat2inst_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.action#_ptpcYAxlEeqU6uo9ksjEPA"/>
<org.eventb.core.scAction name="new_i" org.eventb.core.assignment="containers ≔ containers∪(ran(new_c) × {dest})∪(ran(new_c) × containers[{dest}])" org.eventb.core.label="cont" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.action#_ptpcYQxlEeqU6uo9ksjEPA"/>
<org.eventb.core.scAction name="new_j" org.eventb.core.assignment="c_indexes ≔ c_indexes∪{i⦂Component·i∈ran(new_c) ∣ i ↦ c_indexes(dest){c ↦ new_c∼(i)}}" org.eventb.core.label="c_indexes" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.action#_ptpcYgxlEeqU6uo9ksjEPA"/>
<org.eventb.core.scParameter name="c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.parameter#_O1W_wfqmEeectLZKwQfI0A" org.eventb.core.type="Component"/>
<org.eventb.core.scParameter name="dest" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.parameter#_O1Xm0PqmEeectLZKwQfI0A" org.eventb.core.type="Component"/>
<org.eventb.core.scParameter name="new_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.parameter#_O1Xm0fqmEeectLZKwQfI0A" org.eventb.core.type="ℙ(ℤ×Component)"/>
<org.eventb.core.scAction name="new_k" org.eventb.core.assignment="cProperties ≔ cProperties∪(ran(new_c) × cProperties[{c}])" org.eventb.core.label="prop" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.event#_btJmBfqwEeectLZKwQfI0A|org.eventb.core.action#_btJmA_qwEeectLZKwQfI0A"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="to_unfold_c_ir" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="apply_pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.event#_btKNEfqwEeectLZKwQfI0A">
<org.eventb.core.scRefinesEvent name="'" org.eventb.core.scTarget="/MODELS_INC_V9_VAR/mComponent.bcm|org.eventb.core.scMachineFile#mComponent|org.eventb.core.scEvent#to_unfold_c_is" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.event#_btKNEfqwEeectLZKwQfI0A|org.eventb.core.refinesEvent#_MVAPsBH9EeqU6uo9ksjEPA"/>
<org.eventb.core.scGuard name="'" org.eventb.core.label="ic" org.eventb.core.predicate="inst_components∈components[{Inst}] ⤔ components[{Mdl}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.guard#_AkqiQAhGEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="(" org.eventb.core.label="nc" org.eventb.core.predicate="new_components∈components[{Inst}] ∖ dom(inst_components) ↣ Component ∖ ran(components)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.guard#_AkqiQQhGEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name=")" org.eventb.core.label="acycl_inst_components" org.eventb.core.predicate="dom(inst_components) ◁ container;inst_components⊆inst_components;container" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.guard#_AkqiQghGEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="*" org.eventb.core.label="acycl_container" org.eventb.core.predicate="container[dom(inst_components)]⊆dom(inst_components)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.guard#_AkqiQwhGEeqU6uo9ksjEPA" org.eventb.core.theorem="false"/>
<org.eventb.core.scAction name="inst_componentt" org.eventb.core.assignment="components ≔ components∪({Mdl} × ran(new_components))" org.eventb.core.label="m" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.action#__Rz3sAyBEeqU6uo9ksjEPA"/>
<org.eventb.core.scAction name="inst_componentu" org.eventb.core.assignment="container ≔ container∪((inst_components∪new_components)∼;container;(inst_components∪new_components))" org.eventb.core.label="f" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.action#_nECSUA3EEeqU6uo9ksjEPA"/>
<org.eventb.core.scAction name="inst_componentv" org.eventb.core.assignment="containers ≔ containers∪(new_components∼;containers;inst_components;containers)∪(new_components∼;containers;(new_components∪inst_components))" org.eventb.core.label="c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.action#_nECSUQ3EEeqU6uo9ksjEPA"/>
<org.eventb.core.scParameter name="inst_components" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.parameter#_rQ0PgPtxEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scParameter name="new_components" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.parameter#_h4VmkAKrEeiAPf1wPUl3Gw" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scGuard name="inst_componentw" org.eventb.core.label="inst_prop" org.eventb.core.predicate="inst_props∈Property ⇸ Property" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.event#_btKNEfqwEeectLZKwQfI0A|org.eventb.core.guard#_btHw0_qwEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scParameter name="inst_props" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.event#_btKNEfqwEeectLZKwQfI0A|org.eventb.core.parameter#_btHw0fqwEeectLZKwQfI0A" org.eventb.core.type="ℙ(Property×Property)"/>
<org.eventb.core.scAction name="inst_componentx" org.eventb.core.assignment="cProperties ≔ cProperties∪((inst_components∪new_components)∼;cProperties;((id ⦂ ℙ(Property×Property))inst_props))" org.eventb.core.label="prop" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.event#_btKNEfqwEeectLZKwQfI0A|org.eventb.core.action#_bAhyggKxEeiAPf1wPUl3Gw"/>
</org.eventb.core.scEvent>
</org.eventb.core.scMachineFile>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.poFile org.eventb.core.poStamp="68">
<org.eventb.core.poPredicateSet name="CTXHYP" org.eventb.core.poStamp="7">
<org.eventb.core.poIdentifier name="Model" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.poIdentifier name="Property" org.eventb.core.type="ℙ(Property)"/>
<org.eventb.core.poIdentifier name="Inst" org.eventb.core.type="Model"/>
<org.eventb.core.poIdentifier name="Mdl" org.eventb.core.type="Model"/>
<org.eventb.core.poIdentifier name="Pat" org.eventb.core.type="Model"/>
<org.eventb.core.poIdentifier name="Pattern" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.poPredicate name="Propertz" org.eventb.core.predicate="Pattern⊆Model" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcfqkEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="Propert{" org.eventb.core.predicate="Mdl∈Model ∖ Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcvqkEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="Propert|" org.eventb.core.predicate="Pat∈Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wc_qkEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="Propert}" org.eventb.core.predicate="Inst∈Model ∖ Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_fxjdEQKnEeiAPf1wPUl3Gw"/>
<org.eventb.core.poPredicate name="Propert~" org.eventb.core.predicate="Inst≠Mdl" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_DGgrYAUMEei9ocE08JsPSw"/>
<org.eventb.core.poIdentifier name="Component" org.eventb.core.type="ℙ(Component)"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="ABSHYP" org.eventb.core.parentSet="/MODELS_INC_V9_VAR/mProperty.bpo|org.eventb.core.poFile#mProperty|org.eventb.core.poPredicateSet#CTXHYP" org.eventb.core.poStamp="68">
<org.eventb.core.poIdentifier name="M" org.eventb.core.type="ℤ"/>
<org.eventb.core.poIdentifier name="P" org.eventb.core.type="ℙ(Component)"/>
<org.eventb.core.poIdentifier name="cProperties" org.eventb.core.type="ℙ(Component×Property)"/>
<org.eventb.core.poIdentifier name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/>
<org.eventb.core.poIdentifier name="c_indexes" org.eventb.core.type="ℙ(Component×ℙ(Component×ℤ))"/>
<org.eventb.core.poIdentifier name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/>
<org.eventb.core.poIdentifier name="components" org.eventb.core.type="ℙ(Model×Component)"/>
<org.eventb.core.poIdentifier name="container" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.poIdentifier name="containers" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.poIdentifier name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.poIdentifier name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/>
<org.eventb.core.poIdentifier name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.poPredicate name="to_unfold_c_io" org.eventb.core.predicate="components∈Model ↔ Component" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_cQf0Y_qUEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="to_unfold_c_ip" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_cQf0ZPqUEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="to_unfold_c_iq" org.eventb.core.predicate="components∼∈Component ⇸ Model" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_ip9Q0PqUEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="to_unfold_c_ir" org.eventb.core.predicate="c_multiplicity∈components[{Pat}] → ℕ" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_GMp30PqWEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="to_unfold_c_is" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gmDo8fqgEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="to_unfold_c_it" org.eventb.core.predicate="containers∈ran(components) ↔ ran(components)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gmDo8vqgEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="to_unfold_c_iu" org.eventb.core.predicate="∀c⦂Component·finite(containers∼[{c}])" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_oXBHAPqkEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="to_unfold_c_iv" org.eventb.core.predicate="container⊆containers" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dqNI_qkEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="to_unfold_c_iw" org.eventb.core.predicate="containers;containers⊆containers" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dqNJPqkEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="to_unfold_c_ix" org.eventb.core.predicate="containers⊆container;(containers∪(id ⦂ ℙ(Component×Component)))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dq0MPqkEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="to_unfold_c_iy" org.eventb.core.predicate="containers∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_l7KVEQA1EeictLZKwQfI0A"/>
<org.eventb.core.poPredicate name="to_unfold_c_iz" org.eventb.core.predicate="components;containers;components∼⊆(id ⦂ ℙ(Model×Model))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_l7KVEgA1EeictLZKwQfI0A"/>
<org.eventb.core.poPredicate name="to_unfold_c_i{" org.eventb.core.predicate="components;containers∼;components∼⊆(id ⦂ ℙ(Model×Model))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_Hwdz4AKtEeiAPf1wPUl3Gw"/>
<org.eventb.core.poPredicate name="to_unfold_c_i|" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_xudpYQK5EeiAPf1wPUl3Gw"/>
<org.eventb.core.poPredicate name="to_unfold_c_i}" org.eventb.core.predicate="∀c⦂Component·finite(container∼[{c}])" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_fxu54ALAEeiAPf1wPUl3Gw"/>
<org.eventb.core.poPredicate name="to_unfold_c_i~" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_PaxdoAMwEei9ocE08JsPSw"/>
<org.eventb.core.poPredicate name="to_unfold_c_j'" org.eventb.core.predicate="∀s⦂Component,c⦂Component·s ↦ c∈container⇒containers∼[{s}]⊂containers∼[{c}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_nieoAAMxEei9ocE08JsPSw"/>
<org.eventb.core.poPredicate name="to_unfold_c_j(" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0AMzEei9ocE08JsPSw"/>
<org.eventb.core.poPredicate name="to_unfold_c_j)" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0QMzEei9ocE08JsPSw"/>
<org.eventb.core.poPredicate name="to_unfold_c_j*" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0gMzEei9ocE08JsPSw"/>
<org.eventb.core.poPredicate name="to_unfold_c_j+" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_V6rHAAM1Eei9ocE08JsPSw"/>
<org.eventb.core.poPredicate name="to_unfold_c_j," org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_4gspwAkfEeqU6uo9ksjEPA"/>
<org.eventb.core.poPredicate name="to_unfold_c_j-" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_ClMccAk_EeqU6uo9ksjEPA"/>
<org.eventb.core.poPredicate name="to_unfold_c_j." org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_6Bzq0AlZEeqU6uo9ksjEPA"/>
<org.eventb.core.poPredicate name="to_unfold_c_j/" org.eventb.core.predicate="∀c⦂Component·c∈to_unfold_c⇒c_multiplicity(c)&gt;0" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_-v2gwAl5EeqU6uo9ksjEPA"/>
<org.eventb.core.poPredicate name="to_unfold_c_j0" org.eventb.core.predicate="∀c⦂Component·c∈dom(to_unfold_c_in)⇒c_multiplicity(c)&gt;0" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_Ar4dsAl8EeqU6uo9ksjEPA"/>
<org.eventb.core.poPredicate name="to_unfold_c_j1" org.eventb.core.predicate="ran(to_unfold_c_in)⊆dom(inst2pat_c)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_byYtUAxjEeqU6uo9ksjEPA"/>
<org.eventb.core.poPredicate name="to_unfold_c_j2" org.eventb.core.predicate="(inst2pat_c;to_unfold_c_in)∩container=(∅ ⦂ ℙ(Component×Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_ptqDcQxlEeqU6uo9ksjEPA"/>
<org.eventb.core.poPredicate name="to_unfold_c_j3" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_ptqDcgxlEeqU6uo9ksjEPA"/>
<org.eventb.core.poPredicate name="to_unfold_c_j4" org.eventb.core.predicate="∀c⦂Component·finite(to_unfold_c_in[{c}])" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_MM724AxtEeqU6uo9ksjEPA"/>
<org.eventb.core.poPredicate name="to_unfold_c_j5" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_MM724QxtEeqU6uo9ksjEPA"/>
<org.eventb.core.poPredicate name="to_unfold_c_j6" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#__R1F0QyBEeqU6uo9ksjEPA"/>
<org.eventb.core.poPredicate name="to_unfold_c_j7" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_nEDgcg3EEeqU6uo9ksjEPA"/>
<org.eventb.core.poPredicate name="to_unfold_c_j8" org.eventb.core.predicate="finite(ran(c_multiplicity))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_nEDgcw3EEeqU6uo9ksjEPA"/>
<org.eventb.core.poPredicate name="to_unfold_c_j9" org.eventb.core.predicate="M=max(ran(c_multiplicity))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_nEDgdA3EEeqU6uo9ksjEPA"/>
<org.eventb.core.poPredicate name="to_unfold_c_j:" org.eventb.core.predicate="P=components[{Pat}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_nEDgdQ3EEeqU6uo9ksjEPA"/>
<org.eventb.core.poPredicate name="to_unfold_c_j;" org.eventb.core.predicate="finite(P)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_3N038Q6WEeqU6uo9ksjEPA"/>
<org.eventb.core.poPredicate name="to_unfold_c_j=" org.eventb.core.predicate="c_indexes∈dom(inst2pat_c) ↣ (P ⇸ 1 ‥ M)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_rcyHQA6gEeqU6uo9ksjEPA"/>
<org.eventb.core.poPredicate name="to_unfold_c_j&gt;" org.eventb.core.predicate="∀i⦂Component·i∈dom(inst2pat_c)⇒dom(c_indexes(i))=(containers∪(id ⦂ ℙ(Component×Component)))[{inst2pat_c(i)}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_rcyHQQ6gEeqU6uo9ksjEPA"/>
<org.eventb.core.poPredicate name="to_unfold_c_j?" org.eventb.core.predicate="∀i⦂Component·i∈dom(inst2pat_c)⇒c_indexes(i)=inst2pat_c∼;((containers∪(id ⦂ ℙ(Component×Component)))[{i}] ◁ c_index)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_2SMx0Q7FEeqU6uo9ksjEPA"/>
<org.eventb.core.poPredicate name="to_unfold_c_j@" org.eventb.core.predicate="∀i⦂Component·i∈dom(inst2pat_c)⇒containers[{i}]⊆dom(inst2pat_c)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_2SMx0g7FEeqU6uo9ksjEPA"/>
<org.eventb.core.poPredicate name="to_unfold_c_jA" org.eventb.core.predicate="∀c⦂Component,m⦂ℙ(Component×ℤ)·c∈to_unfold_c∧m∈ran(c_indexes)⇒c∉dom(m)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_2SMx0w7FEeqU6uo9ksjEPA"/>
<org.eventb.core.poPredicate name="to_unfold_c_jB" org.eventb.core.predicate="∀c⦂Component,i⦂Component,m⦂ℙ(Component×ℤ)·c ↦ i∈to_unfold_c_in∧c_indexes(i)⊆m∧m∈ran(c_indexes)⇒c∉dom(m)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_2SMx1A7FEeqU6uo9ksjEPA"/>
<org.eventb.core.poPredicate name="to_unfold_c_jC" org.eventb.core.predicate="∀c⦂Component,k⦂ℤ·c∈to_unfold_c∧k∈1 ‥ M⇒{c ↦ k}∉ran(c_indexes)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_iR6UgA7fEeqU6uo9ksjEPA"/>
<org.eventb.core.poPredicate name="to_unfold_c_jD" org.eventb.core.predicate="∀c⦂Component,i⦂Component,k⦂ℤ·c ↦ i∈to_unfold_c_in∧k∈1 ‥ M⇒c_indexes(i){c ↦ k}∉ran(c_indexes)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_BSFPUBEBEeqU6uo9ksjEPA"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="EVTIDENTto_unfold_c_io" org.eventb.core.parentSet="/MODELS_INC_V9_VAR/mProperty.bpo|org.eventb.core.poFile#mProperty|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="68">
<org.eventb.core.poIdentifier name="to_unfold_c'" org.eventb.core.type="ℙ(Component)"/>
<org.eventb.core.poIdentifier name="inst_components" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.poIdentifier name="container'" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.poIdentifier name="c_index'" org.eventb.core.type="ℙ(Component×ℤ)"/>
<org.eventb.core.poIdentifier name="c_multiplicity'" org.eventb.core.type="ℙ(Component×ℤ)"/>
<org.eventb.core.poIdentifier name="M'" org.eventb.core.type="ℤ"/>
<org.eventb.core.poIdentifier name="components'" org.eventb.core.type="ℙ(Model×Component)"/>
<org.eventb.core.poIdentifier name="to_unfold_c_in'" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.poIdentifier name="c_mult_others" org.eventb.core.type="ℙ(Component×ℤ)"/>
<org.eventb.core.poIdentifier name="inst2pat_c'" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.poIdentifier name="c_mult" org.eventb.core.type="ℙ(Component×ℤ)"/>
<org.eventb.core.poIdentifier name="c_indexes'" org.eventb.core.type="ℙ(Component×ℙ(Component×ℤ))"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="EVTALLHYPto_unfold_c_io" org.eventb.core.parentSet="/MODELS_INC_V9_VAR/mProperty.bpo|org.eventb.core.poFile#mProperty|org.eventb.core.poPredicateSet#EVTIDENTto_unfold_c_io" org.eventb.core.poStamp="68">
<org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="inst_components∈components[{Pat}] ↔ components[{Mdl}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.guard#_O1UjgvqmEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="inst_components∼∈components[{Mdl}] ⇸ components[{Pat}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.guard#_O1Ujg_qmEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="c_mult_others∈components[{Pat}] ∖ dom(inst_components) → ℕ" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.guard#_O1UjhPqmEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="c_mult=c_mult_others{pc⦂Component·pc∈dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])}" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.guard#_O1WYsfqmEeectLZKwQfI0A"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="EVTIDENTto_unfold_c_ip" org.eventb.core.parentSet="/MODELS_INC_V9_VAR/mProperty.bpo|org.eventb.core.poFile#mProperty|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="68">
<org.eventb.core.poIdentifier name="to_unfold_c'" org.eventb.core.type="ℙ(Component)"/>
<org.eventb.core.poIdentifier name="cProperties'" org.eventb.core.type="ℙ(Component×Property)"/>
<org.eventb.core.poIdentifier name="c_index'" org.eventb.core.type="ℙ(Component×ℤ)"/>
<org.eventb.core.poIdentifier name="c" org.eventb.core.type="Component"/>
<org.eventb.core.poIdentifier name="components'" org.eventb.core.type="ℙ(Model×Component)"/>
<org.eventb.core.poIdentifier name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/>
<org.eventb.core.poIdentifier name="to_unfold_c_in'" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.poIdentifier name="inst2pat_c'" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.poIdentifier name="c_indexes'" org.eventb.core.type="ℙ(Component×ℙ(Component×ℤ))"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="EVTALLHYPto_unfold_c_ip" org.eventb.core.parentSet="/MODELS_INC_V9_VAR/mProperty.bpo|org.eventb.core.poFile#mProperty|org.eventb.core.poPredicateSet#EVTIDENTto_unfold_c_ip" org.eventb.core.poStamp="68">
<org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="c∈to_unfold_c" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.guard#_O1WYsvqmEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(c) ↣ Component ∖ ran(components)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.guard#_O1WYs_qmEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="finite(ran(new_c))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.guard#_O1WYtPqmEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="card(ran(new_c))=c_multiplicity(c)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A|org.eventb.core.guard#_O1WYtfqmEeectLZKwQfI0A"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="EVTIDENTto_unfold_c_iq" org.eventb.core.parentSet="/MODELS_INC_V9_VAR/mProperty.bpo|org.eventb.core.poFile#mProperty|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="68">
<org.eventb.core.poIdentifier name="containers'" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.poIdentifier name="container'" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.poIdentifier name="cProperties'" org.eventb.core.type="ℙ(Component×Property)"/>
<org.eventb.core.poIdentifier name="c_index'" org.eventb.core.type="ℙ(Component×ℤ)"/>
<org.eventb.core.poIdentifier name="c" org.eventb.core.type="Component"/>
<org.eventb.core.poIdentifier name="components'" org.eventb.core.type="ℙ(Model×Component)"/>
<org.eventb.core.poIdentifier name="dest" org.eventb.core.type="Component"/>
<org.eventb.core.poIdentifier name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/>
<org.eventb.core.poIdentifier name="to_unfold_c_in'" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.poIdentifier name="inst2pat_c'" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.poIdentifier name="c_indexes'" org.eventb.core.type="ℙ(Component×ℙ(Component×ℤ))"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="EVTALLHYPto_unfold_c_iq" org.eventb.core.parentSet="/MODELS_INC_V9_VAR/mProperty.bpo|org.eventb.core.poFile#mProperty|org.eventb.core.poPredicateSet#EVTIDENTto_unfold_c_iq" org.eventb.core.poStamp="68">
<org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="c ↦ dest∈to_unfold_c_in" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.guard#_O1WYtvqmEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(c) ↣ Component ∖ ran(components)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.guard#_O1W_wvqmEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="finite(ran(new_c))" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.guard#_O1W_w_qmEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="card(ran(new_c))=c_multiplicity(c)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A|org.eventb.core.guard#_O1Xm0vqmEeectLZKwQfI0A"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="EVTIDENTto_unfold_c_ir" org.eventb.core.parentSet="/MODELS_INC_V9_VAR/mProperty.bpo|org.eventb.core.poFile#mProperty|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="68">
<org.eventb.core.poIdentifier name="containers'" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.poIdentifier name="inst_components" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.poIdentifier name="container'" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.poIdentifier name="cProperties'" org.eventb.core.type="ℙ(Component×Property)"/>
<org.eventb.core.poIdentifier name="components'" org.eventb.core.type="ℙ(Model×Component)"/>
<org.eventb.core.poIdentifier name="new_components" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.poIdentifier name="inst_props" org.eventb.core.type="ℙ(Property×Property)"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="EVTALLHYPto_unfold_c_ir" org.eventb.core.parentSet="/MODELS_INC_V9_VAR/mProperty.bpo|org.eventb.core.poFile#mProperty|org.eventb.core.poPredicateSet#EVTIDENTto_unfold_c_ir" org.eventb.core.poStamp="68">
<org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="inst_components∈components[{Inst}] ⤔ components[{Mdl}]" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.guard#_AkqiQAhGEeqU6uo9ksjEPA"/>
<org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="new_components∈components[{Inst}] ∖ dom(inst_components) ↣ Component ∖ ran(components)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.guard#_AkqiQQhGEeqU6uo9ksjEPA"/>
<org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="dom(inst_components) ◁ container;inst_components⊆inst_components;container" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.guard#_AkqiQghGEeqU6uo9ksjEPA"/>
<org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="container[dom(inst_components)]⊆dom(inst_components)" org.eventb.core.source="/MODELS_INC_V9_VAR/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A|org.eventb.core.guard#_AkqiQwhGEeqU6uo9ksjEPA"/>
<org.eventb.core.poPredicate name="PRD4" org.eventb.core.predicate="inst_props∈Property ⇸ Property" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.event#_btKNEfqwEeectLZKwQfI0A|org.eventb.core.guard#_btHw0_qwEeectLZKwQfI0A"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="ALLHYP" org.eventb.core.parentSet="/MODELS_INC_V9_VAR/mProperty.bpo|org.eventb.core.poFile#mProperty|org.eventb.core.poPredicateSet#ABSHYP" org.eventb.core.poStamp="68">
<org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="cProperties∈Component ↔ Property" org.eventb.core.source="/MODELS_INC_V9_VAR/mProperty.bum|org.eventb.core.machineFile#mProperty|org.eventb.core.invariant#_0kf_RPqeEeectLZKwQfI0A"/>
</org.eventb.core.poPredicateSet>
</org.eventb.core.poFile>
<?xml version="1.0" encoding="UTF-8"?>
<org.eventb.core.psFile/>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.machineFile org.eventb.core.configuration="org.eventb.core.fwd;de.prob.units.mchBase" org.eventb.texttools.text_lastmodified="1522334186022" org.eventb.texttools.text_representation="machine mProperty refines mComponent sees cComponent&#10;&#10;variables components container c_multiplicity to_clone_c c_index to_unfold_c to_unfold_c_in cProperties inst2pat_c&#10;&#10;invariants&#10; @prop cProperties ∈ Component ↔ Property&#10;&#10;events&#10; event instanciate_pattern extends instanciate_pattern&#10; end&#10;&#10; event unfold_root_c extends unfold_root_c&#10; then&#10; @prop cProperties ≔ cProperties ∪ (ran(new_c)×cProperties[{c}])&#10; end&#10;&#10; event clone_c extends clone_c&#10; end&#10;&#10; event unfold_node_c extends unfold_node_c&#10; then&#10; @prop cProperties ≔ cProperties ∪ (ran(new_c)×cProperties[{c}])&#10; end&#10;&#10; event apply_pattern extends apply_pattern&#10; any inst_props&#10; where&#10; @inst_prop inst_props ∈ Property ⇸ Property // pattern properties to model properties&#10; then&#10; @prop cProperties ≔ cProperties ∪ ((inst_components ∪ new_components)∼;cProperties)&#10; end&#10;end&#10;" version="5">
<org.eventb.core.refinesMachine name="_0kfYMPqeEeectLZKwQfI0A" org.eventb.core.target="mComponent"/>
<org.eventb.core.seesContext name="_Rf6I4ADlEei-meqqkXX9bA" org.eventb.core.target="cComponent"/>
<org.eventb.core.event name="'" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="instanciate_pattern">
<org.eventb.core.refinesEvent name="_btHw0PqwEeectLZKwQfI0A" org.eventb.core.target="instanciate_pattern"/>
</org.eventb.core.event>
<org.eventb.core.variable name="_0kf_QPqeEeectLZKwQfI0A" org.eventb.core.identifier="components"/>
<org.eventb.core.variable name="_0kf_QfqeEeectLZKwQfI0A" org.eventb.core.identifier="container"/>
<org.eventb.core.variable name="_0kf_QvqeEeectLZKwQfI0A" org.eventb.core.identifier="c_multiplicity"/>
<org.eventb.core.variable name="_0kf_Q_qeEeectLZKwQfI0A" org.eventb.core.identifier="to_clone_c"/>
<org.eventb.core.invariant name="_0kf_RPqeEeectLZKwQfI0A" org.eventb.core.label="prop" org.eventb.core.predicate="cProperties ∈ Component ↔ Property"/>
<org.eventb.core.variable name="_btIX4fqwEeectLZKwQfI0A" org.eventb.core.identifier="c_index"/>
<org.eventb.core.event name="_btIX4_qwEeectLZKwQfI0A" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="unfold_root_c">
<org.eventb.core.refinesEvent name="_bAhygAKxEeiAPf1wPUl3Gw" org.eventb.core.target="unfold_root_c"/>
<org.eventb.core.action name="_btIX4PqwEeectLZKwQfI0A" org.eventb.core.assignment="cProperties ≔ cProperties ∪ (ran(new_c)×cProperties[{c}])" org.eventb.core.label="prop"/>
</org.eventb.core.event>
<org.eventb.core.event name="_btJmBfqwEeectLZKwQfI0A" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="clone_c">
<org.eventb.core.refinesEvent name="_SDieEP06Eees7pYemx4WBQ" org.eventb.core.target="clone_c"/>
</org.eventb.core.event>
<org.eventb.core.event name="_btKNEfqwEeectLZKwQfI0A" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="unfold_node_c">
<org.eventb.core.refinesEvent name="_bAhygQKxEeiAPf1wPUl3Gw" org.eventb.core.target="unfold_node_c"/>
<org.eventb.core.action name="_btJmA_qwEeectLZKwQfI0A" org.eventb.core.assignment="cProperties ≔ cProperties ∪ (ran(new_c)×cProperties[{c}])" org.eventb.core.label="prop"/>
</org.eventb.core.event>
<org.eventb.core.event name="_btKNGPqwEeectLZKwQfI0A" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="apply_pattern">
<org.eventb.core.refinesEvent name="_Rf7XAQDlEei-meqqkXX9bA" org.eventb.core.target="apply_pattern"/>
<org.eventb.core.parameter name="_btHw0fqwEeectLZKwQfI0A" org.eventb.core.identifier="inst_props"/>
<org.eventb.core.guard name="_btHw0_qwEeectLZKwQfI0A" org.eventb.core.comment="pattern properties to model properties" org.eventb.core.label="inst_prop" org.eventb.core.predicate="inst_props ∈ Property ⇸ Property"/>
<org.eventb.core.action name="_bAhyggKxEeiAPf1wPUl3Gw" org.eventb.core.assignment="cProperties ≔ cProperties ∪ ((inst_components ∪ new_components)∼;cProperties)" org.eventb.core.label="prop"/>
</org.eventb.core.event>
<org.eventb.core.variable name="_zYW3EPqwEeectLZKwQfI0A" org.eventb.core.identifier="to_unfold_c"/>
<org.eventb.core.variable name="_ANiZwPqxEeectLZKwQfI0A" org.eventb.core.identifier="to_unfold_c_in"/>
<org.eventb.core.variable name="_JtPOYPqxEeectLZKwQfI0A" org.eventb.core.identifier="cProperties"/>
<org.eventb.core.variable name="_gk8cUAK8EeiAPf1wPUl3Gw" org.eventb.core.identifier="inst2pat_c"/>
</org.eventb.core.machineFile>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.machineFile org.eventb.core.configuration="org.eventb.core.fwd;de.prob.units.mchBase" org.eventb.texttools.text_lastmodified="1575026127695" org.eventb.texttools.text_representation="machine mProperty refines mComponent sees cComponent&#10;&#10;variables components container containers c_multiplicity c_index to_unfold_c to_unfold_c_in cProperties inst2pat_c M P c_indexes&#10;&#10;invariants&#10; @prop cProperties ∈ Component ↔ Property&#10;&#10;events&#10; event instanciate_pattern extends instanciate_pattern&#10; end&#10;&#10; event unfold_root_c extends unfold_root_c&#10; then&#10; @prop cProperties ≔ cProperties ∪ (ran(new_c)×cProperties[{c}])&#10; end&#10;&#10; event unfold_node_c extends unfold_node_c&#10; then&#10; @prop cProperties ≔ cProperties ∪ (ran(new_c)×cProperties[{c}])&#10; end&#10;&#10; event apply_pattern extends apply_pattern&#10; any inst_props&#10; where&#10; @inst_prop inst_props ∈ Property ⇸ Property // pattern properties to model properties&#10; then&#10; @prop cProperties ≔ cProperties ∪ ((inst_components ∪ new_components)∼;cProperties; (id  inst_props))&#10; end&#10;end&#10;" version="5">
<org.eventb.core.refinesMachine name="_0kfYMPqeEeectLZKwQfI0A" org.eventb.core.target="mComponent"/>
<org.eventb.core.seesContext name="_Rf6I4ADlEei-meqqkXX9bA" org.eventb.core.target="cComponent"/>
<org.eventb.core.event name="'" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="instanciate_pattern">
<org.eventb.core.refinesEvent name="_btHw0PqwEeectLZKwQfI0A" org.eventb.core.target="instanciate_pattern"/>
</org.eventb.core.event>
<org.eventb.core.variable name="_0kf_QPqeEeectLZKwQfI0A" org.eventb.core.identifier="components"/>
<org.eventb.core.variable name="_0kf_QfqeEeectLZKwQfI0A" org.eventb.core.identifier="container"/>
<org.eventb.core.variable name="_0kf_QvqeEeectLZKwQfI0A" org.eventb.core.identifier="containers"/>
<org.eventb.core.variable name="_0kf_Q_qeEeectLZKwQfI0A" org.eventb.core.identifier="c_multiplicity"/>
<org.eventb.core.invariant name="_0kf_RPqeEeectLZKwQfI0A" org.eventb.core.label="prop" org.eventb.core.predicate="cProperties ∈ Component ↔ Property"/>
<org.eventb.core.variable name="_btIX4fqwEeectLZKwQfI0A" org.eventb.core.identifier="c_index"/>
<org.eventb.core.event name="_btIX4_qwEeectLZKwQfI0A" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="unfold_root_c">
<org.eventb.core.refinesEvent name="_bAhygAKxEeiAPf1wPUl3Gw" org.eventb.core.target="unfold_root_c"/>
<org.eventb.core.action name="_btIX4PqwEeectLZKwQfI0A" org.eventb.core.assignment="cProperties ≔ cProperties ∪ (ran(new_c)×cProperties[{c}])" org.eventb.core.label="prop"/>
</org.eventb.core.event>
<org.eventb.core.event name="_btJmBfqwEeectLZKwQfI0A" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="unfold_node_c">
<org.eventb.core.refinesEvent name="_MU_ooBH9EeqU6uo9ksjEPA" org.eventb.core.target="unfold_node_c"/>
<org.eventb.core.action name="_btJmA_qwEeectLZKwQfI0A" org.eventb.core.assignment="cProperties ≔ cProperties ∪ (ran(new_c)×cProperties[{c}])" org.eventb.core.label="prop"/>
</org.eventb.core.event>
<org.eventb.core.event name="_btKNEfqwEeectLZKwQfI0A" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="apply_pattern">
<org.eventb.core.refinesEvent name="_MVAPsBH9EeqU6uo9ksjEPA" org.eventb.core.target="apply_pattern"/>
<org.eventb.core.parameter name="_btHw0fqwEeectLZKwQfI0A" org.eventb.core.identifier="inst_props"/>
<org.eventb.core.guard name="_btHw0_qwEeectLZKwQfI0A" org.eventb.core.comment="pattern properties to model properties" org.eventb.core.label="inst_prop" org.eventb.core.predicate="inst_props ∈ Property ⇸ Property"/>
<org.eventb.core.action name="_bAhyggKxEeiAPf1wPUl3Gw" org.eventb.core.assignment="cProperties ≔ cProperties ∪ ((inst_components ∪ new_components)∼;cProperties; (id  inst_props))" org.eventb.core.label="prop"/>
</org.eventb.core.event>
<org.eventb.core.variable name="_zYW3EPqwEeectLZKwQfI0A" org.eventb.core.identifier="to_unfold_c"/>
<org.eventb.core.variable name="_ANiZwPqxEeectLZKwQfI0A" org.eventb.core.identifier="to_unfold_c_in"/>
<org.eventb.core.variable name="_JtPOYPqxEeectLZKwQfI0A" org.eventb.core.identifier="cProperties"/>
<org.eventb.core.variable name="_gk8cUAK8EeiAPf1wPUl3Gw" org.eventb.core.identifier="inst2pat_c"/>
<org.eventb.core.variable name="_auDgABKZEeqU6uo9ksjEPA" org.eventb.core.identifier="M"/>
<org.eventb.core.variable name="_auDgARKZEeqU6uo9ksjEPA" org.eventb.core.identifier="P"/>
<org.eventb.core.variable name="_auDgAhKZEeqU6uo9ksjEPA" org.eventb.core.identifier="c_indexes"/>
</org.eventb.core.machineFile>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.scContextFile org.eventb.core.accurate="true" org.eventb.core.configuration="org.eventb.core.fwd;de.prob.symbolic.ctxBase;de.prob.units.mchBase;org.eventb.codegen.ui.cgConfig">
<org.eventb.core.scExtendsContext name="'" org.eventb.core.scTarget="/MODELS_INC_V9_VAR/cLink.bcc|org.eventb.core.scContextFile#cLink" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.extendsContext#_-yB9QAAPEeis7pYemx4WBQ"/>
<org.eventb.core.scInternalContext name="cModel">
<org.eventb.core.scAxiom name="'" org.eventb.core.label="Pattern_ty" org.eventb.core.predicate="Pattern⊆Model" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcfqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="(" org.eventb.core.label="Mdl_ty" org.eventb.core.predicate="Mdl∈Model ∖ Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcvqkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name=")" org.eventb.core.label="Pat_ty" org.eventb.core.predicate="Pat∈Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wc_qkEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="*" org.eventb.core.label="Inst_ty" org.eventb.core.predicate="Inst∈Model ∖ Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_fxjdEQKnEeiAPf1wPUl3Gw" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="+" org.eventb.core.label="Inst_Mdl" org.eventb.core.predicate="Inst≠Mdl" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_DGgrYAUMEei9ocE08JsPSw" org.eventb.core.theorem="false"/>
<org.eventb.core.scConstant name="Inst" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_fxjdEAKnEeiAPf1wPUl3Gw" org.eventb.core.type="Model"/>
<org.eventb.core.scConstant name="Mdl" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_h20JYPqkEeectLZKwQfI0A" org.eventb.core.type="Model"/>
<org.eventb.core.scCarrierSet name="Model" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.carrierSet#_5dsj0PqTEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.scConstant name="Pat" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_b4aBsPraEeerIsS6OyYQ4w" org.eventb.core.type="Model"/>
<org.eventb.core.scConstant name="Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.constant#_h20wcPqkEeectLZKwQfI0A" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.scCarrierSet name="Property" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.carrierSet#_9dBM4ADlEei-meqqkXX9bA" org.eventb.core.type="ℙ(Property)"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scInternalContext name="cComponent">
<org.eventb.core.scExtendsContext name="'" org.eventb.core.scTarget="/MODELS_INC_V9_VAR/cModel.bcc|org.eventb.core.scContextFile#cModel" org.eventb.core.source="/MODELS_INC_V9_VAR/cComponent.buc|org.eventb.core.contextFile#cComponent|org.eventb.core.extendsContext#_IT7_UPqUEeectLZKwQfI0A"/>
<org.eventb.core.scCarrierSet name="Component" org.eventb.core.source="/MODELS_INC_V9_VAR/cComponent.buc|org.eventb.core.contextFile#cComponent|org.eventb.core.carrierSet#_IT7_UfqUEeectLZKwQfI0A" org.eventb.core.type="ℙ(Component)"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scInternalContext name="cPort">
<org.eventb.core.scExtendsContext name="'" org.eventb.core.scTarget="/MODELS_INC_V9_VAR/cComponent.bcc|org.eventb.core.scContextFile#cComponent" org.eventb.core.source="/MODELS_INC_V9_VAR/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.extendsContext#'"/>
<org.eventb.core.scAxiom name="cComponenu" org.eventb.core.label="part" org.eventb.core.predicate="partition(Port,IPort,OPort)" org.eventb.core.source="/MODELS_INC_V9_VAR/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.axiom#_Y1LocvqyEeectLZKwQfI0A" org.eventb.core.theorem="false"/>
<org.eventb.core.scConstant name="IPort" org.eventb.core.source="/MODELS_INC_V9_VAR/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.constant#_Y1LocPqyEeectLZKwQfI0A" org.eventb.core.type="ℙ(Port)"/>
<org.eventb.core.scConstant name="OPort" org.eventb.core.source="/MODELS_INC_V9_VAR/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.constant#_Y1LocfqyEeectLZKwQfI0A" org.eventb.core.type="ℙ(Port)"/>
<org.eventb.core.scCarrierSet name="Port" org.eventb.core.source="/MODELS_INC_V9_VAR/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.carrierSet#_YwaNQPqeEeectLZKwQfI0A" org.eventb.core.type="ℙ(Port)"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scInternalContext name="cLink">
<org.eventb.core.scExtendsContext name="'" org.eventb.core.scTarget="/MODELS_INC_V9_VAR/cPort.bcc|org.eventb.core.scContextFile#cPort" org.eventb.core.source="/MODELS_INC_V9_VAR/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.extendsContext#'"/>
<org.eventb.core.scAxiom name="cComponenu" org.eventb.core.label="link_k" org.eventb.core.predicate="partition(Link,Transpose,Identity,Shift,First,Rotate)" org.eventb.core.source="/MODELS_INC_V9_VAR/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.axiom#_u1ZfsfgzEeeeS5KQUtrGlw" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="cComponenv" org.eventb.core.label="LKind" org.eventb.core.predicate="LKind={Transpose,Identity,Shift,First,Rotate}" org.eventb.core.source="/MODELS_INC_V9_VAR/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.axiom#_u1ZfsvgzEeeeS5KQUtrGlw" org.eventb.core.theorem="false"/>
<org.eventb.core.scConstant name="First" org.eventb.core.source="/MODELS_INC_V9_VAR/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.constant#_WzjhM_g8EeeeS5KQUtrGlw" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.scConstant name="Identity" org.eventb.core.source="/MODELS_INC_V9_VAR/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.constant#_WzjhMfg8EeeeS5KQUtrGlw" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.scConstant name="LKind" org.eventb.core.source="/MODELS_INC_V9_VAR/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.constant#_u1ZfsPgzEeeeS5KQUtrGlw" org.eventb.core.type="ℙ(ℙ(Link))"/>
<org.eventb.core.scCarrierSet name="Link" org.eventb.core.source="/MODELS_INC_V9_VAR/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.carrierSet#_IabHcPoIEeeOzddrJxUeNA" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.scConstant name="Rotate" org.eventb.core.source="/MODELS_INC_V9_VAR/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.constant#_WzjhNPg8EeeeS5KQUtrGlw" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.scConstant name="Shift" org.eventb.core.source="/MODELS_INC_V9_VAR/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.constant#_WzjhMvg8EeeeS5KQUtrGlw" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.scConstant name="Transpose" org.eventb.core.source="/MODELS_INC_V9_VAR/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.constant#_WzjhMPg8EeeeS5KQUtrGlw" org.eventb.core.type="ℙ(Link)"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scAxiom name="cComponenu" org.eventb.core.label="replicator_ty" org.eventb.core.predicate="replicator∈Component" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_-yCkUgAPEeis7pYemx4WBQ" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="cComponenv" org.eventb.core.label="ballot_box_ty" org.eventb.core.predicate="ballot_box∈Component" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_-yCkUwAPEeis7pYemx4WBQ" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="cComponenw" org.eventb.core.label="safety_comp" org.eventb.core.predicate="safety_comp∈Component" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_-yCkVAAPEeis7pYemx4WBQ" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="cComponenx" org.eventb.core.label="all_diff_component" org.eventb.core.predicate="replicator≠ballot_box∧replicator≠safety_comp∧ballot_box≠safety_comp" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_-yCkVQAPEeis7pYemx4WBQ" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="cComponeny" org.eventb.core.label="safety_container" org.eventb.core.predicate="safety_container={replicator ↦ safety_comp,ballot_box ↦ safety_comp}" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_oim4RAAQEeis7pYemx4WBQ" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="cComponenz" org.eventb.core.label="toy_container_ty" org.eventb.core.predicate="toy_container∈Component ⇸ Component" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_oim4RQAQEeis7pYemx4WBQ" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="cComponen{" org.eventb.core.label="toy_container_def" org.eventb.core.predicate="toy_container=(∅ ⦂ ℙ(Component×Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_oim4RgAQEeis7pYemx4WBQ" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="cComponen|" org.eventb.core.label="safety_model" org.eventb.core.predicate="safety_model∈Model" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_oinfUAAQEeis7pYemx4WBQ" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="cComponen}" org.eventb.core.label="toy_model_ty" org.eventb.core.predicate="toy_model∈Model" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_9c9V0gAREeis7pYemx4WBQ" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="cComponen~" org.eventb.core.label="safety_diff_toy" org.eventb.core.predicate="safety_model≠toy_model" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_9c9V0wAREeis7pYemx4WBQ" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="cComponeo'" org.eventb.core.label="Model_def" org.eventb.core.predicate="Model={safety_model,toy_model}" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_9c9V1AAREeis7pYemx4WBQ" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="cComponeo(" org.eventb.core.label="toy_app_ty" org.eventb.core.predicate="toy_app∈Component" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_9c984AAREeis7pYemx4WBQ" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="cComponeo)" org.eventb.core.label="toy_inp_1_ty" org.eventb.core.predicate="toy_inp_1∈IPort" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_9lz6YgASEeis7pYemx4WBQ" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="cComponeo*" org.eventb.core.label="toy_inp_2_ty" org.eventb.core.predicate="toy_inp_2∈IPort" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROCEgEBEei-meqqkXX9bA" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="cComponeo+" org.eventb.core.label="toy_output_ty" org.eventb.core.predicate="toy_output∈OPort" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROCEwEBEei-meqqkXX9bA" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="cComponeo," 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.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROCFAEBEei-meqqkXX9bA" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="cComponeo-" org.eventb.core.label="container_var_def" org.eventb.core.predicate="container_var={safety_model ↦ safety_container,toy_model ↦ toy_container}" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROCFQEBEei-meqqkXX9bA" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="cComponeo." org.eventb.core.label="f_container_var" org.eventb.core.predicate="f_container_var={replicator ↦ safety_comp,ballot_box ↦ safety_comp}" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROCFgEBEei-meqqkXX9bA" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="cComponeo/" org.eventb.core.label="f_acycl" org.eventb.core.predicate="∀m⦂Model·container_var(m)⊆f_container_var∧f_container_var;f_container_var⊆f_container_var∧(id ⦂ ℙ(Component×Component))∩f_container_var=(∅ ⦂ ℙ(Component×Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROCFwEBEei-meqqkXX9bA" org.eventb.core.theorem="true"/>
<org.eventb.core.scAxiom name="cComponeo0" org.eventb.core.label="inst_components_def" org.eventb.core.predicate="inst_components_par={safety_comp ↦ toy_app}" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROpIAEBEei-meqqkXX9bA" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="cComponeo1" org.eventb.core.label="c_mult_others_def" org.eventb.core.predicate="c_mult_others_par={replicator ↦ 3,ballot_box ↦ 1}" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROpIQEBEei-meqqkXX9bA" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="cComponeo2" 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.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROpIgEBEei-meqqkXX9bA" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="cComponeo3" org.eventb.core.label="c_multiplicity_assign&#10;" org.eventb.core.predicate="c_multiplicity_var(safety_model)=c_mult_others_par{pc⦂Component·pc∈dom(inst_components_par) ∣ pc ↦ card(inst_components_par[{pc}])}" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROpIwEBEei-meqqkXX9bA" org.eventb.core.theorem="true"/>
<org.eventb.core.scAxiom name="cComponeo4" org.eventb.core.label="to_unfold_c_var_def" org.eventb.core.predicate="to_unfold_c_var={safety_comp}" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROpJAEBEei-meqqkXX9bA" org.eventb.core.theorem="false"/>
<org.eventb.core.scAxiom name="cComponeo5" org.eventb.core.label="to_unfold_c_var&#10;" org.eventb.core.predicate="to_unfold_c_var=components_var(safety_model) ∖ dom(container_var(safety_model))" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROpJQEBEei-meqqkXX9bA" org.eventb.core.theorem="true"/>
<org.eventb.core.scConstant name="ballot_box" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.constant#_-yCkUAAPEeis7pYemx4WBQ" org.eventb.core.type="Component"/>
<org.eventb.core.scConstant name="c_mult_others_par" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.constant#_kRNbAwEBEei-meqqkXX9bA" org.eventb.core.type="ℙ(Component×ℤ)"/>
<org.eventb.core.scConstant name="c_multiplicity_var" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.constant#_kROCEAEBEei-meqqkXX9bA" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/>
<org.eventb.core.scConstant name="components_var" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.constant#_9lz6YQASEeis7pYemx4WBQ" org.eventb.core.type="ℙ(Model×ℙ(Component))"/>
<org.eventb.core.scConstant name="container_var" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.constant#_kRNbAAEBEei-meqqkXX9bA" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/>
<org.eventb.core.scConstant name="f_container_var" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.constant#_kRNbAQEBEei-meqqkXX9bA" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scConstant name="inst_components_par" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.constant#_kRNbAgEBEei-meqqkXX9bA" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scConstant name="replicator" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.constant#_-yB9QQAPEeis7pYemx4WBQ" org.eventb.core.type="Component"/>
<org.eventb.core.scConstant name="safety_comp" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.constant#_H1oEsAAQEeis7pYemx4WBQ" org.eventb.core.type="Component"/>
<org.eventb.core.scConstant name="safety_container" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.constant#_oim4QAAQEeis7pYemx4WBQ" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scConstant name="safety_model" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.constant#_-yCkUQAPEeis7pYemx4WBQ" org.eventb.core.type="Model"/>
<org.eventb.core.scConstant name="to_unfold_c_var" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.constant#_kROCEQEBEei-meqqkXX9bA" org.eventb.core.type="ℙ(Component)"/>
<org.eventb.core.scConstant name="toy_app" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.constant#_oim4QwAQEeis7pYemx4WBQ" org.eventb.core.type="Component"/>
<org.eventb.core.scConstant name="toy_container" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.constant#_oim4QgAQEeis7pYemx4WBQ" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.scConstant name="toy_inp_1" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.constant#_9c9V0AAREeis7pYemx4WBQ" org.eventb.core.type="Port"/>
<org.eventb.core.scConstant name="toy_inp_2" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.constant#_9c9V0QAREeis7pYemx4WBQ" org.eventb.core.type="Port"/>
<org.eventb.core.scConstant name="toy_model" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.constant#_oim4QQAQEeis7pYemx4WBQ" org.eventb.core.type="Model"/>
<org.eventb.core.scConstant name="toy_output" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.constant#_9lz6YAASEeis7pYemx4WBQ" org.eventb.core.type="Port"/>
</org.eventb.core.scContextFile>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.poFile org.eventb.core.poStamp="2">
<org.eventb.core.poPredicateSet name="ABSHYP" org.eventb.core.poStamp="2">
<org.eventb.core.poIdentifier name="Model" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.poIdentifier name="Property" org.eventb.core.type="ℙ(Property)"/>
<org.eventb.core.poIdentifier name="Inst" org.eventb.core.type="Model"/>
<org.eventb.core.poIdentifier name="Mdl" org.eventb.core.type="Model"/>
<org.eventb.core.poIdentifier name="Pat" org.eventb.core.type="Model"/>
<org.eventb.core.poIdentifier name="Pattern" org.eventb.core.type="ℙ(Model)"/>
<org.eventb.core.poPredicate name="Propertz" org.eventb.core.predicate="Pattern⊆Model" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcfqkEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="Propert{" org.eventb.core.predicate="Mdl∈Model ∖ Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wcvqkEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="Propert|" org.eventb.core.predicate="Pat∈Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_h20wc_qkEeectLZKwQfI0A"/>
<org.eventb.core.poPredicate name="Propert}" org.eventb.core.predicate="Inst∈Model ∖ Pattern" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_fxjdEQKnEeiAPf1wPUl3Gw"/>
<org.eventb.core.poPredicate name="Propert~" org.eventb.core.predicate="Inst≠Mdl" org.eventb.core.source="/MODELS_INC_V9_VAR/cModel.buc|org.eventb.core.contextFile#cModel|org.eventb.core.axiom#_DGgrYAUMEei9ocE08JsPSw"/>
<org.eventb.core.poIdentifier name="Component" org.eventb.core.type="ℙ(Component)"/>
<org.eventb.core.poIdentifier name="Port" org.eventb.core.type="ℙ(Port)"/>
<org.eventb.core.poIdentifier name="IPort" org.eventb.core.type="ℙ(Port)"/>
<org.eventb.core.poIdentifier name="OPort" org.eventb.core.type="ℙ(Port)"/>
<org.eventb.core.poPredicate name="Componenu" org.eventb.core.predicate="partition(Port,IPort,OPort)" org.eventb.core.source="/MODELS_INC_V9_VAR/cPort.buc|org.eventb.core.contextFile#cPort|org.eventb.core.axiom#_Y1LocvqyEeectLZKwQfI0A"/>
<org.eventb.core.poIdentifier name="Link" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.poIdentifier name="First" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.poIdentifier name="Identity" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.poIdentifier name="LKind" org.eventb.core.type="ℙ(ℙ(Link))"/>
<org.eventb.core.poIdentifier name="Rotate" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.poIdentifier name="Shift" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.poIdentifier name="Transpose" org.eventb.core.type="ℙ(Link)"/>
<org.eventb.core.poPredicate name="Transposf" org.eventb.core.predicate="partition(Link,Transpose,Identity,Shift,First,Rotate)" org.eventb.core.source="/MODELS_INC_V9_VAR/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.axiom#_u1ZfsfgzEeeeS5KQUtrGlw"/>
<org.eventb.core.poPredicate name="Transposg" org.eventb.core.predicate="LKind={Transpose,Identity,Shift,First,Rotate}" org.eventb.core.source="/MODELS_INC_V9_VAR/cLink.buc|org.eventb.core.contextFile#cLink|org.eventb.core.axiom#_u1ZfsvgzEeeeS5KQUtrGlw"/>
<org.eventb.core.poIdentifier name="ballot_box" org.eventb.core.type="Component"/>
<org.eventb.core.poIdentifier name="c_mult_others_par" org.eventb.core.type="ℙ(Component×ℤ)"/>
<org.eventb.core.poIdentifier name="c_multiplicity_var" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/>
<org.eventb.core.poIdentifier name="components_var" org.eventb.core.type="ℙ(Model×ℙ(Component))"/>
<org.eventb.core.poIdentifier name="container_var" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/>
<org.eventb.core.poIdentifier name="f_container_var" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.poIdentifier name="inst_components_par" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.poIdentifier name="replicator" org.eventb.core.type="Component"/>
<org.eventb.core.poIdentifier name="safety_comp" org.eventb.core.type="Component"/>
<org.eventb.core.poIdentifier name="safety_container" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.poIdentifier name="safety_model" org.eventb.core.type="Model"/>
<org.eventb.core.poIdentifier name="to_unfold_c_var" org.eventb.core.type="ℙ(Component)"/>
<org.eventb.core.poIdentifier name="toy_app" org.eventb.core.type="Component"/>
<org.eventb.core.poIdentifier name="toy_container" org.eventb.core.type="ℙ(Component×Component)"/>
<org.eventb.core.poIdentifier name="toy_inp_1" org.eventb.core.type="Port"/>
<org.eventb.core.poIdentifier name="toy_inp_2" org.eventb.core.type="Port"/>
<org.eventb.core.poIdentifier name="toy_model" org.eventb.core.type="Model"/>
<org.eventb.core.poIdentifier name="toy_output" org.eventb.core.type="Port"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poSequent name="f_acycl/WD" org.eventb.core.accurate="true" org.eventb.core.poDesc="Well-definedness of Theorem" org.eventb.core.poStamp="2">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/MODELS_INC_V9_VAR/pattern_safety.bpo|org.eventb.core.poFile#pattern_safety|org.eventb.core.poPredicateSet#HYPcComponeo."/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="∀m⦂Model·m∈dom(container_var)∧container_var∈Model ⇸ ℙ(Component × Component)" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROCFwEBEei-meqqkXX9bA"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROCFwEBEei-meqqkXX9bA"/>
<org.eventb.core.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/MODELS_INC_V9_VAR/pattern_safety.bpo|org.eventb.core.poFile#pattern_safety|org.eventb.core.poPredicateSet#ABSHYP" org.eventb.core.poSelHintSnd="/MODELS_INC_V9_VAR/pattern_safety.bpo|org.eventb.core.poFile#pattern_safety|org.eventb.core.poPredicateSet#HYPcComponeo."/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="f_acycl/THM" org.eventb.core.accurate="true" org.eventb.core.poDesc="Theorem" org.eventb.core.poStamp="2">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/MODELS_INC_V9_VAR/pattern_safety.bpo|org.eventb.core.poFile#pattern_safety|org.eventb.core.poPredicateSet#HYPcComponeo."/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="∀m⦂Model·container_var(m)⊆f_container_var∧f_container_var;f_container_var⊆f_container_var∧(id ⦂ ℙ(Component×Component))∩f_container_var=(∅ ⦂ ℙ(Component×Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROCFwEBEei-meqqkXX9bA"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROCFwEBEei-meqqkXX9bA"/>
<org.eventb.core.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/MODELS_INC_V9_VAR/pattern_safety.bpo|org.eventb.core.poFile#pattern_safety|org.eventb.core.poPredicateSet#ABSHYP" org.eventb.core.poSelHintSnd="/MODELS_INC_V9_VAR/pattern_safety.bpo|org.eventb.core.poFile#pattern_safety|org.eventb.core.poPredicateSet#HYPcComponeo."/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="c_multiplicity_assign&#10;/WD" org.eventb.core.accurate="true" org.eventb.core.poDesc="Well-definedness of Theorem" org.eventb.core.poStamp="2">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/MODELS_INC_V9_VAR/pattern_safety.bpo|org.eventb.core.poFile#pattern_safety|org.eventb.core.poPredicateSet#HYPcComponeo2"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="safety_model∈dom(c_multiplicity_var)∧c_multiplicity_var∈Model ⇸ ℙ(Component × ℤ)∧(∀pc⦂Component·pc∈dom(inst_components_par)⇒finite(inst_components_par[{pc}]))" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROpIwEBEei-meqqkXX9bA"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROpIwEBEei-meqqkXX9bA"/>
<org.eventb.core.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/MODELS_INC_V9_VAR/pattern_safety.bpo|org.eventb.core.poFile#pattern_safety|org.eventb.core.poPredicateSet#ABSHYP" org.eventb.core.poSelHintSnd="/MODELS_INC_V9_VAR/pattern_safety.bpo|org.eventb.core.poFile#pattern_safety|org.eventb.core.poPredicateSet#HYPcComponeo2"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="c_multiplicity_assign&#10;/THM" org.eventb.core.accurate="true" org.eventb.core.poDesc="Theorem" org.eventb.core.poStamp="2">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/MODELS_INC_V9_VAR/pattern_safety.bpo|org.eventb.core.poFile#pattern_safety|org.eventb.core.poPredicateSet#HYPcComponeo2"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="c_multiplicity_var(safety_model)=c_mult_others_par{pc⦂Component·pc∈dom(inst_components_par) ∣ pc ↦ card(inst_components_par[{pc}])}" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROpIwEBEei-meqqkXX9bA"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROpIwEBEei-meqqkXX9bA"/>
<org.eventb.core.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/MODELS_INC_V9_VAR/pattern_safety.bpo|org.eventb.core.poFile#pattern_safety|org.eventb.core.poPredicateSet#ABSHYP" org.eventb.core.poSelHintSnd="/MODELS_INC_V9_VAR/pattern_safety.bpo|org.eventb.core.poFile#pattern_safety|org.eventb.core.poPredicateSet#HYPcComponeo2"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="to_unfold_c_var&#10;/WD" org.eventb.core.accurate="true" org.eventb.core.poDesc="Well-definedness of Theorem" org.eventb.core.poStamp="2">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/MODELS_INC_V9_VAR/pattern_safety.bpo|org.eventb.core.poFile#pattern_safety|org.eventb.core.poPredicateSet#HYPcComponeo4"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="safety_model∈dom(components_var)∧components_var∈Model ⇸ ℙ(Component)∧safety_model∈dom(container_var)∧container_var∈Model ⇸ ℙ(Component × Component)" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROpJQEBEei-meqqkXX9bA"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROpJQEBEei-meqqkXX9bA"/>
<org.eventb.core.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/MODELS_INC_V9_VAR/pattern_safety.bpo|org.eventb.core.poFile#pattern_safety|org.eventb.core.poPredicateSet#ABSHYP" org.eventb.core.poSelHintSnd="/MODELS_INC_V9_VAR/pattern_safety.bpo|org.eventb.core.poFile#pattern_safety|org.eventb.core.poPredicateSet#HYPcComponeo4"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="to_unfold_c_var&#10;/THM" org.eventb.core.accurate="true" org.eventb.core.poDesc="Theorem" org.eventb.core.poStamp="2">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/MODELS_INC_V9_VAR/pattern_safety.bpo|org.eventb.core.poFile#pattern_safety|org.eventb.core.poPredicateSet#HYPcComponeo4"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="to_unfold_c_var=components_var(safety_model) ∖ dom(container_var(safety_model))" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROpJQEBEei-meqqkXX9bA"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROpJQEBEei-meqqkXX9bA"/>
<org.eventb.core.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/MODELS_INC_V9_VAR/pattern_safety.bpo|org.eventb.core.poFile#pattern_safety|org.eventb.core.poPredicateSet#ABSHYP" org.eventb.core.poSelHintSnd="/MODELS_INC_V9_VAR/pattern_safety.bpo|org.eventb.core.poFile#pattern_safety|org.eventb.core.poPredicateSet#HYPcComponeo4"/>
</org.eventb.core.poSequent>
<org.eventb.core.poPredicateSet name="HYPcComponeo." org.eventb.core.parentSet="/MODELS_INC_V9_VAR/pattern_safety.bpo|org.eventb.core.poFile#pattern_safety|org.eventb.core.poPredicateSet#ABSHYP" org.eventb.core.poStamp="2">
<org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="replicator∈Component" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_-yCkUgAPEeis7pYemx4WBQ"/>
<org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="ballot_box∈Component" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_-yCkUwAPEeis7pYemx4WBQ"/>
<org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="safety_comp∈Component" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_-yCkVAAPEeis7pYemx4WBQ"/>
<org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="replicator≠ballot_box∧replicator≠safety_comp∧ballot_box≠safety_comp" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_-yCkVQAPEeis7pYemx4WBQ"/>
<org.eventb.core.poPredicate name="PRD4" org.eventb.core.predicate="safety_container={replicator ↦ safety_comp,ballot_box ↦ safety_comp}" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_oim4RAAQEeis7pYemx4WBQ"/>
<org.eventb.core.poPredicate name="PRD5" org.eventb.core.predicate="toy_container∈Component ⇸ Component" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_oim4RQAQEeis7pYemx4WBQ"/>
<org.eventb.core.poPredicate name="PRD6" org.eventb.core.predicate="toy_container=(∅ ⦂ ℙ(Component×Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_oim4RgAQEeis7pYemx4WBQ"/>
<org.eventb.core.poPredicate name="PRD7" org.eventb.core.predicate="safety_model∈Model" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_oinfUAAQEeis7pYemx4WBQ"/>
<org.eventb.core.poPredicate name="PRD8" org.eventb.core.predicate="toy_model∈Model" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_9c9V0gAREeis7pYemx4WBQ"/>
<org.eventb.core.poPredicate name="PRD9" org.eventb.core.predicate="safety_model≠toy_model" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_9c9V0wAREeis7pYemx4WBQ"/>
<org.eventb.core.poPredicate name="PRD10" org.eventb.core.predicate="Model={safety_model,toy_model}" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_9c9V1AAREeis7pYemx4WBQ"/>
<org.eventb.core.poPredicate name="PRD11" org.eventb.core.predicate="toy_app∈Component" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_9c984AAREeis7pYemx4WBQ"/>
<org.eventb.core.poPredicate name="PRD12" org.eventb.core.predicate="toy_inp_1∈IPort" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_9lz6YgASEeis7pYemx4WBQ"/>
<org.eventb.core.poPredicate name="PRD13" org.eventb.core.predicate="toy_inp_2∈IPort" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROCEgEBEei-meqqkXX9bA"/>
<org.eventb.core.poPredicate name="PRD14" org.eventb.core.predicate="toy_output∈OPort" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROCEwEBEei-meqqkXX9bA"/>
<org.eventb.core.poPredicate name="PRD15" org.eventb.core.predicate="components_var={safety_model ↦ {replicator,ballot_box,safety_comp},toy_model ↦ {toy_app}}" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROCFAEBEei-meqqkXX9bA"/>
<org.eventb.core.poPredicate name="PRD16" org.eventb.core.predicate="container_var={safety_model ↦ safety_container,toy_model ↦ toy_container}" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROCFQEBEei-meqqkXX9bA"/>
<org.eventb.core.poPredicate name="PRD17" org.eventb.core.predicate="f_container_var={replicator ↦ safety_comp,ballot_box ↦ safety_comp}" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROCFgEBEei-meqqkXX9bA"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="HYPcComponeo2" org.eventb.core.parentSet="/MODELS_INC_V9_VAR/pattern_safety.bpo|org.eventb.core.poFile#pattern_safety|org.eventb.core.poPredicateSet#HYPcComponeo." org.eventb.core.poStamp="2">
<org.eventb.core.poPredicate name="PRD18" org.eventb.core.predicate="∀m⦂Model·container_var(m)⊆f_container_var∧f_container_var;f_container_var⊆f_container_var∧(id ⦂ ℙ(Component×Component))∩f_container_var=(∅ ⦂ ℙ(Component×Component))" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROCFwEBEei-meqqkXX9bA"/>
<org.eventb.core.poPredicate name="PRD19" org.eventb.core.predicate="inst_components_par={safety_comp ↦ toy_app}" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROpIAEBEei-meqqkXX9bA"/>
<org.eventb.core.poPredicate name="PRD20" org.eventb.core.predicate="c_mult_others_par={replicator ↦ 3,ballot_box ↦ 1}" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROpIQEBEei-meqqkXX9bA"/>
<org.eventb.core.poPredicate name="PRD21" org.eventb.core.predicate="c_multiplicity_var={safety_model ↦ {safety_comp ↦ 1,replicator ↦ 3,ballot_box ↦ 1}}" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROpIgEBEei-meqqkXX9bA"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="HYPcComponeo4" org.eventb.core.parentSet="/MODELS_INC_V9_VAR/pattern_safety.bpo|org.eventb.core.poFile#pattern_safety|org.eventb.core.poPredicateSet#HYPcComponeo2" org.eventb.core.poStamp="2">
<org.eventb.core.poPredicate name="PRD22" org.eventb.core.predicate="c_multiplicity_var(safety_model)=c_mult_others_par{pc⦂Component·pc∈dom(inst_components_par) ∣ pc ↦ card(inst_components_par[{pc}])}" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROpIwEBEei-meqqkXX9bA"/>
<org.eventb.core.poPredicate name="PRD23" org.eventb.core.predicate="to_unfold_c_var={safety_comp}" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROpJAEBEei-meqqkXX9bA"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="ALLHYP" org.eventb.core.parentSet="/MODELS_INC_V9_VAR/pattern_safety.bpo|org.eventb.core.poFile#pattern_safety|org.eventb.core.poPredicateSet#HYPcComponeo4" org.eventb.core.poStamp="2">
<org.eventb.core.poPredicate name="PRD24" org.eventb.core.predicate="to_unfold_c_var=components_var(safety_model) ∖ dom(container_var(safety_model))" org.eventb.core.source="/MODELS_INC_V9_VAR/pattern_safety.buc|org.eventb.core.contextFile#pattern_safety|org.eventb.core.axiom#_kROpJQEBEei-meqqkXX9bA"/>
</org.eventb.core.poPredicateSet>
</org.eventb.core.poFile>
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.psFile>
<org.eventb.core.psStatus name="f_acycl/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="2" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="f_acycl/THM" org.eventb.core.confidence="1000" org.eventb.core.poStamp="2" org.eventb.core.psBroken="true" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="c_multiplicity_assign&#10;/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="2" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="c_multiplicity_assign&#10;/THM" org.eventb.core.confidence="1000" org.eventb.core.poStamp="2" org.eventb.core.psBroken="true" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="to_unfold_c_var&#10;/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="2" org.eventb.core.psManual="false"/>
<org.eventb.core.psStatus name="to_unfold_c_var&#10;/THM" org.eventb.core.confidence="1000" org.eventb.core.poStamp="2" org.eventb.core.psBroken="true" org.eventb.core.psManual="false"/>
</org.eventb.core.psFile>
VARIANT: nbre de chemins restant à construire
chemin = {s |-> i | s : subc(root) & i <= mult(s)}
ens des chemins =
{ch: subc(root) -> NAT | !s. s:dom(ch) => ch(s) <= mult(s)}
====================
inter({sc·x∈sc∧container∼[sc]⊆sc ∣ sc}) /= {}
en prenant {x}\/f~[{x}]
===================
L1: new_components;f0 = {}
L2: f0;new_components~ = {}
......@@ -34,3 +43,25 @@ pour unfold_node acyclic
apply_pattern_link_oo:
ajouter XXX;(inst_comp \/ new_com); (inst_comp\/new_comp)~= XXX
============================================
UNION c. 1..card(to_unfold_c ∩ {c}) ∪ to_unfold_c_in[{c}])
** (containers∼[{c}] +-> 0‥M)
(containers \/ id)~[to_unfold_c \/ dom(to_unfold_c_in)] +-> 0..M \/
containers~[to_unfold_c] ** 0..M \/
to_unfold_c ** 0..0 \/
{c|->i | c:dom(to_unfold_c_in) & i:0..card(to_unfold_c_in[{c}])}
{f | f: ((containers\/id)~[dom(to_unfold_c_in)] \/ dom(to_unfold_c_in) +-> 0..M
& !c. c:dom(to_unfold_c_in) /\ dom(f) => f(c) : 0..card(to_unfold_c_in[{c}])
& !c. c:to_unfold_c /\ dom(f) => f(c) = 0
}
#c * weight(c)
w(c):=w(c)-M^h(c) || ||_sc<c w(sc):=w(sc)+M^(h(c)-1)
c,i --> SC(c)+-> 0..M
sc --> SC(sc) ** {i} +-> 0..M
ordre lexico sur c1,...cN trie par <
(c,i) ==> ajout de (sc,i1) ... (sc,im)
(c,j) ==> ajout de (sc,j1) ... (sc,jm)
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.prFile version="1">
<org.eventb.core.prProof name="e/r1/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3">
<org.eventb.core.lang name="L"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p1" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p4"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p2,p3,p4">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="r" org.eventb.core.type="ℙ(ℤ×ℤ)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="0∉ran(r)"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="¬0∈ran(r)"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="r{0 ↦ 0}∈ℕ ↔ ℕ"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="r∈ℕ ↔ ℕ"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="r∼∈ℕ → ℕ"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="e/r2/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2">
<org.eventb.core.lang name="L"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p1" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p3"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p2,p3">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="r" org.eventb.core.type="ℙ(ℤ×ℤ)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="0∉ran(r)"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(r{0 ↦ 0})∼∈ℕ → ℕ"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="¬0∈ran(r)"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="r∼∈ℕ → ℕ"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="e/r/WD" org.eventb.core.confidence="0" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.lang name="L"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p1"/>
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p2"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="r" org.eventb.core.type="ℙ(ℤ×ℤ)"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="r∈ℤ ⇸ ℤ"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="0∈dom(r)∧r∈ℤ ⇸ ℤ"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="0∈dom(r)"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/>
</org.eventb.core.prProof>
</org.eventb.core.prFile>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment