Initial commit.

This commit is contained in:
2018-12-06 14:47:05 +01:00
parent b1dcd806aa
commit 79820f4433
370 changed files with 247380 additions and 3 deletions

17
Event-B/pseim/.project Normal file
View File

@@ -0,0 +1,17 @@
<?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>

23
Event-B/pseim/README.md Normal file
View File

@@ -0,0 +1,23 @@
# Patterns for SEIM Event-B models
## Contributors
Jean-Paul Bodeveix, Arnaud Dieumegard, Mamoun Filali
## Content
This project contains the Event-B models for the formalization of pattern instantiations on system engineering models.
### Structure
![Pattern instantiation and application model](event-b_model_structure2.jpg "Pattern instantiation and application project structure")
### Documentation
Documentation on the content of these models is provided on the deliverable.
### Additional elements
An other context is provided: pattern_safety.
This model contains the first version of an instance of pattern directly encoded using Event-B.
Using simulation tools such as Pro-B on this model may produce an instance of Model where the pattern is instantiated. This shall be checked as it is only a prototype.

View File

@@ -0,0 +1,18 @@
<?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>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<org.eventb.core.prFile version="1"/>

View File

@@ -0,0 +1,5 @@
<?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.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>

37
Event-B/pseim/cLink.bcc Normal file
View File

@@ -0,0 +1,37 @@
<?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>

32
Event-B/pseim/cLink.bpo Normal file
View File

@@ -0,0 +1,32 @@
<?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>

2
Event-B/pseim/cLink.bpr Normal file
View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<org.eventb.core.prFile version="1"/>

2
Event-B/pseim/cLink.bps Normal file
View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<org.eventb.core.psFile/>

13
Event-B/pseim/cLink.buc Normal file
View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.contextFile org.eventb.core.configuration="org.eventb.core.fwd;de.prob.symbolic.ctxBase;de.prob.units.mchBase;org.eventb.codegen.ui.cgConfig" org.eventb.texttools.text_lastmodified="1516029848931" org.eventb.texttools.text_representation="context cLink extends cPort&#10;sets Link&#10;constants&#10;&#9;LKind Transpose Identity Shift First Rotate&#10;&#10;axioms&#10;&#9;@link_k partition(Link, Transpose, Identity, Shift, First, Rotate)&#10;&#9;@LKind LKind = {Transpose, Identity, Shift, First, Rotate}&#10;&#10;end&#10;" version="3">
<org.eventb.core.extendsContext name="'" org.eventb.core.target="cPort"/>
<org.eventb.core.constant name="_u1ZfsPgzEeeeS5KQUtrGlw" org.eventb.core.identifier="LKind"/>
<org.eventb.core.axiom name="_u1ZfsfgzEeeeS5KQUtrGlw" org.eventb.core.label="link_k" org.eventb.core.predicate="partition(Link, Transpose, Identity, Shift, First, Rotate)"/>
<org.eventb.core.axiom name="_u1ZfsvgzEeeeS5KQUtrGlw" org.eventb.core.label="LKind" org.eventb.core.predicate="LKind = {Transpose, Identity, Shift, First, Rotate}"/>
<org.eventb.core.constant name="_WzjhMPg8EeeeS5KQUtrGlw" org.eventb.core.identifier="Transpose"/>
<org.eventb.core.constant name="_WzjhMfg8EeeeS5KQUtrGlw" org.eventb.core.identifier="Identity"/>
<org.eventb.core.constant name="_WzjhMvg8EeeeS5KQUtrGlw" org.eventb.core.identifier="Shift"/>
<org.eventb.core.constant name="_WzjhM_g8EeeeS5KQUtrGlw" org.eventb.core.identifier="First"/>
<org.eventb.core.constant name="_WzjhNPg8EeeeS5KQUtrGlw" org.eventb.core.identifier="Rotate"/>
<org.eventb.core.carrierSet name="_IabHcPoIEeeOzddrJxUeNA" org.eventb.core.identifier="Link"/>
</org.eventb.core.contextFile>

14
Event-B/pseim/cModel.bcc Normal file
View File

@@ -0,0 +1,14 @@
<?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>

2
Event-B/pseim/cModel.bpr Normal file
View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<org.eventb.core.prFile version="1"/>

14
Event-B/pseim/cModel.buc Normal file
View File

@@ -0,0 +1,14 @@
<?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.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"/>
<org.eventb.core.axiom name="_h20wcfqkEeectLZKwQfI0A" org.eventb.core.label="Pattern_ty" org.eventb.core.predicate="Pattern ⊆ Model"/>
<org.eventb.core.axiom name="_h20wcvqkEeectLZKwQfI0A" org.eventb.core.label="Mdl_ty" org.eventb.core.predicate="Mdl ∈ Model Pattern"/>
<org.eventb.core.axiom name="_h20wc_qkEeectLZKwQfI0A" org.eventb.core.label="Pat_ty" org.eventb.core.predicate="Pat ∈ Pattern"/>
<org.eventb.core.constant name="_b4aBsPraEeerIsS6OyYQ4w" org.eventb.core.identifier="Pat"/>
<org.eventb.core.carrierSet name="_9dBM4ADlEei-meqqkXX9bA" org.eventb.core.identifier="Property"/>
<org.eventb.core.constant name="_fxjdEAKnEeiAPf1wPUl3Gw" org.eventb.core.identifier="Inst"/>
<org.eventb.core.axiom name="_fxjdEQKnEeiAPf1wPUl3Gw" org.eventb.core.label="Inst_ty" org.eventb.core.predicate="Inst ∈ Model Pattern"/>
<org.eventb.core.axiom name="_DGgrYAUMEei9ocE08JsPSw" org.eventb.core.label="Inst_Mdl" org.eventb.core.predicate="Inst ≠ Mdl"/>
</org.eventb.core.contextFile>

25
Event-B/pseim/cPort.bcc Normal file
View File

@@ -0,0 +1,25 @@
<?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>

23
Event-B/pseim/cPort.bpo Normal file
View File

@@ -0,0 +1,23 @@
<?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>

2
Event-B/pseim/cPort.bpr Normal file
View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<org.eventb.core.prFile version="1"/>

2
Event-B/pseim/cPort.bps Normal file
View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<org.eventb.core.psFile/>

8
Event-B/pseim/cPort.buc Normal file
View File

@@ -0,0 +1,8 @@
<?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="1516102973558" org.eventb.texttools.text_representation="context cPort extends cComponent&#10;sets&#10;&#9;Port&#10;constants&#10;&#9;IPort OPort&#10;axioms&#10;&#9;@part partition(Port,IPort,OPort)&#10;end&#10;" version="3">
<org.eventb.core.extendsContext name="'" org.eventb.core.target="cComponent"/>
<org.eventb.core.carrierSet name="_YwaNQPqeEeectLZKwQfI0A" org.eventb.core.identifier="Port"/>
<org.eventb.core.constant name="_Y1LocPqyEeectLZKwQfI0A" org.eventb.core.identifier="IPort"/>
<org.eventb.core.constant name="_Y1LocfqyEeectLZKwQfI0A" org.eventb.core.identifier="OPort"/>
<org.eventb.core.axiom name="_Y1LocvqyEeectLZKwQfI0A" org.eventb.core.label="part" org.eventb.core.predicate="partition(Port,IPort,OPort)"/>
</org.eventb.core.contextFile>

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View File

