|
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
|
|
<org.eventb.core.prFile version="1"> |
|
|
<org.eventb.core.prProof name="INITIALISATION/comp/INV" org.eventb.core.confidence="0" org.eventb.core.prFresh="" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p0" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p1"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p2"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p3"/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Mdl∈Model"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pat∈Model"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="¬Mdl=Pat"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Mdl≠Pat"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="comp_disj/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="m1,m2" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1" 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="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p4"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p2" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p3"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p5"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m1,m2)" org.eventb.core.prGoal="p4" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p6"> |
|
|
<org.eventb.core.prIdent name="m1" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p6" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p8" org.eventb.core.prHyps="p7"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p8" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p9"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p9" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p10"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p10" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p11" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1"/> |
|
|
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p12" org.eventb.core.prHyps="p1"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prGoal="p13"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p13" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p14"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p14" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p11" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1"/> |
|
|
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e0"/> |
|
|
</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.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒m1∈dom(components)∧components∈Model ⇸ ℙ(Component)∧m2∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒m1∈dom(components)∧components∈Model ⇸ ℙ(Component)∧m2∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="m2∈dom(components)"> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="m2∈Model"> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<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.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="¬m1=m2⇒m1∈dom(components)∧components∈Model ⇸ ℙ(Component)∧m2∈dom(components)"> |
|
|
<org.eventb.core.prIdent name="m1" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="¬m1=m2"> |
|
|
<org.eventb.core.prIdent name="m1" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="m1∈dom(components)"> |
|
|
<org.eventb.core.prIdent name="m1" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="m1∈Model"> |
|
|
<org.eventb.core.prIdent name="m1" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<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.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="m1∈dom(components)∧components∈Model ⇸ ℙ(Component)∧m2∈dom(components)"> |
|
|
<org.eventb.core.prIdent name="m1" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="Model"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.isFunGoal"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.totalDom:2"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.impI"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="cont/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="m" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1" 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="simplification rewrites" 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="p3"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p4"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p4" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p5"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p5" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p6"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p6" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p7"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p7" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p8"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p8" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p9"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p9" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1"/> |
|
|
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e0"/> |
|
|
</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="p10"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p10" org.eventb.core.prHyps="p1"/> |
|
|
</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.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="(∀m⦂Model·m∈dom(components))∧components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="m∈dom(components)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="m∈Model"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="∀m⦂Model·⊤⇒m∈dom(components)∧components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·m∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·m∈Model⇒m∈dom(components)∧components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="Model"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.isFunGoal"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.totalDom:2"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="INITIALISATION/comp_disj/INV" org.eventb.core.confidence="0" org.eventb.core.prFresh="m1,m2" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="" 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="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p3"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p1" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p2"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p4"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p5"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m1,m2)" org.eventb.core.prGoal="p3" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p6"> |
|
|
<org.eventb.core.prIdent name="m1" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p6" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p8" org.eventb.core.prHyps="p7"/> |
|
|
</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.prIdent name="components'" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Mdl∈Model"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Pat∈Model"> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="components'(m1)∩components'(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="m1" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components'(m1)∩components'(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="¬Mdl=Pat"> |
|
|
<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.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Mdl≠Pat"> |
|
|
<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.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components'(m1)∩components'(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="¬m1=m2"> |
|
|
<org.eventb.core.prIdent name="m1" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="¬m1=m2⇒components'(m1)∩components'(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="m1" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.impI"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="INITIALISATION/cont/INV" org.eventb.core.confidence="0" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="" 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="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p1"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p1" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p4"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p2" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p3"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p4" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p7"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p5,p6"/> |
|
|
</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.prIdent name="components'" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container'" org.eventb.core.type="ℙ(ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="∃m⦂Model·m∈Model∧components'(m) ⇸ components'(m)=container'"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="∀m⦂Model·⊤⇒m∈dom(components')∧components'∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂Model·m∈dom(components')"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="container'∈{m⦂Model·m∈Model ∣ components'(m) ⇸ components'(m)}"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="∀m⦂Model·m∈Model⇒m∈dom(components')∧components'∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="∃m⦂Model·⊤∧components'(m) ⇸ components'(m)=container'"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="components'∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∃m⦂Model·components'(m) ⇸ components'(m)=container'"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="cont_ctr/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="m" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2" 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="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p7"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p4"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p8"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p7" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p9"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p9" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p10"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p10" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p11" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p12" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1"/> |
|
|
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e0"/> |
|
|
</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="p13"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p13" org.eventb.core.prHyps="p1"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prGoal="p14"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p14" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p15"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p15" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p11" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p12" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1"/> |
|
|
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e0"/> |
|
|
</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="p16"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p16" org.eventb.core.prHyps="p2"/> |
|
|
</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.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="m∈dom(components)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<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.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="m∈Model"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m⦂Model·m∈dom(container)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·m∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)∧m∈dom(components)∧components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="(∀m⦂Model·m∈dom(container))∧container∈Model ⇸ ℙ(Component × Component)∧(∀m⦂Model·m∈dom(components))∧components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="m∈dom(container)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀m⦂Model·m∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<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.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="Model"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.isFunGoal"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.totalDom:2"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="INITIALISATION/cont_ty/INV" org.eventb.core.confidence="0" org.eventb.core.prFresh="" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p0" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p1"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p2"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p3"/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Mdl∈Model"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pat∈Model"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="¬Mdl=Pat"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Mdl≠Pat"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="INITIALISATION/cont_ctr/INV" org.eventb.core.confidence="0" org.eventb.core.prFresh="m" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p1" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p2"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p3"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p4"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p5"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</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.prIdent name="components'" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container'" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Mdl∈Model"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Pat∈Model"> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="container'(m)∈components'(m) ⇸ components'(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="¬Mdl=Pat"> |
|
|
<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.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Mdl≠Pat"> |
|
|
<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.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·container'(m)∈components'(m) ⇸ components'(m)"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="cm_ctr/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="m" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p4"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p7"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p8"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p8" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p10" org.eventb.core.prHyps="p9"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p10" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p11" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p9"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p9" org.eventb.core.prHyps="p9"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1"/> |
|
|
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p12" org.eventb.core.prHyps="p1"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prGoal="p13"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p13" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p14"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p14" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p15"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p15" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1"/> |
|
|
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="*" org.eventb.core.prGoal="p16"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p16" org.eventb.core.prHyps="p2"/> |
|
|
</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.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="m∈dom(components)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<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.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="m∈Model"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="m∈Pattern"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="m∈dom(c_multiplicity)∧c_multiplicity∈Model ⇸ ℙ(Component × ℤ)∧m∈dom(components)∧components∈Model ⇸ ℙ(Component)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="m∈dom(c_multiplicity)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒m∈dom(c_multiplicity)∧c_multiplicity∈Model ⇸ ℙ(Component × ℤ)∧m∈dom(components)∧components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<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.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="m∈Pattern⇒m∈dom(c_multiplicity)∧c_multiplicity∈Model ⇸ ℙ(Component × ℤ)∧m∈dom(components)∧components∈Model ⇸ ℙ(Component)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="Pattern"/> |
|
|
<org.eventb.core.prExpr name="e1" org.eventb.core.expression="Model"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.isFunGoal"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.totalDom:2"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
<org.eventb.core.prReas name="r8" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.hyp"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.impI"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="INITIALISATION/cm/INV" org.eventb.core.confidence="0" org.eventb.core.prFresh="" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p0" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p1"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p2"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p3"/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Mdl∈Model"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pat∈Model"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="¬Mdl=Pat"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Mdl≠Pat"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="INITIALISATION/cm_ctr/INV" org.eventb.core.confidence="0" org.eventb.core.prFresh="m" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p1" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p2"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p3"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p4"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p5"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</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.prIdent name="c_multiplicity'" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components'" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Mdl∈Model"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Pat∈Model"> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·c_multiplicity'(m)∈components'(m) ⇸ ℕ1"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="c_multiplicity'(m)∈components'(m) ⇸ ℕ1"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="¬Mdl=Pat"> |
|
|
<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.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Mdl≠Pat"> |
|
|
<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.prPred> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="acycl/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="f,m" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2" 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="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p7"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p4"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p8"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p7" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p9"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p9" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p10"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p10" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p11" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p12" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1"/> |
|
|
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e0"/> |
|
|
</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="p13"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p13" org.eventb.core.prHyps="p2"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prGoal="p14"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m,f)" org.eventb.core.prGoal="p14" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p15"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="f" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p15" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p17" org.eventb.core.prHyps="p16"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p17" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p18"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p18" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p11" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p12" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1"/> |
|
|
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p19"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p19" org.eventb.core.prHyps="p1"/> |
|
|
</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.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model,f⦂ℙ(Component×Component)·m∈dom(components)∧components∈Model ⇸ ℙ(Component)∧(f∈components(m) ↔ components(m)⇒m∈dom(container)∧container∈Model ⇸ ℙ(Component × Component))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="m∈dom(components)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="f∈components(m) ↔ components(m)⇒m∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)"> |
|
|
<org.eventb.core.prIdent name="f" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<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.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="m∈Model"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="m∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="(∀m⦂Model·m∈dom(components))∧components∈Model ⇸ ℙ(Component)∧(∀m⦂Model,f⦂ℙ(Component×Component)·f∈components(m) ↔ components(m)⇒m∈dom(container)∧container∈Model ⇸ ℙ(Component × Component))"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="m∈dom(container)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m⦂Model·m∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<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.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀m⦂Model,f⦂ℙ(Component×Component)·f∈components(m) ↔ components(m)⇒m∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="f∈components(m) ↔ components(m)"> |
|
|
<org.eventb.core.prIdent name="f" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="Model"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.isFunGoal"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.totalDom:2"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.impI"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="to_unfold_c/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2" 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="generalized MP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p3"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p3" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p8"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p5"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p6" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p7"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p8" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(components)∧components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<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.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<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.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/ic/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3" 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="generalized MP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p4"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p4" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p9"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p7" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p8"/> |
|
|
<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="p10"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p9" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p11" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p12" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1"/> |
|
|
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e0"/> |
|
|
</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.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<org.eventb.core.prIdent name="Inst" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="⊤∧⊤∧Mdl∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Mdl∈Model"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(components)∧components∈Model ⇸ ℙ(Component)∧Mdl∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<org.eventb.core.prIdent name="Inst" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="Mdl∈dom(components)"/> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="Model"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.totalDom:2"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/icr/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3" 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="generalized MP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p4"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p4" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p9"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p7" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p8"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p9" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<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="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="⊤∧⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<org.eventb.core.prIdent name="Inst" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<org.eventb.core.prIdent name="Inst" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Mdl∈dom(components)∧components∈Model ⇸ ℙ(Component)∧Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Mdl∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/mult/WD" org.eventb.core.confidence="0" org.eventb.core.prFresh="pc" 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" org.eventb.core.prSets="Component,Model" org.eventb.core.psManual="true"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p8,p15"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p18"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p18" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p21"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p12" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p19"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p14" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p20"/> |
|
|
<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="p22"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p23"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees pc)" org.eventb.core.prGoal="p21" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p24"> |
|
|
<org.eventb.core.prIdent name="pc" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p24" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p25"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p26" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p27"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps="p9"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p6"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p6" org.eventb.core.prHyps="p6"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1"/> |
|
|
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p28"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p9"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prGoal="p29"> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p29" org.eventb.core.prHyps="p6,p2,p7,p10,p4,p9,p11,p3,p15,p8,p5,p16,p13,p17,p1,p19,p20,p25"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="*" org.eventb.core.prGoal="p30"> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional image goal for c_multiplicity(Pat)" org.eventb.core.prGoal="p30" org.eventb.core.prHyps="p9"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p30" org.eventb.core.prHyps="p31"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p30" org.eventb.core.prHyps="p31"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="+" org.eventb.core.prGoal="p32"/> |
|
|
</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.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="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="inst_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="inst_components∼∈components(Mdl) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="∀pc⦂Component·⊤∧⊤∧(pc∈components(Pat)⇒Pat∈dom(c_multiplicity)∧c_multiplicity∈Model ⇸ ℙ(Component × ℤ)∧pc∈dom(c_multiplicity(Pat))∧c_multiplicity(Pat)∈Component ⇸ ℤ∧finite(inst_components[{pc}]))"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="pc∈components(Pat)"> |
|
|
<org.eventb.core.prIdent name="pc" org.eventb.core.type="Component"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="∀pc⦂Component·pc∈components(Pat)⇒Pat∈dom(c_multiplicity)∧c_multiplicity∈Model ⇸ ℙ(Component × ℤ)∧pc∈dom(c_multiplicity(Pat))∧c_multiplicity(Pat)∈Component ⇸ ℤ∧finite(inst_components[{pc}])"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ1)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="finite(inst_components[{pc}])"> |
|
|
<org.eventb.core.prIdent name="pc" org.eventb.core.type="Component"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="Mdl∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="Pat∈dom(c_multiplicity)∧c_multiplicity∈Model ⇸ ℙ(Component × ℤ)∧pc∈dom(c_multiplicity(Pat))∧c_multiplicity(Pat)∈Component ⇸ ℤ∧finite(inst_components[{pc}])"> |
|
|
<org.eventb.core.prIdent name="pc" org.eventb.core.type="Component"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="c_multiplicity(Pat)∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="¬Mdl=Pat"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="pc∈components(Pat)⇒Pat∈dom(c_multiplicity)∧c_multiplicity∈Model ⇸ ℙ(Component × ℤ)∧pc∈dom(c_multiplicity(Pat))∧c_multiplicity(Pat)∈Component ⇸ ℤ∧finite(inst_components[{pc}])"> |
|
|
<org.eventb.core.prIdent name="pc" org.eventb.core.type="Component"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="c_multiplicity(Pat)∈Component ⇸ ℕ1"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="pc∈dom(c_multiplicity(Pat))"> |
|
|
<org.eventb.core.prIdent name="pc" org.eventb.core.type="Component"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="Mdl∈Model"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ1"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀pc⦂Component·Pat∈dom(components)∧components∈Model ⇸ ℙ(Component)∧(pc∈components(Pat)⇒Pat∈dom(c_multiplicity)∧c_multiplicity∈Model ⇸ ℙ(Component × ℤ)∧pc∈dom(c_multiplicity(Pat))∧c_multiplicity(Pat)∈Component ⇸ ℤ∧finite(inst_components[{pc}]))"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Mdl≠Pat"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="inst_components∈components(Pat) ↔ components(Mdl)"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="Pattern"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r10" org.eventb.core.prRID="org.eventb.core.seqprover.funImgGoal"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.hyp"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.impI"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.totalDom:2"/> |
|
|
<org.eventb.core.prReas name="r9" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/> |
|
|
<org.eventb.core.prReas name="r8" org.eventb.core.prRID="org.eventb.core.seqprover.isFunGoal"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/to_unfold_c/INV" 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" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p21" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p37"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p38"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p39"/> |
|
|
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p40"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p33,p10,p36,p5,p8,p12,p3,p34,p20,p28,p4,p29,p17,p19,p9,p25,p6,p35,p1,p22,p15,p14,p7,p18,p27,p2,p30,p26,p11,p32,p16,p13,p24,p23,p31,p37"> |
|
|
<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.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="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_mult" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_mult_others" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="containers" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="container⊆containers"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀c⦂Component·c∈dom(to_unfold_c_in)⇒c_multiplicity(c)>0"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="components∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀s⦂Component,c⦂Component·s ↦ c∈container⇒containers∼[{s}]⊂containers∼[{c}]"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="c_multiplicity∈components[Pattern] → ℕ"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="inst_components∼∈components[{Mdl}] ⇸ components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="inst_components∈components[{Pat}] ↔ components[{Mdl}]"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="containers∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="ran(to_unfold_c_in)⊆dom(inst2pat_c)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="c_mult=c_mult_others{pc⦂Component·pc∈dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])}"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="c_mult_others∈components[{Pat}] ∖ dom(inst_components) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="(inst2pat_c;to_unfold_c_in)∩container=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="containers∈Component ↔ Component"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="components[{Pat}] ∖ dom(container)⊆({Inst} ⩤ components)[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="∀c⦂Component·finite(containers∼[{c}])"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="containers;containers⊆containers"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="∀c⦂Component·finite(to_unfold_c_in[{c}])"/> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="∀pc⦂Component·pc∈dom(inst_components)⇒finite(inst_components[{pc}])"/> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))"/> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="∀c⦂Component·finite(container∼[{c}])"/> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="Inst∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="¬Inst=Mdl"/> |
|
|
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/to_unfold_c/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" 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="p2,p3,p4,p6,p7,p8,p9,p24,p10,p11,p12,p13,p14,p15,p16,p17,p19,p20,p21,p22,p23"/> |
|
|
<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="p18,p1,p5,p2,p3,p4,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p19,p20,p21,p22,p23"> |
|
|
<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="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="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_mult_others" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="inst_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="inst_components∼∈components(Mdl) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(components)∧components∈Model ⇸ ℙ(Component)∧Pat∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="c_mult_others∈components(Pat) ∖ dom(inst_components) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="Mdl∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="inst_components∈components(Pat) ↔ components(Mdl)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<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="unfold_c/new_c_ty/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" 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="p1,p2,p4,p5,p6,p7,p8,p21,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20"/> |
|
|
<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="p3,p1,p2,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(c_multiplicity)∧c_multiplicity∈Model ⇸ ℙ(Component × ℤ)∧c∈dom(c_multiplicity(Pat))∧c_multiplicity(Pat)∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<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="unfold_c/to_unfold_c/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3" org.eventb.core.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="p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p2,p1,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Z3" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3"> |
|
|
<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="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="to_unfold_c ∖ {c}⊆(components{Pat ↦ components(Pat)∪ran(new_c)})(Pat)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Pat∈Pattern"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="c∈dom(c_multiplicity(Pat))"> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="Pat∈dom(components{Pat ↦ components(Pat)∪ran(new_c)})"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="c_multiplicity(Pat)∈Component ⇸ ℤ"> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="to_free_c⊆components(Pat)"> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="components{Pat ↦ components(Pat)∪ran(new_c)}∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<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="apply_pattern/p_WD/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" 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="p1,p2,p3,p4,p5,p6,p7,p20,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19"/> |
|
|
<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"> |
|
|
<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="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="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(c_multiplicity)∧c_multiplicity∈Model ⇸ ℙ(Component × ℤ)∧Pat∈dom(components)∧components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<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="apply_pattern/ic/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3" 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="generalized MP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p4"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p4" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p9"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p7" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p8"/> |
|
|
<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="p10"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p9" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p11" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p12" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1"/> |
|
|
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e0"/> |
|
|
</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.prIdent name="Inst" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Inst∈dom(components)∧components∈Model ⇸ ℙ(Component)∧Mdl∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="⊤∧⊤∧Mdl∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Mdl∈Model"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Inst∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="¬Inst=Mdl"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="Mdl∈dom(components)"/> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="Model"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.totalDom:2"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="apply_pattern/icr/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3" 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="generalized MP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p4"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p4" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p9"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p7" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p8"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p9" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<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="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="⊤∧⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="¬Mdl=Pat"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Mdl≠Pat"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Mdl∈dom(components)∧components∈Model ⇸ ℙ(Component)∧Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Mdl∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<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="apply_pattern/ps1/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3" 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="generalized MP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p2,p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p4"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p4" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p9"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p7" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p8"/> |
|
|
<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="p10"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p9" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p11" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p12" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1"/> |
|
|
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e0"/> |
|
|
</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.prIdent name="Inst" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Inst∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)∧Mdl∈dom(container)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="⊤∧⊤∧Mdl∈dom(container)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Mdl∈Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Inst∈dom(container)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="¬Inst=Mdl"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="Mdl∈dom(container)"/> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="Model"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.totalDom:2"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<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.genMPL3"/> |
|
|
<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="apply_pattern/ps2/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3" 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="generalized MP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p4"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p4" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p9"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p7" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p8"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p9" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</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="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="⊤∧⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Inst∈dom(container)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Mdl∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)∧Inst∈dom(container)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="¬Inst=Mdl"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Mdl∈dom(container)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<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="apply_pattern/nc/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2" 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="generalized MP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p3"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p3" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p8"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p5"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p6" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p7"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p8" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</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="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Inst∈dom(components)∧components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Inst∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="apply_pattern/comp/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6" org.eventb.core.prSets="Component,Model" org.eventb.core.psManual="true"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p7" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p8"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p9" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p10"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p11"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p12"/> |
|
|
<org.eventb.core.prRule name="r2" 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="DESELECT0" org.eventb.core.prHyps="p13,p14,p15,p16,p17"/> |
|
|
<org.eventb.core.prRule name="r2" 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="p6"/> |
|
|
<org.eventb.core.prRule name="r2" 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="p16"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p5,p1,p2,p3,p4,p6"> |
|
|
<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.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.prIdent name="Inst" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="inst_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="(container(Inst))[dom(inst_components)]⊆dom(inst_components)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="inst_components∼;container(Pat);inst_components⊆container(Mdl)"> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="(container(Mdl))∼;inst_components∼;container(Pat)⊆inst_components∼"> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="new_components∈components(Pat) ∖ dom(inst_components) ↣ Component ∖ union(ran(components))"> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="¬Mdl=Pat"> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="components{Mdl ↦ components(Mdl)∪ran(new_components)}∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Mdl∈Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="new_components∈components(Inst) ∖ dom(inst_components) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="dom(inst_components) ◁ container(Inst);inst_components⊆inst_components;container(Mdl)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="inst_components∈components(Inst) ⤔ components(Mdl)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="inst_components∈components(Pat) ⤔ components(Mdl)"> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="Mdl≠Pat"> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Mdl∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="(c_multiplicity(Pat))[components(Pat)]⊆{1}"> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.mngHyp"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="apply_pattern/cm_ctr/INV" 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,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p22" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p40"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p35" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p41"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p42"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p43"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p43" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p45" org.eventb.core.prHyps="p44"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p45" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p47" org.eventb.core.prHyps="p46"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m=Mdl" org.eventb.core.prGoal="p47" org.eventb.core.prHyps="p46"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p49"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p44" org.eventb.core.prInfHyps="p48"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p44"/> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p49" org.eventb.core.prHyps="p30,p8,p33,p5,p11,p26,p14,p36,p31,p21,p24,p15,p37,p12,p9,p16,p38,p27,p17,p1,p39,p34,p25,p7,p18,p2,p6,p23,p13,p10,p4,p32,p20,p28,p29,p19,p3,p40,p41,p44,p46,p48"> |
|
|
<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.prAnte name="(" org.eventb.core.prGoal="p51" org.eventb.core.prHyps="p50"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p51" org.eventb.core.prHyps="p5"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p52"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p52" org.eventb.core.prHyps="p24,p32,p28,p29,p3,p44,p50"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R500"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</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.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="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container(Pat)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="(container(Inst))[dom(inst_components)]⊆dom(inst_components)"/> |
|
|
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(inst2pat_c(c))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="to_clone_c∈components(Inst) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="to_clone_c⊆inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="Mdl∈dom(container)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="Mdl∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="c_multiplicity(m)∈(components{Mdl ↦ components(Mdl)∪ran(new_components)})(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="m∈Pattern"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="inst2pat_c;container(Pat)=container(Inst);inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="inst2pat_c∈components(Inst) → components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="dom(inst_components) ◁ container(Inst);inst_components⊆inst_components;container(Mdl)"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="∀m⦂Model·container(m)∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="inst_components∈components(Inst) ⤔ components(Mdl)"/> |
|
|
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="¬Inst=Mdl"/> |
|
|
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈(components{Mdl ↦ components(Mdl)∪ran(new_components)})(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="to_unfold_c∩ran(to_clone_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="to_unfold_c∩dom(container(Pat))=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="¬m=Mdl"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="Inst∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="Inst∈dom(container)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="to_unfold_c_in∈components(Pat) ↔ components(Inst)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container(Pat))"/> |
|
|
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="c_multiplicity(m)∈({Mdl} ⩤ components)(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="c_multiplicity(m)∈components(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="c_multiplicity(Mdl)∈components(Mdl)∪ran(new_components) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="Mdl∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="new_components∈components(Inst) ∖ dom(inst_components) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="m=Mdl"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="m∈Pattern⇒c_multiplicity(m)∈(components{Mdl ↦ components(Mdl)∪ran(new_components)})(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="c_multiplicity(m)∈components(Mdl)∪ran(new_components) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="Inst∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·f∈components(m) ↔ components(m)∧container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r8" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.impI"/> |
|
|
<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.funOvr:1"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="apply_pattern/comp_disj/INV" 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" 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="p2,p28,p10,p30,p19,p31,p7,p4,p20,p6,p18,p13,p24,p22,p8,p29,p14,p1,p23,p16,p15,p3,p5,p25,p11,p26"/> |
|
|
<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="p9,p27,p21,p12,p17,p2,p28,p10,p30,p19,p31,p7,p4,p20,p6,p18,p13,p24,p22,p8,p29,p14,p1,p23,p16,p15,p3,p5,p25,p11,p26"> |
|
|
<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="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="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_unfold_c∩ran(to_clone_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(components∪({Mdl} × ran(new_components)))∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="components∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="dom(inst_components) ◁ container;inst_components⊆inst_components;container"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="c_multiplicity∈components[Pattern] → ℕ"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="to_clone_c⊆inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="container[dom(inst_components)]⊆dom(inst_components)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="new_components∈components[{Inst}] ∖ dom(inst_components) ↣ Component ∖ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_clone_c∈components[{Inst}] ⇸ components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="inst_components∈components[{Inst}] ⤔ components[{Mdl}]"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="Inst∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<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="apply_pattern/cont_ty/INV" 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" 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="p11,p12,p13,p14,p15,p16,p17,p10,p18,p3,p19,p20,p21,p22,p23,p24,p5,p25,p26,p27,p1,p28,p29,p9,p30,p31"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Z3" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7,p8,p9,p10"> |
|
|
<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="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="to_unfold_c∩ran(to_clone_c)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="components∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="Pat∈Pattern"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="dom(inst_components) ◁ container;inst_components⊆inst_components;container"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="c_multiplicity∈components[Pattern] → ℕ"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="to_clone_c⊆inst2pat_c"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="container[dom(inst_components)]⊆dom(inst_components)"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="new_components∈components[{Inst}] ∖ dom(inst_components) ↣ Component ∖ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="to_clone_c∈components[{Inst}] ⇸ components[{Pat}]"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="container∪((inst_components∪new_components)∼;container;(inst_components∪new_components))∈ran(components∪({Mdl} × ran(new_components))) ⇸ ran(components∪({Mdl} × ran(new_components)))"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))"> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="inst_components∈components[{Inst}] ⤔ components[{Mdl}]"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="Inst∈Model ∖ Pattern"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<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="apply_pattern/cont_ctr/INV" 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" 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="p1,p2,p3,p4,p28,p29,p5,p6,p7,p8,p9,p11,p30,p12,p13,p15,p17,p31,p19,p20,p21,p22,p24,p25,p26,p27"/> |
|
|
<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,p23,p24,p25,p26,p27"> |
|
|
<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="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="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="to_unfold_c∩ran(to_clone_c)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="components∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="dom(inst_components) ◁ container;inst_components⊆inst_components;container"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="c_multiplicity∈components[Pattern] → ℕ"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="to_clone_c⊆inst2pat_c"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="container[dom(inst_components)]⊆dom(inst_components)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="new_components∈components[{Inst}] ∖ dom(inst_components) ↣ Component ∖ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="to_clone_c∈components[{Inst}] ⇸ components[{Pat}]"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="inst_components∈components[{Inst}] ⤔ components[{Mdl}]"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="Inst∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(components∪({Mdl} × ran(new_components)));(container∪((inst_components∪new_components)∼;container;(inst_components∪new_components)));(components∪({Mdl} × ran(new_components)))∼⊆(id ⦂ ℙ(Model×Model))"/> |
|
|
<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="apply_pattern/acycl/INV" org.eventb.core.confidence="0" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="" org.eventb.core.prSets="Component" org.eventb.core.psManual="true"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p1" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p2"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p4"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p5"/> |
|
|
<org.eventb.core.prRule name="r0" 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="p6"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p6" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p10"> |
|
|
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p7"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p8" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p9"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p10" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p9" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p11"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∃ hyp (∃f·container⊆f∧f;f⊆f∧id∩f=∅)" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p11" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p13,p14,p15"> |
|
|
<org.eventb.core.prIdent name="f" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prHypAction> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p13,p14,p15"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p16" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p17"/> |
|
|
</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.prRule> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container∪((inst_components∪new_components)∼;container;(inst_components∪new_components))⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="∀c⦂Component·¬c∈dom(container)∧¬c∈to_unfold_c⇒todo(c)=0"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="todo" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<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="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·container⊆f∧(inst_components∪new_components)∼;container;(inst_components∪new_components)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·⊤∧container⊆f∧(inst_components∪new_components)∼;container;(inst_components∪new_components)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="f;f⊆f"> |
|
|
<org.eventb.core.prIdent name="f" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="∀c⦂Component·c∉dom(container)∧c∉to_unfold_c⇒todo(c)=0"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="todo" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="container⊆f"> |
|
|
<org.eventb.core.prIdent name="f" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧(inst_components∪new_components)∼;container;(inst_components∪new_components)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·⊤∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<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="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="f" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="components∈Model ↔ Component"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.exF"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="apply_pattern/m/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2" 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="generalized MP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p3"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p3" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p8"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p5"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p6" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p7"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p8" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Mdl∈dom(components)∧components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<org.eventb.core.prIdent name="Inst" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<org.eventb.core.prIdent name="Inst" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Mdl∈dom(components)"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="apply_pattern/f/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3" 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="generalized MP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p4"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p4" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p9"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p7" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p8"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p9" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</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="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="⊤∧⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Inst∈dom(container)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Mdl∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)∧Inst∈dom(container)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="¬Inst=Mdl"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Mdl∈dom(container)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="to_clone_c/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3" 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="generalized MP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p4"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p4" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p9"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p7" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p8"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p9" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</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="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Inst∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="⊤∧⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Inst∈dom(components)∧components∈Model ⇸ ℙ(Component)∧Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<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="to_free_c/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" 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="p1,p13,p9,p17,p11"/> |
|
|
<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="p3,p10,p15,p8,p12,p7,p2,p5,p16,p4,p14,p6,p1,p13,p9,p17,p11"> |
|
|
<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="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="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(components)∧components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<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="apply_pattern/to_clone_c/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p6" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p7"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p8"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE2" org.eventb.core.prHidden="p10" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p11"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p11" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p12"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p3,p4,p5,p2,p1"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R500"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</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="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="container[dom(inst_components)]⊆dom(inst_components)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="to_clone_c∈components[{Inst}] ⇸ components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="new_components∈components[{Inst}] ∖ dom(inst_components) ↣ Component ∖ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="dom(inst_components) ◁ container;inst_components⊆inst_components;container"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·⊤∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="inst_components∈components[{Inst}] ⤔ components[{Mdl}]"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="to_clone_c∈(components∪({Mdl} × ran(new_components)))[{Inst}] ⇸ (components∪({Mdl} × ran(new_components)))[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="¬Inst=Mdl"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="apply_pattern/to_free_c/INV" 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" 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="p2,p3,p4,p5,p6,p7,p9,p10,p12,p14,p16,p17,p18,p19,p33,p21,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="CVC3" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p20,p11,p8,p1,p13,p15,p2,p3,p4,p5,p6,p7,p9,p10,p12,p14,p16,p17,p18,p19,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32"> |
|
|
<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="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="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="inst_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="inst_components∼;container(Pat);inst_components⊆container(Mdl)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="inst_components∈components(Pat) ⤔ components(Mdl)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="to_free_c⊆(components{Mdl ↦ components(Mdl)∪ran(new_components)})(Pat)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="components{Mdl ↦ components(Mdl)∪ran(new_components)}∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Mdl∈dom(container)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="(c_multiplicity(Pat))[components(Pat)]⊆{1}"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Mdl∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="(container(Mdl))∼;inst_components∼;container(Pat)⊆inst_components∼"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="new_components∈components(Pat) ∖ dom(inst_components) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="Pat∈dom(components{Mdl ↦ components(Mdl)∪ran(new_components)})"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<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="unfold_c/to_clone_c/INV" 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" 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="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p29"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p25" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p28"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p1,p2,p4,p5,p6,p7,p8,p9,p28,p10,p13,p14,p15,p16,p30,p17,p18,p19,p20,p21,p22,p23,p24,p26,p27"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p29" org.eventb.core.prHyps="p12,p11,p3,p1,p2,p4,p5,p6,p7,p8,p9,p28,p10,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p26,p27"> |
|
|
<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.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(Pat)(c) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="to_clone_c∪(ran(new_c) × {c})∈(components{Pat ↦ components(Pat)∪ran(new_c)})(Pat) ⇸ (components{Pat ↦ components(Pat)∪ran(new_c)})(Pat)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="c∈dom(c_multiplicity(Pat))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="Pat∈dom(components{Pat ↦ components(Pat)∪ran(new_c)})"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="c_multiplicity(Pat)∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="to_clone_c∪(ran(new_c) × {c})∈components(Pat)∪ran(new_c) ⇸ components(Pat)∪ran(new_c)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="components{Pat ↦ components(Pat)∪ran(new_c)}∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.mngHyp"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="clone_c/cloned_c_ty/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" 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="p1,p17,p11,p3,p13,p19,p12,p16,p9,p2,p5,p20,p21,p14,p4,p18,p6,p10,p7,p8"/> |
|
|
<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="p15,p1,p17,p11,p3,p13,p19,p12,p16,p9,p2,p5,p20,p21,p14,p4,p18,p6,p10,p7,p8"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)∧c∈dom(to_clone_c)∧to_clone_c∈Component ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="c∈dom(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<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="clone_c/comp/INV" 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" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p21" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p25"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p26"/> |
|
|
<org.eventb.core.prRule name="r2" 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="p18,p12,p14,p13,p17,p10,p2,p5,p22,p23,p15,p4,p19,p6,p11,p7,p8,p24,p20,p1,p25"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p3,p16,p9,p18,p12,p14,p13,p17,p10,p2,p5,p22,p23,p15,p4,p19,p6,p11,p7,p8,p24,p20,p1,p25"> |
|
|
<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.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="cloned_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="components{Pat ↦ components(Pat)∪ran(cloned_c)}∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="cloned_c∈(container(Pat))∼[{to_clone_c(c)}] ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_clone_c∈Component ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="c∈dom(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.mngHyp"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="clone_c/cm_ctr/INV" 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,p20,p21,p22,p23" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p20" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p24"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p25"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p26"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p26" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p27"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p28" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p30" org.eventb.core.prHyps="p29"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p30" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p31" org.eventb.core.prHyps="p29"> |
|
|
<org.eventb.core.prRule name="r5" 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="p1,p24,p2,p3,p4,p6,p7,p32,p9,p10,p11,p12,p13,p14,p15,p17,p18,p19,p21,p22,p23"/> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p31" org.eventb.core.prHyps="p5,p16,p8,p27,p29,p1,p24,p2,p3,p4,p6,p7,p9,p10,p11,p12,p13,p14,p15,p17,p18,p19,p21,p22,p23"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p34" org.eventb.core.prHyps="p33"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p34" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p35"> |
|
|
<org.eventb.core.prRule name="r5" 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="p1,p24,p2,p3,p4,p6,p7,p32,p9,p10,p11,p12,p13,p14,p15,p17,p18,p19,p21,p22,p23"/> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p35" org.eventb.core.prHyps="p5,p16,p8,p27,p29,p33,p1,p24,p2,p3,p4,p6,p7,p9,p10,p11,p12,p13,p14,p15,p17,p18,p19,p21,p22,p23"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p36" org.eventb.core.prHyps="p33"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p36" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p37" org.eventb.core.prHyps="p29"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p37" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p38"> |
|
|
<org.eventb.core.prRule name="r5" 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="p1,p24,p2,p3,p4,p6,p7,p32,p9,p10,p11,p12,p13,p14,p15,p17,p18,p19,p21,p22,p23"/> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p38" org.eventb.core.prHyps="p5,p16,p8,p27,p33,p29,p1,p24,p2,p3,p4,p6,p7,p9,p10,p11,p12,p13,p14,p15,p17,p18,p19,p21,p22,p23"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p39" org.eventb.core.prHyps="p33"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p39" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p40"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p40" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p41"> |
|
|
<org.eventb.core.prRule name="r5" 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="p1,p24,p2,p3,p4,p6,p7,p32,p9,p10,p11,p12,p13,p14,p15,p17,p18,p19,p21,p22,p23"/> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p41" org.eventb.core.prHyps="p5,p16,p8,p27,p33,p1,p24,p2,p3,p4,p6,p7,p9,p10,p11,p12,p13,p14,p15,p17,p18,p19,p21,p22,p23"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</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.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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="cloned_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="c_multiplicity(Pat)∪(cloned_c∼;c_multiplicity(Pat))∈({Pat} ⩤ components)(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="cloned_c∈(container(Pat))∼[{to_clone_c(c)}] ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒(c_multiplicity{Pat ↦ c_multiplicity(Pat)∪(cloned_c∼;c_multiplicity(Pat))})(m)∈(components{Pat ↦ components(Pat)∪ran(cloned_c)})(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="c_multiplicity(m)∈components(Pat)∪ran(cloned_c) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_clone_c∈Component ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="c_multiplicity(m)∈({Pat} ⩤ components)(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="m∈Pattern"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="(c_multiplicity{Pat ↦ c_multiplicity(Pat)∪(cloned_c∼;c_multiplicity(Pat))})(m)∈(components{Pat ↦ components(Pat)∪ran(cloned_c)})(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="c_multiplicity(Pat)∪(cloned_c∼;c_multiplicity(Pat))∈components(Pat)∪ran(cloned_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="m∈Pattern⇒(c_multiplicity{Pat ↦ c_multiplicity(Pat)∪(cloned_c∼;c_multiplicity(Pat))})(m)∈(components{Pat ↦ components(Pat)∪ran(cloned_c)})(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="({Pat} ⩤ c_multiplicity)(m)∈components(Pat)∪ran(cloned_c) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="c_multiplicity(m)∈components(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="({Pat} ⩤ c_multiplicity)(m)∈({Pat} ⩤ components)(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="c_multiplicity(Pat)∪(cloned_c∼;c_multiplicity(Pat))∈components(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="c∈dom(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="({Pat} ⩤ c_multiplicity)(m)∈(components{Pat ↦ components(Pat)∪ran(cloned_c)})(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="¬m=Pat"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="c_multiplicity(Pat)∪(cloned_c∼;c_multiplicity(Pat))∈(components{Pat ↦ components(Pat)∪ran(cloned_c)})(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="m=Pat"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.impI"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.funOvr:1"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.mngHyp"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="clone_c/comp_disj/INV" 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" 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="p1,p2,p3,p4,p5,p6,p7,p8,p25,p10,p11,p12,p13,p14,p15,p17,p18,p19,p21,p22,p23,p24"/> |
|
|
<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="p20,p16,p9,p1,p2,p3,p4,p5,p6,p7,p8,p10,p11,p12,p13,p14,p15,p17,p18,p19,p21,p22,p23,p24"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="cloned_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="cloned_c∈(container(Pat))∼[{to_clone_c(c)}] ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="to_clone_c∈Component ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒(components{Pat ↦ components(Pat)∪ran(cloned_c)})(m1)∩(components{Pat ↦ components(Pat)∪ran(cloned_c)})(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="c∈dom(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<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="clone_c/cont_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="ae" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7" org.eventb.core.prSets="Component,Model" org.eventb.core.psManual="true"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p8" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p9"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p10"/> |
|
|
<org.eventb.core.prRule name="r2" 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"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ hyp (inst Pat)" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p11" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prHyps="p12"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p3"/> |
|
|
<org.eventb.core.prRule name="r2" 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="p4"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (container(Pat)∪(ran(cloned_c) × {c})∈Component ⇸ Component)" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p13"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p13" org.eventb.core.prHyps="p5,p6"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p14"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p14" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p11" org.eventb.core.prHyps=""/> |
|
|
</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="p15" org.eventb.core.prHyps="p6,p5"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p15" org.eventb.core.prHyps="p1,p2,p7,p12,p4,p6,p5"> |
|
|
<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.prAnte name=")" org.eventb.core.prHyps="p6,p5,p15"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ae (container(Pat)∪(ran(cloned_c) × {c}))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p13"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p13" org.eventb.core.prHyps="p5,p6"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p14"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p14" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p11" org.eventb.core.prHyps=""/> |
|
|
</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.prHyps="p6,p5,p16"> |
|
|
<org.eventb.core.prIdent name="ae" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he with ae=container(Pat)∪(ran(cloned_c) × {c})" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p16"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p18"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p17"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p15"/> |
|
|
<org.eventb.core.prRule name="r2" 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="DESELECT0" org.eventb.core.prHyps="p16"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC4" org.eventb.core.prGoal="p18" org.eventb.core.prHyps="p1,p17"> |
|
|
<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.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".expr" org.eventb.core.prRef="e0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p15"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".exprs" org.eventb.core.prRef="e1"/> |
|
|
</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.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="cloned_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="ae∈Component ⇸ Component"> |
|
|
<org.eventb.core.prIdent name="ae" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="Pat∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="cloned_c∈(container(Pat))∼[{to_clone_c(c)}] ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="ae=container(Pat)∪(ran(cloned_c) × {c})"> |
|
|
<org.eventb.core.prIdent name="ae" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="container{Pat ↦ container(Pat)∪(ran(cloned_c) × {c})}∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="container(Pat)∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c∈dom(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="container(Pat)∪(ran(cloned_c) × {c})∈Component ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="container{Pat ↦ ae}∈Model → (Component ⇸ Component)"> |
|
|
<org.eventb.core.prIdent name="ae" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<org.eventb.core.prExpr name="e1" org.eventb.core.expression="Pat"/> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="container(Pat)∪(ran(cloned_c) × {c})"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.allD"/> |
|
|
<org.eventb.core.prReas name="r9" org.eventb.core.prRID="org.eventb.core.seqprover.he:1"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/> |
|
|
<org.eventb.core.prReas name="r8" org.eventb.core.prRID="org.eventb.core.seqprover.ae"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.mngHyp"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.cut"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="clone_c/cont_ctr/INV" 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,p20,p21,p22,p23" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p20" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p24"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p25"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p26"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p26" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p27"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p28" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p29" org.eventb.core.prHyps="p27"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p29" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p30" org.eventb.core.prHyps="p27"> |
|
|
<org.eventb.core.prRule name="r4" 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="p1,p24,p2,p3,p4,p5,p6,p7,p31,p9,p10,p11,p12,p13,p14,p17,p18,p19,p21,p22,p23"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p30" org.eventb.core.prHyps="p15,p16,p8,p27,p1,p24,p2,p3,p4,p5,p6,p7,p9,p10,p11,p12,p13,p14,p17,p18,p19,p21,p22,p23"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p33" org.eventb.core.prHyps="p32"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p33" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p34"> |
|
|
<org.eventb.core.prRule name="r4" 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="p1,p24,p2,p3,p4,p5,p6,p7,p31,p9,p10,p11,p12,p13,p14,p17,p18,p19,p21,p22,p23"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p34" org.eventb.core.prHyps="p15,p16,p8,p27,p32,p1,p24,p2,p3,p4,p5,p6,p7,p9,p10,p11,p12,p13,p14,p17,p18,p19,p21,p22,p23"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p35" org.eventb.core.prHyps="p32"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p35" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p36" org.eventb.core.prHyps="p27"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p36" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p37"> |
|
|
<org.eventb.core.prRule name="r4" 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="p1,p24,p2,p3,p4,p5,p6,p7,p31,p9,p10,p11,p12,p13,p14,p17,p18,p19,p21,p22,p23"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p37" org.eventb.core.prHyps="p15,p16,p8,p27,p32,p1,p24,p2,p3,p4,p5,p6,p7,p9,p10,p11,p12,p13,p14,p17,p18,p19,p21,p22,p23"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p38" org.eventb.core.prHyps="p32"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p38" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p39"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p39" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p40"> |
|
|
<org.eventb.core.prRule name="r4" 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="p1,p24,p2,p3,p4,p5,p6,p7,p31,p9,p10,p11,p12,p13,p14,p17,p18,p19,p21,p22,p23"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p40" org.eventb.core.prHyps="p15,p16,p8,p27,p32,p1,p24,p2,p3,p4,p5,p6,p7,p9,p10,p11,p12,p13,p14,p17,p18,p19,p21,p22,p23"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p41" org.eventb.core.prHyps="p32"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p41" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p42" org.eventb.core.prHyps="p27"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p42" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p43" org.eventb.core.prHyps="p27"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p43" org.eventb.core.prHyps="p12"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p44"> |
|
|
<org.eventb.core.prRule name="r4" 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="p1,p24,p2,p3,p4,p5,p6,p7,p31,p9,p10,p11,p12,p13,p14,p17,p18,p19,p21,p22,p23"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p44" org.eventb.core.prHyps="p15,p16,p8,p32,p27,p1,p24,p2,p3,p4,p5,p6,p7,p9,p10,p11,p12,p13,p14,p17,p18,p19,p21,p22,p23"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p45" org.eventb.core.prHyps="p32"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p45" org.eventb.core.prHyps="p12"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p46"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p46" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p47"> |
|
|
<org.eventb.core.prRule name="r4" 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="p1,p24,p2,p3,p4,p5,p6,p7,p31,p9,p10,p11,p12,p13,p14,p17,p18,p19,p21,p22,p23"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p47" org.eventb.core.prHyps="p15,p16,p8,p32,p27,p1,p24,p2,p3,p4,p5,p6,p7,p9,p10,p11,p12,p13,p14,p17,p18,p19,p21,p22,p23"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p48" org.eventb.core.prHyps="p32"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p48" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p49" org.eventb.core.prHyps="p27"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p49" org.eventb.core.prHyps="p12"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p50"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p50" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p51"> |
|
|
<org.eventb.core.prRule name="r4" 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="p1,p24,p2,p3,p4,p5,p6,p7,p31,p9,p10,p11,p12,p13,p14,p17,p18,p19,p21,p22,p23"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p51" org.eventb.core.prHyps="p15,p16,p8,p32,p27,p1,p24,p2,p3,p4,p5,p6,p7,p9,p10,p11,p12,p13,p14,p17,p18,p19,p21,p22,p23"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p52" org.eventb.core.prHyps="p32"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p52" org.eventb.core.prHyps="p12"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p53"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p53" org.eventb.core.prHyps="p3"> |
|
|
<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="Functional image simplification in goal" org.eventb.core.prGoal="p54" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p55"> |
|
|
<org.eventb.core.prRule name="r4" 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="p1,p24,p2,p3,p4,p5,p6,p7,p31,p9,p10,p11,p12,p13,p14,p17,p18,p19,p21,p22,p23"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p55" org.eventb.core.prHyps="p15,p16,p8,p32,p1,p24,p2,p3,p4,p5,p6,p7,p9,p10,p11,p12,p13,p14,p17,p18,p19,p21,p22,p23"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</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.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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="cloned_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="container(Pat)∪(ran(cloned_c) × {c})∈components(Pat)∪ran(cloned_c) ⇸ (components{Pat ↦ components(Pat)∪ran(cloned_c)})(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="container(Pat)∪(ran(cloned_c) × {c})∈({Pat} ⩤ components)(m) ⇸ components(Pat)∪ran(cloned_c)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="container(Pat)∪(ran(cloned_c) × {c})∈(components{Pat ↦ components(Pat)∪ran(cloned_c)})(m) ⇸ (components{Pat ↦ components(Pat)∪ran(cloned_c)})(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="({Pat} ⩤ container)(m)∈components(Pat)∪ran(cloned_c) ⇸ ({Pat} ⩤ components)(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="container(m)∈components(m) ⇸ ({Pat} ⩤ components)(m)"> |
|
|
<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="container(Pat)∪(ran(cloned_c) × {c})∈components(Pat)∪ran(cloned_c) ⇸ components(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="container(Pat)∪(ran(cloned_c) × {c})∈({Pat} ⩤ components)(m) ⇸ ({Pat} ⩤ components)(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="container(m)∈components(Pat)∪ran(cloned_c) ⇸ components(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·(container{Pat ↦ container(Pat)∪(ran(cloned_c) × {c})})(m)∈(components{Pat ↦ components(Pat)∪ran(cloned_c)})(m) ⇸ (components{Pat ↦ components(Pat)∪ran(cloned_c)})(m)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="container(Pat)∪(ran(cloned_c) × {c})∈components(Pat)∪ran(cloned_c) ⇸ ({Pat} ⩤ components)(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="c∈dom(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="container(Pat)∪(ran(cloned_c) × {c})∈components(m) ⇸ components(Pat)∪ran(cloned_c)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="container(m)∈components(Pat)∪ran(cloned_c) ⇸ components(Pat)∪ran(cloned_c)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="m=Pat"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="({Pat} ⩤ container)(m)∈({Pat} ⩤ components)(m) ⇸ ({Pat} ⩤ components)(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="({Pat} ⩤ container)(m)∈components(Pat)∪ran(cloned_c) ⇸ components(Pat)∪ran(cloned_c)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="container(m)∈({Pat} ⩤ components)(m) ⇸ components(Pat)∪ran(cloned_c)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="container(Pat)∪(ran(cloned_c) × {c})∈components(m) ⇸ components(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="cloned_c∈(container(Pat))∼[{to_clone_c(c)}] ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="container(Pat)∪(ran(cloned_c) × {c})∈({Pat} ⩤ components)(m) ⇸ (components{Pat ↦ components(Pat)∪ran(cloned_c)})(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_clone_c∈Component ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="container(Pat)∪(ran(cloned_c) × {c})∈components(Pat)∪ran(cloned_c) ⇸ components(Pat)∪ran(cloned_c)"/> |
|
|
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="container(m)∈({Pat} ⩤ components)(m) ⇸ ({Pat} ⩤ components)(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="({Pat} ⩤ container)(m)∈components(Pat)∪ran(cloned_c) ⇸ (components{Pat ↦ components(Pat)∪ran(cloned_c)})(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="container(m)∈components(Pat)∪ran(cloned_c) ⇸ ({Pat} ⩤ components)(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="({Pat} ⩤ container)(m)∈({Pat} ⩤ components)(m) ⇸ components(Pat)∪ran(cloned_c)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="container(m)∈components(m) ⇸ components(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="({Pat} ⩤ container)(m)∈(components{Pat ↦ components(Pat)∪ran(cloned_c)})(m) ⇸ (components{Pat ↦ components(Pat)∪ran(cloned_c)})(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="container(m)∈components(m) ⇸ components(Pat)∪ran(cloned_c)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="(container{Pat ↦ container(Pat)∪(ran(cloned_c) × {c})})(m)∈(components{Pat ↦ components(Pat)∪ran(cloned_c)})(m) ⇸ (components{Pat ↦ components(Pat)∪ran(cloned_c)})(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="container(Pat)∪(ran(cloned_c) × {c})∈components(m) ⇸ ({Pat} ⩤ components)(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="({Pat} ⩤ container)(m)∈({Pat} ⩤ components)(m) ⇸ (components{Pat ↦ components(Pat)∪ran(cloned_c)})(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="¬m=Pat"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.funOvr:1"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.mngHyp"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="clone_c/acycl/INV" org.eventb.core.confidence="0" org.eventb.core.prFresh="m" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p1" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p2"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p3"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p4"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p5"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</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.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="cloned_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="instanciation_started∈BOOL"> |
|
|
<org.eventb.core.prIdent name="instanciation_started" org.eventb.core.type="BOOL"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·(container{Pat ↦ container(Pat)∪(ran(cloned_c) × {c})})(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·(container{Pat ↦ container(Pat)∪(ran(cloned_c) × {c})})(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="clone_c/to_clone_c/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p4"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p5"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p6"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE2" org.eventb.core.prHidden="p7" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p8"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p8" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p9"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p2,p1"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R500"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</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="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="c∈dom(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·⊤∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="to_clone_c∈components[{Inst}] ⇸ components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="{c} ⩤ to_clone_c∈components[{Inst}] ⇸ components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="clone_c/to_free_c/INV" 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" 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="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p28"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p23" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p27"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p1,p8,p27,p9,p10,p2,p11,p12,p13,p14,p29,p16,p4,p17,p18,p5,p6,p7,p20,p21,p22,p24,p25,p26"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p15,p19,p3,p1,p8,p27,p9,p10,p2,p11,p12,p13,p14,p16,p4,p17,p18,p5,p6,p7,p20,p21,p22,p24,p25,p26"> |
|
|
<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.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="cloned_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="to_free_c⊆(components{Pat ↦ components(Pat)∪ran(cloned_c)})(Pat)"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="to_free_c⊆components(Pat)∪ran(cloned_c)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="cloned_c∈(container(Pat))∼[{to_clone_c(c)}] ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="to_clone_c∈Component ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Pat∈dom(components{Pat ↦ components(Pat)∪ran(cloned_c)})"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="components{Pat ↦ components(Pat)∪ran(cloned_c)}∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="c∈dom(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.mngHyp"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="clone_c/container/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" 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="p1,p2,p3,p4,p5,p6,p7,p8,p25,p10,p11,p12,p13,p14,p15,p17,p18,p19,p20,p21,p22,p23,p24"/> |
|
|
<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="p16,p9,p1,p2,p3,p4,p5,p6,p7,p8,p10,p11,p12,p13,p14,p15,p17,p18,p19,p20,p21,p22,p23,p24"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="cloned_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="cloned_c∈(container(Pat))∼[{to_clone_c(c)}] ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="to_clone_c∈Component ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="c∈dom(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<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="clone_c/pc/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" 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="p1,p2,p3,p4,p5,p6,p7,p8,p25,p10,p11,p12,p13,p14,p15,p17,p18,p19,p20,p21,p22,p23,p24"/> |
|
|
<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="p16,p9,p1,p2,p3,p4,p5,p6,p7,p8,p10,p11,p12,p13,p14,p15,p17,p18,p19,p20,p21,p22,p23,p24"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="cloned_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="cloned_c∈(container(Pat))∼[{to_clone_c(c)}] ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(components)∧components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="to_clone_c∈Component ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="c∈dom(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<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="free_c/comp/INV" 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" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p18" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p21"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p22"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p23"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p16,p10,p2,p12,p11,p14,p8,p1,p5,p19,p20,p13,p4,p17,p6,p9,p7,p15,p21,p22"> |
|
|
<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.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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c∉to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="¬c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="components{Pat ↦ components(Pat) ∖ {c}}∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="c∈to_free_c ∖ ran(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="free_c/cm_ctr/INV" 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,p20" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p18" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p21"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p22"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p23"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p24"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p24" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p25"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p26" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p27"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p28" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p29" org.eventb.core.prHyps="p27"> |
|
|
<org.eventb.core.prRule name="r5" 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="p21,p1,p2,p4,p6,p7,p30,p8,p9,p10,p11,p12,p13,p14,p16,p17,p19,p20"/> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p29" org.eventb.core.prHyps="p5,p15,p22,p25,p27,p21,p1,p2,p4,p6,p7,p8,p9,p10,p11,p12,p13,p14,p16,p17,p19,p20"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p32" org.eventb.core.prHyps="p31"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p32" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p33"> |
|
|
<org.eventb.core.prRule name="r5" 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="p21,p1,p2,p4,p6,p7,p30,p8,p9,p10,p11,p12,p13,p14,p16,p17,p19,p20"/> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p33" org.eventb.core.prHyps="p5,p15,p22,p25,p27,p31,p21,p1,p2,p4,p6,p7,p8,p9,p10,p11,p12,p13,p14,p16,p17,p19,p20"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p34" org.eventb.core.prHyps="p31"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p34" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p35" org.eventb.core.prHyps="p27"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p35" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p36"> |
|
|
<org.eventb.core.prRule name="r5" 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="p21,p1,p2,p4,p6,p7,p30,p8,p9,p10,p11,p12,p13,p14,p16,p17,p19,p20"/> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p36" org.eventb.core.prHyps="p5,p15,p22,p25,p31,p27,p21,p1,p2,p4,p6,p7,p8,p9,p10,p11,p12,p13,p14,p16,p17,p19,p20"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p37" org.eventb.core.prHyps="p31"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p37" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p38"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p38" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p39"> |
|
|
<org.eventb.core.prRule name="r5" 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="p21,p1,p2,p4,p6,p7,p30,p8,p9,p10,p11,p12,p13,p14,p16,p17,p19,p20"/> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p39" org.eventb.core.prHyps="p5,p15,p22,p25,p31,p21,p1,p2,p4,p6,p7,p8,p9,p10,p11,p12,p13,p14,p16,p17,p19,p20"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</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.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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒(c_multiplicity{Pat ↦ {c} ⩤ c_multiplicity(Pat)})(m)∈(components{Pat ↦ components(Pat) ∖ {c}})(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="(c_multiplicity{Pat ↦ {c} ⩤ c_multiplicity(Pat)})(m)∈(components{Pat ↦ components(Pat) ∖ {c}})(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="¬c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="m∈Pattern⇒(c_multiplicity{Pat ↦ {c} ⩤ c_multiplicity(Pat)})(m)∈(components{Pat ↦ components(Pat) ∖ {c}})(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="c∈to_free_c ∖ ran(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="c_multiplicity(m)∈components(Pat) ∖ {c} → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="c_multiplicity(m)∈({Pat} ⩤ components)(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c∉to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="m∈Pattern"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="{c} ⩤ c_multiplicity(Pat)∈components(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="c_multiplicity(m)∈components(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="{c} ⩤ c_multiplicity(Pat)∈(components{Pat ↦ components(Pat) ∖ {c}})(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="{c} ⩤ c_multiplicity(Pat)∈components(Pat) ∖ {c} → ℕ"/> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="{c} ⩤ c_multiplicity(Pat)∈({Pat} ⩤ components)(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="({Pat} ⩤ c_multiplicity)(m)∈components(Pat) ∖ {c} → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="({Pat} ⩤ c_multiplicity)(m)∈({Pat} ⩤ components)(m) → ℕ"> |
|
|
<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="({Pat} ⩤ c_multiplicity)(m)∈(components{Pat ↦ components(Pat) ∖ {c}})(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="¬m=Pat"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="m=Pat"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.impI"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.funOvr:1"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.mngHyp"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="free_c/comp_disj/INV" 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" 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="p1,p2,p4,p5,p6,p7,p8,p22,p9,p10,p11,p12,p13,p14,p15,p17,p18,p20,p21"/> |
|
|
<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="p19,p16,p3,p1,p2,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p17,p18,p20,p21"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒(components{Pat ↦ components(Pat) ∖ {c}})(m1)∩(components{Pat ↦ components(Pat) ∖ {c}})(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c∉to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="c∈to_free_c ∖ ran(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<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="free_c/cont_ty/INV" 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" 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="p1,p2,p4,p5,p6,p7,p8,p24,p9,p10,p12,p13,p14,p15,p17,p18,p19,p20,p21,p22,p23"/> |
|
|
<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="p11,p16,p3,p1,p2,p4,p5,p6,p7,p8,p9,p10,p12,p13,p14,p15,p17,p18,p19,p20,p21,p22,p23"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="container{Pat ↦ {c} ⩤ container(Pat)}∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="c∈to_free_c ∖ ran(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c∉to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<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="free_c/cont_ctr/INV" org.eventb.core.confidence="0" 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,p20,p21" org.eventb.core.prSets="Component,Model" org.eventb.core.psManual="true"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p22"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ hyp (inst Pat)" org.eventb.core.prHyps="p15"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p23"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p23" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prHyps="p24"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p15"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p22" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p25"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="lae in goal" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p25"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p27"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="lae in goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps="p25"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p28"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p28" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p30" org.eventb.core.prHyps="p29"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p30" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p32"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p19" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p31"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p29"/> |
|
|
<org.eventb.core.prRule name="r6" 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="p1"/> |
|
|
<org.eventb.core.prRule name="r7" 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="p17,p11,p3,p13,p12,p15,p9,p2,p5,p20,p21,p14,p4,p18,p6,p10,p7,p8,p31"/> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (c∉ran({c} ⩤ container(Pat)))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p33"> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p33" org.eventb.core.prHyps="p16,p24,p25,p17,p11,p3,p13,p12,p15,p9,p2,p5,p20,p21,p14,p4,p18,p6,p10,p7,p8,p31"> |
|
|
<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.prAnte name="(" org.eventb.core.prGoal="p36" org.eventb.core.prHyps="p34,p35"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p36" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p37"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prHyps="p34,p35,p36"> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p32" org.eventb.core.prHyps="p16,p24,p25,p17,p11,p3,p13,p12,p15,p9,p2,p5,p20,p21,p14,p4,p18,p6,p10,p7,p8,p31,p34,p35,p36"> |
|
|
<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.prPredRef name=".pred" org.eventb.core.prRef="p36"/> |
|
|
</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="p39" org.eventb.core.prHyps="p38"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p39" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p41"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p19" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p31"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p38" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p40"/> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p40"/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p43" org.eventb.core.prHyps="p42"> |
|
|
<org.eventb.core.prRule name="r7" 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="p1,p17,p11,p3,p13,p19,p12,p15,p9,p2,p5,p20,p21,p14,p4,p18,p6,p10,p7,p8"/> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p43" org.eventb.core.prHyps="p16,p24,p42,p1,p17,p11,p3,p13,p19,p12,p15,p9,p2,p5,p20,p21,p14,p4,p18,p6,p10,p7,p8"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".exprs" org.eventb.core.prRef="e0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="(container{Pat ↦ {c} ⩤ container(Pat)})(Pat)∈components(Pat) ∖ {c} ⇸ (components{Pat ↦ components(Pat) ∖ {c}})(Pat)"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="Pat=Pat"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="¬c∈ran({c} ⩤ container(Pat))"/> |
|
|
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="c∉ran({c} ⩤ container(Pat))"/> |
|
|
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="(container{Pat ↦ {c} ⩤ container(Pat)})(Pat)∈components(Pat) ∖ {c} ⇸ ({Pat} ⩤ components)(Pat)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="c∈to_free_c ∖ ran(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·(container{Pat ↦ {c} ⩤ container(Pat)})(m)∈(components{Pat ↦ components(Pat) ∖ {c}})(m) ⇸ (components{Pat ↦ components(Pat) ∖ {c}})(m)"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="{c} ⩤ container(Pat)∈components(Pat) ∖ {c} ⇸ components(Pat) ∖ {c}"/> |
|
|
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="⊥"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="(container{Pat ↦ {c} ⩤ container(Pat)})(m)∈components(Pat) ∖ {c} ⇸ (components{Pat ↦ components(Pat) ∖ {c}})(Pat)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="Pat∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="¬Pat=Pat"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="container(Pat)∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="(container{Pat ↦ {c} ⩤ container(Pat)})(m)∈components(Pat) ∖ {c} ⇸ (components{Pat ↦ components(Pat) ∖ {c}})(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(container{Pat ↦ {c} ⩤ container(Pat)})(m)∈({Pat} ⩤ components)(m) ⇸ (components{Pat ↦ components(Pat) ∖ {c}})(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="(container{Pat ↦ {c} ⩤ container(Pat)})(m)∈(components{Pat ↦ components(Pat) ∖ {c}})(m) ⇸ (components{Pat ↦ components(Pat) ∖ {c}})(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="{c} ⩤ container(Pat)∈components(Pat) ∖ {c} ⇸ ({Pat} ⩤ components)(Pat)"/> |
|
|
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="¬m=Pat"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="(container{Pat ↦ {c} ⩤ container(Pat)})(Pat)∈components(Pat) ∖ {c} ⇸ components(Pat) ∖ {c}"/> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="m=Pat"> |
|
|
<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="Pat∈dom(container)"/> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="Pat"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r9" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/> |
|
|
<org.eventb.core.prReas name="r10" org.eventb.core.prRID="org.eventb.core.seqprover.falseHyp"/> |
|
|
<org.eventb.core.prReas name="r8" org.eventb.core.prRID="org.eventb.core.seqprover.cut"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.funOvr:1"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.allD"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.locEq"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.mngHyp"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="free_c/acycl/INV" 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"> |
|
|
<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="p1,p18,p12,p4,p14,p20,p13,p16,p2,p6,p21,p22,p15,p5,p19,p7,p11,p8,p9"/> |
|
|
<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="p10,p17,p3,p1,p18,p12,p4,p14,p20,p13,p16,p2,p6,p21,p22,p15,p5,p19,p7,p11,p8,p9"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c∉to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·(container{Pat ↦ {c} ⩤ container(Pat)})(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="c∈to_free_c ∖ ran(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<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="free_c/to_clone_c/INV" 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" 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="p9,p10,p1,p11,p12,p13,p14,p15,p16,p17,p6,p18,p8,p2,p19,p20,p21,p7,p22,p23,p5"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Z3" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7,p8"> |
|
|
<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="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="components{Pat ↦ components(Pat) ∖ {c}}∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="to_clone_c∈(components{Pat ↦ components(Pat) ∖ {c}})(Pat) ⇸ (components{Pat ↦ components(Pat) ∖ {c}})(Pat)"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="Pat∈dom(components{Pat ↦ components(Pat) ∖ {c}})"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c∈to_free_c ∖ ran(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<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="free_c/to_free_c/INV" 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" 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="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p28"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p22" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p26"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p10" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p27"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p1,p26,p9,p2,p11,p12,p13,p14,p15,p29,p3,p17,p4,p18,p5,p6,p7,p19,p20,p21,p23,p24,p25"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p16,p8,p27,p1,p26,p9,p2,p11,p12,p13,p14,p15,p3,p17,p4,p18,p5,p6,p7,p19,p20,p21,p23,p24,p25"> |
|
|
<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.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pat∈dom(components{Pat ↦ components(Pat) ∖ {c}})"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="¬c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(to_free_c ∖ {c})∪(container(Pat))∼[{c}]⊆(components{Pat ↦ components(Pat) ∖ {c}})(Pat)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="c∈to_free_c ∖ ran(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="to_free_c ∖ {c}⊆components(Pat) ∖ {c}∧(container(Pat))∼[{c}]⊆components(Pat) ∖ {c}"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="c∉to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="components{Pat ↦ components(Pat) ∖ {c}}∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.mngHyp"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="free_c/p/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" 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="p1,p2,p4,p5,p6,p7,p8,p22,p9,p10,p11,p12,p13,p14,p15,p17,p18,p19,p20,p21"/> |
|
|
<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="p16,p3,p1,p2,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p17,p18,p19,p20,p21"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c∉to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="c∈to_free_c ∖ ran(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<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="free_c/m/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" 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="p1,p2,p4,p5,p6,p7,p8,p22,p9,p10,p11,p12,p13,p14,p15,p17,p18,p19,p20,p21"/> |
|
|
<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="p16,p3,p1,p2,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p17,p18,p19,p20,p21"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c∉to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(components)∧components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="c∈to_free_c ∖ ran(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<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="VWD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="c" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1" 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="simplification rewrites" 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="p3"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p5"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p6"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE2" org.eventb.core.prHidden="p8" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p9"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p9" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p10"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees c)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p11" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p13" org.eventb.core.prHyps="p12"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p13" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p14"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p14" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p12" org.eventb.core.prHyps="p12"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1"/> |
|
|
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p15"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p15" org.eventb.core.prHyps="p1"/> |
|
|
</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.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="todo" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="c∈components[{Pat}]"> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀c⦂Component·¬c∈dom(container)∧¬c∈to_unfold_c⇒todo(c)=0"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="todo∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<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.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="todo∈components[{Pat}] → ℕ"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="∀c⦂Component·c∉dom(container)∧c∉to_unfold_c⇒todo(c)=0"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="c∈dom(todo)∧todo∈Component ⇸ ℤ"> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀c⦂Component·c∈components[{Pat}]⇒c∈dom(todo)∧todo∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="c∈dom(todo)"> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·⊤∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="c∈components[{Pat}]⇒c∈dom(todo)∧todo∈Component ⇸ ℤ"> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<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.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="components[{Pat}]"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.impI"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.isFunGoal"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.hyp"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.totalDom:2"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="FIN" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p0" org.eventb.core.prSets="Component"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p0"/> |
|
|
<org.eventb.core.prIdent name="todo" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="finite(todo)"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.hyp"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_c/comp/INV" 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" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p23" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p26"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p27"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p21,p3,p1,p5,p18,p7,p16,p8,p12,p24,p25,p6,p10,p22,p13,p17,p14,p15,p9,p2,p20,p19,p4,p11,p26"> |
|
|
<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.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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(Pat)(c) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="c∈dom(c_multiplicity(Pat))"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="components{Pat ↦ components(Pat)∪ran(new_c)}∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="c_multiplicity(Pat)∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_c/cm/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="ae" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7" org.eventb.core.prSets="Component,Model" org.eventb.core.psManual="true"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p8" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p9"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p10"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ hyp (inst Pat)" org.eventb.core.prHyps="p6"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p11" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prHyps="p12"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p6"/> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p12" org.eventb.core.prHyps="p1" org.eventb.core.prInfHyps="p13"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p13" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p14"/> |
|
|
<org.eventb.core.prRule name="r5" 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="p1"/> |
|
|
<org.eventb.core.prRule name="r5" 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"/> |
|
|
<org.eventb.core.prRule name="r5" 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="p4"/> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (ran(new_c) × {1}∈Component ∖ union(ran(components)) ⇸ ℕ)" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p11" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p15"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p15" org.eventb.core.prHyps="p2,p3,p5,p14,p1,p7,p4"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R30000"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prHyps="p15"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ae (ran(new_c) × {1})" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p11" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prHyps="p16"> |
|
|
<org.eventb.core.prIdent name="ae" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he with ae=ran(new_c) × {1}" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p16"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p18"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p17"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p15"/> |
|
|
<org.eventb.core.prRule name="r5" 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="DESELECT0" org.eventb.core.prHyps="p16"/> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p18" org.eventb.core.prHyps="p2,p3,p5,p14,p1,p7,p4,p17"> |
|
|
<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.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".expr" org.eventb.core.prRef="e0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p15"/> |
|
|
</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.prExprRef name=".exprs" org.eventb.core.prRef="e1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="ran(new_c) × {1}∈Component ∖ union(ran(components)) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="ae∈Component ∖ union(ran(components)) ⇸ ℕ"> |
|
|
<org.eventb.core.prIdent name="ae" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="c_multiplicity{Pat ↦ c_multiplicity(Pat)∪ae}∈Pattern → (Component ⇸ ℕ)"> |
|
|
<org.eventb.core.prIdent name="ae" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(Pat)(c) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Pat∈Pattern⇒c_multiplicity(Pat)∈components(Pat) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="c_multiplicity(Pat)∈components(Pat) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="c_multiplicity{Pat ↦ c_multiplicity(Pat)∪(ran(new_c) × {1})}∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="⊤⇒c_multiplicity(Pat)∈components(Pat) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="ae=ran(new_c) × {1}"> |
|
|
<org.eventb.core.prIdent name="ae" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="ran(new_c) × {1}"/> |
|
|
<org.eventb.core.prExpr name="e1" org.eventb.core.expression="Pat"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.allD"/> |
|
|
<org.eventb.core.prReas name="r9" org.eventb.core.prRID="org.eventb.core.seqprover.he:1"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<org.eventb.core.prReas name="r10" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/> |
|
|
<org.eventb.core.prReas name="r8" org.eventb.core.prRID="org.eventb.core.seqprover.ae"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.mngHyp"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.cut"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_c/cm_ctr/INV" 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,p20,p21,p22,p23,p24" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p22" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p25"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p26"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p27"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p29" org.eventb.core.prHyps="p28"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p29" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p31" org.eventb.core.prHyps="p30"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p31" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p32" org.eventb.core.prHyps="p30"> |
|
|
<org.eventb.core.prRule name="r5" 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="p25,p1,p3,p5,p4,p8,p9,p33,p10,p11,p12,p13,p15,p14,p16,p18,p17,p19,p20,p21,p24,p23"/> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Z3" org.eventb.core.prGoal="p32" org.eventb.core.prHyps="p12,p17,p2,p4,p7,p6,p23"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p35" org.eventb.core.prHyps="p34"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p35" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p36"> |
|
|
<org.eventb.core.prRule name="r5" 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="p25,p1,p3,p5,p4,p8,p9,p33,p10,p11,p12,p13,p15,p14,p16,p18,p17,p19,p20,p21,p24,p23"/> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p36" org.eventb.core.prHyps="p7,p2,p6,p28,p30,p34,p25,p1,p3,p5,p4,p8,p9,p10,p11,p12,p13,p15,p14,p16,p18,p17,p19,p20,p21,p24,p23"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p37" org.eventb.core.prHyps="p34"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p37" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p38" org.eventb.core.prHyps="p30"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p38" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p39"> |
|
|
<org.eventb.core.prRule name="r5" 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="p25,p1,p3,p5,p4,p8,p9,p33,p10,p11,p12,p13,p15,p14,p16,p18,p17,p19,p20,p21,p24,p23"/> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p39" org.eventb.core.prHyps="p7,p2,p6,p28,p34,p30,p25,p1,p3,p5,p4,p8,p9,p10,p11,p12,p13,p15,p14,p16,p18,p17,p19,p20,p21,p24,p23"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p40" org.eventb.core.prHyps="p34"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p40" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p41"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p41" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p42"> |
|
|
<org.eventb.core.prRule name="r5" 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="p25,p1,p3,p5,p4,p8,p9,p33,p10,p11,p12,p13,p15,p14,p16,p18,p17,p19,p20,p21,p24,p23"/> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p42" org.eventb.core.prHyps="p7,p2,p6,p28,p34,p25,p1,p3,p5,p4,p8,p9,p10,p11,p12,p13,p15,p14,p16,p18,p17,p19,p20,p21,p24,p23"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</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.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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒(c_multiplicity{Pat ↦ c_multiplicity(Pat)∪(ran(new_c) × {1})})(m)∈(components{Pat ↦ components(Pat)∪ran(new_c)})(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="({Pat} ⩤ c_multiplicity)(m)∈(components{Pat ↦ components(Pat)∪ran(new_c)})(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(Pat)(c) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="c_multiplicity(Pat)∪(ran(new_c) × {1})∈components(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="({Pat} ⩤ c_multiplicity)(m)∈components(Pat)∪ran(new_c) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="m∈Pattern⇒(c_multiplicity{Pat ↦ c_multiplicity(Pat)∪(ran(new_c) × {1})})(m)∈(components{Pat ↦ components(Pat)∪ran(new_c)})(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="c_multiplicity(Pat)∪(ran(new_c) × {1})∈components(Pat)∪ran(new_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="c∈dom(c_multiplicity(Pat))"/> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="c_multiplicity(Pat)∪(ran(new_c) × {1})∈(components{Pat ↦ components(Pat)∪ran(new_c)})(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="c_multiplicity(Pat)∪(ran(new_c) × {1})∈({Pat} ⩤ components)(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="c_multiplicity(m)∈components(Pat)∪ran(new_c) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="(c_multiplicity{Pat ↦ c_multiplicity(Pat)∪(ran(new_c) × {1})})(m)∈(components{Pat ↦ components(Pat)∪ran(new_c)})(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="c_multiplicity(m)∈({Pat} ⩤ components)(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="m∈Pattern"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="c_multiplicity(Pat)∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="c_multiplicity(m)∈components(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="({Pat} ⩤ c_multiplicity)(m)∈({Pat} ⩤ components)(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="¬m=Pat"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="m=Pat"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.impI"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.funOvr:1"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.mngHyp"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_c/comp_disj/INV" 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" 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="p1,p9,p2,p11,p12,p13,p14,p15,p26,p16,p17,p4,p18,p19,p5,p20,p6,p7,p8,p21,p22,p24,p25"/> |
|
|
<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="p23,p10,p3,p1,p9,p2,p11,p12,p13,p14,p15,p16,p17,p4,p18,p19,p5,p20,p6,p7,p8,p21,p22,p24,p25"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒(components{Pat ↦ components(Pat)∪ran(new_c)})(m1)∩(components{Pat ↦ components(Pat)∪ran(new_c)})(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(Pat)(c) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="c∈dom(c_multiplicity(Pat))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="c_multiplicity(Pat)∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<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="unfold_c/cont_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="ae,ae0" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7,p8,p9" org.eventb.core.prSets="Component,Model" org.eventb.core.psManual="true"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p10" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p11"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p12"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ hyp (inst Pat)" org.eventb.core.prHyps="p4"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p13"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p13" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prHyps="p14"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p4"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ hyp (inst Pat)" org.eventb.core.prHyps="p4"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p13"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p13" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prHyps="p14"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p4"/> |
|
|
<org.eventb.core.prRule name="r4" 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="p8"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah ((ran(new_c) × {c});container(Pat)∈Component ∖ union(ran(components)) ⇸ Component)" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p15"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p15" org.eventb.core.prHyps="p6,p7"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p16"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p16" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p13"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p13" org.eventb.core.prHyps=""/> |
|
|
</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="p17" org.eventb.core.prHyps="p7,p6"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p17" org.eventb.core.prHyps="p1,p2,p5,p14,p8,p7,p6"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R30000"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prHyps="p7,p6,p17"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ae ((ran(new_c) × {c});container(Pat))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p15"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p15" org.eventb.core.prHyps="p6,p7"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p16"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p16" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p13"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p13" org.eventb.core.prHyps=""/> |
|
|
</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.prHyps="p7,p6,p18"> |
|
|
<org.eventb.core.prIdent name="ae" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he with ae=(ran(new_c) × {c});container(Pat)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p18"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p20"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p17" org.eventb.core.prInfHyps="p19"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p17"/> |
|
|
<org.eventb.core.prRule name="r4" 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="DESELECT0" org.eventb.core.prHyps="p18"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah ({c} ⩤ container(Pat)∈components(Pat) ⇸ Component)" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p21"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p21" org.eventb.core.prHyps="p3,p6,p7,p9"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p22"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p22" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p13"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p13" org.eventb.core.prHyps=""/> |
|
|
</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="p23" org.eventb.core.prHyps="p7,p6,p9,p3"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p23" org.eventb.core.prHyps="p1,p2,p5,p14,p8,p7,p6,p19,p9,p3"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R30000"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prHyps="p7,p6,p9,p3,p23"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ae ({c} ⩤ container(Pat))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p15"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p15" org.eventb.core.prHyps="p6,p7"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p16"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p16" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p13"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p13" org.eventb.core.prHyps=""/> |
|
|
</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.prHyps="p7,p6,p24"> |
|
|
<org.eventb.core.prIdent name="ae0" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he with ae0={c} ⩤ container(Pat)" org.eventb.core.prGoal="p20" org.eventb.core.prHyps="p24"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p26"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p25"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p23"/> |
|
|
<org.eventb.core.prRule name="r4" 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="DESELECT0" org.eventb.core.prHyps="p24"/> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p1,p2,p5,p14,p8,p7,p6,p19,p9,p3,p25"> |
|
|
<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.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".expr" org.eventb.core.prRef="e0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p23"/> |
|
|
</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.prExprRef name=".expr" org.eventb.core.prRef="e1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p17"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".exprs" org.eventb.core.prRef="e2"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".exprs" org.eventb.core.prRef="e2"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="(ran(new_c) × {c});container(Pat)∈Component ∖ union(ran(components)) ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(Pat)(c) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="ae0={c} ⩤ container(Pat)"> |
|
|
<org.eventb.core.prIdent name="ae0" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="⊤∧⊤∧⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="ae∈Component ∖ union(ran(components)) ⇸ Component"> |
|
|
<org.eventb.core.prIdent name="ae" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="ae=(ran(new_c) × {c});container(Pat)"> |
|
|
<org.eventb.core.prIdent name="ae" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="container{Pat ↦ ae0∪ae}∈Model → (Component ⇸ Component)"> |
|
|
<org.eventb.core.prIdent name="ae" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="ae0" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="container{Pat ↦ ({c} ⩤ container(Pat))∪ae}∈Model → (Component ⇸ Component)"> |
|
|
<org.eventb.core.prIdent name="ae" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="Pat∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="{c} ⩤ container(Pat)∈components(Pat) ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Pat∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)∧Pat∈dom(components)∧components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="container(Pat)∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="ae0∈components(Pat) ⇸ Component"> |
|
|
<org.eventb.core.prIdent name="ae0" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="container{Pat ↦ ({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))}∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prExpr name="e2" org.eventb.core.expression="Pat"/> |
|
|
<org.eventb.core.prExpr name="e1" org.eventb.core.expression="(ran(new_c) × {c});container(Pat)"/> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="{c} ⩤ container(Pat)"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.allD"/> |
|
|
<org.eventb.core.prReas name="r9" org.eventb.core.prRID="org.eventb.core.seqprover.he:1"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<org.eventb.core.prReas name="r10" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/> |
|
|
<org.eventb.core.prReas name="r8" org.eventb.core.prRID="org.eventb.core.seqprover.ae"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.mngHyp"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.cut"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_c/cont_ctr/INV" 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,p20,p21,p22,p23,p24" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p22" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p25"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p26"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p27"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p29" org.eventb.core.prHyps="p28"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p29" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p30" org.eventb.core.prHyps="p28"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p30" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p31" org.eventb.core.prHyps="p28"> |
|
|
<org.eventb.core.prRule name="r4" 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="p25,p1,p3,p4,p5,p7,p8,p9,p32,p10,p11,p12,p13,p15,p14,p16,p17,p18,p20,p21,p23,p24"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p31" org.eventb.core.prHyps="p19,p2,p6,p28,p25,p1,p3,p4,p5,p7,p8,p9,p10,p11,p12,p13,p15,p14,p16,p17,p18,p20,p21,p23,p24"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p34" org.eventb.core.prHyps="p33"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p34" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p35"> |
|
|
<org.eventb.core.prRule name="r4" 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="p25,p1,p3,p4,p5,p7,p8,p9,p32,p10,p11,p12,p13,p15,p14,p16,p17,p18,p20,p21,p23,p24"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p35" org.eventb.core.prHyps="p19,p2,p6,p28,p33,p25,p1,p3,p4,p5,p7,p8,p9,p10,p11,p12,p13,p15,p14,p16,p17,p18,p20,p21,p23,p24"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p36" org.eventb.core.prHyps="p33"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p36" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p37" org.eventb.core.prHyps="p28"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p37" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p38"> |
|
|
<org.eventb.core.prRule name="r4" 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="p25,p1,p3,p4,p5,p7,p8,p9,p32,p10,p11,p12,p13,p15,p14,p16,p17,p18,p20,p21,p23,p24"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p38" org.eventb.core.prHyps="p19,p2,p6,p28,p33,p25,p1,p3,p4,p5,p7,p8,p9,p10,p11,p12,p13,p15,p14,p16,p17,p18,p20,p21,p23,p24"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p39" org.eventb.core.prHyps="p33"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p39" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p40"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p40" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p41"> |
|
|
<org.eventb.core.prRule name="r4" 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="p25,p1,p3,p4,p5,p7,p8,p9,p32,p10,p11,p12,p13,p15,p14,p16,p17,p18,p20,p21,p23,p24"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p41" org.eventb.core.prHyps="p19,p2,p6,p28,p33,p25,p1,p3,p4,p5,p7,p8,p9,p10,p11,p12,p13,p15,p14,p16,p17,p18,p20,p21,p23,p24"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p42" org.eventb.core.prHyps="p33"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p42" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p43" org.eventb.core.prHyps="p28"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p43" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p44" org.eventb.core.prHyps="p28"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p44" org.eventb.core.prHyps="p13"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p45"> |
|
|
<org.eventb.core.prRule name="r4" 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="p25,p1,p3,p4,p5,p7,p8,p9,p32,p10,p11,p12,p13,p15,p14,p16,p17,p18,p20,p21,p23,p24"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p45" org.eventb.core.prHyps="p19,p2,p6,p33,p28,p25,p1,p3,p4,p5,p7,p8,p9,p10,p11,p12,p13,p15,p14,p16,p17,p18,p20,p21,p23,p24"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p46" org.eventb.core.prHyps="p33"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p46" org.eventb.core.prHyps="p13"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p47"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p47" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p48"> |
|
|
<org.eventb.core.prRule name="r4" 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="p25,p1,p3,p4,p5,p7,p8,p9,p32,p10,p11,p12,p13,p15,p14,p16,p17,p18,p20,p21,p23,p24"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p48" org.eventb.core.prHyps="p19,p2,p6,p33,p28,p25,p1,p3,p4,p5,p7,p8,p9,p10,p11,p12,p13,p15,p14,p16,p17,p18,p20,p21,p23,p24"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p49" org.eventb.core.prHyps="p33"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p49" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p50" org.eventb.core.prHyps="p28"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p50" org.eventb.core.prHyps="p13"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p51"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p51" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p52"> |
|
|
<org.eventb.core.prRule name="r4" 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="p25,p1,p3,p4,p5,p7,p8,p9,p32,p10,p11,p12,p13,p15,p14,p16,p17,p18,p20,p21,p23,p24"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p52" org.eventb.core.prHyps="p19,p2,p6,p33,p28,p25,p1,p3,p4,p5,p7,p8,p9,p10,p11,p12,p13,p15,p14,p16,p17,p18,p20,p21,p23,p24"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p53" org.eventb.core.prHyps="p33"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p53" org.eventb.core.prHyps="p13"> |
|
|
<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="Functional image simplification in goal" org.eventb.core.prGoal="p54" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p55"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p55" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p56"> |
|
|
<org.eventb.core.prRule name="r4" 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="p25,p1,p3,p4,p5,p7,p8,p9,p32,p10,p11,p12,p13,p15,p14,p16,p17,p18,p20,p21,p23,p24"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p56" org.eventb.core.prHyps="p19,p2,p6,p33,p25,p1,p3,p4,p5,p7,p8,p9,p10,p11,p12,p13,p15,p14,p16,p17,p18,p20,p21,p23,p24"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</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.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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(Pat)(c) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="container(m)∈components(m) ⇸ components(Pat)∪ran(new_c)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="container(m)∈({Pat} ⩤ components)(m) ⇸ components(Pat)∪ran(new_c)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="container(m)∈components(m) ⇸ ({Pat} ⩤ components)(m)"> |
|
|
<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="({Pat} ⩤ container)(m)∈components(Pat)∪ran(new_c) ⇸ ({Pat} ⩤ components)(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="container(m)∈components(Pat)∪ran(new_c) ⇸ components(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="m=Pat"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="container(m)∈components(Pat)∪ran(new_c) ⇸ ({Pat} ⩤ components)(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="({Pat} ⩤ container)(m)∈({Pat} ⩤ components)(m) ⇸ (components{Pat ↦ components(Pat)∪ran(new_c)})(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="({Pat} ⩤ container)(m)∈({Pat} ⩤ components)(m) ⇸ ({Pat} ⩤ components)(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))∈({Pat} ⩤ components)(m) ⇸ (components{Pat ↦ components(Pat)∪ran(new_c)})(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="({Pat} ⩤ container)(m)∈({Pat} ⩤ components)(m) ⇸ components(Pat)∪ran(new_c)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))∈({Pat} ⩤ components)(m) ⇸ ({Pat} ⩤ components)(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))∈components(Pat)∪ran(new_c) ⇸ components(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))∈components(m) ⇸ ({Pat} ⩤ components)(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="c∈dom(c_multiplicity(Pat))"/> |
|
|
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))∈components(m) ⇸ components(Pat)∪ran(new_c)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="(container{Pat ↦ ({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))})(m)∈(components{Pat ↦ components(Pat)∪ran(new_c)})(m) ⇸ (components{Pat ↦ components(Pat)∪ran(new_c)})(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="({Pat} ⩤ container)(m)∈(components{Pat ↦ components(Pat)∪ran(new_c)})(m) ⇸ (components{Pat ↦ components(Pat)∪ran(new_c)})(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·(container{Pat ↦ ({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))})(m)∈(components{Pat ↦ components(Pat)∪ran(new_c)})(m) ⇸ (components{Pat ↦ components(Pat)∪ran(new_c)})(m)"/> |
|
|
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))∈({Pat} ⩤ components)(m) ⇸ components(Pat)∪ran(new_c)"> |
|
|
<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="container(m)∈components(Pat)∪ran(new_c) ⇸ components(Pat)∪ran(new_c)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="({Pat} ⩤ container)(m)∈components(Pat)∪ran(new_c) ⇸ (components{Pat ↦ components(Pat)∪ran(new_c)})(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="({Pat} ⩤ container)(m)∈components(Pat)∪ran(new_c) ⇸ components(Pat)∪ran(new_c)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="container(m)∈({Pat} ⩤ components)(m) ⇸ ({Pat} ⩤ components)(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))∈components(Pat)∪ran(new_c) ⇸ components(Pat)∪ran(new_c)"/> |
|
|
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))∈components(Pat)∪ran(new_c) ⇸ ({Pat} ⩤ components)(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="c_multiplicity(Pat)∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))∈components(Pat)∪ran(new_c) ⇸ (components{Pat ↦ components(Pat)∪ran(new_c)})(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="container(m)∈components(m) ⇸ components(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))∈(components{Pat ↦ components(Pat)∪ran(new_c)})(m) ⇸ (components{Pat ↦ components(Pat)∪ran(new_c)})(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))∈components(m) ⇸ components(m)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="¬m=Pat"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.funOvr:1"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.mngHyp"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_c/acycl/INV" org.eventb.core.confidence="0" org.eventb.core.prFresh="m" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p1" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p2"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p3"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p4"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p5"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</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.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="instanciation_started∈BOOL"> |
|
|
<org.eventb.core.prIdent name="instanciation_started" org.eventb.core.type="BOOL"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·(container{Pat ↦ ({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))})(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·(container{Pat ↦ ({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))})(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_c/to_free_c/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3" org.eventb.core.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="p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p3,p2,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Z3" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3"> |
|
|
<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="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Pat∈Pattern"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="c∈dom(c_multiplicity(Pat))"> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="to_free_c⊆(components{Pat ↦ components(Pat)∪ran(new_c)})(Pat)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="Pat∈dom(components{Pat ↦ components(Pat)∪ran(new_c)})"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="c_multiplicity(Pat)∈Component ⇸ ℤ"> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="components{Pat ↦ components(Pat)∪ran(new_c)}∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<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="unfold_c/new_c_model/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" 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="p1,p9,p2,p11,p12,p13,p14,p15,p26,p16,p17,p4,p18,p19,p5,p20,p6,p7,p8,p21,p22,p23,p24,p25"/> |
|
|
<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="p10,p3,p1,p9,p2,p11,p12,p13,p14,p15,p16,p17,p4,p18,p19,p5,p20,p6,p7,p8,p21,p22,p23,p24,p25"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(Pat)(c) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(components)∧components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="c∈dom(c_multiplicity(Pat))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="c_multiplicity(Pat)∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<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="unfold_c/new_c_mult/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" 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="p1,p9,p2,p11,p12,p13,p14,p15,p26,p16,p17,p4,p18,p19,p5,p20,p6,p7,p8,p21,p22,p23,p24,p25"/> |
|
|
<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="p10,p3,p1,p9,p2,p11,p12,p13,p14,p15,p16,p17,p4,p18,p19,p5,p20,p6,p7,p8,p21,p22,p23,p24,p25"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(Pat)(c) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="c∈dom(c_multiplicity(Pat))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="c_multiplicity(Pat)∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(c_multiplicity)∧c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<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="unfold_c/new_c_container/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" 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="p1,p9,p2,p11,p12,p13,p14,p15,p26,p16,p17,p4,p18,p19,p5,p20,p6,p7,p8,p21,p22,p23,p24,p25"/> |
|
|
<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="p10,p3,p1,p9,p2,p11,p12,p13,p14,p15,p16,p17,p4,p18,p19,p5,p20,p6,p7,p8,p21,p22,p23,p24,p25"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(Pat)(c) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="c∈dom(c_multiplicity(Pat))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="c_multiplicity(Pat)∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<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="unfold_c/VAR" org.eventb.core.confidence="0" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="" 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="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p1" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p2"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p4"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE2" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE3" org.eventb.core.prHidden="p7" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p8"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE4" org.eventb.core.prHidden="p9" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p10"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="remove ¬ in ¬(∀sc·¬([[1]]∈sc∧(({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat)))∼[sc]⊆sc))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p12"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p12"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="remove ¬ in ¬(∀sc·¬([[1]]∈sc∧(container(Pat))∼[sc]⊆sc))" 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="p13"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p13"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="remove ¬ in ¬¬([[1]]∈[[0]]∧(({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat)))∼[[[0]]]⊆[[0]])" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p12" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p14"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p14"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="remove ¬ in ¬¬([[1]]∈[[0]]∧(container(Pat))∼[[[0]]]⊆[[0]])" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p13" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p15"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p15"/> |
|
|
<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="p16"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p17"/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.1.1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀c0⦂Component·c0∈(to_unfold_c ∖ {c})∪ran(to_clone_c∪(ran(new_c) × {c}))⇒(∀sc⦂ℙ(Component)·c0∈sc⇒Pat∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)∧Pat∈dom(container{Pat ↦ ({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))})∧container{Pat ↦ ({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))}∈Model ⇸ ℙ(Component × Component))∧¬(∀sc⦂ℙ(Component)·¬(c0∈sc∧(({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat)))∼[sc]⊆sc))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀c⦂Component·c∈to_unfold_c∪ran(to_clone_c)⇒(∀sc⦂ℙ(Component)·c∈sc⇒Pat∈dom(container)∧container∈Model ⇸ ℙ(Component × Component))∧{sc⦂ℙ(Component)·c∈sc∧(container(Pat))∼[sc]⊆sc ∣ sc}≠(∅ ⦂ ℙ(ℙ(Component)))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀c⦂Component·c∈to_free_c⇒¬(∀sc⦂ℙ(Component)·¬(c∈sc∧(container(Pat))∼[sc]⊆sc))"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀c0⦂Component·c0∈to_free_c⇒(∀sc⦂ℙ(Component)·c0∈sc⇒Pat∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)∧Pat∈dom(container{Pat ↦ ({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))})∧container{Pat ↦ ({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))}∈Model ⇸ ℙ(Component × Component))∧(∃sc⦂ℙ(Component)·¬¬(c0∈sc∧(({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat)))∼[sc]⊆sc))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀c0⦂Component·c0∈to_free_c⇒(∀sc⦂ℙ(Component)·c0∈sc⇒Pat∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)∧Pat∈dom(container{Pat ↦ ({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))})∧container{Pat ↦ ({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))}∈Model ⇸ ℙ(Component × Component))∧(∃sc⦂ℙ(Component)·c0∈sc∧(({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat)))∼[sc]⊆sc)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="instanciation_started∈BOOL"> |
|
|
<org.eventb.core.prIdent name="instanciation_started" org.eventb.core.type="BOOL"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(⋃c0⦂Component·c0∈to_free_c ∣ {c0} × inter({sc⦂ℙ(Component)·c0∈sc∧((container{Pat ↦ ({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))})(Pat))∼[sc]⊆sc ∣ sc})) × (⋃c0⦂Component·c0∈(to_unfold_c ∖ {c})∪ran(to_clone_c∪(ran(new_c) × {c})) ∣ {c0} × inter({sc⦂ℙ(Component)·c0∈sc∧((container{Pat ↦ ({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))})(Pat))∼[sc]⊆sc ∣ sc}))⊂(⋃c⦂Component·c∈to_free_c ∣ {c} × inter({sc⦂ℙ(Component)·c∈sc∧(container(Pat))∼[sc]⊆sc ∣ sc})) × (⋃c⦂Component·c∈to_unfold_c∪ran(to_clone_c) ∣ {c} × inter({sc⦂ℙ(Component)·c∈sc∧(container(Pat))∼[sc]⊆sc ∣ sc}))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀c⦂Component·c∈to_free_c⇒(∃sc⦂ℙ(Component)·c∈sc∧(container(Pat))∼[sc]⊆sc)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="∀c0⦂Component·c0∈to_free_c⇒(∀sc⦂ℙ(Component)·c0∈sc⇒Pat∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)∧Pat∈dom(container{Pat ↦ ({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))})∧container{Pat ↦ ({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))}∈Model ⇸ ℙ(Component × Component))∧{sc⦂ℙ(Component)·c0∈sc∧((container{Pat ↦ ({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))})(Pat))∼[sc]⊆sc ∣ sc}≠(∅ ⦂ ℙ(ℙ(Component)))"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀c⦂Component·c∈to_free_c⇒(∃sc⦂ℙ(Component)·¬¬(c∈sc∧(container(Pat))∼[sc]⊆sc))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="∀c0⦂Component·c0∈to_free_c⇒(∀sc⦂ℙ(Component)·c0∈sc⇒Pat∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)∧Pat∈dom(container{Pat ↦ ({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))})∧container{Pat ↦ ({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))}∈Model ⇸ ℙ(Component × Component))∧¬(∀sc⦂ℙ(Component)·¬(c0∈sc∧(({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat)))∼[sc]⊆sc))"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="(⋃c0⦂Component·c0∈to_free_c ∣ {c0} × inter({sc⦂ℙ(Component)·c0∈sc∧(({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat)))∼[sc]⊆sc ∣ sc})) × (⋃c0⦂Component·c0∈(to_unfold_c ∖ {c})∪ran(to_clone_c∪(ran(new_c) × {c})) ∣ {c0} × inter({sc⦂ℙ(Component)·c0∈sc∧(({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat)))∼[sc]⊆sc ∣ sc}))⊂(⋃c⦂Component·c∈to_free_c ∣ {c} × inter({sc⦂ℙ(Component)·c∈sc∧(container(Pat))∼[sc]⊆sc ∣ sc})) × (⋃c⦂Component·c∈to_unfold_c∪ran(to_clone_c) ∣ {c} × inter({sc⦂ℙ(Component)·c∈sc∧(container(Pat))∼[sc]⊆sc ∣ sc}))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀c⦂Component·c∈to_free_c⇒{sc⦂ℙ(Component)·c∈sc∧(container(Pat))∼[sc]⊆sc ∣ sc}≠(∅ ⦂ ℙ(ℙ(Component)))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀c⦂Component·c∈to_unfold_c∪ran(to_clone_c)⇒(∀sc⦂ℙ(Component)·c∈sc⇒Pat∈dom(container)∧container∈Model ⇸ ℙ(Component × Component))∧¬(∀sc⦂ℙ(Component)·¬(c∈sc∧(container(Pat))∼[sc]⊆sc))"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀c0⦂Component·c0∈(to_unfold_c ∖ {c})∪ran(to_clone_c∪(ran(new_c) × {c}))⇒(∀sc⦂ℙ(Component)·c0∈sc⇒Pat∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)∧Pat∈dom(container{Pat ↦ ({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))})∧container{Pat ↦ ({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))}∈Model ⇸ ℙ(Component × Component))∧{sc⦂ℙ(Component)·c0∈sc∧((container{Pat ↦ ({c} ⩤ container(Pat))∪((ran(new_c) × {c});container(Pat))})(Pat))∼[sc]⊆sc ∣ sc}≠(∅ ⦂ ℙ(ℙ(Component)))"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.rn"/> |
|
|
<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.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="clone_c/VAR" org.eventb.core.confidence="0" org.eventb.core.prFresh="sc,s,i,c0" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="" org.eventb.core.prSets="Component,Model" org.eventb.core.psManual="true"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="rewrite ⊂ in goal" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p1"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p2" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p3"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p1" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p9"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p7" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p8"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="remove ¬ in ¬(∀sc·¬(sc⊆ℕ × components[{Pat}]∧(∀c·c∈to_unfold_c⇒1 ‥ c_multiplicity(c) × {c}⊆sc)∧(∀c0·c0∈ran({c} ⩤ to_clone_c)⇒1 ‥ card(to_clone_c∼[{c0}] ∖ {c}) × {c0}⊆sc)∧(∀c0·c0∈dom(to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))⇒1 ‥ card((to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))[{c0}]) × {c0}⊆sc)∧(∀i,c,s·i ↦ c∈sc∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc)))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p10" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p11"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p11"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="remove ¬ in ¬(∀sc·¬(sc⊆ℕ × components[{Pat}]∧(∀c·c∈to_unfold_c⇒1 ‥ c_multiplicity(c) × {c}⊆sc)∧(∀c·c∈ran(to_clone_c)⇒1 ‥ card(to_clone_c∼[{c}]) × {c}⊆sc)∧(∀c·c∈dom(to_unfold_c_in)⇒1 ‥ card(to_unfold_c_in[{c}]) × {c}⊆sc)∧(∀i,c,s·i ↦ c∈sc∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc)))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p12" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p13"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p13"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="remove ¬ in ¬¬([[0]]⊆ℕ × components[{Pat}]∧(∀c·c∈to_unfold_c⇒1 ‥ c_multiplicity(c) × {c}⊆[[1]])∧(∀c0·c0∈ran({c} ⩤ to_clone_c)⇒1 ‥ card(to_clone_c∼[{c0}] ∖ {c}) × {c0}⊆[[1]])∧(∀c0·c0∈dom(to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))⇒1 ‥ card((to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))[{c0}]) × {c0}⊆[[1]])∧(∀i,c,s·i ↦ c∈[[3]]∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆[[3]]))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p11" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p14"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p14"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="remove ¬ in ¬¬([[0]]⊆ℕ × components[{Pat}]∧(∀c·c∈to_unfold_c⇒1 ‥ c_multiplicity(c) × {c}⊆[[1]])∧(∀c·c∈ran(to_clone_c)⇒1 ‥ card(to_clone_c∼[{c}]) × {c}⊆[[1]])∧(∀c·c∈dom(to_unfold_c_in)⇒1 ‥ card(to_unfold_c_in[{c}]) × {c}⊆[[1]])∧(∀i,c,s·i ↦ c∈[[3]]∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆[[3]]))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p13" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p15"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p15"/> |
|
|
<org.eventb.core.prRule name="r4" 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="p16"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p17"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE2" org.eventb.core.prHidden="p18" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p19"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p19" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p20"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∃ hyp (∃sc·sc⊆ℕ × components[{Pat}]∧(∀c·c∈to_unfold_c⇒1 ‥ c_multiplicity(c) × {c}⊆sc)∧(∀c0·c0∈ran({c} ⩤ to_clone_c)⇒1 ‥ card(to_clone_c∼[{c0}] ∖ {c}) × {c0}⊆sc)∧(∀c0·c0∈dom(to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))⇒1 ‥ card((to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))[{c0}]) × {c0}⊆sc)∧(∀i,c,s·i ↦ c∈sc∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p14" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p21,p22,p23,p24,p25"> |
|
|
<org.eventb.core.prIdent name="sc" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
</org.eventb.core.prHypAction> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p21,p22,p23,p24,p25"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∃ hyp (∃sc·sc⊆ℕ × components[{Pat}]∧(∀c·c∈to_unfold_c⇒1 ‥ c_multiplicity(c) × {c}⊆sc)∧(∀c·c∈ran(to_clone_c)⇒1 ‥ card(to_clone_c∼[{c}]) × {c}⊆sc)∧(∀c·c∈dom(to_unfold_c_in)⇒1 ‥ card(to_unfold_c_in[{c}]) × {c}⊆sc)∧(∀i,c,s·i ↦ c∈sc∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p15" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p26,p27,p28,p29,p30"> |
|
|
<org.eventb.core.prIdent name="sc0" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
</org.eventb.core.prHypAction> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p26,p27,p28,p29,p30"/> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees sc)" org.eventb.core.prGoal="p9" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p31"> |
|
|
<org.eventb.core.prIdent name="sc" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p31" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p33" org.eventb.core.prHyps="p21,p32,p23,p24,p25"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p33" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p24"> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p24" org.eventb.core.prHyps="p24"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p32"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees c0)" org.eventb.core.prGoal="p32" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p34"> |
|
|
<org.eventb.core.prIdent name="c0" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p34" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p36" org.eventb.core.prHyps="p35"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p8" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p37"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p37" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p38"/> |
|
|
</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="p39"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees c0)" org.eventb.core.prGoal="p39" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p40"> |
|
|
<org.eventb.core.prIdent name="c0" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p40" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p42" org.eventb.core.prHyps="p41"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p8" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p37"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p37" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p38"/> |
|
|
</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="p43"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees c0)" org.eventb.core.prGoal="p43" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p44"> |
|
|
<org.eventb.core.prIdent name="c0" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p44" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p46" org.eventb.core.prHyps="p45"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p8" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p37"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p37" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p38"/> |
|
|
</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="p23"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees i,c0,s)" org.eventb.core.prGoal="p23" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p47"> |
|
|
<org.eventb.core.prIdent name="i" org.eventb.core.type="ℤ"/> |
|
|
<org.eventb.core.prIdent name="c0" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="s" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p47" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p50" org.eventb.core.prHyps="p48,p49"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p8" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p37"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p37" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p38"/> |
|
|
</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.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="1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1"/> |
|
|
</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.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="p51"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p2" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p3"/> |
|
|
<org.eventb.core.prRule name="r2" 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.prHypAction name="REWRITE0" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p7" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p8"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="remove ¬ in ¬(∀sc·¬(sc⊆ℕ × components[{Pat}]∧(∀c·c∈to_unfold_c⇒1 ‥ c_multiplicity(c) × {c}⊆sc)∧(∀c0·c0∈ran({c} ⩤ to_clone_c)⇒1 ‥ card(to_clone_c∼[{c0}] ∖ {c}) × {c0}⊆sc)∧(∀c0·c0∈dom(to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))⇒1 ‥ card((to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))[{c0}]) × {c0}⊆sc)∧(∀i,c,s·i ↦ c∈sc∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc)))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p10" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p11"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p11"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="remove ¬ in ¬(∀sc·¬(sc⊆ℕ × components[{Pat}]∧(∀c·c∈to_unfold_c⇒1 ‥ c_multiplicity(c) × {c}⊆sc)∧(∀c·c∈ran(to_clone_c)⇒1 ‥ card(to_clone_c∼[{c}]) × {c}⊆sc)∧(∀c·c∈dom(to_unfold_c_in)⇒1 ‥ card(to_unfold_c_in[{c}]) × {c}⊆sc)∧(∀i,c,s·i ↦ c∈sc∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc)))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p12" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p13"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p13"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="remove ¬ in ¬¬([[0]]⊆ℕ × components[{Pat}]∧(∀c·c∈to_unfold_c⇒1 ‥ c_multiplicity(c) × {c}⊆[[1]])∧(∀c0·c0∈ran({c} ⩤ to_clone_c)⇒1 ‥ card(to_clone_c∼[{c0}] ∖ {c}) × {c0}⊆[[1]])∧(∀c0·c0∈dom(to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))⇒1 ‥ card((to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))[{c0}]) × {c0}⊆[[1]])∧(∀i,c,s·i ↦ c∈[[3]]∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆[[3]]))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p11" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p14"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p14"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="remove ¬ in ¬¬([[0]]⊆ℕ × components[{Pat}]∧(∀c·c∈to_unfold_c⇒1 ‥ c_multiplicity(c) × {c}⊆[[1]])∧(∀c·c∈ran(to_clone_c)⇒1 ‥ card(to_clone_c∼[{c}]) × {c}⊆[[1]])∧(∀c·c∈dom(to_unfold_c_in)⇒1 ‥ card(to_unfold_c_in[{c}]) × {c}⊆[[1]])∧(∀i,c,s·i ↦ c∈[[3]]∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆[[3]]))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p13" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p15"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p15"/> |
|
|
<org.eventb.core.prRule name="r4" 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="p16"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p17"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE2" org.eventb.core.prHidden="p18" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p19"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p19" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p20"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∃ hyp (∃sc·sc⊆ℕ × components[{Pat}]∧(∀c·c∈to_unfold_c⇒1 ‥ c_multiplicity(c) × {c}⊆sc)∧(∀c0·c0∈ran({c} ⩤ to_clone_c)⇒1 ‥ card(to_clone_c∼[{c0}] ∖ {c}) × {c0}⊆sc)∧(∀c0·c0∈dom(to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))⇒1 ‥ card((to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))[{c0}]) × {c0}⊆sc)∧(∀i,c,s·i ↦ c∈sc∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p14" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p21,p22,p23,p24,p25"> |
|
|
<org.eventb.core.prIdent name="sc" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
</org.eventb.core.prHypAction> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p21,p22,p23,p24,p25"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∃ hyp (∃sc·sc⊆ℕ × components[{Pat}]∧(∀c·c∈to_unfold_c⇒1 ‥ c_multiplicity(c) × {c}⊆sc)∧(∀c·c∈ran(to_clone_c)⇒1 ‥ card(to_clone_c∼[{c}]) × {c}⊆sc)∧(∀c·c∈dom(to_unfold_c_in)⇒1 ‥ card(to_unfold_c_in[{c}]) × {c}⊆sc)∧(∀i,c,s·i ↦ c∈sc∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p15" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p26,p27,p28,p29,p30"> |
|
|
<org.eventb.core.prIdent name="sc0" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
</org.eventb.core.prHypAction> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p26,p27,p28,p29,p30"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p8" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p37"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p37" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p38"/> |
|
|
</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="1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1"/> |
|
|
</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.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.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="c0∈ran(to_clone_c)⇒1 ‥ card(to_clone_c∼[{c0}]) × {c0}⊆sc"> |
|
|
<org.eventb.core.prIdent name="c0" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="sc" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="∀c0⦂Component·c0∈dom(to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))⇒1 ‥ card((to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))[{c0}]) × {c0}⊆sc"> |
|
|
<org.eventb.core.prIdent name="sc" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="∀c⦂Component·c∈dom(to_unfold_c_in)⇒1 ‥ card(to_unfold_c_in[{c}]) × {c}⊆sc"> |
|
|
<org.eventb.core.prIdent name="sc" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="i ↦ c0∈sc∧s ↦ c0∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc"> |
|
|
<org.eventb.core.prIdent name="c0" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="i" org.eventb.core.type="ℤ"/> |
|
|
<org.eventb.core.prIdent name="s" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="sc" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="sc0⊆ℕ × components[{Pat}]"> |
|
|
<org.eventb.core.prIdent name="sc0" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="∀c0⦂Component·c0∈ran({c} ⩤ to_clone_c)⇒1 ‥ card(to_clone_c∼[{c0}] ∖ {c}) × {c0}⊆sc"> |
|
|
<org.eventb.core.prIdent name="sc" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·⊤∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="sc⊆ℕ × components[{Pat}]∧(∀c⦂Component·c∈to_unfold_c⇒1 ‥ 1+c_multiplicity(c) × {c}⊆sc)∧(∀c0⦂Component·c0∈ran({c} ⩤ to_clone_c)⇒1 ‥ card(to_clone_c∼[{c0}] ∖ {c}) × {c0}⊆sc)∧(∀c0⦂Component·c0∈dom(to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))⇒1 ‥ card((to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))[{c0}]) × {c0}⊆sc)∧(∀i⦂ℤ,c⦂Component,s⦂Component·i ↦ c∈sc∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc)⇒sc⊆ℕ × components[{Pat}]∧(∀c⦂Component·c∈to_unfold_c⇒1 ‥ 1+c_multiplicity(c) × {c}⊆sc)∧(∀c⦂Component·c∈ran(to_clone_c)⇒1 ‥ card(to_clone_c∼[{c}]) × {c}⊆sc)∧(∀c⦂Component·c∈dom(to_unfold_c_in)⇒1 ‥ card(to_unfold_c_in[{c}]) × {c}⊆sc)∧(∀i⦂ℤ,c⦂Component,s⦂Component·i ↦ c∈sc∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc)"> |
|
|
<org.eventb.core.prIdent name="sc" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="1 ‥ card(to_unfold_c_in[{c0}]) × {c0}⊆sc"> |
|
|
<org.eventb.core.prIdent name="c0" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="sc" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="¬{sc⦂ℙ(ℤ×Component)·sc⊆ℕ × components[{Pat}]∧(∀c⦂Component·c∈to_unfold_c⇒1 ‥ 1+c_multiplicity(c) × {c}⊆sc)∧(∀c0⦂Component·c0∈ran({c} ⩤ to_clone_c)⇒1 ‥ card(to_clone_c∼[{c0}] ∖ {c}) × {c0}⊆sc)∧(∀c0⦂Component·c0∈dom(to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))⇒1 ‥ card((to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))[{c0}]) × {c0}⊆sc)∧(∀i⦂ℤ,c⦂Component,s⦂Component·i ↦ c∈sc∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc) ∣ sc}={sc⦂ℙ(ℤ×Component)·sc⊆ℕ × components[{Pat}]∧(∀c⦂Component·c∈to_unfold_c⇒1 ‥ 1+c_multiplicity(c) × {c}⊆sc)∧(∀c⦂Component·c∈ran(to_clone_c)⇒1 ‥ card(to_clone_c∼[{c}]) × {c}⊆sc)∧(∀c⦂Component·c∈dom(to_unfold_c_in)⇒1 ‥ card(to_unfold_c_in[{c}]) × {c}⊆sc)∧(∀i⦂ℤ,c⦂Component,s⦂Component·i ↦ c∈sc∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc) ∣ sc}"/> |
|
|
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="c0∈ran(to_clone_c)"> |
|
|
<org.eventb.core.prIdent name="c0" org.eventb.core.type="Component"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="∀c⦂Component·c∈dom(to_unfold_c_in)⇒1 ‥ card(to_unfold_c_in[{c}]) × {c}⊆sc0"> |
|
|
<org.eventb.core.prIdent name="sc0" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="∀sc⦂ℙ(ℤ×Component)·sc⊆ℕ × components[{Pat}]⇒(∀c⦂Component·c∈to_unfold_c⇒c∈dom(c_multiplicity)∧c_multiplicity∈Component ⇸ ℤ)∧((∀c⦂Component·c∈to_unfold_c⇒1 ‥ 1+c_multiplicity(c) × {c}⊆sc)⇒(∀c0⦂Component·c0∈ran({c} ⩤ to_clone_c)⇒finite(to_clone_c∼[{c0}] ∖ {c}))∧((∀c0⦂Component·c0∈ran({c} ⩤ to_clone_c)⇒1 ‥ card(to_clone_c∼[{c0}] ∖ {c}) × {c0}⊆sc)⇒to_clone_c∈Component ⇸ Component∧(∀c0⦂Component·c0∈dom(to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))⇒finite((to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))[{c0}]))∧((∀c0⦂Component·c0∈dom(to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))⇒1 ‥ card((to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))[{c0}]) × {c0}⊆sc)⇒(∀i⦂ℤ,c⦂Component,s⦂Component·i ↦ c∈sc∧s ↦ c∈container⇒s∈dom(c_multiplicity)∧c_multiplicity∈Component ⇸ ℤ))))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∃sc⦂ℙ(ℤ×Component)·sc⊆ℕ × components[{Pat}]∧(∀c⦂Component·c∈to_unfold_c⇒1 ‥ c_multiplicity(c) × {c}⊆sc)∧(∀c⦂Component·c∈ran(to_clone_c)⇒1 ‥ card(to_clone_c∼[{c}]) × {c}⊆sc)∧(∀c⦂Component·c∈dom(to_unfold_c_in)⇒1 ‥ card(to_unfold_c_in[{c}]) × {c}⊆sc)∧(∀i⦂ℤ,c⦂Component,s⦂Component·i ↦ c∈sc∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc)"/> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="c0∈to_unfold_c"> |
|
|
<org.eventb.core.prIdent name="c0" org.eventb.core.type="Component"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="c0∈to_unfold_c⇒1 ‥ 1+c_multiplicity(c0) × {c0}⊆sc"> |
|
|
<org.eventb.core.prIdent name="c0" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="sc" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="∀i⦂ℤ,c⦂Component,s⦂Component·i ↦ c∈sc∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc"> |
|
|
<org.eventb.core.prIdent name="sc" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀sc⦂ℙ(ℤ×Component)·sc⊆ℕ × components[{Pat}]⇒(∀c⦂Component·c∈to_unfold_c⇒c∈dom(c_multiplicity)∧c_multiplicity∈Component ⇸ ℤ)∧((∀c⦂Component·c∈to_unfold_c⇒1 ‥ 1+c_multiplicity(c) × {c}⊆sc)⇒(∀c0⦂Component·c0∈ran({c} ⩤ to_clone_c)⇒finite(to_clone_c∼[{c0}] ∖ {c}))∧((∀c0⦂Component·c0∈ran({c} ⩤ to_clone_c)⇒1 ‥ card(to_clone_c∼[{c0}] ∖ {c}) × {c0}⊆sc)⇒c∈dom(to_clone_c)∧to_clone_c∈Component ⇸ Component∧(∀c0⦂Component·c0∈dom(to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))⇒finite((to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))[{c0}]))∧((∀c0⦂Component·c0∈dom(to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))⇒1 ‥ card((to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))[{c0}]) × {c0}⊆sc)⇒(∀i⦂ℤ,c⦂Component,s⦂Component·i ↦ c∈sc∧s ↦ c∈container⇒s∈dom(c_multiplicity)∧c_multiplicity∈Component ⇸ ℤ))))"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="∀c⦂Component·c∈to_unfold_c⇒1 ‥ c_multiplicity(c) × {c}⊆sc"> |
|
|
<org.eventb.core.prIdent name="sc" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="i ↦ c0∈sc"> |
|
|
<org.eventb.core.prIdent name="c0" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="i" org.eventb.core.type="ℤ"/> |
|
|
<org.eventb.core.prIdent name="sc" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="∀c⦂Component·c∈to_unfold_c⇒1 ‥ c_multiplicity(c) × {c}⊆sc0"> |
|
|
<org.eventb.core.prIdent name="sc0" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="c∈dom(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<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.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀sc⦂ℙ(ℤ×Component)·sc⊆ℕ × components[{Pat}]∧(∀c⦂Component·c∈to_unfold_c⇒1 ‥ 1+c_multiplicity(c) × {c}⊆sc)∧(∀c0⦂Component·c0∈ran({c} ⩤ to_clone_c)⇒1 ‥ card(to_clone_c∼[{c0}] ∖ {c}) × {c0}⊆sc)∧(∀c0⦂Component·c0∈dom(to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))⇒1 ‥ card((to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))[{c0}]) × {c0}⊆sc)∧(∀i⦂ℤ,c⦂Component,s⦂Component·i ↦ c∈sc∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc)⇒sc⊆ℕ × components[{Pat}]∧(∀c⦂Component·c∈to_unfold_c⇒1 ‥ 1+c_multiplicity(c) × {c}⊆sc)∧(∀c⦂Component·c∈ran(to_clone_c)⇒1 ‥ card(to_clone_c∼[{c}]) × {c}⊆sc)∧(∀c⦂Component·c∈dom(to_unfold_c_in)⇒1 ‥ card(to_unfold_c_in[{c}]) × {c}⊆sc)∧(∀i⦂ℤ,c⦂Component,s⦂Component·i ↦ c∈sc∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∃sc⦂ℙ(ℤ×Component)·¬¬(sc⊆ℕ × components[{Pat}]∧(∀c⦂Component·c∈to_unfold_c⇒1 ‥ c_multiplicity(c) × {c}⊆sc)∧(∀c0⦂Component·c0∈ran({c} ⩤ to_clone_c)⇒1 ‥ card(to_clone_c∼[{c0}] ∖ {c}) × {c0}⊆sc)∧(∀c0⦂Component·c0∈dom(to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))⇒1 ‥ card((to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))[{c0}]) × {c0}⊆sc)∧(∀i⦂ℤ,c⦂Component,s⦂Component·i ↦ c∈sc∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc))"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="∀i⦂ℤ,c⦂Component,s⦂Component·i ↦ c∈sc0∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc0"> |
|
|
<org.eventb.core.prIdent name="sc0" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀sc⦂ℙ(ℤ×Component)·sc⊆ℕ × components[{Pat}]⇒(∀c⦂Component·c∈to_unfold_c⇒c∈dom(c_multiplicity)∧c_multiplicity∈Component ⇸ ℤ)∧((∀c⦂Component·c∈to_unfold_c⇒1 ‥ 1+c_multiplicity(c) × {c}⊆sc)⇒(∀c0⦂Component·c0∈ran({c} ⩤ to_clone_c)⇒finite(({c} ⩤ to_clone_c)∼[{c0}]))∧((∀c0⦂Component·c0∈ran({c} ⩤ to_clone_c)⇒1 ‥ card(({c} ⩤ to_clone_c)∼[{c0}]) × {c0}⊆sc)⇒(∀c0⦂Component·c∈dom(to_clone_c)∧to_clone_c∈Component ⇸ Component∧(c0∈dom(to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))⇒finite((to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))[{c0}])))∧((∀c0⦂Component·c0∈dom(to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))⇒1 ‥ card((to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))[{c0}]) × {c0}⊆sc)⇒(∀i⦂ℤ,c⦂Component,s⦂Component·i ↦ c∈sc∧s ↦ c∈container⇒s∈dom(c_multiplicity)∧c_multiplicity∈Component ⇸ ℤ))))"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="¬(∀sc⦂ℙ(ℤ×Component)·¬(sc⊆ℕ × components[{Pat}]∧(∀c⦂Component·c∈to_unfold_c⇒1 ‥ c_multiplicity(c) × {c}⊆sc)∧(∀c⦂Component·c∈ran(to_clone_c)⇒1 ‥ card(to_clone_c∼[{c}]) × {c}⊆sc)∧(∀c⦂Component·c∈dom(to_unfold_c_in)⇒1 ‥ card(to_unfold_c_in[{c}]) × {c}⊆sc)∧(∀i⦂ℤ,c⦂Component,s⦂Component·i ↦ c∈sc∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc)))"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="{sc⦂ℙ(ℤ×Component)·sc⊆ℕ × components[{Pat}]∧(∀c⦂Component·c∈to_unfold_c⇒1 ‥ 1+c_multiplicity(c) × {c}⊆sc)∧(∀c0⦂Component·c0∈ran({c} ⩤ to_clone_c)⇒1 ‥ card(({c} ⩤ to_clone_c)∼[{c0}]) × {c0}⊆sc)∧(∀c0⦂Component·c0∈dom(to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))⇒1 ‥ card((to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))[{c0}]) × {c0}⊆sc)∧(∀i⦂ℤ,c⦂Component,s⦂Component·i ↦ c∈sc∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc) ∣ sc}⊆{sc⦂ℙ(ℤ×Component)·sc⊆ℕ × components[{Pat}]∧(∀c⦂Component·c∈to_unfold_c⇒1 ‥ 1+c_multiplicity(c) × {c}⊆sc)∧(∀c⦂Component·c∈ran(to_clone_c)⇒1 ‥ card(to_clone_c∼[{c}]) × {c}⊆sc)∧(∀c⦂Component·c∈dom(to_unfold_c_in)⇒1 ‥ card(to_unfold_c_in[{c}]) × {c}⊆sc)∧(∀i⦂ℤ,c⦂Component,s⦂Component·i ↦ c∈sc∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc) ∣ sc}"/> |
|
|
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="∀c⦂Component·c∈ran(to_clone_c)⇒1 ‥ card(to_clone_c∼[{c}]) × {c}⊆sc"> |
|
|
<org.eventb.core.prIdent name="sc" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="{sc⦂ℙ(ℤ×Component)·sc⊆ℕ × components[{Pat}]∧(∀c⦂Component·c∈to_unfold_c⇒1 ‥ 1+c_multiplicity(c) × {c}⊆sc)∧(∀c0⦂Component·c0∈ran({c} ⩤ to_clone_c)⇒1 ‥ card(({c} ⩤ to_clone_c)∼[{c0}]) × {c0}⊆sc)∧(∀c0⦂Component·c0∈dom(to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))⇒1 ‥ card((to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))[{c0}]) × {c0}⊆sc)∧(∀i⦂ℤ,c⦂Component,s⦂Component·i ↦ c∈sc∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc) ∣ sc}⊂{sc⦂ℙ(ℤ×Component)·sc⊆ℕ × components[{Pat}]∧(∀c⦂Component·c∈to_unfold_c⇒1 ‥ 1+c_multiplicity(c) × {c}⊆sc)∧(∀c⦂Component·c∈ran(to_clone_c)⇒1 ‥ card(to_clone_c∼[{c}]) × {c}⊆sc)∧(∀c⦂Component·c∈dom(to_unfold_c_in)⇒1 ‥ card(to_unfold_c_in[{c}]) × {c}⊆sc)∧(∀i⦂ℤ,c⦂Component,s⦂Component·i ↦ c∈sc∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc) ∣ sc}"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∃sc⦂ℙ(ℤ×Component)·sc⊆ℕ × components[{Pat}]∧(∀c⦂Component·c∈to_unfold_c⇒1 ‥ c_multiplicity(c) × {c}⊆sc)∧(∀c0⦂Component·c0∈ran({c} ⩤ to_clone_c)⇒1 ‥ card(to_clone_c∼[{c0}] ∖ {c}) × {c0}⊆sc)∧(∀c0⦂Component·c0∈dom(to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))⇒1 ‥ card((to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))[{c0}]) × {c0}⊆sc)∧(∀i⦂ℤ,c⦂Component,s⦂Component·i ↦ c∈sc∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc)"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="∀c⦂Component·c∈ran(to_clone_c)⇒1 ‥ card(to_clone_c∼[{c}]) × {c}⊆sc0"> |
|
|
<org.eventb.core.prIdent name="sc0" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="¬(∀sc⦂ℙ(ℤ×Component)·¬(sc⊆ℕ × components[{Pat}]∧(∀c⦂Component·c∈to_unfold_c⇒1 ‥ c_multiplicity(c) × {c}⊆sc)∧(∀c0⦂Component·c0∈ran({c} ⩤ to_clone_c)⇒1 ‥ card(to_clone_c∼[{c0}] ∖ {c}) × {c0}⊆sc)∧(∀c0⦂Component·c0∈dom(to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))⇒1 ‥ card((to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))[{c0}]) × {c0}⊆sc)∧(∀i⦂ℤ,c⦂Component,s⦂Component·i ↦ c∈sc∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc)))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="∀sc⦂ℙ(ℤ×Component)·sc⊆ℕ × components[{Pat}]⇒(∀c⦂Component·c∈to_unfold_c⇒c∈dom(c_multiplicity)∧c_multiplicity∈Component ⇸ ℤ)∧((∀c⦂Component·c∈to_unfold_c⇒1 ‥ c_multiplicity(c) × {c}⊆sc)⇒(∀c0⦂Component·c0∈ran({c} ⩤ to_clone_c)⇒finite(({c} ⩤ to_clone_c)∼[{c0}]))∧((∀c0⦂Component·c0∈ran({c} ⩤ to_clone_c)⇒1 ‥ card(({c} ⩤ to_clone_c)∼[{c0}]) × {c0}⊆sc)⇒(∀c0⦂Component·c∈dom(to_clone_c)∧to_clone_c∈Component ⇸ Component∧(c0∈dom(to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))⇒finite((to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))[{c0}])))∧((∀c0⦂Component·c0∈dom(to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))⇒1 ‥ card((to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))[{c0}]) × {c0}⊆sc)⇒(∀i⦂ℤ,c⦂Component,s⦂Component·i ↦ c∈sc∧s ↦ c∈container⇒s∈dom(c_multiplicity)∧c_multiplicity∈Component ⇸ ℤ))))"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∃sc⦂ℙ(ℤ×Component)·¬¬(sc⊆ℕ × components[{Pat}]∧(∀c⦂Component·c∈to_unfold_c⇒1 ‥ c_multiplicity(c) × {c}⊆sc)∧(∀c⦂Component·c∈ran(to_clone_c)⇒1 ‥ card(to_clone_c∼[{c}]) × {c}⊆sc)∧(∀c⦂Component·c∈dom(to_unfold_c_in)⇒1 ‥ card(to_unfold_c_in[{c}]) × {c}⊆sc)∧(∀i⦂ℤ,c⦂Component,s⦂Component·i ↦ c∈sc∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="sc⊆ℕ × components[{Pat}]"> |
|
|
<org.eventb.core.prIdent name="sc" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="1 ‥ i∗c_multiplicity(s) × {s}⊆sc"> |
|
|
<org.eventb.core.prIdent name="i" org.eventb.core.type="ℤ"/> |
|
|
<org.eventb.core.prIdent name="s" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="sc" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<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.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="∀sc⦂ℙ(ℤ×Component)·sc⊆ℕ × components[{Pat}]⇒(∀c⦂Component·c∈to_unfold_c⇒c∈dom(c_multiplicity)∧c_multiplicity∈Component ⇸ ℤ)∧((∀c⦂Component·c∈to_unfold_c⇒1 ‥ c_multiplicity(c) × {c}⊆sc)⇒(∀c0⦂Component·c0∈ran({c} ⩤ to_clone_c)⇒finite(({c} ⩤ to_clone_c)∼[{c0}]))∧((∀c0⦂Component·c0∈ran({c} ⩤ to_clone_c)⇒1 ‥ card(({c} ⩤ to_clone_c)∼[{c0}]) × {c0}⊆sc)⇒(∀c0⦂Component·⊤∧to_clone_c∈Component ⇸ Component∧(c0∈dom(to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))⇒finite((to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))[{c0}])))∧((∀c0⦂Component·c0∈dom(to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))⇒1 ‥ card((to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))[{c0}]) × {c0}⊆sc)⇒(∀i⦂ℤ,c⦂Component,s⦂Component·i ↦ c∈sc∧s ↦ c∈container⇒s∈dom(c_multiplicity)∧c_multiplicity∈Component ⇸ ℤ))))"/> |
|
|
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="¬{sc⦂ℙ(ℤ×Component)·sc⊆ℕ × components[{Pat}]∧(∀c⦂Component·c∈to_unfold_c⇒1 ‥ 1+c_multiplicity(c) × {c}⊆sc)∧(∀c0⦂Component·c0∈ran({c} ⩤ to_clone_c)⇒1 ‥ card(({c} ⩤ to_clone_c)∼[{c0}]) × {c0}⊆sc)∧(∀c0⦂Component·c0∈dom(to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))⇒1 ‥ card((to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))[{c0}]) × {c0}⊆sc)∧(∀i⦂ℤ,c⦂Component,s⦂Component·i ↦ c∈sc∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc) ∣ sc}={sc⦂ℙ(ℤ×Component)·sc⊆ℕ × components[{Pat}]∧(∀c⦂Component·c∈to_unfold_c⇒1 ‥ 1+c_multiplicity(c) × {c}⊆sc)∧(∀c⦂Component·c∈ran(to_clone_c)⇒1 ‥ card(to_clone_c∼[{c}]) × {c}⊆sc)∧(∀c⦂Component·c∈dom(to_unfold_c_in)⇒1 ‥ card(to_unfold_c_in[{c}]) × {c}⊆sc)∧(∀i⦂ℤ,c⦂Component,s⦂Component·i ↦ c∈sc∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc) ∣ sc}"/> |
|
|
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="1 ‥ 1+c_multiplicity(c0) × {c0}⊆sc"> |
|
|
<org.eventb.core.prIdent name="c0" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="sc" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="s ↦ c0∈container"> |
|
|
<org.eventb.core.prIdent name="c0" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="s" org.eventb.core.type="Component"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="sc⊆ℕ × components[{Pat}]∧(∀c⦂Component·c∈to_unfold_c⇒1 ‥ 1+c_multiplicity(c) × {c}⊆sc)∧(∀c⦂Component·c∈ran(to_clone_c)⇒1 ‥ card(to_clone_c∼[{c}]) × {c}⊆sc)∧(∀c⦂Component·c∈dom(to_unfold_c_in)⇒1 ‥ card(to_unfold_c_in[{c}]) × {c}⊆sc)∧(∀i⦂ℤ,c⦂Component,s⦂Component·i ↦ c∈sc∧s ↦ c∈container⇒1 ‥ i∗c_multiplicity(s) × {s}⊆sc)"> |
|
|
<org.eventb.core.prIdent name="sc" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="∀sc⦂ℙ(ℤ×Component)·sc⊆ℕ × components[{Pat}]⇒(∀c⦂Component·c∈to_unfold_c⇒c∈dom(c_multiplicity)∧c_multiplicity∈Component ⇸ ℤ)∧((∀c⦂Component·c∈to_unfold_c⇒1 ‥ 1+c_multiplicity(c) × {c}⊆sc)⇒(∀c0⦂Component·c0∈ran({c} ⩤ to_clone_c)⇒finite(to_clone_c∼[{c0}] ∖ {c}))∧((∀c0⦂Component·c0∈ran({c} ⩤ to_clone_c)⇒1 ‥ card(to_clone_c∼[{c0}] ∖ {c}) × {c0}⊆sc)⇒⊤∧to_clone_c∈Component ⇸ Component∧(∀c0⦂Component·c0∈dom(to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))⇒finite((to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))[{c0}]))∧((∀c0⦂Component·c0∈dom(to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))⇒1 ‥ card((to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c}))[{c0}]) × {c0}⊆sc)⇒(∀i⦂ℤ,c⦂Component,s⦂Component·i ↦ c∈sc∧s ↦ c∈container⇒s∈dom(c_multiplicity)∧c_multiplicity∈Component ⇸ ℤ))))"/> |
|
|
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="1 ‥ card(to_clone_c∼[{c0}]) × {c0}⊆sc"> |
|
|
<org.eventb.core.prIdent name="c0" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="sc" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="∀c⦂Component·c∈to_unfold_c⇒1 ‥ 1+c_multiplicity(c) × {c}⊆sc"> |
|
|
<org.eventb.core.prIdent name="sc" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="c0∈dom(to_unfold_c_in)⇒1 ‥ card(to_unfold_c_in[{c0}]) × {c0}⊆sc"> |
|
|
<org.eventb.core.prIdent name="c0" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="sc" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="c0∈dom(to_unfold_c_in)"> |
|
|
<org.eventb.core.prIdent name="c0" org.eventb.core.type="Component"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.sir"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.exF"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.rn"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.impI"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r9" org.eventb.core.prRID="org.eventb.core.seqprover.hyp"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r8" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="free_c/f/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" 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="p1,p2,p4,p5,p6,p7,p8,p22,p9,p10,p11,p12,p13,p14,p15,p17,p18,p19,p20,p21"/> |
|
|
<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="p16,p3,p1,p2,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p17,p18,p19,p20,p21"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c∉to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="c∈to_free_c ∖ ran(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<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="free_c/VAR" org.eventb.core.confidence="0" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="" org.eventb.core.prSets="Component,Model" org.eventb.core.psManual="true"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p15"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p1" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p2"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p4"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE2" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6,p7,p8"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE3" org.eventb.core.prHidden="p9" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p10"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE4" org.eventb.core.prHidden="p11" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p12"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE5" org.eventb.core.prHidden="p13" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p14"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="remove ¬ in ¬(∀sc·¬([[1]]∈sc∧(container(Pat))∼[sc] ∖ {c}⊆sc))" 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="p16"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p16"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="remove ¬ in ¬(∀sc·¬([[1]]∈sc∧(container(Pat))∼[sc]⊆sc))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p12" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p17"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p17"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="remove ¬ in ¬¬([[1]]∈[[0]]∧(container(Pat))∼[[[0]]] ∖ {c}⊆[[0]])" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p16" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p18"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p18"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="remove ¬ in ¬¬([[1]]∈[[0]]∧(container(Pat))∼[[[0]]]⊆[[0]])" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p17" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p19"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p19"/> |
|
|
<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="p20"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p21"/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.1.1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="∀c0⦂Component·c0∈(to_free_c ∖ {c})∪(container(Pat))∼[{c}]⇒(∀sc⦂ℙ(Component)·c0∈sc⇒Pat∈dom(container{Pat ↦ {c} ⩤ container(Pat)})∧container{Pat ↦ {c} ⩤ container(Pat)}∈Model ⇸ ℙ(Component × Component))∧(∃sc⦂ℙ(Component)·c0∈sc∧(container(Pat))∼[sc] ∖ {c}⊆sc)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀c⦂Component·c∈to_free_c⇒¬(∀sc⦂ℙ(Component)·¬(c∈sc∧(container(Pat))∼[sc]⊆sc))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀c0⦂Component·c0∈to_unfold_c∪ran(to_clone_c)⇒(∀sc⦂ℙ(Component)·c0∈sc⇒Pat∈dom(container{Pat ↦ {c} ⩤ container(Pat)})∧container{Pat ↦ {c} ⩤ container(Pat)}∈Model ⇸ ℙ(Component × Component))∧¬(∀sc⦂ℙ(Component)·¬(c0∈sc∧(container(Pat))∼[sc] ∖ {c}⊆sc))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c∉to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="∀c⦂Component·c∈to_free_c⇒(∃sc⦂ℙ(Component)·c∈sc∧(container(Pat))∼[sc]⊆sc)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀c0⦂Component·c0∈(to_free_c ∖ {c})∪(container(Pat))∼[{c}]⇒(∀sc⦂ℙ(Component)·c0∈sc⇒Pat∈dom(container{Pat ↦ {c} ⩤ container(Pat)})∧container{Pat ↦ {c} ⩤ container(Pat)}∈Model ⇸ ℙ(Component × Component))∧¬(∀sc⦂ℙ(Component)·¬(c0∈sc∧(container(Pat))∼[sc] ∖ {c}⊆sc))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="∀c⦂Component·c∈to_free_c⇒(∃sc⦂ℙ(Component)·¬¬(c∈sc∧(container(Pat))∼[sc]⊆sc))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="¬c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀c0⦂Component·Pat∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)∧(c0∈(to_free_c ∖ {c})∪(container(Pat))∼[{c}]⇒(∀sc⦂ℙ(Component)·c0∈sc⇒Pat∈dom(container{Pat ↦ {c} ⩤ container(Pat)})∧container{Pat ↦ {c} ⩤ container(Pat)}∈Model ⇸ ℙ(Component × Component))∧{sc⦂ℙ(Component)·c0∈sc∧((container{Pat ↦ {c} ⩤ container(Pat)})(Pat))∼[sc]⊆sc ∣ sc}≠(∅ ⦂ ℙ(ℙ(Component))))"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Mdl∈Model"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(⋃c0⦂Component·c0∈(to_free_c ∖ {c})∪(container(Pat))∼[{c}] ∣ {c0} × inter({sc⦂ℙ(Component)·c0∈sc∧((container{Pat ↦ {c} ⩤ container(Pat)})(Pat))∼[sc]⊆sc ∣ sc})) × (⋃c0⦂Component·c0∈to_unfold_c∪ran(to_clone_c) ∣ {c0} × inter({sc⦂ℙ(Component)·c0∈sc∧((container{Pat ↦ {c} ⩤ container(Pat)})(Pat))∼[sc]⊆sc ∣ sc}))⊂(⋃c⦂Component·c∈to_free_c ∣ {c} × inter({sc⦂ℙ(Component)·c∈sc∧(container(Pat))∼[sc]⊆sc ∣ sc})) × (⋃c⦂Component·c∈to_unfold_c∪ran(to_clone_c) ∣ {c} × inter({sc⦂ℙ(Component)·c∈sc∧(container(Pat))∼[sc]⊆sc ∣ sc}))"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀c⦂Component·c∈to_free_c⇒{sc⦂ℙ(Component)·c∈sc∧(container(Pat))∼[sc]⊆sc ∣ sc}≠(∅ ⦂ ℙ(ℙ(Component)))"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀c⦂Component·c∈to_unfold_c∪ran(to_clone_c)⇒{sc⦂ℙ(Component)·c∈sc∧(container(Pat))∼[sc]⊆sc ∣ sc}≠(∅ ⦂ ℙ(ℙ(Component)))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="(⋃c0⦂Component·c0∈(to_free_c ∖ {c})∪(container(Pat))∼[{c}] ∣ {c0} × inter({sc⦂ℙ(Component)·c0∈sc∧(container(Pat))∼[sc] ∖ {c}⊆sc ∣ sc})) × (⋃c0⦂Component·c0∈to_unfold_c∪ran(to_clone_c) ∣ {c0} × inter({sc⦂ℙ(Component)·c0∈sc∧(container(Pat))∼[sc] ∖ {c}⊆sc ∣ sc}))⊂(⋃c⦂Component·c∈to_free_c ∣ {c} × inter({sc⦂ℙ(Component)·c∈sc∧(container(Pat))∼[sc]⊆sc ∣ sc})) × (⋃c⦂Component·c∈to_unfold_c∪ran(to_clone_c) ∣ {c} × inter({sc⦂ℙ(Component)·c∈sc∧(container(Pat))∼[sc]⊆sc ∣ sc}))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="∀c0⦂Component·c0∈(to_free_c ∖ {c})∪(container(Pat))∼[{c}]⇒(∀sc⦂ℙ(Component)·c0∈sc⇒Pat∈dom(container{Pat ↦ {c} ⩤ container(Pat)})∧container{Pat ↦ {c} ⩤ container(Pat)}∈Model ⇸ ℙ(Component × Component))∧(∃sc⦂ℙ(Component)·¬¬(c0∈sc∧(container(Pat))∼[sc] ∖ {c}⊆sc))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀c0⦂Component·c0∈to_unfold_c∪ran(to_clone_c)⇒(∀sc⦂ℙ(Component)·c0∈sc⇒Pat∈dom(container{Pat ↦ {c} ⩤ container(Pat)})∧container{Pat ↦ {c} ⩤ container(Pat)}∈Model ⇸ ℙ(Component × Component))∧{sc⦂ℙ(Component)·c0∈sc∧((container{Pat ↦ {c} ⩤ container(Pat)})(Pat))∼[sc]⊆sc ∣ sc}≠(∅ ⦂ ℙ(ℙ(Component)))"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀c⦂Component·c∈to_unfold_c∪ran(to_clone_c)⇒¬(∀sc⦂ℙ(Component)·¬(c∈sc∧(container(Pat))∼[sc]⊆sc))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.rn"/> |
|
|
<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.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="apply_pattern/to_unfold_c/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p6" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p7"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p8"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/> |
|
|
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p10"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p5,p3,p4,p2,p1"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R500"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.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="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="container[dom(inst_components)]⊆dom(inst_components)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="containers∈Component ↔ Component"> |
|
|
<org.eventb.core.prIdent name="containers" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="dom(inst_components) ◁ container;inst_components⊆inst_components;container"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="inst_components∈components[{Inst}] ⤔ components[{Mdl}]"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="new_components∈components[{Inst}] ∖ dom(inst_components) ↣ Component ∖ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="¬Inst=Mdl"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="to_unfold_c⊆(components∪({Mdl} × ran(new_components)))[{Pat}]"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="clone_c/to_unfold_c/INV" 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" 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="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p28"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p23" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p27"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p1,p8,p27,p9,p10,p2,p11,p12,p13,p14,p29,p15,p16,p4,p17,p18,p5,p6,p7,p20,p21,p22,p25,p26"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p24,p19,p3,p1,p8,p27,p9,p10,p2,p11,p12,p13,p14,p15,p16,p4,p17,p18,p5,p6,p7,p20,p21,p22,p25,p26"> |
|
|
<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.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="cloned_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(to_unfold_c ∖ {c})∪ran(cloned_c)⊆(components{Pat ↦ components(Pat)∪ran(cloned_c)})(Pat)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="cloned_c∈(container(Pat))∼[{to_clone_c(c)}] ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="to_clone_c∈Component ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Pat∈dom(components{Pat ↦ components(Pat)∪ran(cloned_c)})"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="components{Pat ↦ components(Pat)∪ran(cloned_c)}∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="c∈dom(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="to_unfold_c ∖ {c}⊆components(Pat)∪ran(cloned_c)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.mngHyp"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="free_c/to_unfold_c/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4" 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="p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p4,p1,p16,p17,p18,p19,p20,p21,p22,p23"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Z3" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4"> |
|
|
<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="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c∉to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="components{Pat ↦ components(Pat) ∖ {c}}∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="Pat∈dom(components{Pat ↦ components(Pat) ∖ {c}})"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="to_free_c⊆components(Pat)"> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="Pat∈Pattern"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="to_unfold_c⊆(components{Pat ↦ components(Pat) ∖ {c}})(Pat)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<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="clone_c/cm/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="ae" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7,p8" org.eventb.core.prSets="Component,Model" org.eventb.core.psManual="true"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p9" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p10"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p11"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ hyp mp (inst Pat)" org.eventb.core.prHyps="p7"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p7"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p12" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p1"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p7"/> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p1" org.eventb.core.prHyps="p1"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prHyps="p13"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p7"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ hyp (inst Pat)" org.eventb.core.prHyps="p6"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p12" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prHyps="p14"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p6"/> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (c_multiplicity(Pat)∪(cloned_c∼;c_multiplicity(Pat))∈Component ⇸ ℕ)" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p15"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p15" org.eventb.core.prHyps="p2,p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p16"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p16" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p12" org.eventb.core.prHyps=""/> |
|
|
</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="p17" org.eventb.core.prHyps="p3,p2"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p17" org.eventb.core.prHyps="p4,p5,p8,p13,p14,p3,p2"> |
|
|
<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.prAnte name=")" org.eventb.core.prHyps="p3,p2,p17"> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ae (c_multiplicity(Pat)∪(cloned_c∼;c_multiplicity(Pat)))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p15"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p15" org.eventb.core.prHyps="p2,p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p16"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p16" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p12" org.eventb.core.prHyps=""/> |
|
|
</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.prHyps="p3,p2,p18"> |
|
|
<org.eventb.core.prIdent name="ae" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he with ae=c_multiplicity(Pat)∪(cloned_c∼;c_multiplicity(Pat))" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p18"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p20"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p17" org.eventb.core.prInfHyps="p19"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p17"/> |
|
|
<org.eventb.core.prRule name="r11" 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="DESELECT0" org.eventb.core.prHyps="p18"/> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p20" org.eventb.core.prHyps="p4,p5,p8,p13,p14,p3,p2,p19"> |
|
|
<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.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".expr" org.eventb.core.prRef="e0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p17"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".exprs" org.eventb.core.prRef="e1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".exprs" org.eventb.core.prRef="e1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="cloned_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="ae=c_multiplicity(Pat)∪(cloned_c∼;c_multiplicity(Pat))"> |
|
|
<org.eventb.core.prIdent name="ae" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="ae∈Component ⇸ ℕ"> |
|
|
<org.eventb.core.prIdent name="ae" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="cloned_c∈(container(Pat))∼[{to_clone_c(c)}] ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="c_multiplicity(Pat)∈components(Pat) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="c_multiplicity(Pat)∪(cloned_c∼;c_multiplicity(Pat))∈Component ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="Pat∈dom(c_multiplicity)∧c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="container(Pat)∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="c∈dom(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="c_multiplicity{Pat ↦ ae}∈Pattern → (Component ⇸ ℕ)"> |
|
|
<org.eventb.core.prIdent name="ae" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="c_multiplicity{Pat ↦ c_multiplicity(Pat)∪(cloned_c∼;c_multiplicity(Pat))}∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prExpr name="e1" org.eventb.core.expression="Pat"/> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="c_multiplicity(Pat)∪(cloned_c∼;c_multiplicity(Pat))"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.allD"/> |
|
|
<org.eventb.core.prReas name="r10" org.eventb.core.prRID="org.eventb.core.seqprover.he:1"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.hyp"/> |
|
|
<org.eventb.core.prReas name="r8" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.allmpD:0"/> |
|
|
<org.eventb.core.prReas name="r9" org.eventb.core.prRID="org.eventb.core.seqprover.ae"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r11" org.eventb.core.prRID="org.eventb.core.seqprover.mngHyp"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.cut"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="clone_c/mult/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" 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="p1,p2,p3,p4,p5,p6,p7,p8,p25,p10,p11,p12,p13,p14,p15,p17,p18,p19,p20,p21,p22,p23,p24"/> |
|
|
<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="p16,p9,p1,p2,p3,p4,p5,p6,p7,p8,p10,p11,p12,p13,p14,p15,p17,p18,p19,p20,p21,p22,p23,p24"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="cloned_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="cloned_c∈(container(Pat))∼[{to_clone_c(c)}] ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="to_clone_c∈Component ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(c_multiplicity)∧c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="c∈dom(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<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="instanciate_pattern/cm/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2" 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="generalized MP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p3"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p3" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p8"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p5"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p6" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p7"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p8" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(components)∧components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<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.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<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.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/cm/INV" org.eventb.core.confidence="0" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="" org.eventb.core.prSets="Component,Model" org.eventb.core.psManual="true"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p1" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p2"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p3"/> |
|
|
<org.eventb.core.prRule name="r2" 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,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19"/> |
|
|
<org.eventb.core.prRule name="r2" 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="p14,p20"/> |
|
|
<org.eventb.core.prRule name="r2" 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="DESELECT0" org.eventb.core.prHyps="p7"/> |
|
|
<org.eventb.core.prRule name="r0" 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="p23"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p21" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p22"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p24"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p25" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p26"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p26" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p27"/> |
|
|
</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.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="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="c_mult_others" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model → ℙ(Component)"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="Pat∈Pattern"> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ1)"> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·⊤∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" 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.prPred name="p19" org.eventb.core.predicate="Mdl∈dom(components)"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="to_free_c⊆components(Pat)"> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="c_multiplicityc_mult_others{pc⦂Component·pc∈dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])}∈({Inst} ⩤ components)[Pattern] → ℕ"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀pc⦂Component·pc∈dom(inst_components)⇒finite(inst_components[{pc}])"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ1"> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="Pat∈dom(components)"> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.mngHyp"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/cm_ctr/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="pc,ae,x,x0,x1,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,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38" org.eventb.core.prSets="Component,Model" org.eventb.core.psManual="true"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p34" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p39"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p40"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p41"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p41" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p43" org.eventb.core.prHyps="p42"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p43" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p45" org.eventb.core.prHyps="p44"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p45" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p47" org.eventb.core.prHyps="p46"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p47" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p48"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p48" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p49"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m=Pat" org.eventb.core.prHyps="p44"> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p46" org.eventb.core.prInfHyps="p50"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p46,p42"/> |
|
|
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p9"/> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with Pat=Inst" org.eventb.core.prHyps="p50"> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p32" org.eventb.core.prInfHyps="p51"/> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p2" org.eventb.core.prInfHyps="p52"/> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p53"/> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p54"/> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p55"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p7,p2,p9,p32,p20,p44"/> |
|
|
<org.eventb.core.prHypAction name="SELECT6" org.eventb.core.prHyps="p46"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p49" org.eventb.core.prHyps="p29,p9,p31,p23,p5,p12,p27,p15,p35,p30,p22,p25,p16,p36,p13,p10,p17,p37,p28,p18,p1,p38,p33,p26,p8,p19,p3,p6,p24,p14,p11,p4,p32,p21,p2,p7,p20,p39,p42,p44,p46,p50,p51,p52,p53,p54,p55"> |
|
|
<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.prAnte name="(" org.eventb.core.prGoal="p56"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees pc)" org.eventb.core.prGoal="p56" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p57"> |
|
|
<org.eventb.core.prIdent name="pc" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m=Pat" org.eventb.core.prHyps="p44"> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p46" org.eventb.core.prInfHyps="p50"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p46,p42"/> |
|
|
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p9"/> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with Pat=Inst" org.eventb.core.prHyps="p50"> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p32" org.eventb.core.prInfHyps="p51"/> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p2" org.eventb.core.prInfHyps="p52"/> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p53"/> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p54"/> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p55"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p7,p2,p9,p32,p20,p44"/> |
|
|
<org.eventb.core.prHypAction name="SELECT6" org.eventb.core.prHyps="p46"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p57" org.eventb.core.prHyps="p29,p9,p31,p23,p5,p12,p27,p15,p35,p30,p22,p25,p16,p36,p13,p10,p17,p37,p28,p18,p1,p38,p33,p26,p8,p19,p3,p6,p24,p14,p11,p4,p32,p21,p2,p7,p20,p39,p42,p44,p46,p50,p51,p52,p53,p54,p55"> |
|
|
<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="p59" org.eventb.core.prHyps="p58"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p59" org.eventb.core.prHyps="p5"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p60"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m=Pat" org.eventb.core.prGoal="p60" org.eventb.core.prHyps="p44"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p62"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p58" org.eventb.core.prInfHyps="p61"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p42,p58"/> |
|
|
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p9"/> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah ({pc·pc∈dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])}∈dom(inst_components) → ℕ)" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p63"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees pc)" org.eventb.core.prGoal="p63" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p64"> |
|
|
<org.eventb.core.prIdent name="pc" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p64" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p66" org.eventb.core.prHyps="p65"> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="finite set" org.eventb.core.prGoal="p66" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p67"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p67" org.eventb.core.prHyps="p13,p21"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p68"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p68" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p69"> |
|
|
<org.eventb.core.prRule name="r12" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p69" org.eventb.core.prHyps=""/> |
|
|
</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="p70"> |
|
|
<org.eventb.core.prRule name="r13" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ hyp (inst Mdl)" org.eventb.core.prHyps="p12"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p69"> |
|
|
<org.eventb.core.prRule name="r12" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p69" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prHyps="p70"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p12"/> |
|
|
<org.eventb.core.prRule name="r14" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p70" org.eventb.core.prHyps="p70"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".exprs" org.eventb.core.prRef="e0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prGoal="p71"> |
|
|
<org.eventb.core.prRule name="r15" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p71" org.eventb.core.prHyps="p2,p9,p7,p65,p25,p61,p32,p20,p44"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R30000"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".expr" org.eventb.core.prRef="e1"/> |
|
|
</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="p72" org.eventb.core.prHyps="p63"> |
|
|
<org.eventb.core.prRule name="r16" 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="DESELECT0" org.eventb.core.prHyps="p2,p9,p7,p25,p61,p20,p44"/> |
|
|
<org.eventb.core.prRule name="r16" 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="DESELECT0" org.eventb.core.prHyps="p63"/> |
|
|
<org.eventb.core.prRule name="r16" 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="p5"/> |
|
|
<org.eventb.core.prRule name="r17" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="remove ∈ in goal" org.eventb.core.prGoal="p72" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p73"> |
|
|
<org.eventb.core.prRule name="r17" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="remove ∈ in goal" org.eventb.core.prGoal="p73" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p74"> |
|
|
<org.eventb.core.prRule name="r18" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p74" org.eventb.core.prHyps="p32,p5"> |
|
|
<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.prAnte name="(" org.eventb.core.prGoal="p75"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p75" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p76"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees x,x0,x1)" org.eventb.core.prGoal="p76" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p77"> |
|
|
<org.eventb.core.prIdent name="x" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="x0" org.eventb.core.type="ℤ"/> |
|
|
<org.eventb.core.prIdent name="x1" org.eventb.core.type="ℤ"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p77" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p81" org.eventb.core.prHyps="p78,p79,p80"> |
|
|
<org.eventb.core.prRule name="r19" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he with card(inst_components[{x}])=x0" org.eventb.core.prGoal="p81" org.eventb.core.prHyps="p79"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p80"> |
|
|
<org.eventb.core.prRule name="r14" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p80" org.eventb.core.prHyps="p80"/> |
|
|
</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.prAnte name="(" org.eventb.core.prGoal="p82"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p82" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p69"> |
|
|
<org.eventb.core.prRule name="r12" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p69" org.eventb.core.prHyps=""/> |
|
|
</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.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.prHyps="p63,p72"> |
|
|
<org.eventb.core.prRule name="r20" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ae ({pc·pc∈dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])})" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p63"> |
|
|
<org.eventb.core.prRule name="r14" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p63" org.eventb.core.prHyps="p63"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prHyps="p63,p83"> |
|
|
<org.eventb.core.prIdent name="ae" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prRule name="r19" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he with ae={pc·pc∈dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])}" org.eventb.core.prGoal="p62" org.eventb.core.prHyps="p83"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p85"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p72" org.eventb.core.prInfHyps="p84"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p72"/> |
|
|
<org.eventb.core.prRule name="r16" 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="DESELECT0" org.eventb.core.prHyps="p83"/> |
|
|
<org.eventb.core.prRule name="r16" 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="DESELECT0" org.eventb.core.prHyps="p2,p9,p63,p25,p61,p20,p44"/> |
|
|
<org.eventb.core.prRule name="r18" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p85" org.eventb.core.prHyps="p7,p32,p84"> |
|
|
<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.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".expr" org.eventb.core.prRef="e2"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p72"/> |
|
|
</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="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p87" org.eventb.core.prHyps="p86"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p87" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p88" org.eventb.core.prHyps="p46"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p88" org.eventb.core.prHyps="p22"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p89"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p89" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p90"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m=Inst" org.eventb.core.prGoal="p90" org.eventb.core.prHyps="p46"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p92"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p42" org.eventb.core.prInfHyps="p55"/> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p86" org.eventb.core.prInfHyps="p91"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT2" org.eventb.core.prHyps="p86,p42"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p92" org.eventb.core.prHyps="p29,p9,p31,p23,p5,p12,p27,p15,p35,p30,p22,p25,p16,p36,p13,p10,p17,p37,p28,p18,p1,p38,p33,p26,p8,p19,p3,p6,p24,p14,p11,p4,p32,p21,p2,p7,p20,p39,p42,p86,p46,p55,p91"> |
|
|
<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.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p93" org.eventb.core.prHyps="p58"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p93" org.eventb.core.prHyps="p22"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p94"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p94" org.eventb.core.prHyps="p5"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p95"> |
|
|
<org.eventb.core.prRule name="r15" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p95" org.eventb.core.prHyps="p2,p42,p7,p25,p58,p86,p32,p20"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R500"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</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.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="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_mult_others" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="pat_roots" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container(Pat)"/> |
|
|
<org.eventb.core.prPred name="p68" org.eventb.core.predicate="⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p92" org.eventb.core.predicate="c_multiplicity(Inst)=(∅ ⦂ ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p81" org.eventb.core.predicate="x0=x1"> |
|
|
<org.eventb.core.prIdent name="x0" org.eventb.core.type="ℤ"/> |
|
|
<org.eventb.core.prIdent name="x1" org.eventb.core.type="ℤ"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(inst2pat_c(c))"/> |
|
|
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="c_mult_others∈components(Inst) ∖ dom(inst_components) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="c_mult_others∈components(Pat) ∖ dom(inst_components) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p89" org.eventb.core.predicate="c_multiplicity(m)∈(∅ ⦂ ℙ(Component)) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="Pat=Inst"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p73" org.eventb.core.predicate="{pc⦂Component·pc∈dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])}∈dom(inst_components) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p80" org.eventb.core.predicate="card(inst_components[{x}])=x1"> |
|
|
<org.eventb.core.prIdent name="x" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="x1" org.eventb.core.type="ℤ"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p65" org.eventb.core.predicate="pc∈dom(inst_components)"> |
|
|
<org.eventb.core.prIdent name="pc" org.eventb.core.type="Component"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="to_clone_c∈components(Inst) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="to_clone_c⊆inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="c_mult_others{pc⦂Component·pc∈dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])}∈(∅ ⦂ ℙ(Component)) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p58" org.eventb.core.predicate="¬m=Inst"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p76" org.eventb.core.predicate="∀x⦂Component,x0⦂ℤ,x1⦂ℤ·x∈dom(inst_components)∧card(inst_components[{x}])=x0∧card(inst_components[{x}])=x1⇒x0=x1"/> |
|
|
<org.eventb.core.prPred name="p66" org.eventb.core.predicate="finite(inst_components[{pc}])"> |
|
|
<org.eventb.core.prIdent name="pc" org.eventb.core.type="Component"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="pat_roots=components(Pat) ∖ dom(container(Pat))"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Mdl∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p78" org.eventb.core.predicate="x∈dom(inst_components)"> |
|
|
<org.eventb.core.prIdent name="x" org.eventb.core.type="Component"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p70" org.eventb.core.predicate="finite(components(Mdl))"/> |
|
|
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="m∈Pattern"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p83" org.eventb.core.predicate="ae={pc⦂Component·pc∈dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])}"> |
|
|
<org.eventb.core.prIdent name="ae" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="inst2pat_c;container(Pat)=container(Inst);inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p61" org.eventb.core.predicate="¬Pat=Inst"/> |
|
|
<org.eventb.core.prPred name="p82" org.eventb.core.predicate="dom({pc⦂Component·pc∈dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])})=dom(inst_components)"/> |
|
|
<org.eventb.core.prPred name="p94" org.eventb.core.predicate="c_multiplicity(m)∈({Inst} ⩤ components)(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p84" org.eventb.core.predicate="ae∈dom(inst_components) → ℕ"> |
|
|
<org.eventb.core.prIdent name="ae" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="pat_roots=components(Inst) ∖ dom(container(Inst))"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="inst2pat_c∈components(Inst) → components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p63" org.eventb.core.predicate="∀pc⦂Component·pc∈dom(inst_components)⇒finite(inst_components[{pc}])"/> |
|
|
<org.eventb.core.prPred name="p87" org.eventb.core.predicate="({Pat} ⩤ c_multiplicity)(m)∈(components{Inst ↦ (∅ ⦂ ℙ(Component))})(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="Inst∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p67" org.eventb.core.predicate="Mdl∈dom(components)∧components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p79" org.eventb.core.predicate="card(inst_components[{x}])=x0"> |
|
|
<org.eventb.core.prIdent name="x" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="x0" org.eventb.core.type="ℤ"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="∀m⦂Model·container(m)∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p90" org.eventb.core.predicate="c_multiplicity(m)=(∅ ⦂ ℙ(Component×ℤ))"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="m∈Pattern⇒(c_multiplicity{Pat ↦ c_mult_others{pc⦂Component·pc∈dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])}})(m)∈(components{Inst ↦ (∅ ⦂ ℙ(Component))})(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="inst_components∈components(Pat) ↔ components(Mdl)"/> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p64" org.eventb.core.predicate="pc∈dom(inst_components)⇒finite(inst_components[{pc}])"> |
|
|
<org.eventb.core.prIdent name="pc" org.eventb.core.type="Component"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="m=Pat"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p60" org.eventb.core.predicate="c_mult_others{pc⦂Component·pc∈dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])}∈components(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="inst_components∼∈components(Mdl) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p85" org.eventb.core.predicate="c_mult_othersae∈components(Pat) → ℕ"> |
|
|
<org.eventb.core.prIdent name="ae" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="to_unfold_c∩ran(to_clone_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒(c_multiplicity{Pat ↦ c_mult_others{pc⦂Component·pc∈dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])}})(m)∈(components{Inst ↦ (∅ ⦂ ℙ(Component))})(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="to_unfold_c∩dom(container(Pat))=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p75" org.eventb.core.predicate="∀x⦂Component,x0⦂ℤ,x1⦂ℤ·x ↦ x0∈{pc⦂Component·pc∈dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])}∧x ↦ x1∈{pc⦂Component·pc∈dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])}⇒x0=x1"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Inst∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="inst_components∈components(Inst) ↔ components(Mdl)"/> |
|
|
<org.eventb.core.prPred name="p62" org.eventb.core.predicate="c_mult_others{pc⦂Component·pc∈dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])}∈components(Pat) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p71" org.eventb.core.predicate="inst_components[{pc}]⊆components(Mdl)"> |
|
|
<org.eventb.core.prIdent name="pc" org.eventb.core.type="Component"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="Inst∈dom(container)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="to_unfold_c_in∈components(Pat) ↔ components(Inst)"/> |
|
|
<org.eventb.core.prPred name="p91" org.eventb.core.predicate="¬Inst=Pat"/> |
|
|
<org.eventb.core.prPred name="p74" org.eventb.core.predicate="{pc⦂Component·pc∈dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])}∈dom(inst_components) ↔ ℕ"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container(Pat))"/> |
|
|
<org.eventb.core.prPred name="p59" org.eventb.core.predicate="c_mult_others{pc⦂Component·pc∈dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])}∈({Inst} ⩤ components)(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p93" org.eventb.core.predicate="({Pat} ⩤ c_multiplicity)(m)∈({Inst} ⩤ components)(m) → ℕ"> |
|
|
<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="c_mult_others{pc⦂Component·pc∈dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])}∈(components{Inst ↦ (∅ ⦂ ℙ(Component))})(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p72" org.eventb.core.predicate="{pc⦂Component·pc∈dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])}∈dom(inst_components) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p88" org.eventb.core.predicate="({Pat} ⩤ c_multiplicity)(m)∈(∅ ⦂ ℙ(Component)) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="c_mult_others=(∅ ⦂ ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p69" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p77" org.eventb.core.predicate="x∈dom(inst_components)∧card(inst_components[{x}])=x0∧card(inst_components[{x}])=x1⇒x0=x1"> |
|
|
<org.eventb.core.prIdent name="x" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="x0" org.eventb.core.type="ℤ"/> |
|
|
<org.eventb.core.prIdent name="x1" org.eventb.core.type="ℤ"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(c_multiplicity{Pat ↦ c_mult_others{pc⦂Component·pc∈dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])}})(m)∈(components{Inst ↦ (∅ ⦂ ℙ(Component))})(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p57" org.eventb.core.predicate="¬pc∈dom(inst_components)"> |
|
|
<org.eventb.core.prIdent name="pc" org.eventb.core.type="Component"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="c_mult_others=(∅ ⦂ ℙ(Component×ℤ))∧(∀pc⦂Component·¬pc∈dom(inst_components))"/> |
|
|
<org.eventb.core.prPred name="p95" org.eventb.core.predicate="c_multiplicity(m)∈components(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="∀pc⦂Component·¬pc∈dom(inst_components)"/> |
|
|
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="inst_components∼∈components(Mdl) ⇸ components(Inst)"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="m=Inst"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="Inst∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p86" org.eventb.core.predicate="¬m=Pat"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·f∈components(m) ↔ components(m)∧container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="Mdl"/> |
|
|
<org.eventb.core.prExpr name="e1" org.eventb.core.expression="components(Mdl)"/> |
|
|
<org.eventb.core.prExpr name="e2" org.eventb.core.expression="{pc⦂Component·pc∈dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])}"/> |
|
|
<org.eventb.core.prReas name="r18" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r17" org.eventb.core.prRID="org.eventb.core.seqprover.rmL1"/> |
|
|
<org.eventb.core.prReas name="r16" org.eventb.core.prRID="org.eventb.core.seqprover.mngHyp"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/> |
|
|
<org.eventb.core.prReas name="r10" org.eventb.core.prRID="org.eventb.core.seqprover.finiteSet:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.impI"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
<org.eventb.core.prReas name="r8" org.eventb.core.prRID="org.eventb.core.seqprover.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r14" org.eventb.core.prRID="org.eventb.core.seqprover.hyp"/> |
|
|
<org.eventb.core.prReas name="r9" org.eventb.core.prRID="org.eventb.core.seqprover.cut"/> |
|
|
<org.eventb.core.prReas name="r12" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r20" org.eventb.core.prRID="org.eventb.core.seqprover.ae"/> |
|
|
<org.eventb.core.prReas name="r13" org.eventb.core.prRID="org.eventb.core.seqprover.allD"/> |
|
|
<org.eventb.core.prReas name="r15" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r19" org.eventb.core.prRID="org.eventb.core.seqprover.he:1"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.funOvr:1"/> |
|
|
<org.eventb.core.prReas name="r11" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/c_mult/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="pc" 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"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p19" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p29"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p30"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p31"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE2" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p32"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p32" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p33"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees pc)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p34"> |
|
|
<org.eventb.core.prIdent name="pc" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p34" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p36" org.eventb.core.prHyps="p35"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p36" org.eventb.core.prHyps="p26,p9,p28,p6,p8,p11,p3,p18,p17,p23,p20,p7,p27,p12,p1,p21,p15,p14,p2,p4,p24,p10,p25,p16,p13,p22,p29,p33,p35"> |
|
|
<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.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="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_mult_others" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="to_unfold_c∩ran(to_clone_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="components∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="c_multiplicity∈components[Pattern] → ℕ"/> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·⊤∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="pc∈dom(inst_components)"> |
|
|
<org.eventb.core.prIdent name="pc" org.eventb.core.type="Component"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="to_clone_c⊆inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="inst_components∼∈components[{Mdl}] ⇸ components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="finite(inst_components[{pc}])"> |
|
|
<org.eventb.core.prIdent name="pc" org.eventb.core.type="Component"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="inst_components∈components[{Pat}] ↔ components[{Mdl}]"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="to_clone_c∈components[{Inst}] ⇸ components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="c_mult_others∈components[{Pat}] ∖ dom(inst_components) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀pc⦂Component·pc∈dom(inst_components)⇒finite(inst_components[{pc}])"/> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="Inst∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="¬Inst=Mdl"/> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="pc∈dom(inst_components)⇒finite(inst_components[{pc}])"> |
|
|
<org.eventb.core.prIdent name="pc" org.eventb.core.type="Component"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.impI"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="to_clone_c_mult/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,p29,p30" 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="p27,p3,p11,p29,p20"/> |
|
|
<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,p23,p24,p25,p26,p27,p28,p29,p30"> |
|
|
<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="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="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="height" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="∀c⦂Component·c∈components[{Pat}]∩ran(container)⇒height(c)=1+max(height[container∼[{c}]])"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="height∈components[{Pat}] → ℕ"/> |
|
|
<org.eventb.core.prPred name="p0" 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.prPred name="p7" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀c⦂Component·c∈dom(to_unfold_c_in)⇒c_multiplicity(c)>0"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="components∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="c_multiplicity∈components[Pattern] → ℕ"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="∀c⦂Component·c∈components[{Pat}] ∖ ran(container)⇒height(c)=0"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="ran(to_unfold_c_in)⊆dom(inst2pat_c)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="(inst2pat_c;to_unfold_c_in)∩container=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="∀c⦂Component·finite(to_unfold_c_in[{c}])"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="∀c⦂Component·finite(container∼[{c}])"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="Inst∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<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="instanciate_pattern/to_clone_c_mult/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="" org.eventb.core.prSets="Component"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p3"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p1" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p2"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p3" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="c_mult" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀c⦂Component·c∈dom(∅ ⦂ ℙ(Component×Component))⇒(∅ ⦂ ℙ(Component×ℤ))(c)∈1 ‥ c_mult((∅ ⦂ ℙ(Component×Component))(c))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<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="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<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="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_c/c_index_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4" 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="p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p1,p3,p19,p20,p21,p22,p23,p24,p25"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Z3" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4"> |
|
|
<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="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(Pat)(c) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="c_index∪new_c∼∈dom(to_clone_c∪(ran(new_c) × {c})) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="Pat∈Pattern"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="c∈dom(c_multiplicity(Pat))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="c_multiplicity(Pat)∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="to_free_c⊆components(Pat)"> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<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="unfold_c/to_clone_c_mult/INV" 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" 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="p1,p9,p2,p11,p12,p13,p15,p26,p16,p17,p4,p18,p19,p5,p20,p6,p7,p8,p21,p22,p23,p24,p25"/> |
|
|
<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="p14,p10,p3,p1,p9,p2,p11,p12,p13,p15,p16,p17,p4,p18,p19,p5,p20,p6,p7,p8,p21,p22,p23,p24,p25"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(Pat)(c) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="c∈dom(c_multiplicity(Pat))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀c0⦂Component·c0∈dom(c_index∪new_c∼)⇒(c_index∪new_c∼)(c0)∈1 ‥ (c_multiplicity{Pat ↦ c_multiplicity(Pat)∪(ran(new_c) × {1})})(Pat)((to_clone_c∪(ran(new_c) × {c}))(c0))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="c_multiplicity(Pat)∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<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="clone_c/c_index_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2" org.eventb.core.prSets="Component"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p7"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p4"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p8"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p7" org.eventb.core.prHyps="p2,p1"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R500"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<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="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="c∈dom(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<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="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="{c} ⩤ c_index∈dom(to_clone_c) ∖ {c} ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="{c} ⩤ c_index∈dom({c} ⩤ to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="clone_c/to_clone_c_mult/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p4"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p7"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p2"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p2" org.eventb.core.prHyps="p2"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.1.1.1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</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="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_clone_c∈components(Inst) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="∀c0⦂Component·c0∈dom(c_index)⇒c_index(c0)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c0))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀c0⦂Component·c0∈dom(c_index)⇒c_index(c0)∈1 ‥ c_multiplicity(Pat)(({c} ⩤ to_clone_c)(c0))"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.hyp"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="comp_finite/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="m" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1" 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="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p4"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p2" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p3"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p5"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p4" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p6"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p6" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p7"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p7" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p8"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p8" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p9"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p9" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1"/> |
|
|
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e0"/> |
|
|
</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="p10"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p10" org.eventb.core.prHyps="p1"/> |
|
|
</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.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="(∀m⦂Model·m∈dom(components))∧components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="m∈dom(components)"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<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.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="m∈Model"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·m∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<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.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·m∈dom(components)∧components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="Model"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.isFunGoal"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.totalDom:2"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_c/comp_finite/INV" 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,p20,p21,p22,p23" org.eventb.core.prSets="Component,Model" org.eventb.core.psManual="true"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p21" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p24"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p25"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p26"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p26" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p27"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p28" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p29"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p29" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p30"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p30" org.eventb.core.prHyps="p24,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p22,p23,p27"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p31"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="finite of range of a function" org.eventb.core.prGoal="p31" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p32"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p32" org.eventb.core.prHyps="p13,p14,p15,p5"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p33"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p33" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p34"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p34" org.eventb.core.prHyps=""/> |
|
|
</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="p35"> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p35" org.eventb.core.prHyps="p16,p2,p7,p27"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R30000"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prGoal="p36"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p36" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p34"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p34" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".expr" org.eventb.core.prRef="e0"/> |
|
|
</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="p38" org.eventb.core.prHyps="p37"> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p38" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p39"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p39" org.eventb.core.prHyps="p24,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p37,p20,p22,p23"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</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.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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="finite(ran(new_c))"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="finite(components(Pat)∪ran(new_c))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(Pat)(c) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="finite(components(Pat))∧finite(ran(new_c))"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="finite((components{Pat ↦ components(Pat)∪ran(new_c)})(m))"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="finite(1 ‥ c_multiplicity(Pat)(c))"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="c∈dom(c_multiplicity(Pat))"/> |
|
|
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="finite(({Pat} ⩤ components)(m))"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="finite(components(m))"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(Pat)(c) ⇸ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="⊤∧⊤∧⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="Pat∈dom(c_multiplicity)∧c_multiplicity∈Model ⇸ ℙ(Component × ℤ)∧c∈dom(c_multiplicity(Pat))∧c_multiplicity(Pat)∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="c_multiplicity(Pat)∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·finite((components{Pat ↦ components(Pat)∪ran(new_c)})(m))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="finite(components(Pat))"/> |
|
|
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="¬m=Pat"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="m=Pat"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="1 ‥ c_multiplicity(Pat)(c) ⇸ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.funOvr:1"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
<org.eventb.core.prReas name="r8" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/> |
|
|
<org.eventb.core.prReas name="r9" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<org.eventb.core.prReas name="r10" org.eventb.core.prRID="org.eventb.core.seqprover.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.finiteFunRan"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="clone_c/comp_finite/INV" 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,p20,p21,p22" org.eventb.core.prSets="Component,Model" org.eventb.core.psManual="true"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p19" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p23"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p24"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p25"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p25" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p27" org.eventb.core.prHyps="p26"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p28"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p28" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p29"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p29" org.eventb.core.prHyps="p1,p23,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p20,p21,p22,p26"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p30"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ hyp (inst Pat)" org.eventb.core.prHyps="p14"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p31"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p31" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prHyps="p32"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p14"/> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ hyp (inst Pat)" org.eventb.core.prHyps="p12"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p31"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p31" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prHyps="p29"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p12"/> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="finite of range of a function" org.eventb.core.prGoal="p30" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p33"> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p33" org.eventb.core.prHyps="p1,p15,p18,p22"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p34"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p34" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p31"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p31" org.eventb.core.prHyps=""/> |
|
|
</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="p35"> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p35" org.eventb.core.prHyps="p15,p7,p26,p32,p29"> |
|
|
<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.prAnte name=")" org.eventb.core.prGoal="p36"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="finite set" org.eventb.core.prGoal="p36" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p37"> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p37" org.eventb.core.prHyps="p13,p21"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p38"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p38" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p31"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p31" org.eventb.core.prHyps=""/> |
|
|
</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="p29"> |
|
|
<org.eventb.core.prRule name="r12" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p29" org.eventb.core.prHyps="p29"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prGoal="p39"> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p39" org.eventb.core.prHyps="p15,p7,p26,p32,p29"> |
|
|
<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.prExprRef name=".expr" org.eventb.core.prRef="e0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".expr" org.eventb.core.prRef="e1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".exprs" org.eventb.core.prRef="e2"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".exprs" org.eventb.core.prRef="e2"/> |
|
|
</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="p41" org.eventb.core.prHyps="p40"> |
|
|
<org.eventb.core.prRule name="r13" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p41" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p42"> |
|
|
<org.eventb.core.prRule name="r14" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p42" org.eventb.core.prHyps="p40,p12,p15,p7"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R500"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</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.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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="cloned_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="finite((components{Pat ↦ components(Pat)∪ran(cloned_c)})(m))"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="cloned_c∈(container(Pat))∼[{to_clone_c(c)}] ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="Pat∈dom(components)∧components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·finite((components{Pat ↦ components(Pat)∪ran(cloned_c)})(m))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="cloned_c∈(container(Pat))∼[{to_clone_c(c)}] ⇸ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="finite(({Pat} ⩤ components)(m))"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="Pat∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)∧c∈dom(to_clone_c)∧to_clone_c∈Component ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="finite(components(m))"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="finite(ran(cloned_c))"/> |
|
|
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="⊤∧⊤∧⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="finite((container(Pat))∼[{to_clone_c(c)}])"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="finite(components(Pat)∪ran(cloned_c))"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_clone_c∈Component ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="(container(Pat))∼[{to_clone_c(c)}]⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="finite(components(Pat))∧finite(ran(cloned_c))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="container(Pat)∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="c∈dom(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="finite(components(Pat))"/> |
|
|
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="¬m=Pat"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="m=Pat"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prExpr name="e2" org.eventb.core.expression="Pat"/> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="components(Pat)"/> |
|
|
<org.eventb.core.prExpr name="e1" org.eventb.core.expression="(container(Pat))∼[{to_clone_c(c)}] ⇸ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/> |
|
|
<org.eventb.core.prReas name="r10" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/> |
|
|
<org.eventb.core.prReas name="r14" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r11" org.eventb.core.prRID="org.eventb.core.seqprover.finiteSet:0"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.funOvr:1"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.allD"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r12" org.eventb.core.prRID="org.eventb.core.seqprover.hyp"/> |
|
|
<org.eventb.core.prReas name="r13" org.eventb.core.prRID="org.eventb.core.seqprover.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r8" org.eventb.core.prRID="org.eventb.core.seqprover.finiteFunRan"/> |
|
|
<org.eventb.core.prReas name="r9" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="free_c/comp_finite/INV" 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,p20" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p18" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p21"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p22"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p23"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p24"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p24" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p25"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p16,p10,p2,p12,p11,p14,p8,p1,p5,p19,p20,p13,p4,p17,p6,p9,p7,p15,p21,p22,p25"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p27"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p29"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p29" org.eventb.core.prHyps="p16,p10,p2,p12,p11,p14,p8,p1,p5,p19,p20,p13,p4,p17,p6,p9,p7,p15,p21,p22,p27"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</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.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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="finite(components(Pat) ∖ {c})"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="¬c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="finite(({Pat} ⩤ components)(m))"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="c∈to_free_c ∖ ran(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="finite(components(m))"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="finite((components{Pat ↦ components(Pat) ∖ {c}})(m))"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c∉to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·finite((components{Pat ↦ components(Pat) ∖ {c}})(m))"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="¬m=Pat"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="m=Pat"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.funOvr:1"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="apply_pattern/comp_finite/INV" 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,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33" org.eventb.core.prSets="Component,Model" org.eventb.core.psManual="true"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p21" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p34"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p35"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p36"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE2" org.eventb.core.prHidden="p37" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p38"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p38" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p39"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p40"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="relational image with ∪ left in goal" org.eventb.core.prGoal="p40" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p41"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p41" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p42"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p42" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p43"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p43" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p44"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="dc (m=Mdl)" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p45"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p45" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prHyps="p46"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m=Mdl" org.eventb.core.prGoal="p44" org.eventb.core.prHyps="p46"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p47"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p47" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p48"> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (ran(new_components)=new_components[components[{Inst}] ∖ dom(inst_components)])" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p45"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p45" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p49"> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p49" org.eventb.core.prHyps="p31,p23,p17,p6,p46,p13"> |
|
|
<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.prAnte name=")" org.eventb.core.prHyps="p49"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with ran(new_components)=new_components[components[{Inst}] ∖ dom(inst_components)]" org.eventb.core.prGoal="p48" org.eventb.core.prHyps="p49"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p50"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="finite of relational image of a function" org.eventb.core.prGoal="p50" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p45"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p45" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p51"> |
|
|
<org.eventb.core.prRule name="r12" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p51" org.eventb.core.prHyps="p23"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prGoal="p52"> |
|
|
<org.eventb.core.prRule name="r13" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ hyp (inst Inst)" org.eventb.core.prHyps="p6"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p45"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p45" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prHyps="p53"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p6"/> |
|
|
<org.eventb.core.prRule name="r14" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="finite set" org.eventb.core.prGoal="p52" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p45"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p45" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p53"> |
|
|
<org.eventb.core.prRule name="r15" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p53" org.eventb.core.prHyps="p53"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prGoal="p54"> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP (trivial)" org.eventb.core.prGoal="p54" org.eventb.core.prHyps=""> |
|
|
<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.prExprRef name=".expr" org.eventb.core.prRef="e0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".exprs" org.eventb.core.prRef="e1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".expr" org.eventb.core.prRef="e2"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p49"/> |
|
|
</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.prHyps="p55"> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (({Mdl} × ran(new_components))[{m}]=∅)" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p45"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p45" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p56"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p56" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p57"> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p57" org.eventb.core.prHyps="p55,p31,p23,p17,p6,p13"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prHyps="p56"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with ({Mdl} × ran(new_components))[{m}]=∅" org.eventb.core.prGoal="p44" org.eventb.core.prHyps="p56"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p58"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p58" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p45"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p56" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p57"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p45" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p56"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p46"/> |
|
|
</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="0"/> |
|
|
</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.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="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="height" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="finite(({Mdl} × ran(new_components))[{Mdl}])"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="dom(inst_components) ◁ container;inst_components⊆inst_components;container"/> |
|
|
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·⊤∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="finite(components[{m}]∪({Mdl} × ran(new_components))[{m}])"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="∀c⦂Component·c∈components[{Pat}] ∖ ran(container)⇒height(c)=0"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="container[dom(inst_components)]⊆dom(inst_components)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="ran(to_unfold_c_in)⊆dom(inst2pat_c)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))"/> |
|
|
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="finite(components[{m}])"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="(inst2pat_c;to_unfold_c_in)∩container=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="finite(components[{m}])∧finite(({Mdl} × ran(new_components))[{m}])"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="¬Inst=Mdl"/> |
|
|
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="finite(({Mdl} × ran(new_components))[{m}])"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·finite((components∪({Mdl} × ran(new_components)))[{m}])"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container"/> |
|
|
<org.eventb.core.prPred name="p57" org.eventb.core.predicate="¬m∈dom({Mdl} × ran(new_components))"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="∀c⦂Component·c∈components[{Pat}]∩ran(container)⇒height(c)=1+max(height[container∼[{c}]])"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="height∈components[{Pat}] → ℕ"/> |
|
|
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀c⦂Component·c∈dom(to_unfold_c_in)⇒c_multiplicity(c)>0"/> |
|
|
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="new_components∈Component ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="components∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="¬m=Mdl"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="ran(new_components)=new_components[components[{Inst}] ∖ dom(inst_components)]"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="c_multiplicity∈components[Pattern] → ℕ"/> |
|
|
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="finite(components[{Inst}])"/> |
|
|
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="new_components∈components[{Inst}] ∖ dom(inst_components) ↣ Component ∖ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="components[{Inst}] ∖ dom(inst_components)⊆components[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="finite(new_components[components[{Inst}] ∖ dom(inst_components)])"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="finite(components[{Inst}] ∖ dom(inst_components))"/> |
|
|
<org.eventb.core.prPred name="p58" org.eventb.core.predicate="finite(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="∀c⦂Component·finite(to_unfold_c_in[{c}])"/> |
|
|
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="finite((components∪({Mdl} × ran(new_components)))[{m}])"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="finite(ran(new_components))"/> |
|
|
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="m=Mdl"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="∀c⦂Component·finite(container∼[{c}])"/> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="inst_components∈components[{Inst}] ⤔ components[{Mdl}]"/> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="Inst∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="({Mdl} × ran(new_components))[{m}]=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prExpr name="e1" org.eventb.core.expression="Inst"/> |
|
|
<org.eventb.core.prExpr name="e2" org.eventb.core.expression="Component ⇸ Component"/> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="components[{Inst}]"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.doCase"/> |
|
|
<org.eventb.core.prReas name="r12" org.eventb.core.prRID="org.eventb.core.seqprover.isFunGoal"/> |
|
|
<org.eventb.core.prReas name="r11" org.eventb.core.prRID="org.eventb.core.seqprover.finiteFunRelImg"/> |
|
|
<org.eventb.core.prReas name="r5" 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.allI"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.relImgUnionLeftRewrites"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
<org.eventb.core.prReas name="r8" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/> |
|
|
<org.eventb.core.prReas name="r9" org.eventb.core.prRID="org.eventb.core.seqprover.cut"/> |
|
|
<org.eventb.core.prReas name="r14" org.eventb.core.prRID="org.eventb.core.seqprover.finiteSet:0"/> |
|
|
<org.eventb.core.prReas name="r13" org.eventb.core.prRID="org.eventb.core.seqprover.allD"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r10" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/> |
|
|
<org.eventb.core.prReas name="r15" org.eventb.core.prRID="org.eventb.core.seqprover.hyp"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/to_clone_c/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="" 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="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p3"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p1" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p2"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p3" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="Inst" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(∅ ⦂ ℙ(Component×Component))∈({Inst} ⩤ components)[{Inst}] ⇸ ({Inst} ⩤ components)[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/c_index_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="" org.eventb.core.prSets="Component"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p3"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p1" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p2"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p3" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<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="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(∅ ⦂ ℙ(Component×ℤ))∈dom(∅ ⦂ ℙ(Component×Component)) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<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="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/to_free_to_clone_disjoint/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="" org.eventb.core.prSets="Component"> |
|
|
<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="p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP (trivial)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<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="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model → ℙ(Component)"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="instanciation_started∈BOOL"> |
|
|
<org.eventb.core.prIdent name="instanciation_started" org.eventb.core.type="BOOL"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="to_free_c⊆components(Pat)"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pat∈Pattern"> |
|
|
<org.eventb.core.prIdent name="Model" 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.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="dom(∅ ⦂ ℙ(Component×Component))∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="Pat∈dom(components)"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="Mdl∈dom(components)"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<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="unfold_c/to_free_to_clone_disjoint/INV" 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" 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="p1,p21,p4,p2,p6,p23,p18,p8,p16,p9,p13,p24,p25,p7,p11,p22,p15,p17,p20,p19,p5,p12"/> |
|
|
<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="p14,p10,p3,p1,p21,p4,p2,p6,p23,p18,p8,p16,p9,p13,p24,p25,p7,p11,p22,p15,p17,p20,p19,p5,p12"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(Pat)(c) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="c∈dom(c_multiplicity(Pat))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="c_multiplicity(Pat)∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="dom(to_clone_c∪(ran(new_c) × {c}))∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<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="clone_c/to_free_to_clone_disjoint/INV" 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" 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="p1,p18,p12,p4,p14,p20,p13,p17,p10,p3,p6,p22,p23,p15,p5,p19,p8,p11,p24,p21,p2"/> |
|
|
<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="p7,p16,p9,p1,p18,p12,p4,p14,p20,p13,p17,p10,p3,p6,p22,p23,p15,p5,p19,p8,p11,p24,p21,p2"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="cloned_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="dom(({c} ⩤ to_clone_c)∪cloned_c∼)∩(to_free_c∪{c})=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="cloned_c∈(container(Pat))∼[{to_clone_c(c)}] ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="to_clone_c∈Component ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="c∈dom(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<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="free_c/to_free_to_clone_disjoint/INV" org.eventb.core.confidence="0" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2" org.eventb.core.prSets="Component,Model" org.eventb.core.psManual="true"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="fun. singleton img. in goal" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p3"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p3" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p2"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p2" org.eventb.core.prHyps="p2"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p1"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p1" org.eventb.core.prHyps="p1"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prGoal="p4"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p4" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p7"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6"/> |
|
|
<org.eventb.core.prRule name="r4" 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="p8"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/> |
|
|
</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="p10"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6"/> |
|
|
<org.eventb.core.prRule name="r4" 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="p8"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/> |
|
|
</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="p11"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6"/> |
|
|
<org.eventb.core.prRule name="r4" 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="p8"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/> |
|
|
</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="0.1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="c∈ran(container(Pat))"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="dom(to_clone_c)∩((to_free_c ∖ {c})∪{(container(Pat))∼(c)})=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="c∈dom((container(Pat))∼)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pat∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)∧c∈dom((container(Pat))∼)∧(container(Pat))∼∈Component ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="dom(to_clone_c)∩((to_free_c ∖ {c})∪(container(Pat))∼[{c}])=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="instanciation_started∈BOOL"> |
|
|
<org.eventb.core.prIdent name="instanciation_started" org.eventb.core.type="BOOL"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="(container(Pat))∼∈Component ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.funSingletonImg"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.hyp"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/to_free_dom_to_clone_disjoint/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="" 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="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.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP (trivial)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<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="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="to_free_c⊆components(Pat)"> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pat∈Pattern"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="dom(∅ ⦂ ℙ(Component×Component))∩(components(Pat) ∖ dom(container(Pat)))=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="Mdl∈dom(components)"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<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="unfold_c/to_free_dom_to_clone_disjoint/INV" 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" 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="p1,p9,p2,p11,p12,p13,p15,p26,p16,p17,p4,p18,p19,p5,p20,p6,p7,p8,p21,p22,p23,p24,p25"/> |
|
|
<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="p14,p10,p3,p1,p9,p2,p11,p12,p13,p15,p16,p17,p4,p18,p19,p5,p20,p6,p7,p8,p21,p22,p23,p24,p25"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(Pat)(c) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="c∈dom(c_multiplicity(Pat))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="c_multiplicity(Pat)∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="dom(to_clone_c∪(ran(new_c) × {c}))∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<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="clone_c/to_free_dom_to_clone_disjoint/INV" 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" 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="p1,p2,p3,p4,p5,p6,p8,p25,p10,p11,p12,p13,p14,p15,p17,p18,p19,p20,p21,p22,p23,p24"/> |
|
|
<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="p7,p16,p9,p1,p2,p3,p4,p5,p6,p8,p10,p11,p12,p13,p14,p15,p17,p18,p19,p20,p21,p22,p23,p24"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="cloned_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="cloned_c∈(container(Pat))∼[{to_clone_c(c)}] ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="dom(({c} ⩤ to_clone_c)∪cloned_c∼)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="to_clone_c∈Component ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="c∈dom(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<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="free_c/to_free_dom_to_clone_disjoint/INV" org.eventb.core.confidence="0" 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" org.eventb.core.prSets="Component,Model" org.eventb.core.psManual="true"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p16" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p20"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p21"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∪ / ∩ distribution in goal" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p22"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="fun. singleton img. in goal" org.eventb.core.prGoal="p22" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p23"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p23" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p17"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p17" org.eventb.core.prHyps="p17"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p15"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p15" org.eventb.core.prHyps="p15"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prGoal="p24"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p24" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p25"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="*" org.eventb.core.prGoal="p26"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p27"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p28"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p28" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p29"> |
|
|
<org.eventb.core.prRule name="r6" 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="p20,p1,p2,p3,p4,p6,p7,p8,p9,p10,p11,p12,p14,p15,p18,p19,p17"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p29" org.eventb.core.prHyps="p20,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p18,p19,p17"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p30"/> |
|
|
</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="0.1.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="dom(to_clone_c)∩((to_free_c ∖ {c})∪(container(Pat))∼[{c}])=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="(dom(to_clone_c)∩(to_free_c ∖ {c}))∪(dom(to_clone_c)∩{(container(Pat))∼(c)})=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="c∈dom((container(Pat))∼)"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="¬(container(Pat))∼(c)∈dom(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="c∈to_free_c ∖ ran(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c⊆{c}"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="(container(Pat))∼∈Component ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c⊆{c}∧¬(container(Pat))∼(c)∈dom(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="c∈ran(container(Pat))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="(dom(to_clone_c)∩(to_free_c ∖ {c}))∪(dom(to_clone_c)∩(container(Pat))∼[{c}])=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="Pat∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)∧c∈dom((container(Pat))∼)∧(container(Pat))∼∈Component ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.funSingletonImg"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.hyp"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.unionInterDistRewrites"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.mngHyp"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/to_unfold_dom_to_clone_disjoint/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="" 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="p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP (trivial)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<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="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="instanciation_started∈BOOL"> |
|
|
<org.eventb.core.prIdent name="instanciation_started" org.eventb.core.type="BOOL"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="to_free_c⊆components(Pat)"> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pat∈Pattern"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="dom(∅ ⦂ ℙ(Component×Component))∩(components(Pat) ∖ dom(container(Pat)))=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Mdl∈dom(components)"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<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="unfold_c/to_unfold_dom_to_clone_disjoint/INV" 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" 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="p1,p22,p4,p2,p6,p24,p18,p8,p16,p9,p13,p25,p26,p7,p11,p23,p14,p17,p15,p20,p19,p5,p12"/> |
|
|
<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="p21,p10,p3,p1,p22,p4,p2,p6,p24,p18,p8,p16,p9,p13,p25,p26,p7,p11,p23,p14,p17,p15,p20,p19,p5,p12"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(Pat)(c) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="c∈dom(c_multiplicity(Pat))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="dom(to_clone_c∪(ran(new_c) × {c}))∩(to_unfold_c ∖ {c})=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="c_multiplicity(Pat)∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="dom(to_clone_c)∩to_unfold_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<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="clone_c/to_unfold_dom_to_clone_disjoint/INV" org.eventb.core.confidence="0" org.eventb.core.prFresh="" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p0" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p1"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p2"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p3"/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="Component" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="instanciation_started∈BOOL"> |
|
|
<org.eventb.core.prIdent name="instanciation_started" org.eventb.core.type="BOOL"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="Component" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="end_instanciation/p_WD/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" 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="p2,p20,p14,p4,p17,p22,p15,p19,p12,p3,p7,p23,p24,p18,p6,p21,p8,p13,p5,p9"/> |
|
|
<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="p10,p1,p11,p16,p2,p20,p14,p4,p17,p22,p15,p19,p12,p3,p7,p23,p24,p18,p6,p21,p8,p13,p5,p9"> |
|
|
<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="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="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="instanciation_started" org.eventb.core.type="BOOL"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="instanciation_started=TRUE"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="to_unfold_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(c_multiplicity)∧c_multiplicity∈Model ⇸ ℙ(Component × ℤ)∧Pat∈dom(components)∧components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="to_clone_c=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="instanciation_started∈BOOL"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<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="instanciate_pattern/to_free_to_unfold_disjoint/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="" 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="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.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP (trivial)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<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="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(components(Pat) ∖ dom(container(Pat)))∩(∅ ⦂ ℙ(Component))=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="to_free_c⊆components(Pat)"> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pat∈Pattern"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="Mdl∈dom(components)"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<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="unfold_c/to_free_to_unfold_disjoint/INV" 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" 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="p1,p22,p4,p2,p6,p24,p19,p8,p17,p9,p13,p25,p26,p7,p11,p23,p14,p18,p15,p21,p20,p5,p12"/> |
|
|
<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="p16,p10,p3,p1,p22,p4,p2,p6,p24,p19,p8,p17,p9,p13,p25,p26,p7,p11,p23,p14,p18,p15,p21,p20,p5,p12"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(Pat)(c) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="c∈dom(c_multiplicity(Pat))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="c_multiplicity(Pat)∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(to_unfold_c ∖ {c})∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<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="clone_c/to_free_to_unfold_disjoint/INV" 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" 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="p1,p19,p4,p2,p5,p21,p17,p7,p15,p9,p11,p23,p24,p6,p10,p20,p12,p16,p13,p25,p22,p8"/> |
|
|
<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="p14,p18,p3,p1,p19,p4,p2,p5,p21,p17,p7,p15,p9,p11,p23,p24,p6,p10,p20,p12,p16,p13,p25,p22,p8"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="cloned_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="cloned_c∈(container(Pat))∼[{to_clone_c(c)}] ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="((to_unfold_c ∖ {c})∪ran(cloned_c))∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="to_clone_c∈Component ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="c∈dom(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<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="free_c/to_free_to_unfold_disjoint/INV" org.eventb.core.confidence="0" org.eventb.core.prFresh="" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p0" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p1"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p2" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p3"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p4"/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="¬c∈to_unfold_c"> |
|
|
<org.eventb.core.prIdent name="Component" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="Component" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c∉to_unfold_c"> |
|
|
<org.eventb.core.prIdent name="Component" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="Component" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/to_free_c/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="" 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="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.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP (trivial)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<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="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="components(Pat) ∖ dom(container(Pat))⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pat∈Pattern"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="Mdl∈dom(components)"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<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="free_c/cm/INV" 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" 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="p1,p4,p5,p6,p7,p8,p24,p9,p10,p11,p12,p13,p14,p15,p16,p17,p19,p20,p21,p22,p23"/> |
|
|
<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="p2,p18,p3,p1,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p19,p20,p21,p22,p23"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="c_multiplicity{Pat ↦ {c} ⩤ c_multiplicity(Pat)}∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="c∈to_free_c ∖ ran(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c∉to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<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="free_c/to_clone_c_mult/INV" 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" 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="p1,p2,p4,p5,p6,p8,p22,p9,p10,p11,p12,p13,p14,p15,p17,p18,p19,p20,p21"/> |
|
|
<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="p7,p16,p3,p1,p2,p4,p5,p6,p8,p9,p10,p11,p12,p13,p14,p15,p17,p18,p19,p20,p21"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀c0⦂Component·c0∈dom(c_index)⇒c_index(c0)∈1 ‥ (c_multiplicity{Pat ↦ {c} ⩤ c_multiplicity(Pat)})(Pat)(to_clone_c(c0))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c∉to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="c∈to_free_c ∖ ran(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<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="free_c/c_mult/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" 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="p1,p2,p4,p5,p6,p7,p8,p22,p9,p10,p11,p12,p13,p14,p15,p17,p18,p19,p20,p21"/> |
|
|
<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="p16,p3,p1,p2,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p17,p18,p19,p20,p21"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c∉to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(c_multiplicity)∧c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="c∈to_free_c ∖ ran(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<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="instanciate_pattern/to_free_c/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" 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="p2,p3,p4,p6,p7,p8,p9,p24,p10,p11,p12,p13,p14,p15,p16,p17,p19,p20,p21,p22,p23"/> |
|
|
<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="p18,p1,p5,p2,p3,p4,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p19,p20,p21,p22,p23"> |
|
|
<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="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="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_mult_others" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="inst_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_free_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="inst_components∼∈components(Mdl) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(components)∧components∈Model ⇸ ℙ(Component)∧Pat∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="c_mult_others∈components(Pat) ∖ dom(inst_components) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="Mdl∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="dom(to_clone_c)∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="to_unfold_c∩to_free_c=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="inst_components∈components(Pat) ↔ components(Mdl)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<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="to_unfold_c_in/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1" 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="simplification rewrites" 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="p3"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p5"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p6"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p7"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p7" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p8"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p8" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p9"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p9" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1"/> |
|
|
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p10"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p10" org.eventb.core.prHyps="p1"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prGoal="p11"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p11" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p12" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p9"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p9" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1"/> |
|
|
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e0"/> |
|
|
</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.prIdent name="Inst" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(components)∧components∈Model ⇸ ℙ(Component)∧Inst∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="Pat∈Model"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Inst∈Model"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Inst∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="Model"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.isFunGoal"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.totalDom:2"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/inst_root/WD"/> |
|
|
<org.eventb.core.prProof name="unfold_c/to_unfold_c_in/INV"/> |
|
|
<org.eventb.core.prProof name="clone_c/to_unfold_c_in/INV" 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"> |
|
|
<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="p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p29,p20,p22,p23,p25,p26,p27,p28"/> |
|
|
<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,p23,p24,p25,p26,p27,p28"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_unfold_c∩ran(to_clone_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="components∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="c_multiplicity∈components[Pattern] → ℕ"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="to_clone_c⊆inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="to_clone_c∈Component ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="to_clone_c∈components[{Inst}] ⇸ components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="to_unfold_c_in∪(container∼[{to_clone_c(c)}] × {c})∈components[{Pat}] ↔ components[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="c∈dom(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="Inst∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<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="apply_pattern/to_unfold_c_in/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p6" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p7"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p8"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/> |
|
|
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p10"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p4,p5,p3,p2"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R500"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.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="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="container[dom(inst_components)]⊆dom(inst_components)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="containers∈Component ↔ Component"> |
|
|
<org.eventb.core.prIdent name="containers" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="to_unfold_c_in∈(components∪({Mdl} × ran(new_components)))[{Pat}] ↔ (components∪({Mdl} × ran(new_components)))[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="dom(inst_components) ◁ container;inst_components⊆inst_components;container"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="inst_components∈components[{Inst}] ⤔ components[{Mdl}]"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="new_components∈components[{Inst}] ∖ dom(inst_components) ↣ Component ∖ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="¬Inst=Mdl"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/comp/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p4"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p5,p4,p6,p7,p8,p9,p10,p11,p12,p13,p1,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Z3" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2"> |
|
|
<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.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="Inst" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Pat∈Pattern"> |
|
|
<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.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Inst∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="to_clone_c∈components(Inst) ⇸ components(Pat)"> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="to_unfold_c_in∈components(Pat) ⇸ components(Inst)"> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="Mdl∈dom(components)"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="components{Inst ↦ (∅ ⦂ ℙ(Component))}∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="Inst∈Model ∖ Pattern"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Pat∈dom(components)"> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="Pat∈dom(container)"> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.mngHyp"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/comp_finite/INV" 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,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p21" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p37"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p38"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p39"/> |
|
|
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p40"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p41"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p41" org.eventb.core.prHyps="p33,p10,p36,p5,p8,p12,p3,p34,p20,p28,p4,p29,p17,p19,p9,p25,p6,p35,p1,p22,p15,p14,p7,p18,p27,p2,p30,p26,p11,p32,p16,p13,p24,p23,p31,p37"> |
|
|
<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.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="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_mult" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_mult_others" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="containers" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container"/> |
|
|
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="finite(({Inst} ⩤ components)[{m}])"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="container⊆containers"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀c⦂Component·c∈dom(to_unfold_c_in)⇒c_multiplicity(c)>0"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="components∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀s⦂Component,c⦂Component·s ↦ c∈container⇒containers∼[{s}]⊂containers∼[{c}]"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="c_multiplicity∈components[Pattern] → ℕ"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="inst_components∼∈components[{Mdl}] ⇸ components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="inst_components∈components[{Pat}] ↔ components[{Mdl}]"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="containers∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="ran(to_unfold_c_in)⊆dom(inst2pat_c)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="c_mult=c_mult_others{pc⦂Component·pc∈dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])}"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="c_mult_others∈components[{Pat}] ∖ dom(inst_components) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="(inst2pat_c;to_unfold_c_in)∩container=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="containers∈Component ↔ Component"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="∀c⦂Component·finite(containers∼[{c}])"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="containers;containers⊆containers"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="∀c⦂Component·finite(to_unfold_c_in[{c}])"/> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="∀pc⦂Component·pc∈dom(inst_components)⇒finite(inst_components[{pc}])"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·finite(({Inst} ⩤ components)[{m}])"/> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))"/> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="∀c⦂Component·finite(container∼[{c}])"/> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="Inst∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="¬Inst=Mdl"/> |
|
|
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/comp_disj/INV" 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" 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="p2,p28,p10,p30,p19,p31,p7,p4,p20,p6,p18,p12,p25,p21,p8,p29,p14,p1,p22,p16,p15,p3,p5,p26,p11,p27"/> |
|
|
<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="p9,p17,p13,p23,p24,p2,p28,p10,p30,p19,p31,p7,p4,p20,p6,p18,p12,p25,p21,p8,p29,p14,p1,p22,p16,p15,p3,p5,p26,p11,p27"> |
|
|
<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="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="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_mult_others" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="pat_roots" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_unfold_c∩ran(to_clone_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="components∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="c_multiplicity∈components[Pattern] → ℕ"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="inst_components∼∈components[{Mdl}] ⇸ components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="to_clone_c⊆inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="inst_components∈components[{Pat}] ↔ components[{Mdl}]"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="({Inst} ⩤ components)∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="to_clone_c∈components[{Inst}] ⇸ components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="c_mult_others∈components[{Pat}] ∖ dom(inst_components) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="pat_roots=components[{Pat}] ∖ dom(container)"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="Inst∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<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="instanciate_pattern/cont_ctr/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p7"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p8"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE2" org.eventb.core.prHidden="p9" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p10"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p10" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p11"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p3,p2,p4"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R500"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</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="c_mult_others" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="inst_components∈components[{Pat}] ↔ components[{Mdl}]"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="{Inst} ⩤ components;(components[{Inst}] ⩤ container);({Inst} ⩤ components)∼⊆(id ⦂ ℙ(Model×Model))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·⊤∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="inst_components∼∈components[{Mdl}] ⇸ components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="¬Inst=Mdl"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="c_mult_others∈components[{Pat}] ∖ dom(inst_components) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/to_unfold_c_in/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="" 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="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p3"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p1" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p2"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p3" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="Inst" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(∅ ⦂ ℙ(Component×Component))∈({Inst} ⩤ components)[{Pat}] ↔ ({Inst} ⩤ components)[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/pat_root/WD"/> |
|
|
<org.eventb.core.prProof name="free_c/to_unfold_c_in/INV"/> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/pat_roots/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4" 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="generalized MP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p5"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p5" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p10"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p6" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p7"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p8" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p9"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p10" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(components)∧components∈Model ⇸ ℙ(Component)∧Pat∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<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.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<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.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="⊤∧⊤∧⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/cont_ty/INV" 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" 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="p1,p2,p3,p28,p29,p5,p6,p7,p8,p9,p10,p30,p12,p13,p15,p16,p17,p31,p18,p21,p22,p23,p24,p25,p26,p27"/> |
|
|
<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,p23,p24,p25,p26,p27"> |
|
|
<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="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="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_mult" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_mult_others" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="to_unfold_c∩ran(to_clone_c)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="components∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="c_multiplicity∈components[Pattern] → ℕ"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="inst_components∼∈components[{Mdl}] ⇸ components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="to_clone_c⊆inst2pat_c"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="inst_components∈components[{Pat}] ↔ components[{Mdl}]"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="to_clone_c∈components[{Inst}] ⇸ components[{Pat}]"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="c_mult=c_mult_others{pc⦂Component·pc∈dom(inst_components) ∣ pc ↦ card(inst_components[{pc}])}"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="c_mult_others∈components[{Pat}] ∖ dom(inst_components) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="components[{Inst}] ⩤ container∈ran({Inst} ⩤ components) ⇸ ran({Inst} ⩤ components)"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="Inst∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<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="instanciate_pattern/acycl/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p10"> |
|
|
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p7"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p8"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE2" org.eventb.core.prHidden="p2" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p9"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p10" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p9" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p11"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p12" org.eventb.core.prHyps="p1,p3,p11,p4"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R500"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</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="c_mult_others" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="inst_components∈components[{Pat}] ↔ components[{Mdl}]"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·components[{Inst}] ⩤ container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·⊤∧components[{Inst}] ⩤ container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="c_mult_others∈components[{Pat}] ∖ dom(inst_components) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·⊤∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p0" 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.prPred name="p3" org.eventb.core.predicate="inst_components∼∈components[{Mdl}] ⇸ components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="¬Inst=Mdl"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_root_c/new_c_ty/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" org.eventb.core.prSets="Component,Model" org.eventb.core.psManual="true"> |
|
|
<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="p23,p24,p25,p26,p27,p28,p14,p29,p30,p31,p32,p33,p18,p34,p35,p21,p36,p37,p38,p39"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p7" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p40"/> |
|
|
<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="p23"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p41"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE2" org.eventb.core.prHidden="p42" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p43"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p43" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p44"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p45"> |
|
|
<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="p1,p2,p3,p4,p6,p46,p47,p8,p9,p10,p11,p12,p13,p15,p44,p16,p17,p48,p19,p20,p40,p22"/> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∃ hyp (∃f·container⊆f∧f;f⊆f∧id∩f=∅)" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p44" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p49,p50,p51"> |
|
|
<org.eventb.core.prIdent name="f" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prHypAction> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p49,p50,p51"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p45" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p40,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.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<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="functional goal" org.eventb.core.prGoal="p52" org.eventb.core.prHyps="p17"/> |
|
|
</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.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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="container⊆f"> |
|
|
<org.eventb.core.prIdent name="f" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·⊤∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="to_clone_c∈components(Inst) ⇸ components(Pat)"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="to_clone_c⊆inst2pat_c"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)"/> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="to_unfold_c_in∈components(Pat) ⇸ components(Inst)"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="f" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="c_multiplicity∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="¬Inst=Mdl"/> |
|
|
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="components∈Model → ℙ(Component)"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="to_unfold_c∩ran(to_clone_c)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="components∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="f;f⊆f"> |
|
|
<org.eventb.core.prIdent name="f" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="Inst∈dom(components)"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="c_multiplicity∈components[Pattern] → ℕ"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="c∈dom(c_multiplicity)∧c_multiplicity∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="to_clone_c∈components[{Inst}] ⇸ components[{Pat}]"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="c∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Inst∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="Pat∈dom(components)"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"> |
|
|
<org.eventb.core.prIdent name="components" 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="r4" org.eventb.core.prRID="org.eventb.core.seqprover.exF"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.isFunGoal"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_root_c/comp/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3" org.eventb.core.prSets="Component,Model" org.eventb.core.psManual="true"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p5"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p6"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p3,p1,p2"> |
|
|
<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.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="Inst" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="components{Inst ↦ components(Inst)∪ran(new_c)}∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(Pat)(c) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_root_c/comp_finite/INV" 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" org.eventb.core.prSets="Component,Model" org.eventb.core.psManual="true"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p9" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p10"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p11"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p12" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p14" org.eventb.core.prHyps="p13"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p14" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p15"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p15" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p16"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p17" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p18"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ hyp (inst Inst)" org.eventb.core.prHyps="p4"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p19"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p19" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prHyps="p16"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p4"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p16" org.eventb.core.prHyps="p16"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".exprs" org.eventb.core.prRef="e0"/> |
|
|
</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="p20"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="finite of range of a function" org.eventb.core.prGoal="p20" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p21"> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p21" org.eventb.core.prHyps="p7,p1,p2,p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p22"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p22" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p19"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p19" org.eventb.core.prHyps=""/> |
|
|
</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="p23"> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p23" org.eventb.core.prHyps="p8,p13,p4,p5"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R30000"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prGoal="p24"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p24" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p19"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p19" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".expr" org.eventb.core.prRef="e1"/> |
|
|
</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="p26" org.eventb.core.prHyps="p25"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p6"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p27"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p17" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p18"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ hyp (inst m)" org.eventb.core.prHyps="p4"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p19"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p19" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prHyps="p27"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p4"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p27" org.eventb.core.prHyps="p27"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".exprs" org.eventb.core.prRef="e2"/> |
|
|
</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="0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</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.prIdent name="Inst" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="finite(ran(new_c))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(Pat)(c) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="finite(1 ‥ c_multiplicity(Pat)(c))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c∈dom(c_multiplicity(Pat))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="finite(components(Inst))"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="finite(components(m))"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="¬m=Inst"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(Pat)(c) ⇸ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="⊤∧⊤∧⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·finite((components{Inst ↦ components(Inst)∪ran(new_c)})(m))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="finite((components{Inst ↦ components(Inst)∪ran(new_c)})(m))"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Pat∈dom(c_multiplicity)∧c_multiplicity∈Model ⇸ ℙ(Component × ℤ)∧c∈dom(c_multiplicity(Pat))∧c_multiplicity(Pat)∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="c_multiplicity(Pat)∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="finite(components(Inst))∧finite(ran(new_c))"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="finite(({Inst} ⩤ components)(m))"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="m=Inst"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="finite(components(Inst)∪ran(new_c))"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prExpr name="e1" org.eventb.core.expression="1 ‥ c_multiplicity(Pat)(c) ⇸ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="Inst"/> |
|
|
<org.eventb.core.prExpr name="e2" org.eventb.core.expression="m"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prExpr> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
<org.eventb.core.prReas name="r11" org.eventb.core.prRID="org.eventb.core.seqprover.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.hyp"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.allD"/> |
|
|
<org.eventb.core.prReas name="r10" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<org.eventb.core.prReas name="r8" org.eventb.core.prRID="org.eventb.core.seqprover.finiteFunRan"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.funOvr:1"/> |
|
|
<org.eventb.core.prReas name="r9" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_root_c/comp_disj/INV" 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" 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="p2,p27,p11,p30,p19,p31,p8,p5,p20,p7,p17,p13,p23,p21,p9,p29,p14,p1,p22,p16,p15,p3,p6,p24,p12,p26,p28,p25"/> |
|
|
<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="p10,p18,p4,p2,p27,p11,p30,p19,p31,p8,p5,p20,p7,p17,p13,p23,p21,p9,p29,p14,p1,p22,p16,p15,p3,p6,p24,p12,p26,p28,p25"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(c) ↣ Component ∖ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="to_unfold_c∩ran(to_clone_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="components∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="c_multiplicity∈components[Pattern] → ℕ"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(components∪({Inst} × ran(new_c)))∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="to_clone_c⊆inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="to_clone_c∈components[{Inst}] ⇸ components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="c_multiplicity∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="c∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="Inst∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<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="unfold_root_c/cont_ctr/INV" 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" 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="p1,p3,p4,p7,p30,p31,p8,p9,p10,p11,p12,p13,p32,p14,p15,p16,p19,p33,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/> |
|
|
<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,p23,p24,p25,p26,p27,p28,p29"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="card(ran(new_c))=c_multiplicity(c)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="finite(ran(new_c))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(c) ↣ Component ∖ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="to_unfold_c∩ran(to_clone_c)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="components∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="c_multiplicity∈components[Pattern] → ℕ"/> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="to_clone_c⊆inst2pat_c"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="to_clone_c∈components[{Inst}] ⇸ components[{Pat}]"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(components∪({Inst} × ran(new_c)));container;(components∪({Inst} × ran(new_c)))∼⊆(id ⦂ ℙ(Model×Model))"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="c_multiplicity∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="c∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="Inst∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<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="unfold_root_c/cm_ctr/INV" 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,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p22" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p40"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p35" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p41"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p42"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p43"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p43" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p45" org.eventb.core.prHyps="p44"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p45" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p47" org.eventb.core.prHyps="p46"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m=Inst" org.eventb.core.prGoal="p47" org.eventb.core.prHyps="p46"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p49"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p44" org.eventb.core.prInfHyps="p48"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p44"/> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p49" org.eventb.core.prHyps="p31,p8,p33,p4,p12,p27,p15,p36,p32,p20,p25,p16,p37,p13,p10,p17,p38,p29,p18,p1,p39,p34,p26,p7,p19,p2,p5,p23,p14,p11,p3,p21,p6,p30,p28,p9,p24,p40,p41,p44,p46,p48"> |
|
|
<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.prAnte name="(" org.eventb.core.prGoal="p51" org.eventb.core.prHyps="p50"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p51" org.eventb.core.prHyps="p4"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p52"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p52" org.eventb.core.prHyps="p25,p21,p6,p44,p50"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R500"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</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.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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container(Pat)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="c_multiplicity(Inst)∈components(Inst)∪ran(new_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(inst2pat_c(c))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(Pat)(c) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="m∈Pattern⇒c_multiplicity(m)∈(components{Inst ↦ components(Inst)∪ran(new_c)})(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="to_clone_c∈components(Inst) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="to_clone_c⊆inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="¬m=Inst"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈(components{Inst ↦ components(Inst)∪ran(new_c)})(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="m∈Pattern"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="inst2pat_c;container(Pat)=container(Inst);inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="c_multiplicity(m)∈(components{Inst ↦ components(Inst)∪ran(new_c)})(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="c_multiplicity(m)∈({Inst} ⩤ components)(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="inst2pat_c∈components(Inst) → components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="Inst∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="∀m⦂Model·container(m)∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="¬Inst=Mdl"/> |
|
|
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_unfold_c∩ran(to_clone_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="to_unfold_c∩dom(container(Pat))=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="c∈dom(c_multiplicity(Pat))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Inst∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="Inst∈dom(container)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="to_unfold_c_in∈components(Pat) ↔ components(Inst)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container(Pat))"/> |
|
|
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="c_multiplicity(Pat)∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="c_multiplicity(m)∈components(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="c_multiplicity(m)∈components(Inst)∪ran(new_c) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="m=Inst"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="Inst∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·f∈components(m) ↔ components(m)∧container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r8" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.impI"/> |
|
|
<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.funOvr:1"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_root_c/to_unfold_c_in/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p6" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p7"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p8"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE2" org.eventb.core.prHidden="p10" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p11"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p11" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p12"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p5,p4,p3,p2"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R500"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</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="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="card(ran(new_c))=c_multiplicity(c)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="finite(ran(new_c))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(c) ↣ Component ∖ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="to_unfold_c_in∈(components∪({Inst} × ran(new_c)))[{Pat}] ↔ (components∪({Inst} × ran(new_c)))[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·⊤∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_root_c/to_clone_c/INV" 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" 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="p1,p2,p3,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p19,p20,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31"/> |
|
|
<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="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"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(c) ↣ Component ∖ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="to_unfold_c∩ran(to_clone_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="components∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="c_multiplicity∈components[Pattern] → ℕ"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="to_clone_c⊆inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="to_clone_c∈components[{Inst}] ⇸ components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p0" 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.prPred name="p25" org.eventb.core.predicate="c_multiplicity∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="c∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="Inst∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<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="unfold_root_c/c_index_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4" 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="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,p4,p30,p31"/> |
|
|
<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="p4,p1,p2,p3"> |
|
|
<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="Inst" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(c) ↣ Component ∖ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="to_unfold_c∩ran(to_clone_c)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="components∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="Pat∈Pattern"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="c_multiplicity∈components[Pattern] → ℕ"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="to_clone_c⊆inst2pat_c"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_clone_c∈components[{Inst}] ⇸ components[{Pat}]"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="c_multiplicity∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="c∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="Inst∈Model ∖ Pattern"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="c_index∪new_c∼∈dom(inst2pat_c∪(ran(new_c) × {c})) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<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="unfold_root_c/to_clone_c_mult/INV" 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" 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="p1,p3,p4,p7,p30,p31,p8,p9,p10,p11,p12,p13,p32,p14,p15,p16,p18,p19,p33,p20,p21,p22,p23,p25,p26,p27,p28,p29"/> |
|
|
<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,p23,p24,p25,p26,p27,p28,p29"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="card(ran(new_c))=c_multiplicity(c)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="finite(ran(new_c))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(c) ↣ Component ∖ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="to_unfold_c∩ran(to_clone_c)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="components∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀c0⦂Component·c0∈dom(inst2pat_c∪(ran(new_c) × {c}))⇒(c_index∪new_c∼)(c0)∈1 ‥ c_multiplicity((inst2pat_c∪(ran(new_c) × {c}))(c0))"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="c_multiplicity∈components[Pattern] → ℕ"/> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="to_clone_c⊆inst2pat_c"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="to_clone_c∈components[{Inst}] ⇸ components[{Pat}]"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="c_multiplicity∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="c∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="Inst∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<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="unfold_root_c/to_unfold_c/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p6" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p7"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p8"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/> |
|
|
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p10"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p5,p4,p3,p2,p1"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R500"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="Inst" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="to_unfold_c ∖ {c}⊆(components∪({Inst} × ran(new_c)))[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="card(ran(new_c))=c_multiplicity(c)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="containers∈Component ↔ Component"> |
|
|
<org.eventb.core.prIdent name="containers" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="finite(ran(new_c))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(c) ↣ Component ∖ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_root_c/new_c_model/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2" 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="generalized MP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p3"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p3" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p8"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p5"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p6" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p7"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p8" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</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="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Inst∈dom(components)∧components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Inst∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_node_c/new_c_ty/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" org.eventb.core.prSets="Component,Model" org.eventb.core.psManual="true"> |
|
|
<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="p24,p25,p26,p27,p28,p29,p13,p30,p31,p32,p33,p34,p17,p35,p36,p21,p37,p38,p39,p40"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p38" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p41"/> |
|
|
<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="p24"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p42"> |
|
|
<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="p1,p2,p3,p4,p5,p6,p43,p44,p45,p7,p8,p9,p10,p11,p12,p14,p15,p16,p46,p19,p20,p22,p23"/> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p42" 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"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p47"> |
|
|
<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="p1,p2,p3,p4,p5,p6,p43,p44,p45,p7,p8,p9,p10,p11,p12,p14,p15,p16,p46,p19,p20,p22,p23"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p47" org.eventb.core.prHyps="p16"/> |
|
|
</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.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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="dest" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="components∈Model → ℙ(Component)"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="to_unfold_c∩ran(to_clone_c)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="components∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="Inst∈dom(components)"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="c_multiplicity∈components[Pattern] → ℕ"/> |
|
|
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="to_clone_c∈components(Inst) ⇸ components(Pat)"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="to_clone_c⊆inst2pat_c"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)"/> |
|
|
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="to_unfold_c_in∈components(Pat) ⇸ components(Inst)"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="c∈dom(c_multiplicity)∧c_multiplicity∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="to_clone_c∈components[{Inst}] ⇸ components[{Pat}]"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="∀c⦂Component·c∈dom(c_index)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(to_clone_c(c))"> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="c_multiplicity∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="c∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="c ↦ dest∈to_unfold_c_in"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Inst∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="Pat∈dom(components)"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"> |
|
|
<org.eventb.core.prIdent name="components" 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="r2" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.isFunGoal"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_node_c/comp/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3" org.eventb.core.prSets="Component,Model" org.eventb.core.psManual="true"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p5"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p6"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p2,p1,p3"> |
|
|
<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.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="Inst" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="dest" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="components{Inst ↦ components(Inst)∪ran(new_c)}∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(Pat)(c) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c ↦ dest∈to_unfold_c_in"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_node_c/comp_finite/INV" 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,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35" org.eventb.core.prSets="Component,Model" org.eventb.core.psManual="true"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p22" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p36"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p37"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p38"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE2" org.eventb.core.prHidden="p39" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p40"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p40" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p41"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p42"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="relational image with ∪ left in goal" org.eventb.core.prGoal="p42" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p43"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p43" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p44"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p44" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p45"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p45" 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,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p46"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="dc (m=Inst)" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p47"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p47" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prHyps="p48"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m=Inst" org.eventb.core.prGoal="p46" org.eventb.core.prHyps="p48"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p49"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p49" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p4"> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (ran(new_c)=new_c[1 ‥ c_multiplicity(c)])" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p50"> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p50" org.eventb.core.prHyps="p28,p32"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p51"> |
|
|
<org.eventb.core.prRule name="r0" 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="p47"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p47" org.eventb.core.prHyps=""/> |
|
|
</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="p52" org.eventb.core.prHyps="p28,p32"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p52" org.eventb.core.prHyps="p48,p32,p34,p9,p7,p28"> |
|
|
<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.prAnte name=")" org.eventb.core.prHyps="p28,p52,p32"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with ran(new_c)=new_c[1 ‥ c_multiplicity(c)]" org.eventb.core.prGoal="p4" org.eventb.core.prHyps="p52"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p53"> |
|
|
<org.eventb.core.prRule name="r12" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="finite of relational image of a function" org.eventb.core.prGoal="p53" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p50"> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p50" org.eventb.core.prHyps="p28,p32"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p51"> |
|
|
<org.eventb.core.prRule name="r0" 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="p47"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p47" org.eventb.core.prHyps=""/> |
|
|
</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="p54"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p54" org.eventb.core.prHyps="p7,p28,p52,p48,p32,p34,p9"> |
|
|
<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.prAnte name=")" org.eventb.core.prGoal="p55"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p55" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p47"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p47" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".expr" org.eventb.core.prRef="e0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p52"/> |
|
|
</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.prHyps="p56"> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (({Inst} × ran(new_c))[{m}]=∅)" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p47"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p47" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p57"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p57" org.eventb.core.prHyps="p34,p56,p9,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.prAnte name=")" org.eventb.core.prHyps="p57"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with ({Inst} × ran(new_c))[{m}]=∅" org.eventb.core.prGoal="p46" org.eventb.core.prHyps="p57"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p58"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p58" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p47"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p57" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p59"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p47" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p57"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p48"/> |
|
|
</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="0"/> |
|
|
</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.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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="dest" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="height" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="finite(ran(new_c))"/> |
|
|
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="finite(({Inst} × ran(new_c))[{Inst}])"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(c) ↣ Component ∖ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="finite(new_c[1 ‥ c_multiplicity(c)])"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·⊤∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="finite(1 ‥ c_multiplicity(c))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)"/> |
|
|
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="¬m=Inst"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="∀c⦂Component·c∈components[{Pat}] ∖ ran(container)⇒height(c)=0"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="ran(to_unfold_c_in)⊆dom(inst2pat_c)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))"/> |
|
|
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="finite(components[{m}])"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p57" org.eventb.core.predicate="({Inst} × ran(new_c))[{m}]=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="(inst2pat_c;to_unfold_c_in)∩container=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="c_multiplicity∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))"/> |
|
|
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="finite(({Inst} × ran(new_c))[{m}])"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="c ↦ dest∈to_unfold_c_in"/> |
|
|
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="¬Inst=Mdl"/> |
|
|
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(c) ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="card(ran(new_c))=c_multiplicity(c)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀c⦂Component·c∈components[{Pat}]∩ran(container)⇒height(c)=1+max(height[container∼[{c}]])"/> |
|
|
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="finite(components[{m}])∧finite(({Inst} × ran(new_c))[{m}])"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="finite((components∪({Inst} × ran(new_c)))[{m}])"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="finite(components[{m}]∪({Inst} × ran(new_c))[{m}])"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="height∈components[{Pat}] → ℕ"/> |
|
|
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀c⦂Component·c∈dom(to_unfold_c_in)⇒c_multiplicity(c)>0"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="components∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="c_multiplicity∈components[Pattern] → ℕ"/> |
|
|
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="c∈dom(c_multiplicity)∧c_multiplicity∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p59" org.eventb.core.predicate="¬m∈dom({Inst} × ran(new_c))"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·finite((components∪({Inst} × ran(new_c)))[{m}])"/> |
|
|
<org.eventb.core.prPred name="p58" org.eventb.core.predicate="finite(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="∀c⦂Component·finite(to_unfold_c_in[{c}])"/> |
|
|
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="∀c⦂Component·finite(container∼[{c}])"/> |
|
|
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="ran(new_c)=new_c[1 ‥ c_multiplicity(c)]"/> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="c∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="m=Inst"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="Inst∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="1 ‥ c_multiplicity(c) ⇸ Component"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.doCase"/> |
|
|
<org.eventb.core.prReas name="r12" org.eventb.core.prRID="org.eventb.core.seqprover.finiteFunRelImg"/> |
|
|
<org.eventb.core.prReas name="r5" 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.allI"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.relImgUnionLeftRewrites"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
<org.eventb.core.prReas name="r8" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/> |
|
|
<org.eventb.core.prReas name="r9" org.eventb.core.prRID="org.eventb.core.seqprover.cut"/> |
|
|
<org.eventb.core.prReas name="r10" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r11" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_node_c/comp_disj/INV" 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" 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="p2,p26,p11,p30,p18,p31,p8,p5,p19,p7,p17,p13,p22,p20,p9,p29,p14,p1,p21,p16,p15,p3,p6,p23,p12,p25,p27,p24"/> |
|
|
<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="p10,p28,p4,p2,p26,p11,p30,p18,p31,p8,p5,p19,p7,p17,p13,p22,p20,p9,p29,p14,p1,p21,p16,p15,p3,p6,p23,p12,p25,p27,p24"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="dest" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(c) ↣ Component ∖ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="to_unfold_c∩ran(to_clone_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="components∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="c_multiplicity∈components[Pattern] → ℕ"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(components∪({Inst} × ran(new_c)))∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="to_clone_c⊆inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="to_clone_c∈components[{Inst}] ⇸ components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="c_multiplicity∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="c∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="c ↦ dest∈to_unfold_c_in"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="Inst∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<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="unfold_node_c/cont_ctr/INV" 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" 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="p1,p3,p4,p7,p30,p31,p8,p9,p10,p11,p12,p13,p32,p14,p15,p16,p18,p33,p19,p20,p21,p22,p23,p24,p25,p27,p28,p29"/> |
|
|
<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,p23,p24,p25,p26,p27,p28,p29"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="dest" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="card(ran(new_c))=c_multiplicity(c)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="finite(ran(new_c))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(c) ↣ Component ∖ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="to_unfold_c∩ran(to_clone_c)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="components∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="c_multiplicity∈components[Pattern] → ℕ"/> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="to_clone_c⊆inst2pat_c"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="to_clone_c∈components[{Inst}] ⇸ components[{Pat}]"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p0" 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.prPred name="p22" org.eventb.core.predicate="c_multiplicity∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="c∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="c ↦ dest∈to_unfold_c_in"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="Inst∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<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="unfold_node_c/cm_ctr/INV" 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,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p21" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p40"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p35" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p41"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p42"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p43"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p43" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p45" org.eventb.core.prHyps="p44"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p45" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p47" org.eventb.core.prHyps="p46"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m=Inst" org.eventb.core.prGoal="p47" org.eventb.core.prHyps="p46"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p49"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p44" org.eventb.core.prInfHyps="p48"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p44"/> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p49" org.eventb.core.prHyps="p30,p8,p33,p4,p12,p26,p15,p36,p31,p20,p24,p16,p37,p13,p10,p17,p38,p28,p18,p1,p39,p34,p25,p7,p19,p2,p5,p22,p14,p11,p3,p32,p6,p29,p27,p9,p23,p40,p41,p44,p46,p48"> |
|
|
<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.prAnte name="(" org.eventb.core.prGoal="p51" org.eventb.core.prHyps="p50"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p51" org.eventb.core.prHyps="p4"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p52"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p52" org.eventb.core.prHyps="p24,p32,p6,p44,p50"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R500"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
</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.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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="dest" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container(Pat)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="c_multiplicity(Inst)∈components(Inst)∪ran(new_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(Pat)(inst2pat_c(c))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(Pat)(c) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="m∈Pattern⇒c_multiplicity(m)∈(components{Inst ↦ components(Inst)∪ran(new_c)})(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀m⦂Model·container(m)∈components(m) ⇸ components(m)"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="to_clone_c∈components(Inst) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="to_clone_c⊆inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="¬m=Inst"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="c_multiplicity∈Pattern → (Component ⇸ ℕ)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈(components{Inst ↦ components(Inst)∪ran(new_c)})(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="m∈Pattern"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="inst2pat_c;container(Pat)=container(Inst);inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="c_multiplicity(m)∈(components{Inst ↦ components(Inst)∪ran(new_c)})(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="c_multiplicity(m)∈({Inst} ⩤ components)(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="inst2pat_c∈components(Inst) → components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="Inst∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="∀m⦂Model·container(m)∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="c ↦ dest∈to_unfold_c_in"/> |
|
|
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="¬Inst=Mdl"/> |
|
|
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_unfold_c∩ran(to_clone_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="to_unfold_c∩dom(container(Pat))=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="c∈dom(c_multiplicity(Pat))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Inst∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="Inst∈dom(container)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="to_unfold_c_in∈components(Pat) ↔ components(Inst)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container(Pat))"/> |
|
|
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="c_multiplicity(Pat)∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="c_multiplicity(m)∈components(m) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="c_multiplicity(m)∈components(Inst)∪ran(new_c) → ℕ"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="m=Inst"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="Inst∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·f∈components(m) ↔ components(m)∧container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r8" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.impI"/> |
|
|
<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.funOvr:1"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_node_c/to_unfold_c_in/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p6" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p7"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p8"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE2" org.eventb.core.prHidden="p10" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p11"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p11" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p12"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p5,p4,p3,p2"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R500"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</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="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="dest" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="card(ran(new_c))=c_multiplicity(c)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="finite(ran(new_c))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(c) ↣ Component ∖ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·⊤∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="c ↦ dest∈to_unfold_c_in"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" 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.prPred name="p9" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_node_c/to_clone_c/INV" 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" 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="p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p2,p18,p5,p19,p20,p21,p22,p23,p24,p1,p25,p26,p27,p28,p29,p6,p30,p31"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Z3" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7"> |
|
|
<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="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="dest" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(c) ↣ Component ∖ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="to_unfold_c∩ran(to_clone_c)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="components∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="Pat∈Pattern"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="c_multiplicity∈components[Pattern] → ℕ"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_clone_c⊆inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="to_clone_c∈components[{Inst}] ⇸ components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" 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.prPred name="p26" org.eventb.core.predicate="c_multiplicity∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="c∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="c ↦ dest∈to_unfold_c_in"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="Inst∈Model ∖ Pattern"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<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="unfold_node_c/c_index_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3" org.eventb.core.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="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,p3,p29,p30"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Z3" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3"> |
|
|
<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="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(c) ↣ Component ∖ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="to_unfold_c∩ran(to_clone_c)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="components∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="Pat∈Pattern"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="c_multiplicity∈components[Pattern] → ℕ"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="to_clone_c⊆inst2pat_c"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="to_clone_c∈components[{Inst}] ⇸ components[{Pat}]"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="c_multiplicity∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="c∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="Inst∈Model ∖ Pattern"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="c_index∪new_c∼∈dom(inst2pat_c∪(ran(new_c) × {c})) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<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="unfold_node_c/to_clone_c_mult/INV" 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" 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="p1,p3,p4,p7,p30,p31,p8,p9,p10,p11,p12,p13,p32,p14,p15,p16,p17,p18,p33,p19,p20,p21,p22,p24,p25,p27,p28,p29"/> |
|
|
<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,p23,p24,p25,p26,p27,p28,p29"> |
|
|
<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="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="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="dest" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="card(ran(new_c))=c_multiplicity(c)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="finite(ran(new_c))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(c) ↣ Component ∖ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="to_unfold_c∩ran(to_clone_c)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="components∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀c0⦂Component·c0∈dom(inst2pat_c∪(ran(new_c) × {c}))⇒(c_index∪new_c∼)(c0)∈1 ‥ c_multiplicity((inst2pat_c∪(ran(new_c) × {c}))(c0))"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="c_multiplicity∈components[Pattern] → ℕ"/> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="to_clone_c⊆inst2pat_c"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="Inst≠Mdl"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="to_clone_c∈components[{Inst}] ⇸ components[{Pat}]"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="c_multiplicity∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="c∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="c ↦ dest∈to_unfold_c_in"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="Inst∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<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="unfold_node_c/to_unfold_c/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5" 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="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p6" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p7"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p8"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/> |
|
|
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p10"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p5,p4,p3,p2,p1"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R500"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="Inst" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="dest" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="card(ran(new_c))=c_multiplicity(c)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="containers∈Component ↔ Component"> |
|
|
<org.eventb.core.prIdent name="containers" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="finite(ran(new_c))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(c) ↣ Component ∖ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="c ↦ dest∈to_unfold_c_in"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="to_unfold_c⊆(components∪({Inst} × ran(new_c)))[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_node_c/new_c_model/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2" 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="generalized MP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p3"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p3" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p8"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p5"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p6" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p7"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p8" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</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="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Inst∈dom(components)∧components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Inst∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_node_c/cont_ty/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5" 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="p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p4,p22,p23,p1,p24,p25,p26,p27,p28,p29,p30,p31"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Z3" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p5,p2,p3,p4"> |
|
|
<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="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="dest" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container"> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="to_unfold_c∩dom(to_unfold_c_in)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="container∈ran(components) ⇸ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(c) ↣ Component ∖ ran(components)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="to_unfold_c∩ran(to_clone_c)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈Component ↔ Component∧container⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀m⦂Model·finite(components[{m}])"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="to_unfold_c⊆components[{Pat}]"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="components∼∈Component ⇸ Model"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="container∪(ran(new_c) × {dest})∈ran(components∪({Inst} × ran(new_c))) ⇸ ran(components∪({Inst} × ran(new_c)))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="Pat∈Pattern"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="c_index∈dom(inst2pat_c) → ℕ"> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="c_multiplicity∈components[Pattern] → ℕ"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="to_clone_c⊆inst2pat_c"> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="to_unfold_c∩dom(container)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="container∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="components;container;components∼⊆(id ⦂ ℙ(Model×Model))"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="to_clone_c∈components[{Inst}] ⇸ components[{Pat}]"> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="to_unfold_c∩ran(inst2pat_c)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in∈components[{Pat}] ↔ components[{Inst}]"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="inst2pat_c;container=container;inst2pat_c"> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="c_multiplicity∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="∀c⦂Component·c∈dom(inst2pat_c)⇒c_index(c)∈1 ‥ c_multiplicity(inst2pat_c(c))"> |
|
|
<org.eventb.core.prIdent name="c_index" org.eventb.core.type="ℙ(Component×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="c∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="c ↦ dest∈to_unfold_c_in"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="inst2pat_c∈components[{Inst}] → components[{Pat}]"> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="Inst∈Model ∖ Pattern"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="components∈Model ↔ Component"/> |
|
|
<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="unfold_node_c/acycl/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="f,m" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4" org.eventb.core.prSets="Component,Model" org.eventb.core.psManual="true"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p7" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p8"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p9"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p10"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ hyp (inst m)" org.eventb.core.prHyps="p4"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p11" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prHyps="p12"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p4"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∃ hyp (∃f·f∈components(m) ↔ components(m)∧container(m)⊆f∧f;f⊆f∧id∩f=∅)" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p12" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p13,p14,p15,p16"> |
|
|
<org.eventb.core.prIdent name="f" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prHypAction> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p13,p14,p15,p16"/> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="dc (m=Inst)" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p11" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prHyps="p17"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m=Inst" org.eventb.core.prGoal="p10" org.eventb.core.prHyps="p17"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p20"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p18"/> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p13" org.eventb.core.prInfHyps="p19"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT2" org.eventb.core.prHyps="p15,p13"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p20" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p21"> |
|
|
<org.eventb.core.prRule name="r8" 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="p1"/> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∃ goal (inst ((ran(new_c) × {dest});f)∪(ran(new_c) × {dest})∪f)" org.eventb.core.prGoal="p21" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p11" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p22"> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p22" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p23"> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p23" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p24"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p24" org.eventb.core.prHyps="p14,p19,p1,p2,p17,p3,p18,p16"> |
|
|
<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.prAnte name="(" org.eventb.core.prGoal="p25"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p25" org.eventb.core.prHyps="p14,p19,p1,p2,p17,p3,p18,p16"> |
|
|
<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.prAnte name=")" org.eventb.core.prGoal="p26"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p14,p19,p1,p2,p17,p3,p18,p16"> |
|
|
<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.prAnte name="*" org.eventb.core.prGoal="p27"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p27" org.eventb.core.prHyps="p14,p19,p1,p2,p17,p3,p18,p16"> |
|
|
<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.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".exprs" org.eventb.core.prRef="e0"/> |
|
|
</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.prHyps="p28"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p10" org.eventb.core.prHyps="p13,p14,p2,p3,p28,p15,p16"> |
|
|
<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.prPredRef name=".pred" org.eventb.core.prRef="p17"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".exprs" org.eventb.core.prRef="e1"/> |
|
|
</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.prIdent name="Inst" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="c_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Component×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prIdent name="dest" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="new_c" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c_in" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈components(Inst)∪ran(new_c) ↔ components(Inst)∪ran(new_c)∧container(Inst)⊆f∧ran(new_c) × {dest}⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·f∈(components{Inst ↦ components(Inst)∪ran(new_c)})(m) ↔ (components{Inst ↦ components(Inst)∪ran(new_c)})(m)∧(container{Inst ↦ container(Inst)∪(ran(new_c) × {dest})})(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(Pat)(c) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="((ran(new_c) × {dest});f)∪(ran(new_c) × {dest})∪f∈components(Inst)∪ran(new_c) ↔ components(Inst)∪ran(new_c)∧container(Inst)⊆((ran(new_c) × {dest});f)∪(ran(new_c) × {dest})∪f∧ran(new_c) × {dest}⊆((ran(new_c) × {dest});f)∪(ran(new_c) × {dest})∪f∧(((ran(new_c) × {dest});f)∪(ran(new_c) × {dest})∪f);(((ran(new_c) × {dest});f)∪(ran(new_c) × {dest})∪f)⊆((ran(new_c) × {dest});f)∪(ran(new_c) × {dest})∪f∧(id ⦂ ℙ(Component×Component))∩(((ran(new_c) × {dest});f)∪(ran(new_c) × {dest})∪f)=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="f" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="((ran(new_c) × {dest});f)∪(ran(new_c) × {dest})∪f∈components(Inst)∪ran(new_c) ↔ components(Inst)∪ran(new_c)∧container(Inst)⊆((ran(new_c) × {dest});f)∪(ran(new_c) × {dest})∪f∧(((ran(new_c) × {dest});f)∪(ran(new_c) × {dest})∪f);(((ran(new_c) × {dest});f)∪(ran(new_c) × {dest})∪f)⊆((ran(new_c) × {dest});f)∪(ran(new_c) × {dest})∪f∧(id ⦂ ℙ(Component×Component))∩(((ran(new_c) × {dest});f)∪(ran(new_c) × {dest})∪f)=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="f" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="container(Inst)⊆((ran(new_c) × {dest});f)∪(ran(new_c) × {dest})∪f"> |
|
|
<org.eventb.core.prIdent name="f" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="f;f⊆f"> |
|
|
<org.eventb.core.prIdent name="f" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_c_in∈components(Pat) ↔ components(Inst)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="f∈components(Inst) ↔ components(Inst)"> |
|
|
<org.eventb.core.prIdent name="f" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="¬m=Inst"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="f" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="((ran(new_c) × {dest});f)∪(ran(new_c) × {dest})∪f∈components(Inst)∪ran(new_c) ↔ components(Inst)∪ran(new_c)"> |
|
|
<org.eventb.core.prIdent name="f" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="container(m)⊆f"> |
|
|
<org.eventb.core.prIdent name="f" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈(components{Inst ↦ components(Inst)∪ran(new_c)})(m) ↔ (components{Inst ↦ components(Inst)∪ran(new_c)})(m)∧(container{Inst ↦ container(Inst)∪(ran(new_c) × {dest})})(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈(components{Inst ↦ components(Inst)∪ran(new_c)})(Inst) ↔ (components{Inst ↦ components(Inst)∪ran(new_c)})(Inst)∧(container{Inst ↦ container(Inst)∪(ran(new_c) × {dest})})(Inst)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="(((ran(new_c) × {dest});f)∪(ran(new_c) × {dest})∪f);(((ran(new_c) × {dest});f)∪(ran(new_c) × {dest})∪f)⊆((ran(new_c) × {dest});f)∪(ran(new_c) × {dest})∪f"> |
|
|
<org.eventb.core.prIdent name="f" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∃f⦂ℙ(Component×Component)·f∈components(m) ↔ components(m)∧container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="container(Inst)⊆f"> |
|
|
<org.eventb.core.prIdent name="f" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="m=Inst"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c ↦ dest∈to_unfold_c_in"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="f∈components(m) ↔ components(m)"> |
|
|
<org.eventb.core.prIdent name="f" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="∀m⦂Model·∃f⦂ℙ(Component×Component)·f∈components(m) ↔ components(m)∧container(m)⊆f∧f;f⊆f∧(id ⦂ ℙ(Component×Component))∩f=(∅ ⦂ ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="(id ⦂ ℙ(Component×Component))∩(((ran(new_c) × {dest});f)∪(ran(new_c) × {dest})∪f)=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="f" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="((ran(new_c) × {dest});f)∪(ran(new_c) × {dest})∪f"> |
|
|
<org.eventb.core.prIdent name="f" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prExpr> |
|
|
<org.eventb.core.prExpr name="e1" org.eventb.core.expression="m"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prExpr> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.exF"/> |
|
|
<org.eventb.core.prReas name="r11" org.eventb.core.prRID="org.eventb.smt.core.externalSMT"/> |
|
|
<org.eventb.core.prReas name="r10" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.doCase"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.allD"/> |
|
|
<org.eventb.core.prReas name="r9" org.eventb.core.prRID="org.eventb.core.seqprover.exI"/> |
|
|
<org.eventb.core.prReas name="r8" org.eventb.core.prRID="org.eventb.core.seqprover.mngHyp"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_node_c/new_c_container/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2" 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="generalized MP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p3"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p3" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p8"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p5"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p6" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p7"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p8" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</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="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Inst∈dom(container)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Inst∈dom(container)∧container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="clone_c/to_unfold_c_in/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2" 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="generalized MP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p3"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p3" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p6"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p5"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p6" org.eventb.core.prHyps="p2"/> |
|
|
</org.eventb.core.prAnte> |
|
|
</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="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="to_clone_c∈Component ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Inst≠Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="c∈dom(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="to_clone_c∈components[{Inst}] ⇸ components[{Pat}]"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="⊤∧to_clone_c∈Component ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="c∈dom(to_clone_c)∧to_clone_c∈Component ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="¬Inst=Mdl"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.isFunGoal"/> |
|
|
<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="unfold_root_c/VAR" org.eventb.core.confidence="0" org.eventb.core.prFresh="sc,s,ae,f,i,c0,ae0" 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" org.eventb.core.prSets="Component,Model" org.eventb.core.psManual="true"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="rewrite ⊂ in goal" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p34"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p35" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p36"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p37" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p38"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p34" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p40"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p21" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p39"/> |
|
|
<org.eventb.core.prRule name="r3" 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="p41"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p42"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE2" org.eventb.core.prHidden="p8" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p43"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p43" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p44"/> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees sc)" org.eventb.core.prGoal="p40" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p45"> |
|
|
<org.eventb.core.prIdent name="sc" org.eventb.core.type="ℙ(ℤ×Component)"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p45" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p51" org.eventb.core.prHyps="p46,p47,p48,p49,p50"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p51" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p52"> |
|
|
<org.eventb.core.prRule name="r7" 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="p1,p3,p6,p7,p9,p10,p53,p11,p12,p13,p14,p15,p16,p17,p18,p20,p23,p24,p25,p26,p44,p28,p29,p30,p31,p32,p33,p39,p54"/> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∃ hyp (∃f·container⊆f∧f;f⊆f∧id∩f=∅)" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p44" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p55,p56,p57"> |
|
|
<org.eventb.core.prIdent name="f" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prHypAction> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p55,p56,p57"/> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p52" org.eventb.core.prHyps="p1,p2,p3,p4,p48,p5,p6,p7,p9,p10,p11,p12,p57,p13,p55,p14,p15,p47,p16,p17,p56,p18,p19,p20,p23,p24,p49,p25,p26,p46,p50,p28,p29,p30,p31,p32,p33,p39"> |
|
|
<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.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p58"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees c0)" org.eventb.core.prGoal="p58" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p59"> |
|
|
<org.eventb.core.prIdent name="c0" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p59" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p61" org.eventb.core.prHyps="p60"> |
|
|
<org.eventb.core.prRule name="r7" 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="p1,p3,p6,p7,p9,p10,p53,p11,p12,p13,p14,p15,p16,p17,p18,p20,p23,p24,p25,p26,p44,p28,p29,p30,p31,p32,p33,p39,p54"/> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∃ hyp (∃f·container⊆f∧f;f⊆f∧id∩f=∅)" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p44" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p55,p56,p57"> |
|
|
<org.eventb.core.prIdent name="f" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prHypAction> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p55,p56,p57"/> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="dc (c0=c)" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p62"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p62" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prHyps="p63"> |
|
|
<org.eventb.core.prRule name="r12" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with c0=c" org.eventb.core.prGoal="p61" org.eventb.core.prHyps="p63"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p64"> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="dc (new_c=∅)" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p62"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p62" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prHyps="p65"> |
|
|
<org.eventb.core.prRule name="r12" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with new_c=∅" org.eventb.core.prHyps="p65"> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p5" org.eventb.core.prInfHyps="p66"/> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p50" org.eventb.core.prInfHyps="p67"/> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p47" org.eventb.core.prInfHyps="p68"/> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p54" org.eventb.core.prInfHyps="p69"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT4" org.eventb.core.prHyps="p47,p5,p50,p54"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p67" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p52"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p68" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p70"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE2" org.eventb.core.prHidden="p69" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p71"/> |
|
|
<org.eventb.core.prRule name="r13" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="lae in new_c∈1 ‥ c_multiplicity(c) ↣ Component ∖ ran(components)" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="p65" org.eventb.core.prInfHyps="p66"/> |
|
|
<org.eventb.core.prRule name="r7" 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="p5"/> |
|
|
<org.eventb.core.prRule name="r13" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="lae in new_c∈1 ‥ c_multiplicity(c) ↣ Component ∖ ran(components)" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="p65" org.eventb.core.prInfHyps="p66"/> |
|
|
<org.eventb.core.prRule name="r14" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (c_multiplicity(c)=0)" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p72"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p72" org.eventb.core.prHyps="p28,p31"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p73"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p73" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p62"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p62" org.eventb.core.prHyps=""/> |
|
|
</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="p74" org.eventb.core.prHyps="p28,p31"> |
|
|
<org.eventb.core.prRule name="r7" 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="p50,p54,p47"/> |
|
|
<org.eventb.core.prRule name="r12" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with new_c=∅" org.eventb.core.prHyps="p65"> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p50,p54,p47"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p69,p68,p67"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p67" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p52"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p68" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p70"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE2" org.eventb.core.prHidden="p69" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p71"/> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="veriT" org.eventb.core.prGoal="p74" org.eventb.core.prHyps="p66,p48,p19,p14"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R1000"/> |
|
|
<org.eventb.core.prString name=".config_id" org.eventb.core.prSValue="veriT"/> |
|
|
</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.prHyps="p28,p74,p31"> |
|
|
<org.eventb.core.prRule name="r12" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with c_multiplicity(c)=0" org.eventb.core.prGoal="p64" org.eventb.core.prHyps="p74"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p77"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p2" org.eventb.core.prInfHyps="p75"/> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p66" org.eventb.core.prInfHyps="p76"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT2" org.eventb.core.prHyps="p66,p2"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p77" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p78"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p75" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p65"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p76"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p27" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p79"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p22" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p80"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p79" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p81"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p80" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p82"/> |
|
|
<org.eventb.core.prRule name="r12" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with new_c=∅" org.eventb.core.prHyps="p65"> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p83"/> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p81" org.eventb.core.prInfHyps="p84"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT2" org.eventb.core.prHyps="p81,p4"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p83"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p84" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p85"/> |
|
|
</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.prPredRef name=".pred" org.eventb.core.prRef="p74"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
</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="0"/> |
|
|
</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.prHyps="p86"> |
|
|
<org.eventb.core.prRule name="r15" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ hyp mp (inst c)" org.eventb.core.prHyps="p47"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p62"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p47"/> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p62" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p87"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p47"/> |
|
|
<org.eventb.core.prRule name="r7" 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="p47"/> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p87" org.eventb.core.prHyps="p1,p2,p3,p4,p48,p5,p6,p7,p9,p10,p11,p12,p57,p13,p55,p14,p15,p16,p47,p17,p56,p63,p18,p19,p20,p23,p24,p60,p49,p25,p26,p46,p50,p28,p29,p86,p30,p31,p32,p33,p39"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prHyps="p88"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p47"/> |
|
|
<org.eventb.core.prRule name="r16" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="rewrites converse in hyp ((to_clone_c∪(ran(new_c) × {c}))∼)" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p88" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p89"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p89"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p89" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p90"/> |
|
|
<org.eventb.core.prRule name="r17" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="relational image with ∪ left in hyp ((to_clone_c∼∪({c} × ran(new_c)))[{c}])" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p90" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p91"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p91"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p91" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p92"/> |
|
|
<org.eventb.core.prRule name="r14" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (to_clone_c∼[{c}]∩ran(new_c)=∅)" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p62"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p62" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p93"> |
|
|
<org.eventb.core.prRule name="r7" 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="p47"/> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p93" org.eventb.core.prHyps="p1,p2,p3,p4,p48,p92,p5,p6,p7,p9,p10,p11,p12,p57,p13,p55,p14,p15,p16,p47,p17,p56,p63,p18,p19,p20,p23,p24,p60,p49,p25,p26,p46,p50,p28,p29,p86,p30,p31,p32,p33,p39"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prHyps="p93"> |
|
|
<org.eventb.core.prRule name="r12" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with to_clone_c∼[{c}]∩ran(new_c)=∅" org.eventb.core.prHyps="p93"> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p92" org.eventb.core.prInfHyps="p94"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p92"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p94" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p95"/> |
|
|
<org.eventb.core.prRule name="r14" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (card(ran(new_c))=c_multiplicity(c))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p96"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p96" org.eventb.core.prHyps="p28,p31"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p97"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p97" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p4"> |
|
|
<org.eventb.core.prRule name="r18" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="finite of range of a function" org.eventb.core.prGoal="p4" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p72"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p72" org.eventb.core.prHyps="p28,p31"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p73"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p73" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p62"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p62" org.eventb.core.prHyps=""/> |
|
|
</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="p98"> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p98" org.eventb.core.prHyps="p1,p2,p3,p4,p48,p93,p5,p6,p7,p9,p10,p11,p12,p57,p13,p55,p14,p15,p16,p17,p56,p63,p18,p19,p20,p95,p23,p24,p60,p49,p25,p26,p46,p50,p28,p29,p86,p30,p31,p32,p33,p39"> |
|
|
<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.prAnte name=")" org.eventb.core.prGoal="p99"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p99" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p62"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p62" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".expr" org.eventb.core.prRef="e0"/> |
|
|
</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="p2" org.eventb.core.prHyps="p28,p31,p4"> |
|
|
<org.eventb.core.prRule name="r7" 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="p5"/> |
|
|
<org.eventb.core.prRule name="r7" 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="DESELECT0" org.eventb.core.prHyps="p1,p3,p48,p93,p4,p6,p7,p9,p10,p53,p11,p12,p57,p13,p55,p14,p15,p16,p17,p56,p63,p18,p19,p20,p95,p23,p24,p60,p100,p49,p25,p26,p50,p28,p29,p86,p30,p31,p32,p33,p39,p54"/> |
|
|
<org.eventb.core.prRule name="r14" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (card(ran(new_c))=card(dom(new_c)))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p101"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p101" org.eventb.core.prHyps="p4"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p102"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p102" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p103"> |
|
|
<org.eventb.core.prRule name="r19" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p103" org.eventb.core.prHyps="p5"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p99"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p99" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p62"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p62" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/> |
|
|
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e1"/> |
|
|
</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="p104" org.eventb.core.prHyps="p103,p4"> |
|
|
<org.eventb.core.prRule name="r20" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ae (1 ‥ c_multiplicity(c))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p72"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p72" org.eventb.core.prHyps="p28,p31"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p73"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p73" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p62"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p62" org.eventb.core.prHyps=""/> |
|
|
</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.prHyps="p28,p31,p105"> |
|
|
<org.eventb.core.prIdent name="ae" org.eventb.core.type="ℙ(ℤ)"/> |
|
|
<org.eventb.core.prRule name="r21" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he with ae=1 ‥ c_multiplicity(c)" org.eventb.core.prHyps="p105"> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p5" org.eventb.core.prInfHyps="p106"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p5"/> |
|
|
<org.eventb.core.prRule name="r7" 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="DESELECT0" org.eventb.core.prHyps="p105"/> |
|
|
<org.eventb.core.prRule name="r7" 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="DESELECT0" org.eventb.core.prHyps="p28"/> |
|
|
<org.eventb.core.prRule name="r7" 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="DESELECT0" org.eventb.core.prHyps="p31"/> |
|
|
<org.eventb.core.prRule name="r19" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p104" org.eventb.core.prHyps="p106"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p107"> |
|
|
<org.eventb.core.prRule name="r19" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in hyp (dom(new_c))" org.eventb.core.prHyps="p106"> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p103" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p108"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p108"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p27" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p79"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p22" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p80"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p79" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p81"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p80" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p82"/> |
|
|
</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="0"/> |
|
|
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e2"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0"/> |
|
|
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e2"/> |
|
|
</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.prExprRef name=".expr" org.eventb.core.prRef="e1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prHyps="p103,p104,p4"> |
|
|
<org.eventb.core.prRule name="r12" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with card(ran(new_c))=card(dom(new_c))" org.eventb.core.prGoal="p2" org.eventb.core.prHyps="p104"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p109"> |
|
|
<org.eventb.core.prRule name="r19" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p109" org.eventb.core.prHyps="p5"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p110"> |
|
|
<org.eventb.core.prRule name="r7" 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="p14"/> |
|
|
<org.eventb.core.prRule name="r22" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p110" org.eventb.core.prHyps="p1,p2,p3,p4,p48,p92,p93,p6,p5,p7,p9,p10,p11,p103,p12,p57,p13,p55,p14,p15,p16,p47,p17,p56,p63,p18,p104,p20,p19,p22,p95,p23,p24,p60,p49,p25,p26,p27,p46,p28,p50,p29,p86,p30,p31,p32,p33,p39"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0:30000"/> |
|
|
</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="0.0"/> |
|
|
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p104"/> |
|
|
</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.prHyps="p2,p31,p4,p28"> |
|
|
<org.eventb.core.prRule name="r12" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with card(ran(new_c))=c_multiplicity(c)" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p95" org.eventb.core.prInfHyps="p111"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p95"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p27" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p79"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p22" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p80"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p79" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p81"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p80" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p82"/> |
|
|
</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.prPredRef name=".pred" org.eventb.core.prRef="p2"/> |
|
|
</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.prPredRef name=".pred" org.eventb.core.prRef="p93"/> |
|
|
</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="0.0.1.0"/> |
|
|
</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="0.0.1.0.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".exprs" org.eventb.core.prRef="e3"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p65"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prHyps="p112"> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p61" org.eventb.core.prHyps="p1,p2,p3,p4,p48,p5,p6,p7,p9,p10,p11,p12,p57,p13,p55,p14,p15,p47,p16,p17,p56,p18,p19,p20,p23,p24,p60,p49,p112,p25,p26,p46,p50,p28,p29,p30,p31,p32,p33,p39"> |
|
|
<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.prPredRef name=".pred" org.eventb.core.prRef="p63"/> |
|
|
</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="p70"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees c0)" org.eventb.core.prGoal="p70" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p113"> |
|
|
<org.eventb.core.prIdent name="c0" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p113" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p115" org.eventb.core.prHyps="p114"> |
|
|
<org.eventb.core.prRule name="r15" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ hyp mp (inst c0)" org.eventb.core.prHyps="p47"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p62"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p47"/> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p62" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p116"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p47"/> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p116" org.eventb.core.prHyps="p2,p46,p4,p48,p114,p5,p50,p19,p49"> |
|
|
<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.prAnte name=")" org.eventb.core.prHyps="p117"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p47"/> |
|
|
<org.eventb.core.prRule name="r14" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (to_clone_c∼[{c0}]⊆(to_clone_c∪(ran(new_c) × {c}))∼[{c0}])" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p62"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p62" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p118"> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p118" org.eventb.core.prHyps="p2,p46,p4,p48,p114,p5,p50,p19,p49,p117"> |
|
|
<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.prAnte name=")" org.eventb.core.prHyps="p118"> |
|
|
<org.eventb.core.prRule name="r14" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (card(to_clone_c∼[{c0}])≤card((to_clone_c∪(ran(new_c) × {c}))∼[{c0}]))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p119"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p119" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p120"> |
|
|
<org.eventb.core.prRule name="r23" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="finite set" org.eventb.core.prGoal="p120" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p62"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p62" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p121"> |
|
|
<org.eventb.core.prRule name="r24" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ hyp (inst Inst)" org.eventb.core.prHyps="p9"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p62"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p62" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prHyps="p121"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p9"/> |
|
|
<org.eventb.core.prRule name="r25" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p121" org.eventb.core.prHyps="p121"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".exprs" org.eventb.core.prRef="e4"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prGoal="p122"> |
|
|
<org.eventb.core.prRule name="r7" 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="p23"/> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p122" org.eventb.core.prHyps="p2,p46,p4,p48,p114,p5,p50,p19,p23,p49,p117,p118"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prExprRef name=".expr" org.eventb.core.prRef="e5"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p123"> |
|
|
<org.eventb.core.prRule name="r16" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="rewrites converse relation in goal" org.eventb.core.prGoal="p123" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p124"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p124" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p125"> |
|
|
<org.eventb.core.prRule name="r17" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="relational image with ∪ left in goal" org.eventb.core.prGoal="p125" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p126"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p126" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p127"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p127" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p120"> |
|
|
<org.eventb.core.prRule name="r23" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="finite set" org.eventb.core.prGoal="p120" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p62"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p62" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p121"> |
|
|
<org.eventb.core.prRule name="r24" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ hyp (inst Inst)" org.eventb.core.prHyps="p9"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p62"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p62" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prHyps="p121"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p9"/> |
|
|
<org.eventb.core.prRule name="r25" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p121" org.eventb.core.prHyps="p121"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".exprs" org.eventb.core.prRef="e4"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prGoal="p122"> |
|
|
<org.eventb.core.prRule name="r7" 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="p23"/> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p122" org.eventb.core.prHyps="p2,p46,p4,p48,p114,p5,p50,p19,p23,p49,p117,p118"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prExprRef name=".expr" org.eventb.core.prRef="e5"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p128"> |
|
|
<org.eventb.core.prRule name="r7" 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="p5"/> |
|
|
<org.eventb.core.prRule name="r23" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="finite set" org.eventb.core.prGoal="p128" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p62"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p62" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p4"> |
|
|
<org.eventb.core.prRule name="r18" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="finite of range of a function" org.eventb.core.prGoal="p4" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p72"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p72" org.eventb.core.prHyps="p28,p31"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p73"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p73" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p62"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p62" org.eventb.core.prHyps=""/> |
|
|
</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="p129"> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p129" org.eventb.core.prHyps="p2,p46,p4,p48,p114,p5,p50,p19,p49,p117,p118"> |
|
|
<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.prAnte name=")" org.eventb.core.prGoal="p99"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p99" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p62"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p62" org.eventb.core.prHyps=""/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".expr" org.eventb.core.prRef="e6"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prGoal="p130"> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p130" org.eventb.core.prHyps="p2,p46,p4,p48,p114,p5,p50,p19,p49,p117,p118"> |
|
|
<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.prExprRef name=".expr" org.eventb.core.prRef="e7"/> |
|
|
</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="0"/> |
|
|
</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="0.0"/> |
|
|
</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="p131" org.eventb.core.prHyps="p123,p120"> |
|
|
<org.eventb.core.prRule name="r22" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p131" org.eventb.core.prHyps="p1,p2,p3,p4,p48,p6,p5,p7,p9,p10,p11,p12,p13,p14,p15,p16,p47,p17,p114,p18,p20,p19,p22,p23,p24,p49,p123,p25,p26,p27,p46,p44,p28,p50,p29,p30,p31,p32,p33,p39,p117,p118,p120"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1;2;3:30000"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prHyps="p123,p120,p131"> |
|
|
<org.eventb.core.prRule name="r20" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ae (card(to_clone_c∼[{c0}]))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p120"> |
|
|
<org.eventb.core.prRule name="r25" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p120" org.eventb.core.prHyps="p120"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prHyps="p132,p120"> |
|
|
<org.eventb.core.prIdent name="ae" org.eventb.core.type="ℤ"/> |
|
|
<org.eventb.core.prRule name="r21" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he with ae=card(to_clone_c∼[{c0}])" org.eventb.core.prGoal="p115" org.eventb.core.prHyps="p132"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p134"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p131" org.eventb.core.prInfHyps="p133"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p131"/> |
|
|
<org.eventb.core.prRule name="r7" 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="DESELECT0" org.eventb.core.prHyps="p132"/> |
|
|
<org.eventb.core.prRule name="r20" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ae (card((to_clone_c∪(ran(new_c) × {c}))∼[{c0}]))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p123"> |
|
|
<org.eventb.core.prRule name="r25" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p123" org.eventb.core.prHyps="p123"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prHyps="p135,p123"> |
|
|
<org.eventb.core.prIdent name="ae0" org.eventb.core.type="ℤ"/> |
|
|
<org.eventb.core.prRule name="r21" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he with ae0=card((to_clone_c∪(ran(new_c) × {c}))∼[{c0}])" org.eventb.core.prHyps="p135"> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p117" org.eventb.core.prInfHyps="p136"/> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p133" org.eventb.core.prInfHyps="p137"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT2" org.eventb.core.prHyps="p117,p133"/> |
|
|
<org.eventb.core.prRule name="r7" 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="DESELECT0" org.eventb.core.prHyps="p135"/> |
|
|
<org.eventb.core.prRule name="r7" 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="DESELECT0" org.eventb.core.prHyps="p48,p114,p5,p50,p19,p100,p49,p123,p118,p120"/> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="CVC3" org.eventb.core.prGoal="p134" org.eventb.core.prHyps="p137,p136"> |
|
|
<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.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prExprRef name=".expr" org.eventb.core.prRef="e8"/> |
|
|
</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.prExprRef name=".expr" org.eventb.core.prRef="e9"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p131"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p118"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
|