@@ -0,0 +1,107 @@
<?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_cran(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_indexnew_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_indexnew_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_componentsnew_components);container;(inst_componentsnew_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>

View File

@@ -0,0 +1,775 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.poFile org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="CTXHYP" 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.poPredicateSet>
<org.eventb.core.poPredicateSet name="ABSHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#CTXHYP" org.eventb.core.poStamp="0">
<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="components" org.eventb.core.type="(Model×Component)"/>
<org.eventb.core.poIdentifier name="container" 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_clone_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.poPredicateSet>
<org.eventb.core.poSequent name="irrefl/THM" org.eventb.core.accurate="true" org.eventb.core.poDesc="Theorem" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponen{"/>
<org.eventb.core.poPredicate name="SEQHYQ" 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.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dqNI_qkEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ABSHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponen{"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_unfold_in/THM" org.eventb.core.accurate="true" org.eventb.core.poDesc="Theorem" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-"/>
<org.eventb.core.poPredicate name="SEQHYQ" 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.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_nieoAAMxEei9ocE08JsPSw"/>
<org.eventb.core.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ABSHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_clone/THM" org.eventb.core.accurate="true" org.eventb.core.poDesc="Theorem" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo."/>
<org.eventb.core.poPredicate name="SEQHYQ" 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.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0AMzEei9ocE08JsPSw"/>
<org.eventb.core.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ABSHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo."/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="to_clone_c_mult/WD" org.eventb.core.accurate="true" org.eventb.core.poDesc="Well-definedness of Invariant" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo1"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c∈dom(c_index)∧c_index∈Component ⇸ ∧inst2pat_c∈Component ⇸ Component∧inst2pat_c(c)∈dom(c_multiplicity)∧c_multiplicity∈Component ⇸ " org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_V6rHAAM1Eei9ocE08JsPSw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_V6rHAAM1Eei9ocE08JsPSw"/>
<org.eventb.core.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ABSHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo1"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="VWD" org.eventb.core.accurate="true" org.eventb.core.poDesc="Well-definedness of variant" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="∀c⦂Component·c∈to_unfold_cran(to_clone_c)⇒{sc⦂(Component)·c∈sc∧container[sc]⊆sc sc}≠(∅ ⦂ ((Component)))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variant#_yRrOsAK6EeiAPf1wPUl3Gw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variant#_yRrOsAK6EeiAPf1wPUl3Gw"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="FIN" org.eventb.core.accurate="true" org.eventb.core.poDesc="Finiteness of variant" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="finite(c⦂Component·c∈to_unfold_cran(to_clone_c) {c} × inter({sc⦂(Component)·c∈sc∧container[sc]⊆sc sc}))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variant#_yRrOsAK6EeiAPf1wPUl3Gw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variant#_yRrOsAK6EeiAPf1wPUl3Gw"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="instanciate_pattern/comp_finite/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_ip"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="∀m⦂Model·finite(({Inst} ⩤ components)[{m}])" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_cQf0ZPqUEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_cQf0ZPqUEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#instanciate_pattern\/comp_finite\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponen{|org.eventb.core.poPredicate#PRD1"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="instanciate_pattern/comp_not_shared/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_ip"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="({Inst} ⩤ components)∈Component ⇸ Model" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_ip9Q0PqUEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_ip9Q0PqUEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#instanciate_pattern\/comp_not_shared\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponen{|org.eventb.core.poPredicate#PRD2"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="instanciate_pattern/c_mult/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_ip"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="c_multiplicity(c_mult_others{pc⦂Component·pc∈dom(inst_components) pc ↦ card(inst_components[{pc}])})∈({Inst} ⩤ components)[Pattern] → " org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_GMp30PqWEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_GMp30PqWEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#instanciate_pattern\/c_mult\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponen{|org.eventb.core.poPredicate#PRD3"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="instanciate_pattern/cont_ty/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_ip"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="components[{Inst}] ⩤ container∈ran({Inst} ⩤ components) ⇸ ran({Inst} ⩤ components)" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gmDo8fqgEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gmDo8fqgEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#instanciate_pattern\/cont_ty\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponen{|org.eventb.core.poPredicate#PRD4"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="instanciate_pattern/cont_ctr/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_ip"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="{Inst} ⩤ components;(components[{Inst}] ⩤ container);({Inst} ⩤ components)∼⊆(id ⦂ (Model×Model))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gmDo8vqgEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gmDo8vqgEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#instanciate_pattern\/cont_ctr\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponen{|org.eventb.core.poPredicate#PRD5"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="instanciate_pattern/acycl/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_ip"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="∃f⦂(Component×Component)·f∈Component ↔ Component∧components[{Inst}] ⩤ 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.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_oXBHAPqkEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#instanciate_pattern\/acycl\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponen{|org.eventb.core.poPredicate#PRD6"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="instanciate_pattern/to_unfold_c_in/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_ip"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(∅ ⦂ (Component×Component))∈({Inst} ⩤ components)[{Pat}] ↔ ({Inst} ⩤ components)[{Inst}]" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dqNJPqkEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dqNJPqkEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#instanciate_pattern\/to_unfold_c_in\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD8"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="instanciate_pattern/to_clone_c/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_ip"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(∅ ⦂ (Component×Component))∈({Inst} ⩤ components)[{Inst}] ⇸ ({Inst} ⩤ components)[{Pat}]" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dq0MPqkEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dq0MPqkEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#instanciate_pattern\/to_clone_c\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD9"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="instanciate_pattern/to_unfold_c/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_ip"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="components[{Pat}] dom(container)⊆({Inst} ⩤ components)[{Pat}]" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_l7KVEQA1EeictLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_l7KVEQA1EeictLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#instanciate_pattern\/to_unfold_c\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD10"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="instanciate_pattern/inst2pat_c_ty/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_ip"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(∅ ⦂ (Component×Component))∈({Inst} ⩤ components)[{Inst}] → ({Inst} ⩤ components)[{Pat}]" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_l7KVEgA1EeictLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_l7KVEgA1EeictLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#instanciate_pattern\/inst2pat_c_ty\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD11"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="instanciate_pattern/inst2pat_clone/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_ip"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(∅ ⦂ (Component×Component))⊆(∅ ⦂ (Component×Component))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_Hwdz4AKtEeiAPf1wPUl3Gw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_Hwdz4AKtEeiAPf1wPUl3Gw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#instanciate_pattern\/inst2pat_clone\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD12"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="instanciate_pattern/inst2pat_unfold_in/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_ip"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(∅ ⦂ (Component×Component));(∅ ⦂ (Component×Component))⊆components[{Inst}] ⩤ container" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_xudpYQK5EeiAPf1wPUl3Gw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_xudpYQK5EeiAPf1wPUl3Gw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#instanciate_pattern\/inst2pat_unfold_in\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD13"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="instanciate_pattern/pat2inst_unfold/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_ip"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(components[{Pat}] dom(container))∩ran(∅ ⦂ (Component×Component))=(∅ ⦂ (Component))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_fxu54ALAEeiAPf1wPUl3Gw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_fxu54ALAEeiAPf1wPUl3Gw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#instanciate_pattern\/pat2inst_unfold\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD14"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="instanciate_pattern/unfold_root/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_ip"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(components[{Pat}] dom(container))∩dom(components[{Inst}] ⩤ container)=(∅ ⦂ (Component))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_PaxdoAMwEei9ocE08JsPSw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_PaxdoAMwEei9ocE08JsPSw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#instanciate_pattern\/unfold_root\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD15"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="instanciate_pattern/unfold_in/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_ip"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="dom(∅ ⦂ (Component×Component))⊆dom(components[{Inst}] ⩤ container)" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_PaxdoQMwEei9ocE08JsPSw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_PaxdoQMwEei9ocE08JsPSw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#instanciate_pattern\/unfold_in\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD16"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="instanciate_pattern/inst2pat_cont/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_ip"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(∅ ⦂ (Component×Component));(components[{Inst}] ⩤ container)=components[{Inst}] ⩤ container;(∅ ⦂ (Component×Component))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0QMzEei9ocE08JsPSw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0QMzEei9ocE08JsPSw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#instanciate_pattern\/inst2pat_cont\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo1|org.eventb.core.poPredicate#PRD19"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="instanciate_pattern/c_index_ty/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_ip"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(∅ ⦂ (Component×))∈dom(∅ ⦂ (Component×Component)) → " org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0gMzEei9ocE08JsPSw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0gMzEei9ocE08JsPSw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#instanciate_pattern\/c_index_ty\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo1|org.eventb.core.poPredicate#PRD20"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="instanciate_pattern/to_clone_c_mult/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_ip"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="∀c⦂Component·c∈dom(∅ ⦂ (Component×Component))⇒(∅ ⦂ (Component×))(c)∈1 ‥ (c_multiplicity(c_mult_others{pc⦂Component·pc∈dom(inst_components) pc ↦ card(inst_components[{pc}])}))((∅ ⦂ (Component×Component))(c))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_V6rHAAM1Eei9ocE08JsPSw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_V6rHAAM1Eei9ocE08JsPSw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#instanciate_pattern\/to_clone_c_mult\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD21"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="instanciate_pattern/c_mult/WD" org.eventb.core.accurate="true" org.eventb.core.poDesc="Well-definedness of action" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_ip"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="∀pc⦂Component·pc∈dom(inst_components)⇒finite(inst_components[{pc}])" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1UjhfqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#'|org.eventb.core.action#_O1UjhfqmEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_ip"/>
</org.eventb.core.poSequent>
<org.eventb.core.poPredicateSet name="EVTIDENTto_unfold_c_ip" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="0">
<org.eventb.core.poIdentifier name="to_clone_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="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="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.poPredicateSet>
<org.eventb.core.poPredicateSet name="EVTALLHYPto_unfold_c_ip" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTIDENTto_unfold_c_ip" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicate name="PRD0" 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.poPredicate name="PRD1" 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.poPredicate name="PRD2" 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.poPredicateSet>
<org.eventb.core.poSequent name="unfold_root_c/new_c_ty/WD" org.eventb.core.accurate="true" org.eventb.core.poDesc="Well-definedness of Guard" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTHYPto_unfold_c_iq'"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="c∈dom(c_multiplicity)∧c_multiplicity∈Component ⇸ " 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.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" 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.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTHYPto_unfold_c_iq'"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_root_c/comp_finite/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_iq"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="∀m⦂Model·finite((components({Inst} × ran(new_c)))[{m}])" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_cQf0ZPqUEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_cQf0ZPqUEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_root_c\/comp_finite\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponen{|org.eventb.core.poPredicate#PRD1"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_root_c/comp_not_shared/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_iq"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(components({Inst} × ran(new_c)))∈Component ⇸ Model" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_ip9Q0PqUEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_ip9Q0PqUEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_root_c\/comp_not_shared\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponen{|org.eventb.core.poPredicate#PRD2"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_root_c/c_mult/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_iq"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="c_multiplicity∈(components({Inst} × ran(new_c)))[Pattern] → " org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_GMp30PqWEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_GMp30PqWEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_root_c\/c_mult\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponen{|org.eventb.core.poPredicate#PRD3"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_root_c/cont_ty/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_iq"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="container∈ran(components({Inst} × ran(new_c))) ⇸ ran(components({Inst} × ran(new_c)))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gmDo8fqgEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gmDo8fqgEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_root_c\/cont_ty\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponen{|org.eventb.core.poPredicate#PRD4"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_root_c/cont_ctr/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_iq"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(components({Inst} × ran(new_c)));container;(components({Inst} × ran(new_c)))∼⊆(id ⦂ (Model×Model))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gmDo8vqgEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gmDo8vqgEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_root_c\/cont_ctr\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponen{|org.eventb.core.poPredicate#PRD5"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_root_c/to_unfold_c_in/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_iq"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="to_unfold_c_in∈(components({Inst} × ran(new_c)))[{Pat}] ↔ (components({Inst} × ran(new_c)))[{Inst}]" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dqNJPqkEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dqNJPqkEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_root_c\/to_unfold_c_in\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD8"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_root_c/to_clone_c/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_iq"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="to_clone_c(ran(new_c) × {c})∈(components({Inst} × ran(new_c)))[{Inst}] ⇸ (components({Inst} × ran(new_c)))[{Pat}]" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dq0MPqkEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dq0MPqkEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_root_c\/to_clone_c\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD9"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_root_c/to_unfold_c/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_iq"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="to_unfold_c {c}⊆(components({Inst} × ran(new_c)))[{Pat}]" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_l7KVEQA1EeictLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_l7KVEQA1EeictLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_root_c\/to_unfold_c\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD10"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_root_c/inst2pat_c_ty/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_iq"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="inst2pat_c(ran(new_c) × {c})∈(components({Inst} × ran(new_c)))[{Inst}] → (components({Inst} × ran(new_c)))[{Pat}]" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_l7KVEgA1EeictLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_l7KVEgA1EeictLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_root_c\/inst2pat_c_ty\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD11"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_root_c/inst2pat_clone/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_iq"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="to_clone_c(ran(new_c) × {c})⊆inst2pat_c(ran(new_c) × {c})" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_Hwdz4AKtEeiAPf1wPUl3Gw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_Hwdz4AKtEeiAPf1wPUl3Gw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_root_c\/inst2pat_clone\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD12"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_root_c/inst2pat_unfold_in/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_iq"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="to_unfold_c_in;(inst2pat_c(ran(new_c) × {c}))⊆container" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_xudpYQK5EeiAPf1wPUl3Gw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_xudpYQK5EeiAPf1wPUl3Gw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_root_c\/inst2pat_unfold_in\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD13"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_root_c/pat2inst_unfold/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_iq"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(to_unfold_c {c})∩ran(inst2pat_c(ran(new_c) × {c}))=(∅ ⦂ (Component))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_fxu54ALAEeiAPf1wPUl3Gw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_fxu54ALAEeiAPf1wPUl3Gw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_root_c\/pat2inst_unfold\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD14"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_root_c/unfold_root/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_iq"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(to_unfold_c {c})∩dom(container)=(∅ ⦂ (Component))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_PaxdoAMwEei9ocE08JsPSw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_PaxdoAMwEei9ocE08JsPSw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_root_c\/unfold_root\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD15"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_root_c/inst2pat_cont/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_iq"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(inst2pat_c(ran(new_c) × {c}));container=container;(inst2pat_c(ran(new_c) × {c}))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0QMzEei9ocE08JsPSw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0QMzEei9ocE08JsPSw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_root_c\/inst2pat_cont\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo1|org.eventb.core.poPredicate#PRD19"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_root_c/c_index_ty/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_iq"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="c_indexnew_c∈dom(inst2pat_c(ran(new_c) × {c})) → " org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0gMzEei9ocE08JsPSw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0gMzEei9ocE08JsPSw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_root_c\/c_index_ty\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo1|org.eventb.core.poPredicate#PRD20"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_root_c/to_clone_c_mult/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_iq"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="∀c0⦂Component·c0∈dom(inst2pat_c(ran(new_c) × {c}))⇒(c_indexnew_c)(c0)∈1 ‥ c_multiplicity((inst2pat_c(ran(new_c) × {c}))(c0))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_V6rHAAM1Eei9ocE08JsPSw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_V6rHAAM1Eei9ocE08JsPSw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_root_c\/to_clone_c_mult\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD21"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_root_c/VAR" org.eventb.core.accurate="true" org.eventb.core.poDesc="Variant of event" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_iq"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(c0⦂Component·c0∈(to_unfold_c {c})ran(to_clone_c(ran(new_c) × {c})) {c0} × inter({sc⦂(Component)·c0∈sc∧container[sc]⊆sc sc}))⊂(c⦂Component·c∈to_unfold_cran(to_clone_c) {c} × inter({sc⦂(Component)·c∈sc∧container[sc]⊆sc sc}))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variant#_yRrOsAK6EeiAPf1wPUl3Gw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variant#_yRrOsAK6EeiAPf1wPUl3Gw"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1VxoPqmEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_root_c\/VAR|org.eventb.core.poPredicateSet#SEQHYP"/>
</org.eventb.core.poSequent>
<org.eventb.core.poPredicateSet name="EVTIDENTto_unfold_c_iq" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="0">
<org.eventb.core.poIdentifier name="to_clone_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="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="inst2pat_c'" org.eventb.core.type="(Component×Component)"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="EVTHYPto_unfold_c_iq'" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTIDENTto_unfold_c_iq" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicate name="PRD0" 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.poPredicateSet>
<org.eventb.core.poPredicateSet name="EVTALLHYPto_unfold_c_iq" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTHYPto_unfold_c_iq'" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicate name="PRD1" 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.poPredicateSet>
<org.eventb.core.poSequent name="clone_c/to_unfold_c_in/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_ir"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="to_unfold_c_in(container[{to_clone_c(c)}] × {c})∈components[{Pat}] ↔ components[{Inst}]" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dqNJPqkEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dqNJPqkEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#clone_c\/to_unfold_c_in\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD8"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="clone_c/to_clone_c/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_ir"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="{c} ⩤ 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.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dq0MPqkEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#clone_c\/to_clone_c\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD9"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="clone_c/inst2pat_clone/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_ir"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="{c} ⩤ 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.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_Hwdz4AKtEeiAPf1wPUl3Gw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#clone_c\/inst2pat_clone\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD12"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="clone_c/inst2pat_unfold_in/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_ir"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(to_unfold_c_in(container[{to_clone_c(c)}] × {c}));inst2pat_c⊆container" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_xudpYQK5EeiAPf1wPUl3Gw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_xudpYQK5EeiAPf1wPUl3Gw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#clone_c\/inst2pat_unfold_in\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD13"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="clone_c/unfold_in/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_ir"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="dom(to_unfold_c_in(container[{to_clone_c(c)}] × {c}))⊆dom(container)" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_PaxdoQMwEei9ocE08JsPSw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_PaxdoQMwEei9ocE08JsPSw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#clone_c\/unfold_in\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD16"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="clone_c/to_unfold_c_in/WD" org.eventb.core.accurate="true" org.eventb.core.poDesc="Well-definedness of action" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_ir"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="c∈dom(to_clone_c)∧to_clone_c∈Component ⇸ Component" 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.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" 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.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_ir"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="clone_c/VAR" org.eventb.core.accurate="true" org.eventb.core.poDesc="Variant of event" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_ir"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(c0⦂Component·c0∈to_unfold_cran({c} ⩤ to_clone_c) {c0} × inter({sc⦂(Component)·c0∈sc∧container[sc]⊆sc sc}))⊂(c⦂Component·c∈to_unfold_cran(to_clone_c) {c} × inter({sc⦂(Component)·c∈sc∧container[sc]⊆sc sc}))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variant#_yRrOsAK6EeiAPf1wPUl3Gw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variant#_yRrOsAK6EeiAPf1wPUl3Gw"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1WYufqmEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#clone_c\/VAR|org.eventb.core.poPredicateSet#SEQHYP"/>
</org.eventb.core.poSequent>
<org.eventb.core.poPredicateSet name="EVTIDENTto_unfold_c_ir" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="0">
<org.eventb.core.poIdentifier name="to_clone_c'" org.eventb.core.type="(Component×Component)"/>
<org.eventb.core.poIdentifier name="c" org.eventb.core.type="Component"/>
<org.eventb.core.poIdentifier name="to_unfold_c_in'" org.eventb.core.type="(Component×Component)"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="EVTALLHYPto_unfold_c_ir" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTIDENTto_unfold_c_ir" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicate name="PRD0" 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.poPredicateSet>
<org.eventb.core.poSequent name="unfold_node_c/new_c_ty/WD" org.eventb.core.accurate="true" org.eventb.core.poDesc="Well-definedness of Guard" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTHYPto_unfold_c_is'"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="c∈dom(c_multiplicity)∧c_multiplicity∈Component ⇸ " 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.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" 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.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTHYPto_unfold_c_is'"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_node_c/comp_finite/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_is"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="∀m⦂Model·finite((components({Inst} × ran(new_c)))[{m}])" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_cQf0ZPqUEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_cQf0ZPqUEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_node_c\/comp_finite\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponen{|org.eventb.core.poPredicate#PRD1"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_node_c/comp_not_shared/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_is"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(components({Inst} × ran(new_c)))∈Component ⇸ Model" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_ip9Q0PqUEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_ip9Q0PqUEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_node_c\/comp_not_shared\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponen{|org.eventb.core.poPredicate#PRD2"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_node_c/c_mult/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_is"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="c_multiplicity∈(components({Inst} × ran(new_c)))[Pattern] → " org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_GMp30PqWEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_GMp30PqWEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_node_c\/c_mult\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponen{|org.eventb.core.poPredicate#PRD3"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_node_c/cont_ty/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_is"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="container(ran(new_c) × {dest})∈ran(components({Inst} × ran(new_c))) ⇸ ran(components({Inst} × ran(new_c)))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gmDo8fqgEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gmDo8fqgEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_node_c\/cont_ty\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponen{|org.eventb.core.poPredicate#PRD4"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_node_c/cont_ctr/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_is"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(components({Inst} × ran(new_c)));(container(ran(new_c) × {dest}));(components({Inst} × ran(new_c)))∼⊆(id ⦂ (Model×Model))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gmDo8vqgEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gmDo8vqgEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_node_c\/cont_ctr\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponen{|org.eventb.core.poPredicate#PRD5"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_node_c/acycl/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_is"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="∃f⦂(Component×Component)·f∈Component ↔ Component∧container(ran(new_c) × {dest})⊆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.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_oXBHAPqkEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_node_c\/acycl\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponen{|org.eventb.core.poPredicate#PRD6"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_node_c/to_unfold_c_in/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_is"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="to_unfold_c_in {c ↦ dest}∈(components({Inst} × ran(new_c)))[{Pat}] ↔ (components({Inst} × ran(new_c)))[{Inst}]" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dqNJPqkEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dqNJPqkEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_node_c\/to_unfold_c_in\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD8"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_node_c/to_clone_c/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_is"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="to_clone_c(ran(new_c) × {c})∈(components({Inst} × ran(new_c)))[{Inst}] ⇸ (components({Inst} × ran(new_c)))[{Pat}]" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dq0MPqkEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dq0MPqkEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_node_c\/to_clone_c\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD9"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_node_c/to_unfold_c/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_is"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="to_unfold_c⊆(components({Inst} × ran(new_c)))[{Pat}]" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_l7KVEQA1EeictLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_l7KVEQA1EeictLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_node_c\/to_unfold_c\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD10"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_node_c/inst2pat_c_ty/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_is"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="inst2pat_c(ran(new_c) × {c})∈(components({Inst} × ran(new_c)))[{Inst}] → (components({Inst} × ran(new_c)))[{Pat}]" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_l7KVEgA1EeictLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_l7KVEgA1EeictLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_node_c\/inst2pat_c_ty\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD11"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_node_c/inst2pat_clone/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_is"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="to_clone_c(ran(new_c) × {c})⊆inst2pat_c(ran(new_c) × {c})" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_Hwdz4AKtEeiAPf1wPUl3Gw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_Hwdz4AKtEeiAPf1wPUl3Gw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_node_c\/inst2pat_clone\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD12"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_node_c/inst2pat_unfold_in/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_is"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(to_unfold_c_in {c ↦ dest});(inst2pat_c(ran(new_c) × {c}))⊆container(ran(new_c) × {dest})" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_xudpYQK5EeiAPf1wPUl3Gw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_xudpYQK5EeiAPf1wPUl3Gw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_node_c\/inst2pat_unfold_in\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD13"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_node_c/pat2inst_unfold/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_is"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c(ran(new_c) × {c}))=(∅ ⦂ (Component))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_fxu54ALAEeiAPf1wPUl3Gw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_fxu54ALAEeiAPf1wPUl3Gw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_node_c\/pat2inst_unfold\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD14"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_node_c/unfold_root/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_is"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="to_unfold_c∩dom(container(ran(new_c) × {dest}))=(∅ ⦂ (Component))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_PaxdoAMwEei9ocE08JsPSw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_PaxdoAMwEei9ocE08JsPSw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_node_c\/unfold_root\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD15"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_node_c/unfold_in/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_is"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="dom(to_unfold_c_in {c ↦ dest})⊆dom(container(ran(new_c) × {dest}))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_PaxdoQMwEei9ocE08JsPSw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_PaxdoQMwEei9ocE08JsPSw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_node_c\/unfold_in\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD16"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_node_c/inst2pat_cont/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_is"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(inst2pat_c(ran(new_c) × {c}));(container(ran(new_c) × {dest}))=(container(ran(new_c) × {dest}));(inst2pat_c(ran(new_c) × {c}))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0QMzEei9ocE08JsPSw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0QMzEei9ocE08JsPSw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_node_c\/inst2pat_cont\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo1|org.eventb.core.poPredicate#PRD19"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_node_c/c_index_ty/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_is"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="c_indexnew_c∈dom(inst2pat_c(ran(new_c) × {c})) → " org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0gMzEei9ocE08JsPSw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0gMzEei9ocE08JsPSw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_node_c\/c_index_ty\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo1|org.eventb.core.poPredicate#PRD20"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_node_c/to_clone_c_mult/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_is"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="∀c0⦂Component·c0∈dom(inst2pat_c(ran(new_c) × {c}))⇒(c_indexnew_c)(c0)∈1 ‥ c_multiplicity((inst2pat_c(ran(new_c) × {c}))(c0))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_V6rHAAM1Eei9ocE08JsPSw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_V6rHAAM1Eei9ocE08JsPSw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_node_c\/to_clone_c_mult\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD21"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="unfold_node_c/VAR" org.eventb.core.accurate="true" org.eventb.core.poDesc="Variant of event" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_is"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(c0⦂Component·c0∈to_unfold_cran(to_clone_c(ran(new_c) × {c})) {c0} × inter({sc⦂(Component)·c0∈sc∧(container(ran(new_c) × {dest}))[sc]⊆sc sc}))⊂(c⦂Component·c∈to_unfold_cran(to_clone_c) {c} × inter({sc⦂(Component)·c∈sc∧container[sc]⊆sc sc}))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variant#_yRrOsAK6EeiAPf1wPUl3Gw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.variant#_yRrOsAK6EeiAPf1wPUl3Gw"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1W_yfqmEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#unfold_node_c\/VAR|org.eventb.core.poPredicateSet#SEQHYP"/>
</org.eventb.core.poSequent>
<org.eventb.core.poPredicateSet name="EVTIDENTto_unfold_c_is" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="0">
<org.eventb.core.poIdentifier name="to_clone_c'" 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" 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.poPredicateSet>
<org.eventb.core.poPredicateSet name="EVTHYPto_unfold_c_is'" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTIDENTto_unfold_c_is" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicate name="PRD0" 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.poPredicateSet>
<org.eventb.core.poPredicateSet name="EVTALLHYPto_unfold_c_is" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTHYPto_unfold_c_is'" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicate name="PRD1" 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.poPredicateSet>
<org.eventb.core.poSequent name="apply_pattern/comp_finite/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_it"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="∀m⦂Model·finite((components({Mdl} × ran(new_components)))[{m}])" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_cQf0ZPqUEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1Xm2PqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_cQf0ZPqUEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#apply_pattern\/comp_finite\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponen{|org.eventb.core.poPredicate#PRD1"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="apply_pattern/comp_not_shared/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_it"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(components({Mdl} × ran(new_components)))∈Component ⇸ Model" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_ip9Q0PqUEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1Xm2PqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_ip9Q0PqUEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#apply_pattern\/comp_not_shared\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponen{|org.eventb.core.poPredicate#PRD2"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="apply_pattern/c_mult/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_it"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="c_multiplicity∈(components({Mdl} × ran(new_components)))[Pattern] → " org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_GMp30PqWEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1Xm2PqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_GMp30PqWEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#apply_pattern\/c_mult\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponen{|org.eventb.core.poPredicate#PRD3"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="apply_pattern/cont_ty/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_it"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="container((inst_componentsnew_components);container;(inst_componentsnew_components))∈ran(components({Mdl} × ran(new_components))) ⇸ ran(components({Mdl} × ran(new_components)))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gmDo8fqgEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1Xm2PqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gmDo8fqgEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#apply_pattern\/cont_ty\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponen{|org.eventb.core.poPredicate#PRD4"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="apply_pattern/cont_ctr/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_it"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(components({Mdl} × ran(new_components)));(container((inst_componentsnew_components);container;(inst_componentsnew_components)));(components({Mdl} × ran(new_components)))∼⊆(id ⦂ (Model×Model))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gmDo8vqgEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1Xm2PqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gmDo8vqgEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#apply_pattern\/cont_ctr\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponen{|org.eventb.core.poPredicate#PRD5"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="apply_pattern/acycl/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_it"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="∃f⦂(Component×Component)·f∈Component ↔ Component∧container((inst_componentsnew_components);container;(inst_componentsnew_components))⊆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.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1Xm2PqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_oXBHAPqkEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#apply_pattern\/acycl\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponen{|org.eventb.core.poPredicate#PRD6"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="apply_pattern/to_unfold_c_in/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_it"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="to_unfold_c_in∈(components({Mdl} × ran(new_components)))[{Pat}] ↔ (components({Mdl} × ran(new_components)))[{Inst}]" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dqNJPqkEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1Xm2PqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dqNJPqkEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#apply_pattern\/to_unfold_c_in\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD8"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="apply_pattern/to_clone_c/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_it"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="to_clone_c∈(components({Mdl} × ran(new_components)))[{Inst}] ⇸ (components({Mdl} × ran(new_components)))[{Pat}]" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dq0MPqkEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1Xm2PqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_1dq0MPqkEeectLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#apply_pattern\/to_clone_c\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD9"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="apply_pattern/to_unfold_c/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_it"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="to_unfold_c⊆(components({Mdl} × ran(new_components)))[{Pat}]" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_l7KVEQA1EeictLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1Xm2PqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_l7KVEQA1EeictLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#apply_pattern\/to_unfold_c\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD10"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="apply_pattern/inst2pat_c_ty/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_it"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="inst2pat_c∈(components({Mdl} × ran(new_components)))[{Inst}] → (components({Mdl} × ran(new_components)))[{Pat}]" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_l7KVEgA1EeictLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1Xm2PqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_l7KVEgA1EeictLZKwQfI0A"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#apply_pattern\/inst2pat_c_ty\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD11"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="apply_pattern/inst2pat_unfold_in/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_it"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container((inst_componentsnew_components);container;(inst_componentsnew_components))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_xudpYQK5EeiAPf1wPUl3Gw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1Xm2PqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_xudpYQK5EeiAPf1wPUl3Gw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#apply_pattern\/inst2pat_unfold_in\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD13"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="apply_pattern/unfold_root/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_it"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="to_unfold_c∩dom(container((inst_componentsnew_components);container;(inst_componentsnew_components)))=(∅ ⦂ (Component))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_PaxdoAMwEei9ocE08JsPSw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1Xm2PqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_PaxdoAMwEei9ocE08JsPSw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#apply_pattern\/unfold_root\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD15"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="apply_pattern/unfold_in/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_it"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container((inst_componentsnew_components);container;(inst_componentsnew_components)))" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_PaxdoQMwEei9ocE08JsPSw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1Xm2PqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_PaxdoQMwEei9ocE08JsPSw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#apply_pattern\/unfold_in\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-|org.eventb.core.poPredicate#PRD16"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="apply_pattern/inst2pat_cont/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTALLHYPto_unfold_c_it"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="inst2pat_c;(container((inst_componentsnew_components);container;(inst_componentsnew_components)))=(container((inst_componentsnew_components);container;(inst_componentsnew_components)));inst2pat_c" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0QMzEei9ocE08JsPSw"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.event#_O1Xm2PqmEeectLZKwQfI0A"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/pseim/mComponent.bum|org.eventb.core.machineFile#mComponent|org.eventb.core.invariant#_gxZD0QMzEei9ocE08JsPSw"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poSequent#apply_pattern\/inst2pat_cont\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo1|org.eventb.core.poPredicate#PRD19"/>
</org.eventb.core.poSequent>
<org.eventb.core.poPredicateSet name="EVTIDENTto_unfold_c_it" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="0">
<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="components'" org.eventb.core.type="(Model×Component)"/>
<org.eventb.core.poIdentifier name="new_components" org.eventb.core.type="(Component×Component)"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="EVTALLHYPto_unfold_c_it" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#EVTIDENTto_unfold_c_it" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicate name="PRD0" 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.poPredicate name="PRD1" 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.poPredicate name="PRD2" 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.poPredicate name="PRD3" 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.poPredicateSet>
<org.eventb.core.poPredicateSet name="HYPcComponen{" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#ABSHYP" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicate name="PRD0" 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.poPredicate name="PRD1" 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.poPredicate name="PRD2" 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.poPredicate name="PRD3" 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.poPredicate name="PRD4" 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.poPredicate name="PRD5" 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.poPredicate name="PRD6" 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.poPredicateSet>
<org.eventb.core.poPredicateSet name="HYPcComponeo-" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponen{" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicate name="PRD7" 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.poPredicate name="PRD8" 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.poPredicate name="PRD9" 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.poPredicate name="PRD10" 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.poPredicate name="PRD11" 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.poPredicate name="PRD12" 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.poPredicate name="PRD13" 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.poPredicate name="PRD14" 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.poPredicate name="PRD15" 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.poPredicate name="PRD16" 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.poPredicateSet>
<org.eventb.core.poPredicateSet name="HYPcComponeo." org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo-" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicate name="PRD17" 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.poPredicateSet>
<org.eventb.core.poPredicateSet name="HYPcComponeo1" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo." org.eventb.core.poStamp="0">
<org.eventb.core.poPredicate name="PRD18" 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.poPredicate name="PRD19" 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.poPredicate name="PRD20" 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.poPredicateSet>
<org.eventb.core.poPredicateSet name="ALLHYP" org.eventb.core.parentSet="/pseim/mComponent.bpo|org.eventb.core.poFile#mComponent|org.eventb.core.poPredicateSet#HYPcComponeo1" org.eventb.core.poStamp="0">
<org.eventb.core.poPredicate name="PRD21" 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.poPredicateSet>
</org.eventb.core.poFile>

20512
Event-B/pseim/mComponent.bpr Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<org.eventb.core.psFile/>

File diff suppressed because one or more lines are too long

90180
Event-B/pseim/mLink.bpr Normal file

File diff suppressed because it is too large Load Diff

111
Event-B/pseim/mLink.bum Normal file

File diff suppressed because one or more lines are too long

21273
Event-B/pseim/mPort.bpr Normal file

File diff suppressed because it is too large Load Diff

83
Event-B/pseim/mPort.bum Normal file
View File

@@ -0,0 +1,83 @@
<?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>

7617
Event-B/pseim/mProperty.bpr Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,35 @@
<?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>

View File

@@ -0,0 +1,477 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.prFile version="1">
<org.eventb.core.prProof name="f_acycl/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="m" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19" org.eventb.core.prSets="Component,Link,Model,Port">
<org.eventb.core.lang name="L"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p8" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p20,p21"/>
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p20,p21"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Link,Transpose,Identity,Shift,First,Rotate))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p2" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32"/>
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p38">
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p33"/>
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p34,p35,p36"/>
<org.eventb.core.prHypAction name="REWRITE2" org.eventb.core.prHidden="p14" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p37"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p39"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p40"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p41"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p42"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p43"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p44"/>
<org.eventb.core.prHypAction name="HIDE6" org.eventb.core.prHyps="p45"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p38" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p46">
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p46" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p47">
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/>
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with safety_container={replicator ↦ safety_comp,ballot_box ↦ safety_comp}" org.eventb.core.prHyps="p7">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p10" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with toy_container=∅" org.eventb.core.prHyps="p11">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p1" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="DESELECT2" org.eventb.core.prHyps="p1,p48"/>
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with container_var={safety_model ↦ {replicator ↦ safety_comp,ballot_box ↦ safety_comp},toy_model ↦ ∅}" org.eventb.core.prGoal="p47" org.eventb.core.prHyps="p50">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p51">
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p51" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p52">
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p52" org.eventb.core.prHyps="p17,p13,p19,p9,p7,p1,p11,p18,p6,p12,p15,p5,p10,p16,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p48,p49,p50">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p53">
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with safety_container={replicator ↦ safety_comp,ballot_box ↦ safety_comp}" org.eventb.core.prHyps="p7">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p10" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with toy_container=∅" org.eventb.core.prHyps="p11">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p1" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="DESELECT2" org.eventb.core.prHyps="p1,p48"/>
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with container_var={safety_model ↦ {replicator ↦ safety_comp,ballot_box ↦ safety_comp},toy_model ↦ ∅}" org.eventb.core.prGoal="p53" org.eventb.core.prHyps="p50">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p54">
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p54" org.eventb.core.prHyps="p17,p13,p19,p9,p7,p1,p11,p18,p6,p12,p15,p5,p10,p16,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p48,p49,p50">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="First" org.eventb.core.type="(Link)"/>
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="(Port)"/>
<org.eventb.core.prIdent name="Identity" org.eventb.core.type="(Link)"/>
<org.eventb.core.prIdent name="Inst" org.eventb.core.type="Model"/>
<org.eventb.core.prIdent name="LKind" org.eventb.core.type="((Link))"/>
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/>
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="(Port)"/>
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/>
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="(Model)"/>
<org.eventb.core.prIdent name="Rotate" org.eventb.core.type="(Link)"/>
<org.eventb.core.prIdent name="Shift" org.eventb.core.type="(Link)"/>
<org.eventb.core.prIdent name="Transpose" org.eventb.core.type="(Link)"/>
<org.eventb.core.prIdent name="ballot_box" org.eventb.core.type="Component"/>
<org.eventb.core.prIdent name="components_var" org.eventb.core.type="(Model×(Component))"/>
<org.eventb.core.prIdent name="container_var" org.eventb.core.type="(Model×(Component×Component))"/>
<org.eventb.core.prIdent name="f_container_var" org.eventb.core.type="(Component×Component)"/>
<org.eventb.core.prIdent name="replicator" org.eventb.core.type="Component"/>
<org.eventb.core.prIdent name="safety_comp" org.eventb.core.type="Component"/>
<org.eventb.core.prIdent name="safety_container" org.eventb.core.type="(Component×Component)"/>
<org.eventb.core.prIdent name="safety_model" org.eventb.core.type="Model"/>
<org.eventb.core.prIdent name="toy_app" org.eventb.core.type="Component"/>
<org.eventb.core.prIdent name="toy_container" org.eventb.core.type="(Component×Component)"/>
<org.eventb.core.prIdent name="toy_inp_1" org.eventb.core.type="Port"/>
<org.eventb.core.prIdent name="toy_inp_2" org.eventb.core.type="Port"/>
<org.eventb.core.prIdent name="toy_model" org.eventb.core.type="Model"/>
<org.eventb.core.prIdent name="toy_output" org.eventb.core.type="Port"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="toy_container∈Component ⇸ Component"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="Pattern⊆Model"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="partition(Link,Transpose,Identity,Shift,First,Rotate)"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="Transpose∩Rotate=(∅ ⦂ (Link))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="container_var∈Model ⇸ (Component × Component)"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="container_var={safety_model ↦ {replicator ↦ safety_comp,ballot_box ↦ safety_comp},toy_model ↦ toy_container}"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="m∈dom({safety_model ↦ {replicator ↦ safety_comp,ballot_box ↦ safety_comp},toy_model ↦ (∅ ⦂ (Component×Component))})">
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="toy_app∈Component"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="(∀m⦂Model·m∈dom(container_var))∧container_var∈Model ⇸ (Component × Component)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="Pat∈Pattern"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="Identity∩Shift=(∅ ⦂ (Link))"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·m∈dom(container_var)∧container_var∈Model ⇸ (Component × Component)"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="f_container_var={replicator ↦ safety_comp,ballot_box ↦ safety_comp}"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="Model={safety_model,toy_model}"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="m∈{safety_model,toy_model}">
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="∀m⦂Model·m∈dom(container_var)"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="safety_comp∈Component"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="¬ballot_box=safety_comp"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="toy_container=(∅ ⦂ (Component×Component))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="Transpose∩Identity=(∅ ⦂ (Link))"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="Link=TransposeIdentityShiftFirstRotate"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="safety_model≠toy_model"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="Port=IPortOPort"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ (Port))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="{safety_model ↦ {replicator ↦ safety_comp,ballot_box ↦ safety_comp},toy_model ↦ (∅ ⦂ (Component×Component))}∈Model ⇸ (Component × Component)"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="safety_model∈Model"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="Mdl∈Model Pattern"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="Identity∩Rotate=(∅ ⦂ (Link))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="¬replicator=safety_comp"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="¬Inst=Mdl"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="components_var={safety_model ↦ {replicator,ballot_box,safety_comp},toy_model ↦ {toy_app}}"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="safety_container={replicator ↦ safety_comp,ballot_box ↦ safety_comp}"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="¬safety_model=toy_model"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="container_var={safety_model ↦ {replicator ↦ safety_comp,ballot_box ↦ safety_comp},toy_model ↦ (∅ ⦂ (Component×Component))}"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="container_var={safety_model ↦ safety_container,toy_model ↦ toy_container}"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="toy_inp_2∈IPort"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="(∅ ⦂ (Component×Component))∈Component ⇸ Component"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="First∩Rotate=(∅ ⦂ (Link))"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="Identity∩First=(∅ ⦂ (Link))"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="toy_model∈Model"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="replicator≠ballot_box∧replicator≠safety_comp∧ballot_box≠safety_comp"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Inst≠Mdl"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="toy_inp_1∈IPort"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="partition(Port,IPort,OPort)"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="Shift∩First=(∅ ⦂ (Link))"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="replicator∈Component"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="LKind={Transpose,Identity,Shift,First,Rotate}"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="Transpose∩Shift=(∅ ⦂ (Link))"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="ballot_box∈Component"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="m∈dom(container_var)">
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="¬replicator=ballot_box"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="toy_output∈OPort"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="Inst∈Model Pattern"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="Shift∩Rotate=(∅ ⦂ (Link))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="Transpose∩First=(∅ ⦂ (Link))"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/>
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/>
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="f_acycl/THM" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22" org.eventb.core.prSets="Component,Model,Port">
<org.eventb.core.lang name="L"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="sl/ds" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="SELECT0" org.eventb.core.prHyps="p9,p21,p3,p16"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R1000"/>
<org.eventb.core.prString name=".config_id" org.eventb.core.prSValue="CVC3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="(Port)"/>
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/>
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="(Port)"/>
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/>
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="(Model)"/>
<org.eventb.core.prIdent name="ballot_box" org.eventb.core.type="Component"/>
<org.eventb.core.prIdent name="components_var" org.eventb.core.type="(Model×(Component))"/>
<org.eventb.core.prIdent name="container_var" org.eventb.core.type="(Model×(Component×Component))"/>
<org.eventb.core.prIdent name="f_container_var" org.eventb.core.type="(Component×Component)"/>
<org.eventb.core.prIdent name="replicator" org.eventb.core.type="Component"/>
<org.eventb.core.prIdent name="safety_comp" org.eventb.core.type="Component"/>
<org.eventb.core.prIdent name="safety_container" org.eventb.core.type="(Component×Component)"/>
<org.eventb.core.prIdent name="safety_model" org.eventb.core.type="Model"/>
<org.eventb.core.prIdent name="toy_app" org.eventb.core.type="Component"/>
<org.eventb.core.prIdent name="toy_container" org.eventb.core.type="(Component×Component)"/>
<org.eventb.core.prIdent name="toy_inp_1" org.eventb.core.type="Port"/>
<org.eventb.core.prIdent name="toy_inp_2" org.eventb.core.type="Port"/>
<org.eventb.core.prIdent name="toy_model" org.eventb.core.type="Model"/>
<org.eventb.core.prIdent name="toy_output" org.eventb.core.type="Port"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="toy_container∈Component ⇸ Component"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="toy_model∈Model"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pattern⊆Model"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="safety_comp∈Component"/>
<org.eventb.core.prPred name="p0" 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.prPred name="p5" org.eventb.core.predicate="replicator≠ballot_box∧replicator≠safety_comp∧ballot_box≠safety_comp"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="toy_inp_1∈IPort"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="components_var={safety_model ↦ {replicator,ballot_box,safety_comp},toy_model ↦ {toy_app}}"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="safety_container={replicator ↦ safety_comp,ballot_box ↦ safety_comp}"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(Port,IPort,OPort)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="replicator∈Component"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="toy_app∈Component"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="toy_container=(∅ ⦂ (Component×Component))"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="container_var={safety_model ↦ safety_container,toy_model ↦ toy_container}"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="toy_inp_2∈IPort"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="ballot_box∈Component"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="Pat∈Pattern"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="safety_model≠toy_model"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="safety_model∈Model"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="toy_output∈OPort"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="f_container_var={replicator ↦ safety_comp,ballot_box ↦ safety_comp}"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Mdl∈Model Pattern"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="Model={safety_model,toy_model}"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.mngHyp"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="c_multiplicity_assign&#10;/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28" org.eventb.core.prSets="Component,Model,Port">
<org.eventb.core.lang name="L"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="sl/ds" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="SELECT0" org.eventb.core.prHyps="p2,p27,p9,p28,p16,p18"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC4" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p19,p21,p14,p15,p5,p1,p20,p24,p13,p23,p12,p6,p17,p8,p25,p4,p7,p11,p3,p26,p22,p10,p2,p27,p9,p28,p16,p18">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R1000"/>
<org.eventb.core.prString name=".config_id" org.eventb.core.prSValue="CVC4"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="(Port)"/>
<org.eventb.core.prIdent name="Inst" org.eventb.core.type="Model"/>
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/>
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="(Port)"/>
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/>
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="(Model)"/>
<org.eventb.core.prIdent name="ballot_box" org.eventb.core.type="Component"/>
<org.eventb.core.prIdent name="c_mult_others_par" org.eventb.core.type="(Component×)"/>
<org.eventb.core.prIdent name="c_multiplicity_var" org.eventb.core.type="(Model×(Component×))"/>
<org.eventb.core.prIdent name="components_var" org.eventb.core.type="(Model×(Component))"/>
<org.eventb.core.prIdent name="container_var" org.eventb.core.type="(Model×(Component×Component))"/>
<org.eventb.core.prIdent name="f_container_var" org.eventb.core.type="(Component×Component)"/>
<org.eventb.core.prIdent name="inst_components_par" org.eventb.core.type="(Component×Component)"/>
<org.eventb.core.prIdent name="replicator" org.eventb.core.type="Component"/>
<org.eventb.core.prIdent name="safety_comp" org.eventb.core.type="Component"/>
<org.eventb.core.prIdent name="safety_container" org.eventb.core.type="(Component×Component)"/>
<org.eventb.core.prIdent name="safety_model" org.eventb.core.type="Model"/>
<org.eventb.core.prIdent name="toy_app" org.eventb.core.type="Component"/>
<org.eventb.core.prIdent name="toy_container" org.eventb.core.type="(Component×Component)"/>
<org.eventb.core.prIdent name="toy_inp_1" org.eventb.core.type="Port"/>
<org.eventb.core.prIdent name="toy_inp_2" org.eventb.core.type="Port"/>
<org.eventb.core.prIdent name="toy_model" org.eventb.core.type="Model"/>
<org.eventb.core.prIdent name="toy_output" org.eventb.core.type="Port"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="toy_container∈Component ⇸ Component"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Pattern⊆Model"/>
<org.eventb.core.prPred name="p3" 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.prPred name="p4" org.eventb.core.predicate="components_var={safety_model ↦ {replicator,ballot_box,safety_comp},toy_model ↦ {toy_app}}"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="safety_container={replicator ↦ safety_comp,ballot_box ↦ safety_comp}"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="toy_app∈Component"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="container_var={safety_model ↦ safety_container,toy_model ↦ toy_container}"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="toy_inp_2∈IPort"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="Pat∈Pattern"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="c_multiplicity_var={safety_model ↦ {safety_comp ↦ 1,replicator ↦ 3,ballot_box ↦ 1}}"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="f_container_var={replicator ↦ safety_comp,ballot_box ↦ safety_comp}"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Model={safety_model,toy_model}"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="toy_model∈Model"/>
<org.eventb.core.prPred name="p0" 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.prPred name="p14" org.eventb.core.predicate="safety_comp∈Component"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="replicator≠ballot_box∧replicator≠safety_comp∧ballot_box≠safety_comp"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="Inst≠Mdl"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="toy_inp_1∈IPort"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="partition(Port,IPort,OPort)"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="replicator∈Component"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="toy_container=(∅ ⦂ (Component×Component))"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="ballot_box∈Component"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="c_mult_others_par={replicator ↦ 3,ballot_box ↦ 1}"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="safety_model≠toy_model"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="safety_model∈Model"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="toy_output∈OPort"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="inst_components_par={safety_comp ↦ toy_app}"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="Mdl∈Model Pattern"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="Inst∈Model Pattern"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.mngHyp"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="c_multiplicity_assign&#10;/THM" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prHyps="p0,p1,p2,p3,p4,p5,p6" org.eventb.core.prSets="Component,Model">
<org.eventb.core.lang name="L"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="sl/ds" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="SELECT0" org.eventb.core.prHyps="p7,p4,p0,p5,p2,p8,p9,p10,p11"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Z3" org.eventb.core.prHyps="p0,p1,p2,p3,p4,p5,p6">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R1000"/>
<org.eventb.core.prString name=".config_id" org.eventb.core.prSValue="Z3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="Inst" org.eventb.core.type="Model"/>
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/>
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/>
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="(Model)"/>
<org.eventb.core.prIdent name="ballot_box" org.eventb.core.type="Component"/>
<org.eventb.core.prIdent name="replicator" org.eventb.core.type="Component"/>
<org.eventb.core.prIdent name="safety_comp" org.eventb.core.type="Component"/>
<org.eventb.core.prIdent name="safety_container" org.eventb.core.type="(Component×Component)"/>
<org.eventb.core.prIdent name="safety_model" org.eventb.core.type="Model"/>
<org.eventb.core.prIdent name="toy_model" org.eventb.core.type="Model"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈Pattern"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="Pattern⊆Model"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="replicator≠ballot_box∧replicator≠safety_comp∧ballot_box≠safety_comp"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Inst≠Mdl"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="c_multiplicity_var∈Model ⇸ (Component × )">
<org.eventb.core.prIdent name="c_multiplicity_var" org.eventb.core.type="(Model×(Component×))"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="safety_container={replicator ↦ safety_comp,ballot_box ↦ safety_comp}"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="partition(Port,IPort,OPort)">
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="(Port)"/>
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="(Port)"/>
<org.eventb.core.prIdent name="Port" org.eventb.core.type="(Port)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Mdl∈Model Pattern"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Inst∈Model Pattern"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Model={safety_model,toy_model}"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀pc⦂Component·pc∈dom(inst_components_par)⇒finite(inst_components_par[{pc}])">
<org.eventb.core.prIdent name="inst_components_par" org.eventb.core.type="(Component×Component)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="safety_model∈dom(c_multiplicity_var)">
<org.eventb.core.prIdent name="c_multiplicity_var" org.eventb.core.type="(Model×(Component×))"/>
</org.eventb.core.prPred>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.mngHyp"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="to_unfold_c_var&#10;/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prHyps="p0,p1,p2,p3,p4,p5,p6" org.eventb.core.prSets="Component,Model">
<org.eventb.core.lang name="L"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="sl/ds" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="SELECT0" org.eventb.core.prHyps="p7,p4,p0,p5,p2,p8,p9,p10,p11"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Z3" org.eventb.core.prHyps="p0,p1,p2,p3,p4,p5,p6">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R1000"/>
<org.eventb.core.prString name=".config_id" org.eventb.core.prSValue="Z3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="Inst" org.eventb.core.type="Model"/>
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/>
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/>
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="(Model)"/>
<org.eventb.core.prIdent name="ballot_box" org.eventb.core.type="Component"/>
<org.eventb.core.prIdent name="replicator" org.eventb.core.type="Component"/>
<org.eventb.core.prIdent name="safety_comp" org.eventb.core.type="Component"/>
<org.eventb.core.prIdent name="safety_container" org.eventb.core.type="(Component×Component)"/>
<org.eventb.core.prIdent name="safety_model" org.eventb.core.type="Model"/>
<org.eventb.core.prIdent name="toy_model" org.eventb.core.type="Model"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈Pattern"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="Pattern⊆Model"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="replicator≠ballot_box∧replicator≠safety_comp∧ballot_box≠safety_comp"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Inst≠Mdl"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="c_multiplicity_var∈Model ⇸ (Component × )">
<org.eventb.core.prIdent name="c_multiplicity_var" org.eventb.core.type="(Model×(Component×))"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="safety_container={replicator ↦ safety_comp,ballot_box ↦ safety_comp}"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="partition(Port,IPort,OPort)">
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="(Port)"/>
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="(Port)"/>
<org.eventb.core.prIdent name="Port" org.eventb.core.type="(Port)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Mdl∈Model Pattern"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Inst∈Model Pattern"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Model={safety_model,toy_model}"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀pc⦂Component·pc∈dom(inst_components_par)⇒finite(inst_components_par[{pc}])">
<org.eventb.core.prIdent name="inst_components_par" org.eventb.core.type="(Component×Component)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="safety_model∈dom(c_multiplicity_var)">
<org.eventb.core.prIdent name="c_multiplicity_var" org.eventb.core.type="(Model×(Component×))"/>
</org.eventb.core.prPred>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.mngHyp"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="to_unfold_c_var&#10;/THM" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37" org.eventb.core.prSets="Component,Model,Port">
<org.eventb.core.lang name="L"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="sl/ds" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="SELECT0" org.eventb.core.prHyps="p3,p36,p14,p37,p23,p26,p18,p25,p11,p22,p6,p10,p7"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p27,p30,p20,p21,p8,p1,p29,p33,p19,p32,p17,p9,p24,p13,p34,p5,p12,p16,p4,p35,p31,p15,p2,p28,p3,p36,p14,p37,p23,p26,p18,p25,p11,p22,p6,p10,p7">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R1000"/>
<org.eventb.core.prString name=".config_id" org.eventb.core.prSValue="CVC3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="(Port)"/>
<org.eventb.core.prIdent name="Inst" org.eventb.core.type="Model"/>
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/>
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="(Port)"/>
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/>
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="(Model)"/>
<org.eventb.core.prIdent name="ballot_box" org.eventb.core.type="Component"/>
<org.eventb.core.prIdent name="c_mult_others_par" org.eventb.core.type="(Component×)"/>
<org.eventb.core.prIdent name="c_multiplicity_var" org.eventb.core.type="(Model×(Component×))"/>
<org.eventb.core.prIdent name="components_var" org.eventb.core.type="(Model×(Component))"/>
<org.eventb.core.prIdent name="container_var" org.eventb.core.type="(Model×(Component×Component))"/>
<org.eventb.core.prIdent name="f_container_var" org.eventb.core.type="(Component×Component)"/>
<org.eventb.core.prIdent name="inst_components_par" org.eventb.core.type="(Component×Component)"/>
<org.eventb.core.prIdent name="replicator" org.eventb.core.type="Component"/>
<org.eventb.core.prIdent name="safety_comp" org.eventb.core.type="Component"/>
<org.eventb.core.prIdent name="safety_container" org.eventb.core.type="(Component×Component)"/>
<org.eventb.core.prIdent name="safety_model" org.eventb.core.type="Model"/>
<org.eventb.core.prIdent name="to_unfold_c_var" org.eventb.core.type="(Component)"/>
<org.eventb.core.prIdent name="toy_app" org.eventb.core.type="Component"/>
<org.eventb.core.prIdent name="toy_container" org.eventb.core.type="(Component×Component)"/>
<org.eventb.core.prIdent name="toy_inp_1" org.eventb.core.type="Port"/>
<org.eventb.core.prIdent name="toy_inp_2" org.eventb.core.type="Port"/>
<org.eventb.core.prIdent name="toy_model" org.eventb.core.type="Model"/>
<org.eventb.core.prIdent name="toy_output" org.eventb.core.type="Port"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="toy_container∈Component ⇸ Component"/>
<org.eventb.core.prPred name="p2" 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.prPred name="p3" org.eventb.core.predicate="Pattern⊆Model"/>
<org.eventb.core.prPred name="p4" 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.prPred name="p5" org.eventb.core.predicate="components_var={safety_model ↦ {replicator,ballot_box,safety_comp},toy_model ↦ {toy_app}}"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="components_var∈Model ⇸ (Component)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="container_var∈Model ⇸ (Component × Component)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="safety_container={replicator ↦ safety_comp,ballot_box ↦ safety_comp}"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="toy_app∈Component"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="safety_model∈dom(container_var)"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀pc⦂Component·pc∈dom(inst_components_par)⇒finite(inst_components_par[{pc}])"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="container_var={safety_model ↦ safety_container,toy_model ↦ toy_container}"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="toy_inp_2∈IPort"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="Pat∈Pattern"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="c_multiplicity_var={safety_model ↦ {safety_comp ↦ 1,replicator ↦ 3,ballot_box ↦ 1}}"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="f_container_var={replicator ↦ safety_comp,ballot_box ↦ safety_comp}"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="Model={safety_model,toy_model}"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="safety_model∈dom(c_multiplicity_var)"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="toy_model∈Model"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="safety_comp∈Component"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="replicator≠ballot_box∧replicator≠safety_comp∧ballot_box≠safety_comp"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="safety_model∈dom(components_var)"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="Inst≠Mdl"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="toy_inp_1∈IPort"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="c_multiplicity_var∈Model ⇸ (Component × )"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="partition(Port,IPort,OPort)"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="replicator∈Component"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="to_unfold_c_var={safety_comp}"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="toy_container=(∅ ⦂ (Component×Component))"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="ballot_box∈Component"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="c_mult_others_par={replicator ↦ 3,ballot_box ↦ 1}"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="safety_model≠toy_model"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="to_unfold_c_var=components_var(safety_model) dom(container_var(safety_model))"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="safety_model∈Model"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="toy_output∈OPort"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="inst_components_par={safety_comp ↦ toy_app}"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="Mdl∈Model Pattern"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="Inst∈Model Pattern"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.mngHyp"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/>
</org.eventb.core.prProof>
</org.eventb.core.prFile>

View File

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

36
Event-B/pseim/preuves.txt Normal file
View File

@@ -0,0 +1,36 @@
L1: new_components;f0 = {}
L2: f0;new_components~ = {}
∀ m ·
∃ f ·
f∈components(m) ↔ components(m) ∧
container(m)⊆f ∧ f;f⊆f ∧
id∩f=∅
instancier pour Mdl et Inst
Montrer les deux lemmes (L1, L2)
Faire deux cas en fonction des valeurs de Mdl (dc m = Mdl)
Magic (SMT)
instancier exist avec acycl
acycl: (new_components;f;inst_components;f0) (new_components;f;(new_components inst_components)) f0
faire apparaitre les cas (Magic SMT)
distribuer les unions à gauche de l'inclusion
faire les rewrite L1 L2
Auto ????? Magic ...
====================
pour unfold_node acyclic
((ran(new_c) × {dest});f) (ran(new_c) × {dest}) f
============================================
apply_pattern_link_oo:
ajouter XXX;(inst_comp \/ new_com); (inst_comp\/new_comp)~= XXX

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<context:Context xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:context="http://emf.eventb.org/models/core/context/2014" name="cComponent">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="configuration" value="org.eventb.core.fwd;de.prob.symbolic.ctxBase;de.prob.units.mchBase"/>
<details key="name" value="cComponent"/>
</annotations>
<annotations source="http:///org/eventb/core/RodinReferenceNamesAnnotations">
<details key="extends cModel" value="_IT7_UPqUEeectLZKwQfI0A"/>
</annotations>
<attributes key="org.eventb.texttools.text_lastmodified">
<value type="Long" value="ACED00057372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B020000787000000162677D4428"/>
</attributes>
<attributes key="org.eventb.texttools.text_representation">
<value type="String" value="ACED0005740036636F6E746578742063436F6D706F6E656E7420657874656E647320634D6F64656C0A0A7365747320436F6D706F6E656E740A656E640A"/>
</attributes>
<extends href="../cModel.buc#http://emf.eventb.org/models/core/context/2014::Context::cModel"/>
<sets name="Component">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_IT7_UfqUEeectLZKwQfI0A"/>
<details key="identifier" value="Component"/>
</annotations>
</sets>
</context:Context>

View File

@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<context:Context xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:context="http://emf.eventb.org/models/core/context/2014" name="cLink">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="configuration" value="org.eventb.core.fwd;de.prob.symbolic.ctxBase;de.prob.units.mchBase;org.eventb.codegen.ui.cgConfig"/>
<details key="name" value="cLink"/>
</annotations>
<annotations source="http:///org/eventb/core/RodinReferenceNamesAnnotations">
<details key="extends cPort" value="'"/>
</annotations>
<attributes key="org.eventb.texttools.text_lastmodified">
<value type="Long" value="ACED00057372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B020000787000000160FA6BAD63"/>
</attributes>
<attributes key="org.eventb.texttools.text_representation">
<value type="String" value="ACED00057400EA636F6E7465787420634C696E6B20657874656E64732063506F72740A73657473204C696E6B0A636F6E7374616E74730A094C4B696E64205472616E73706F7365204964656E7469747920536869667420466972737420526F746174650A0A6178696F6D730A09406C696E6B5F6B20706172746974696F6E284C696E6B2C205472616E73706F73652C204964656E746974792C2053686966742C2046697273742C20526F74617465290A09404C4B696E64204C4B696E64203D207B5472616E73706F73652C204964656E746974792C2053686966742C2046697273742C20526F746174657D0A0A656E640A"/>
</attributes>
<extends href="../cPort.buc#http://emf.eventb.org/models/core/context/2014::Context::cPort"/>
<sets name="Link">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_IabHcPoIEeeOzddrJxUeNA"/>
<details key="identifier" value="Link"/>
</annotations>
</sets>
<constants name="LKind">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_u1ZfsPgzEeeeS5KQUtrGlw"/>
<details key="identifier" value="LKind"/>
</annotations>
</constants>
<constants name="Transpose">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_WzjhMPg8EeeeS5KQUtrGlw"/>
<details key="identifier" value="Transpose"/>
</annotations>
</constants>
<constants name="Identity">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_WzjhMfg8EeeeS5KQUtrGlw"/>
<details key="identifier" value="Identity"/>
</annotations>
</constants>
<constants name="Shift">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_WzjhMvg8EeeeS5KQUtrGlw"/>
<details key="identifier" value="Shift"/>
</annotations>
</constants>
<constants name="First">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_WzjhM_g8EeeeS5KQUtrGlw"/>
<details key="identifier" value="First"/>
</annotations>
</constants>
<constants name="Rotate">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_WzjhNPg8EeeeS5KQUtrGlw"/>
<details key="identifier" value="Rotate"/>
</annotations>
</constants>
<axioms name="link_k" predicate="partition(Link, Transpose, Identity, Shift, First, Rotate)">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_u1ZfsfgzEeeeS5KQUtrGlw"/>
<details key="label" value="link_k"/>
</annotations>
</axioms>
<axioms name="LKind" predicate="LKind = {Transpose, Identity, Shift, First, Rotate}">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_u1ZfsvgzEeeeS5KQUtrGlw"/>
<details key="label" value="LKind"/>
</annotations>
</axioms>
</context:Context>

View File

@@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8"?>
<context:Context xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:context="http://emf.eventb.org/models/core/context/2014" name="cModel">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="configuration" value="org.eventb.core.fwd;de.prob.symbolic.ctxBase;de.prob.units.mchBase"/>
<details key="name" value="cModel"/>
</annotations>
<attributes key="org.eventb.texttools.text_lastmodified">
<value type="Long" value="ACED00057372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B020000787000000161429C4912"/>
</attributes>
<attributes key="org.eventb.texttools.text_representation">
<value type="String" value="ACED00057400ED636F6E7465787420634D6F64656C0A0A73657473204D6F64656C2050726F70657274790A0A636F6E7374616E7473204D646C205061747465726E2050617420496E73740A0A6178696F6D730A2020405061747465726E5F7479205061747465726E20E28A86204D6F64656C0A2020404D646C5F7479204D646C20E28888204D6F64656C20E28896205061747465726E0A2020405061745F74792050617420E28888205061747465726E0A202040496E73745F747920496E737420E28888204D6F64656C20E28896205061747465726E0A202040496E73745F4D646C20496E737420E289A0204D646C0A656E640A"/>
</attributes>
<sets name="Model">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_5dsj0PqTEeectLZKwQfI0A"/>
<details key="identifier" value="Model"/>
</annotations>
</sets>
<sets name="Property">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_9dBM4ADlEei-meqqkXX9bA"/>
<details key="identifier" value="Property"/>
</annotations>
</sets>
<constants name="Mdl">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_h20JYPqkEeectLZKwQfI0A"/>
<details key="identifier" value="Mdl"/>
</annotations>
</constants>
<constants name="Pattern">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_h20wcPqkEeectLZKwQfI0A"/>
<details key="identifier" value="Pattern"/>
</annotations>
</constants>
<constants name="Pat">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_b4aBsPraEeerIsS6OyYQ4w"/>
<details key="identifier" value="Pat"/>
</annotations>
</constants>
<constants name="Inst">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_fxjdEAKnEeiAPf1wPUl3Gw"/>
<details key="identifier" value="Inst"/>
</annotations>
</constants>
<axioms name="Pattern_ty" predicate="Pattern ⊆ Model">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_h20wcfqkEeectLZKwQfI0A"/>
<details key="label" value="Pattern_ty"/>
</annotations>
</axioms>
<axioms name="Mdl_ty" predicate="Mdl ∈ Model Pattern">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_h20wcvqkEeectLZKwQfI0A"/>
<details key="label" value="Mdl_ty"/>
</annotations>
</axioms>
<axioms name="Pat_ty" predicate="Pat ∈ Pattern">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_h20wc_qkEeectLZKwQfI0A"/>
<details key="label" value="Pat_ty"/>
</annotations>
</axioms>
<axioms name="Inst_ty" predicate="Inst ∈ Model Pattern">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_fxjdEQKnEeiAPf1wPUl3Gw"/>
<details key="label" value="Inst_ty"/>
</annotations>
</axioms>
<axioms name="Inst_Mdl" predicate="Inst ≠ Mdl">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_DGgrYAUMEei9ocE08JsPSw"/>
<details key="label" value="Inst_Mdl"/>
</annotations>
</axioms>
</context:Context>

View File

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<context:Context xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:context="http://emf.eventb.org/models/core/context/2014" name="cPort">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="configuration" value="org.eventb.core.fwd;de.prob.symbolic.ctxBase;de.prob.units.mchBase"/>
<details key="name" value="cPort"/>
</annotations>
<annotations source="http:///org/eventb/core/RodinReferenceNamesAnnotations">
<details key="extends cComponent" value="'"/>
</annotations>
<attributes key="org.eventb.texttools.text_lastmodified">
<value type="Long" value="ACED00057372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B020000787000000160FEC77876"/>
</attributes>
<attributes key="org.eventb.texttools.text_representation">
<value type="String" value="ACED0005740071636F6E746578742063506F727420657874656E64732063436F6D706F6E656E740A736574730A09506F72740A636F6E7374616E74730A0949506F7274204F506F72740A6178696F6D730A09407061727420706172746974696F6E28506F72742C49506F72742C4F506F7274290A656E640A"/>
</attributes>
<extends href="../cComponent.buc#http://emf.eventb.org/models/core/context/2014::Context::cComponent"/>
<sets name="Port">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_YwaNQPqeEeectLZKwQfI0A"/>
<details key="identifier" value="Port"/>
</annotations>
</sets>
<constants name="IPort">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_Y1LocPqyEeectLZKwQfI0A"/>
<details key="identifier" value="IPort"/>
</annotations>
</constants>
<constants name="OPort">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_Y1LocfqyEeectLZKwQfI0A"/>
<details key="identifier" value="OPort"/>
</annotations>
</constants>
<axioms name="part" predicate="partition(Port,IPort,OPort)">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_Y1LocvqyEeectLZKwQfI0A"/>
<details key="label" value="part"/>
</annotations>
</axioms>
</context:Context>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,160 @@
<?xml version="1.0" encoding="UTF-8"?>
<machine:Machine xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:machine="http://emf.eventb.org/models/core/machine/2014" name="mProperty">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="configuration" value="org.eventb.core.fwd;de.prob.units.mchBase"/>
<details key="name" value="mProperty"/>
</annotations>
<annotations source="http:///org/eventb/core/RodinReferenceNamesAnnotations">
<details key="refines mComponent" value="_0kfYMPqeEeectLZKwQfI0A"/>
<details key="sees cComponent" value="_Rf6I4ADlEei-meqqkXX9bA"/>
</annotations>
<attributes key="org.eventb.texttools.text_lastmodified">
<value type="Long" value="ACED00057372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B02000078700000016272303A26"/>
</attributes>
<attributes key="org.eventb.texttools.text_representation">
<value type="String" value="ACED00057403806D616368696E65206D50726F706572747920726566696E6573206D436F6D706F6E656E742020736565732063436F6D706F6E656E740A0A7661726961626C657320636F6D706F6E656E747320636F6E7461696E657220635F6D756C7469706C696369747920746F5F636C6F6E655F6320635F696E64657820746F5F756E666F6C645F6320746F5F756E666F6C645F635F696E206350726F7065727469657320696E7374327061745F630A0A696E76617269616E74730A20204070726F70206350726F7065727469657320E2888820436F6D706F6E656E7420E286942050726F70657274790A0A6576656E74730A20206576656E7420696E7374616E63696174655F7061747465726E20657874656E647320696E7374616E63696174655F7061747465726E0A2020656E640A0A20206576656E7420756E666F6C645F726F6F745F6320657874656E647320756E666F6C645F726F6F745F630A202020207468656E0A2020202020204070726F70206350726F7065727469657320E28994206350726F7065727469657320E288AA202872616E286E65775F6329C3976350726F706572746965735B7B637D5D290A2020656E640A0A20206576656E7420636C6F6E655F6320657874656E647320636C6F6E655F630A2020656E640A0A20206576656E7420756E666F6C645F6E6F64655F6320657874656E647320756E666F6C645F6E6F64655F630A202020207468656E0A2020202020204070726F70206350726F7065727469657320E28994206350726F7065727469657320E288AA202872616E286E65775F6329C3976350726F706572746965735B7B637D5D290A2020656E640A0A20206576656E74206170706C795F7061747465726E20657874656E6473206170706C795F7061747465726E0A20202020616E7920696E73745F70726F70730A2020202077686572650A20202020202040696E73745F70726F7020696E73745F70726F707320E288882050726F706572747920E287B82050726F7065727479202F2F207061747465726E2070726F7065727469657320746F206D6F64656C2070726F706572746965730A202020207468656E0A2020202020204070726F70206350726F7065727469657320E28994206350726F7065727469657320E288AA20202828696E73745F636F6D706F6E656E747320E288AA206E65775F636F6D706F6E656E747329E288BC3B6350726F70657274696573290A2020656E640A656E640A"/>
</attributes>
<refines href="../mComponent.bum#http://emf.eventb.org/models/core/machine/2014::Machine::mComponent"/>
<sees href="../cComponent.buc#http://emf.eventb.org/models/core/context/2014::Context::cComponent"/>
<variables name="components">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_0kf_QPqeEeectLZKwQfI0A"/>
<details key="identifier" value="components"/>
</annotations>
</variables>
<variables name="container">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_0kf_QfqeEeectLZKwQfI0A"/>
<details key="identifier" value="container"/>
</annotations>
</variables>
<variables name="c_multiplicity">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_0kf_QvqeEeectLZKwQfI0A"/>
<details key="identifier" value="c_multiplicity"/>
</annotations>
</variables>
<variables name="to_clone_c">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_0kf_Q_qeEeectLZKwQfI0A"/>
<details key="identifier" value="to_clone_c"/>
</annotations>
</variables>
<variables name="c_index">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_btIX4fqwEeectLZKwQfI0A"/>
<details key="identifier" value="c_index"/>
</annotations>
</variables>
<variables name="to_unfold_c">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_zYW3EPqwEeectLZKwQfI0A"/>
<details key="identifier" value="to_unfold_c"/>
</annotations>
</variables>
<variables name="to_unfold_c_in">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_ANiZwPqxEeectLZKwQfI0A"/>
<details key="identifier" value="to_unfold_c_in"/>
</annotations>
</variables>
<variables name="cProperties">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_JtPOYPqxEeectLZKwQfI0A"/>
<details key="identifier" value="cProperties"/>
</annotations>
</variables>
<variables name="inst2pat_c">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_gk8cUAK8EeiAPf1wPUl3Gw"/>
<details key="identifier" value="inst2pat_c"/>
</annotations>
</variables>
<invariants name="prop" predicate="cProperties ∈ Component ↔ Property">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_0kf_RPqeEeectLZKwQfI0A"/>
<details key="label" value="prop"/>
</annotations>
</invariants>
<events name="instanciate_pattern" extended="true">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="'"/>
<details key="label" value="instanciate_pattern"/>
</annotations>
<annotations source="http:///org/eventb/core/RodinReferenceNamesAnnotations">
<details key="refines instanciate_pattern" value="_btHw0PqwEeectLZKwQfI0A"/>
</annotations>
<refines href="../mComponent.bum#http://emf.eventb.org/models/core/machine/2014::Event::mComponent.instanciate_pattern"/>
</events>
<events name="unfold_root_c" extended="true">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_btIX4_qwEeectLZKwQfI0A"/>
<details key="label" value="unfold_root_c"/>
</annotations>
<annotations source="http:///org/eventb/core/RodinReferenceNamesAnnotations">
<details key="refines unfold_root_c" value="_bAhygAKxEeiAPf1wPUl3Gw"/>
</annotations>
<refines href="../mComponent.bum#http://emf.eventb.org/models/core/machine/2014::Event::mComponent.unfold_root_c"/>
<actions name="prop" action="cProperties ≔ cProperties (ran(new_c)×cProperties[{c}])">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_btIX4PqwEeectLZKwQfI0A"/>
<details key="label" value="prop"/>
</annotations>
</actions>
</events>
<events name="clone_c" extended="true">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_btJmBfqwEeectLZKwQfI0A"/>
<details key="label" value="clone_c"/>
</annotations>
<annotations source="http:///org/eventb/core/RodinReferenceNamesAnnotations">
<details key="refines clone_c" value="_SDieEP06Eees7pYemx4WBQ"/>
</annotations>
<refines href="../mComponent.bum#http://emf.eventb.org/models/core/machine/2014::Event::mComponent.clone_c"/>
</events>
<events name="unfold_node_c" extended="true">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_btKNEfqwEeectLZKwQfI0A"/>
<details key="label" value="unfold_node_c"/>
</annotations>
<annotations source="http:///org/eventb/core/RodinReferenceNamesAnnotations">
<details key="refines unfold_node_c" value="_bAhygQKxEeiAPf1wPUl3Gw"/>
</annotations>
<refines href="../mComponent.bum#http://emf.eventb.org/models/core/machine/2014::Event::mComponent.unfold_node_c"/>
<actions name="prop" action="cProperties ≔ cProperties (ran(new_c)×cProperties[{c}])">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_btJmA_qwEeectLZKwQfI0A"/>
<details key="label" value="prop"/>
</annotations>
</actions>
</events>
<events name="apply_pattern" extended="true">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_btKNGPqwEeectLZKwQfI0A"/>
<details key="label" value="apply_pattern"/>
</annotations>
<annotations source="http:///org/eventb/core/RodinReferenceNamesAnnotations">
<details key="refines apply_pattern" value="_Rf7XAQDlEei-meqqkXX9bA"/>
</annotations>
<refines href="../mComponent.bum#http://emf.eventb.org/models/core/machine/2014::Event::mComponent.apply_pattern"/>
<parameters name="inst_props">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_btHw0fqwEeectLZKwQfI0A"/>
<details key="identifier" value="inst_props"/>
</annotations>
</parameters>
<guards comment="pattern properties to model properties" name="inst_prop" predicate="inst_props ∈ Property ⇸ Property">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_btHw0_qwEeectLZKwQfI0A"/>
<details key="label" value="inst_prop"/>
<details key="comment" value="pattern properties to model properties"/>
</annotations>
</guards>
<actions name="prop" action="cProperties ≔ cProperties ((inst_components new_components);cProperties)">
<annotations source="http:///org/eventb/core/RodinInternalAnnotations">
<details key="name" value="_bAhyggKxEeiAPf1wPUl3Gw"/>
<details key="label" value="prop"/>
</annotations>
</actions>
</events>
</machine:Machine>

View File

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