|
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
|
|
<org.eventb.core.prFile version="1"> |
|
|
<org.eventb.core.prProof name="p_ctr/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="Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p2" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p3,p4"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p3,p4"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="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="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="p8"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m1,m2)" org.eventb.core.prGoal="p7" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p9"> |
|
|
<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="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p9" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11" org.eventb.core.prHyps="p10"> |
|
|
<org.eventb.core.prRule name="r5" 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="p12"> |
|
|
<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="p12" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p13"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p13" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p14"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p14" 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="p15"> |
|
|
<org.eventb.core.prRule name="r8" 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.prAnte name=")" org.eventb.core.prGoal="p16"> |
|
|
<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="p16" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p17"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p17" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p14"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p14" 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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<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="Component" org.eventb.core.type="ℙ(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="p14" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="¬m1=m2⇒m1∈dom(ports)∧ports∈Model ⇸ ℙ(Port)∧m2∈dom(ports)"> |
|
|
<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="p11" org.eventb.core.predicate="m1∈dom(ports)∧ports∈Model ⇸ ℙ(Port)∧m2∈dom(ports)"> |
|
|
<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="p17" 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="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="m1∈dom(ports)"> |
|
|
<org.eventb.core.prIdent name="m1" 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⇒m1∈dom(ports)∧ports∈Model ⇸ ℙ(Port)∧m2∈dom(ports)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="ports∈Model ⇸ ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p10" 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="p7" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒m1∈dom(ports)∧ports∈Model ⇸ ℙ(Port)∧m2∈dom(ports)"/> |
|
|
<org.eventb.core.prPred name="p13" 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="p3" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="m2∈dom(ports)"> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="ports∈Model → ℙ(Port)"/> |
|
|
<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="Component" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="Model"/> |
|
|
<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="r8" org.eventb.core.prRID="org.eventb.core.seqprover.isFunGoal"/> |
|
|
<org.eventb.core.prReas name="r6" 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="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.impI"/> |
|
|
<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="org.eventb.core.seqprover.conj:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="pc_ctr/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="m" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4" org.eventb.core.prSets="Component,Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6,p7"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p6,p7"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p8"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p8" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p13"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p9" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p10"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p11" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p12"/> |
|
|
<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="p14"/> |
|
|
<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="p15"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p15" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p16"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
<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="p16" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p17"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p17" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p18"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p18" 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="p19"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p19" org.eventb.core.prHyps="p2"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name=")" org.eventb.core.prGoal="p20"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p20" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p21"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
<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="p21" org.eventb.core.prHyps="p4"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p17"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p17" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p18"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p18" 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="p22"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p22" org.eventb.core.prHyps="p4"/> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="+" org.eventb.core.prGoal="p23"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p23" 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="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p24" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p17"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p17" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p18"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p18" 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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="p_component" org.eventb.core.type="ℙ(Model×ℙ(Port×Component))"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p14" 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="p24" 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="p17" 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="p_component∈Model → (Port ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀m⦂Model·m∈dom(p_component)"/> |
|
|
<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·m∈dom(p_component))∧p_component∈Model ⇸ ℙ(Port × Component)∧(∀m⦂Model·m∈dom(ports))∧ports∈Model ⇸ ℙ(Port)∧(∀m⦂Model·m∈dom(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="p18" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="p_component∈Model ⇸ ℙ(Port × Component)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="ports∈Model ⇸ ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·m∈dom(p_component)∧p_component∈Model ⇸ ℙ(Port × Component)∧m∈dom(ports)∧ports∈Model ⇸ ℙ(Port)∧m∈dom(components)∧components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m⦂Model·m∈dom(p_component)∧p_component∈Model ⇸ ℙ(Port × Component)∧m∈dom(ports)∧ports∈Model ⇸ ℙ(Port)∧m∈dom(components)∧⊤"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="m∈dom(ports)"> |
|
|
<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="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="ports∈Model → ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="m∈dom(p_component)"> |
|
|
<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="∀m⦂Model·m∈dom(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="p20" org.eventb.core.predicate="∀m⦂Model·m∈dom(ports)"/> |
|
|
<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.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r8" org.eventb.core.prRID="org.eventb.core.seqprover.isFunGoal"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.totalDom:2"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="INITIALISATION/p/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/p_ctr/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="Model,Port"> |
|
|
<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="ports'" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<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="p6" org.eventb.core.predicate="¬m1=m2⇒ports'(m1)∩ports'(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<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="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="p8" org.eventb.core.predicate="ports'(m1)∩ports'(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<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="p3" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports'(m1)∩ports'(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<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="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="p0" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports'(m1)∩ports'(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<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/pc_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/pc_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,Port"> |
|
|
<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="p_component'" org.eventb.core.type="ℙ(Model×ℙ(Port×Component))"/> |
|
|
<org.eventb.core.prIdent name="ports'" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<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="p_component'(m)∈ports'(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·p_component'(m)∈ports'(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="to_unfold_p/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1" org.eventb.core.prSets="Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p2" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p3,p4"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p3,p4"/> |
|
|
<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="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="p9"/> |
|
|
<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="p10"> |
|
|
<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="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="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="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.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="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<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="Component" org.eventb.core.type="ℙ(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="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="p8" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="ports∈Model ⇸ ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Pat∈dom(ports)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pat∈Model"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(ports)∧ports∈Model ⇸ ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="ports∈Model → ℙ(Port)"/> |
|
|
<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="Component" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="Model"/> |
|
|
<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="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="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<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.conj:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_p/pmult/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="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p0" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p1,p2"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p1,p2"/> |
|
|
<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="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="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="p7"/> |
|
|
</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.prPred name="p4" 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="p7" 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="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</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="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="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.partitionRewrites"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_p/p_in_p_mult/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="Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p4,p5"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p4,p5"/> |
|
|
<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="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="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="∧ goal" org.eventb.core.prGoal="p0" 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="total function dom substitution in goal" org.eventb.core.prGoal="p11" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p1"> |
|
|
<org.eventb.core.prRule name="r5" 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.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="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p12" 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.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="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="p_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Port×ℤ))"/> |
|
|
<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="Component" org.eventb.core.type="ℙ(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.prPred name="p12" org.eventb.core.predicate="p_multiplicity∈Model ⇸ ℙ(Port × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="p_multiplicity∈Pattern → (Port ⇸ ℕ1)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pat∈dom(p_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(p_multiplicity)∧p_multiplicity∈Model ⇸ ℙ(Port × ℤ)"/> |
|
|
<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="Component" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="Pattern"/> |
|
|
<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="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="r5" org.eventb.core.prRID="org.eventb.core.seqprover.hyp"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<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_p/new_p_ty/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="Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6,p7"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p6,p7"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p4"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p8"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p8" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p13"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p9" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p10"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p11" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p12"/> |
|
|
<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="p14"/> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional image goal for p_multiplicity(Pat)" org.eventb.core.prGoal="p13" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p13" org.eventb.core.prHyps="p15"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional image goal for p_multiplicity(Pat)" org.eventb.core.prGoal="p13" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p13" org.eventb.core.prHyps="p16"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p13" org.eventb.core.prHyps="p15"/> |
|
|
</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.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="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="p" org.eventb.core.type="Port"/> |
|
|
<org.eventb.core.prIdent name="p_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Port×ℤ))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="p_multiplicity(Pat)∈Port ⇸ ℕ1"/> |
|
|
<org.eventb.core.prPred name="p10" 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="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="p_multiplicity(Pat)∈Port ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="p_multiplicity∈Model ⇸ ℙ(Port × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="p_multiplicity∈Pattern → (Port ⇸ ℕ1)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="p_multiplicity(Pat)∈ℙ(Port × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pat∈dom(p_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(p_multiplicity)∧p_multiplicity∈Model ⇸ ℙ(Port × ℤ)∧p∈dom(p_multiplicity(Pat))∧p_multiplicity(Pat)∈Port ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="⊤∧⊤∧⊤∧p_multiplicity(Pat)∈Port ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="p∈dom(p_multiplicity(Pat))"/> |
|
|
<org.eventb.core.prPred name="p9" 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="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.funImgGoal"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.isFunGoal"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_p/p/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="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p0" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p1,p2"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p1,p2"/> |
|
|
<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="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="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="p7"/> |
|
|
</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.prPred name="p4" 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="p7" 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="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</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="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="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.partitionRewrites"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_p/p_ctr/INV" org.eventb.core.confidence="0" org.eventb.core.prFresh="m1,m2" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6" org.eventb.core.prSets="Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p2" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p7,p8"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p7,p8"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p9" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p10"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p11"/> |
|
|
<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="p13"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m1,m2)" org.eventb.core.prGoal="p12" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p14"> |
|
|
<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="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p14" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p16" org.eventb.core.prHyps="p15"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p16" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p18" org.eventb.core.prHyps="p17"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p18" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p20" org.eventb.core.prHyps="p19"> |
|
|
<org.eventb.core.prRule name="r1" 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="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p21" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p22"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m1=Pat" org.eventb.core.prHyps="p17"> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p23"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p15"/> |
|
|
<org.eventb.core.prRule name="r8" 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="p23" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p24"/> |
|
|
<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="p24" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p25"/> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p25"/> |
|
|
</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="p26"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m1=Pat" org.eventb.core.prHyps="p17"> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p23"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p15"/> |
|
|
<org.eventb.core.prRule name="r8" 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="p23" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p24"/> |
|
|
<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="p24" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p25"/> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p25"/> |
|
|
</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="p28" org.eventb.core.prHyps="p27"> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p29"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m1=Pat" org.eventb.core.prHyps="p17"> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p23"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p15"/> |
|
|
<org.eventb.core.prRule name="r8" 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="p23" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p30"/> |
|
|
<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="HIDE0" org.eventb.core.prHyps="p30"/> |
|
|
</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.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.prAnte name="(" org.eventb.core.prGoal="p32" org.eventb.core.prHyps="p31"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p32" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p33" org.eventb.core.prHyps="p19"> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p33" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p34"/> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p35" org.eventb.core.prHyps="p27"> |
|
|
<org.eventb.core.prRule name="r10" 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="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p36" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p37"> |
|
|
<org.eventb.core.prRule name="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p37" org.eventb.core.prHyps="p3,p6,p5,p7,p8,p11,p15,p31,p27"> |
|
|
<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.1"/> |
|
|
</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.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="0.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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="new_p" org.eventb.core.type="ℙ(ℤ×Port)"/> |
|
|
<org.eventb.core.prIdent name="p" org.eventb.core.type="Port"/> |
|
|
<org.eventb.core.prIdent name="p_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Port×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_p" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="((ports(Pat) ∖ {p})∪ran(new_p))∩((ports(Pat) ∖ {p})∪ran(new_p))=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p13" 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="p29" org.eventb.core.predicate="((ports(Pat) ∖ {p})∪ran(new_p))∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="¬m2=Pat"> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="((ports(Pat) ∖ {p})∪ran(new_p))∩(ports{Pat ↦ (ports(Pat) ∖ {p})∪ran(new_p)})(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="¬m1=Pat"> |
|
|
<org.eventb.core.prIdent name="m1" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="p∈to_unfold_p"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="¬m1=m2⇒(ports{Pat ↦ (ports(Pat) ∖ {p})∪ran(new_p)})(m1)∩(ports{Pat ↦ (ports(Pat) ∖ {p})∪ran(new_p)})(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<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="p28" org.eventb.core.predicate="((ports(Pat) ∖ {p})∪ran(new_p))∩({Pat} ⩤ ports)(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒(ports{Pat ↦ (ports(Pat) ∖ {p})∪ran(new_p)})(m1)∩(ports{Pat ↦ (ports(Pat) ∖ {p})∪ran(new_p)})(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="¬⊥"/> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="({Pat} ⩤ ports)(m1)∩({Pat} ⩤ ports)(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<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⇒(ports{Pat ↦ (ports(Pat) ∖ {p})∪ran(new_p)})(m1)∩(ports{Pat ↦ (ports(Pat) ∖ {p})∪ran(new_p)})(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="new_p=(∅ ⦂ ℙ(ℤ×Port))"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="¬Pat=m2"> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="({Pat} ⩤ ports)(m1)∩((ports(Pat) ∖ {p})∪ran(new_p))=(∅ ⦂ ℙ(Port))"> |
|
|
<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,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="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="(ports{Pat ↦ (ports(Pat) ∖ {p})∪ran(new_p)})(m1)∩(ports{Pat ↦ (ports(Pat) ∖ {p})∪ran(new_p)})(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<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="p25" org.eventb.core.predicate="⊥"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="partition(Port,IPort,OPort)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="new_p∈1 ‥ p_multiplicity(Pat)(p) ↣ Port ∖ union(ran(ports))"/> |
|
|
<org.eventb.core.prPred name="p15" 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="p19" org.eventb.core.predicate="m2=Pat"> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="ports(Pat)⊆{p}"/> |
|
|
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<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="p21" org.eventb.core.predicate="ports(Pat)⊆{p}∧new_p=(∅ ⦂ ℙ(ℤ×Port))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="Port=IPort∪OPort"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="ports∈Model → ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="ports(m1)∩({Pat} ⩤ ports)(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<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="p34" org.eventb.core.predicate="ports(m1)∩((ports(Pat) ∖ {p})∪ran(new_p))=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="m1" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="({Pat} ⩤ ports)(m1)∩(ports{Pat ↦ (ports(Pat) ∖ {p})∪ran(new_p)})(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<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="p∈dom(p_multiplicity(Pat))"/> |
|
|
<org.eventb.core.prPred name="p9" 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="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="m1=Pat"> |
|
|
<org.eventb.core.prIdent name="m1" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="¬⊤"/> |
|
|
<org.eventb.core.prReas name="r11" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<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="r9" org.eventb.core.prRID="org.eventb.core.seqprover.falseHyp"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/> |
|
|
<org.eventb.core.prReas name="r8" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<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.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<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.funOvr:1"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_p/pc_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" org.eventb.core.prSets="Component,Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p8,p9"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p8,p9"/> |
|
|
<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="p10" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p11"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p12" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p13"/> |
|
|
<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="p14"/> |
|
|
<org.eventb.core.prRule name="r3" 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="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="ovr in 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="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p17" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p18" org.eventb.core.prHyps="p16"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m=Pat" org.eventb.core.prGoal="p18" org.eventb.core.prHyps="p16"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p19"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p21" org.eventb.core.prHyps="p20"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p21" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p22"> |
|
|
<org.eventb.core.prRule name="r7" 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="p20" org.eventb.core.prHyps="p16" org.eventb.core.prInfHyps="p23"/> |
|
|
<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="p23" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p24"/> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p24"/> |
|
|
</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.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="p25" org.eventb.core.prHyps="p20"> |
|
|
<org.eventb.core.prRule name="r4" 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="p26" org.eventb.core.prHyps="p16"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p27"> |
|
|
<org.eventb.core.prRule name="r7" 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="p16" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p24"/> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p24"/> |
|
|
</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="p28" org.eventb.core.prHyps="p20"> |
|
|
<org.eventb.core.prRule name="r6" 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="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p29" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p30"> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p30" org.eventb.core.prHyps="p1,p5,p7,p6,p8,p9,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.prString name=".pos" org.eventb.core.prSValue=""/> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="new_p" org.eventb.core.type="ℙ(ℤ×Port)"/> |
|
|
<org.eventb.core.prIdent name="p" org.eventb.core.type="Port"/> |
|
|
<org.eventb.core.prIdent name="p_component" org.eventb.core.type="ℙ(Model×ℙ(Port×Component))"/> |
|
|
<org.eventb.core.prIdent name="p_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Port×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_p" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="(p_component{Pat ↦ ({p} ⩤ p_component(Pat))∪(ran(new_p) × (p_component(Pat))[{p}])})(m)∈(ports{Pat ↦ (ports(Pat) ∖ {p})∪ran(new_p)})(m) → 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="p_component(m)∈(ports(Pat) ∖ {p})∪ran(new_p) → 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="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="∀m⦂Model·p_component(m)∈ports(m) → components(m)"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="p_component(m)∈ports(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="p_component∈Model → (Port ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="p∈to_unfold_p"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·(p_component{Pat ↦ ({p} ⩤ p_component(Pat))∪(ran(new_p) × (p_component(Pat))[{p}])})(m)∈(ports{Pat ↦ (ports(Pat) ∖ {p})∪ran(new_p)})(m) → components(m)"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="p_component(m)∈({Pat} ⩤ ports)(m) → 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="({p} ⩤ p_component(Pat))∪(ran(new_p) × (p_component(Pat))[{p}])∈(ports{Pat ↦ (ports(Pat) ∖ {p})∪ran(new_p)})(m) → 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="({Pat} ⩤ p_component)(m)∈(ports{Pat ↦ (ports(Pat) ∖ {p})∪ran(new_p)})(m) → components(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="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="⊥"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="({Pat} ⩤ p_component)(m)∈({Pat} ⩤ ports)(m) → components(m)"> |
|
|
<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="partition(Port,IPort,OPort)"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="({Pat} ⩤ p_component)(m)∈(ports(Pat) ∖ {p})∪ran(new_p) → 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="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="new_p∈1 ‥ p_multiplicity(Pat)(p) ↣ Port ∖ union(ran(ports))"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="({p} ⩤ p_component(Pat))∪(ran(new_p) × (p_component(Pat))[{p}])∈ports(m) → components(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="({p} ⩤ p_component(Pat))∪(ran(new_p) × (p_component(Pat))[{p}])∈(ports(Pat) ∖ {p})∪ran(new_p) → components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="({p} ⩤ p_component(Pat))∪(ran(new_p) × (p_component(Pat))[{p}])∈(ports(Pat) ∖ {p})∪ran(new_p) → 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="Port=IPort∪OPort"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="ports∈Model → ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="({p} ⩤ p_component(Pat))∪(ran(new_p) × (p_component(Pat))[{p}])∈({Pat} ⩤ ports)(m) → components(m)"> |
|
|
<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="¬m=Pat"> |
|
|
<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="p∈dom(p_multiplicity(Pat))"/> |
|
|
<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="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="¬⊤"/> |
|
|
<org.eventb.core.prReas name="r9" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<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="r8" org.eventb.core.prRID="org.eventb.core.seqprover.falseHyp"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<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_p/to_unfold_p/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="Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p1" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6,p7"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p6,p7"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p8" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p9"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" 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="type rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p13"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p12" org.eventb.core.prHyps="p2,p3,p5,p4,p6,p7"> |
|
|
<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.prString name=".pos" org.eventb.core.prSValue=""/> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="new_p" org.eventb.core.type="ℙ(ℤ×Port)"/> |
|
|
<org.eventb.core.prIdent name="p" org.eventb.core.type="Port"/> |
|
|
<org.eventb.core.prIdent name="p_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Port×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_p" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p9" 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="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" 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="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="partition(Port,IPort,OPort)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="to_unfold_p ∖ {p}⊆(ports(Pat) ∖ {p})∪ran(new_p)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="p∈to_unfold_p"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="new_p∈1 ‥ p_multiplicity(Pat)(p) ↣ Port ∖ union(ran(ports))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="to_unfold_p ∖ {p}⊆(ports{Pat ↦ (ports(Pat) ∖ {p})∪ran(new_p)})(Pat)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Port=IPort∪OPort"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="to_unfold_p⊆ports(Pat)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="p∈dom(p_multiplicity(Pat))"/> |
|
|
<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="Component" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<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.partitionRewrites"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_p/sp/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="Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p4,p5"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p4,p5"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p6"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p6" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<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="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.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="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p6" 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.prIdent name="Component" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(ports)∧ports∈Model ⇸ ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="ports∈Model ⇸ ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Pat∈dom(ports)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<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="Component" org.eventb.core.type="ℙ(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.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_p/pc_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="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p0" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p1,p2"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p1,p2"/> |
|
|
<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="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="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="p7"/> |
|
|
</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.prPred name="p4" 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="p7" 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="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</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="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="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.partitionRewrites"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_p/new_p_component/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,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p2" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p3,p4"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p3,p4"/> |
|
|
<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="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="p9"/> |
|
|
<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="p10"> |
|
|
<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="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="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="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.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="p_component" org.eventb.core.type="ℙ(Model×ℙ(Port×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="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="p12" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="p_component∈Model ⇸ ℙ(Port × Component)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(p_component)∧p_component∈Model ⇸ ℙ(Port × Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="p_component∈Model → (Port ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pat∈Model"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.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.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Pat∈dom(p_component)"/> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="Model"/> |
|
|
<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="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="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<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.conj:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_p/p_multiplicity/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="Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p4,p5"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p4,p5"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p6"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p6" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<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="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.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="p_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Port×ℤ))"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pat∈dom(p_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p6" 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.prIdent name="Component" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="p_multiplicity∈Model ⇸ ℙ(Port × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(p_multiplicity)∧p_multiplicity∈Model ⇸ ℙ(Port × ℤ)"/> |
|
|
<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="Component" org.eventb.core.type="ℙ(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.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/ip/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="Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p5,p6"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p5,p6"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p7"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p7" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p8" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p9"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p10" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p11"/> |
|
|
<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="p13"/> |
|
|
<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="p12" org.eventb.core.prHyps="p1"> |
|
|
<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="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="r5" 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="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.prString name=".pos" org.eventb.core.prSValue=""/> |
|
|
</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="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p9" 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="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Mdl∈dom(ports)"/> |
|
|
<org.eventb.core.prPred name="p13" 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="p15" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="ports∈Model ⇸ ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pat∈dom(ports)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(ports)∧ports∈Model ⇸ ℙ(Port)∧Mdl∈dom(ports)"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="Mdl∈Model"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="⊤∧⊤∧Mdl∈dom(ports)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="ports∈Model → ℙ(Port)"/> |
|
|
<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="Component" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<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.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<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.partitionRewrites"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/ipr/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="Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p5,p6"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p5,p6"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p7"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p7" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p8" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p9"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p10" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p11"/> |
|
|
<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.prString name=".pos" org.eventb.core.prSValue=""/> |
|
|
</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="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Mdl∈dom(ports)"/> |
|
|
<org.eventb.core.prPred name="p9" 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="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="ports∈Model ⇸ ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pat∈dom(ports)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="⊤∧⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Mdl∈dom(ports)∧ports∈Model ⇸ ℙ(Port)∧Pat∈dom(ports)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.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.prIdent name="Component" org.eventb.core.type="ℙ(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.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/to_unfold_p/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,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p9,p10"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p9,p10"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p17"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p11" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p12"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p13" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p14"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE2" org.eventb.core.prHidden="p15" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p16"/> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p17" org.eventb.core.prHyps="p4"> |
|
|
<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="p19"> |
|
|
<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="p20"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p21"/> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p19" org.eventb.core.prHyps="p4,p7,p1,p5,p2,p6,p8,p9,p10"> |
|
|
<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.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="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="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="inst_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst_ports" org.eventb.core.type="ℙ(Port×Port)"/> |
|
|
<org.eventb.core.prIdent name="p_mult_others" org.eventb.core.type="ℙ(Port×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_p" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="inst_components∼∈components(Mdl) ⇸ components(Pat)"/> |
|
|
<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="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="p16" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="to_unfold_p∪dom(inst_ports)⊆ports(Pat)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(Port,IPort,OPort)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="¬Mdl=Pat"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="c_mult_others∈components(Pat) ∖ dom(inst_components) → ℕ1"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="p_mult_others∈ports(Pat) ∖ dom(inst_ports) → ℕ1"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="Mdl∈Model"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="inst_ports∈ports(Pat) ↔ ports(Mdl)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="Port=IPort∪OPort"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="to_unfold_p⊆ports(Pat)∧dom(inst_ports)⊆ports(Pat)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="to_unfold_p⊆ports(Pat)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="inst_ports∼∈ports(Mdl) ⇸ ports(Pat)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="⊤∧dom(inst_ports)⊆ports(Pat)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Mdl≠Pat"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="dom(inst_ports)⊆ports(Pat)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="inst_components∈components(Pat) ↔ components(Mdl)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<org.eventb.core.prReas name="r3" 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="r2" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="apply_pattern/ipr/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="Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p5,p6"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p5,p6"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p7"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p7" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p14"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p8" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p9"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p10" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p11"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE2" org.eventb.core.prHidden="p12" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p13"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p14" 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.prString name=".pos" org.eventb.core.prSValue=""/> |
|
|
</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="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Mdl∈dom(ports)"/> |
|
|
<org.eventb.core.prPred name="p11" 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="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="ports∈Model ⇸ ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="¬Mdl=Pat"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pat∈dom(ports)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="⊤∧⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Mdl∈dom(ports)∧ports∈Model ⇸ ℙ(Port)∧Pat∈dom(ports)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="Mdl≠Pat"/> |
|
|
<org.eventb.core.prPred name="p10" 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="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.genMPL3"/> |
|
|
<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.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="apply_pattern/np/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="Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p4,p5"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p4,p5"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p6"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p6" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<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="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.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="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p6" 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.prIdent name="Component" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(ports)∧ports∈Model ⇸ ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="ports∈Model ⇸ ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Pat∈dom(ports)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<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="Component" org.eventb.core.type="ℙ(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.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="apply_pattern/p/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="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p0" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p1,p2"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p1,p2"/> |
|
|
<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="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="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="p7"/> |
|
|
</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.prPred name="p4" 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="p7" 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="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</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="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="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.partitionRewrites"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="apply_pattern/p_ctr/INV" org.eventb.core.confidence="0" org.eventb.core.prFresh="m1,m2" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1" org.eventb.core.prSets="Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p2" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p3,p4"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p3,p4"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="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="∀ goal (frees m1,m2)" org.eventb.core.prGoal="p9" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<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="r4" 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="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p13" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p15" org.eventb.core.prHyps="p14"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in 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="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p17" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p18"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p18" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p19"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m1=Mdl" org.eventb.core.prHyps="p14"> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p12" org.eventb.core.prInfHyps="p20"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p12"/> |
|
|
<org.eventb.core.prRule name="r8" 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="p20" org.eventb.core.prHyps="p16" org.eventb.core.prInfHyps="p21"/> |
|
|
<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="p21" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p22"/> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p22"/> |
|
|
</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="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m1=Mdl" org.eventb.core.prHyps="p14"> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p12" org.eventb.core.prInfHyps="p20"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p12"/> |
|
|
<org.eventb.core.prRule name="r8" 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="p20" org.eventb.core.prHyps="p16" org.eventb.core.prInfHyps="p21"/> |
|
|
<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="p21" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p22"/> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p22"/> |
|
|
</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="p25" org.eventb.core.prHyps="p24"> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p25" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p26"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m1=Mdl" org.eventb.core.prHyps="p14"> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p12" org.eventb.core.prInfHyps="p20"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p12"/> |
|
|
<org.eventb.core.prRule name="r8" 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="p20" org.eventb.core.prHyps="p24" org.eventb.core.prInfHyps="p27"/> |
|
|
<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="HIDE0" org.eventb.core.prHyps="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.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="0.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p29" org.eventb.core.prHyps="p28"> |
|
|
<org.eventb.core.prRule name="r5" 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="p16"> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p30" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p31"/> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p32" org.eventb.core.prHyps="p24"> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p32" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p33"> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p33" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p34"/> |
|
|
<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="0.0"/> |
|
|
</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="0.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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="new_ports" org.eventb.core.type="ℙ(Port×Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="¬m1=Mdl"> |
|
|
<org.eventb.core.prIdent name="m1" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="ports(m1)∩(ports(Mdl)∪ran(new_ports))=(∅ ⦂ ℙ(Port))"> |
|
|
<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="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="∀m1⦂Model,m2⦂Model·m1≠m2⇒(ports{Mdl ↦ ports(Mdl)∪ran(new_ports)})(m1)∩(ports{Mdl ↦ ports(Mdl)∪ran(new_ports)})(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="¬m2=Mdl"> |
|
|
<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⦂Model,m2⦂Model·¬m1=m2⇒(ports{Mdl ↦ ports(Mdl)∪ran(new_ports)})(m1)∩(ports{Mdl ↦ ports(Mdl)∪ran(new_ports)})(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="(ports(Mdl)∪ran(new_ports))∩(ports(Mdl)∪ran(new_ports))=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="(ports(Mdl)∪ran(new_ports))∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="¬⊥"/> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="ports(m1)∩({Mdl} ⩤ ports)(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<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="p29" org.eventb.core.predicate="({Mdl} ⩤ ports)(m1)∩(ports{Mdl ↦ ports(Mdl)∪ran(new_ports)})(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<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="p15" org.eventb.core.predicate="(ports(Mdl)∪ran(new_ports))∩(ports{Mdl ↦ ports(Mdl)∪ran(new_ports)})(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="(ports(Mdl)∪ran(new_ports))∩({Mdl} ⩤ ports)(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="({Mdl} ⩤ ports)(m1)∩({Mdl} ⩤ ports)(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<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⦂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="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="⊥"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="m1=Mdl"> |
|
|
<org.eventb.core.prIdent name="m1" 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⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="new_ports=(∅ ⦂ ℙ(Port×Port))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p12" 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="p30" org.eventb.core.predicate="({Mdl} ⩤ ports)(m1)∩(ports(Mdl)∪ran(new_ports))=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="m1" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="(ports{Mdl ↦ ports(Mdl)∪ran(new_ports)})(m1)∩(ports{Mdl ↦ ports(Mdl)∪ran(new_ports)})(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<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="p11" org.eventb.core.predicate="¬m1=m2⇒(ports{Mdl ↦ ports(Mdl)∪ran(new_ports)})(m1)∩(ports{Mdl ↦ ports(Mdl)∪ran(new_ports)})(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<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="p19" org.eventb.core.predicate="ports(Mdl)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="m2=Mdl"> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<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="p3" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="ports(Mdl)=(∅ ⦂ ℙ(Port))∧new_ports=(∅ ⦂ ℙ(Port×Port))"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="¬Mdl=m2"> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="ports∈Model → ℙ(Port)"/> |
|
|
<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="Component" org.eventb.core.type="ℙ(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="¬⊤"/> |
|
|
<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="r9" org.eventb.core.prRID="org.eventb.core.seqprover.falseHyp"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/> |
|
|
<org.eventb.core.prReas name="r8" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<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.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<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.funOvr:1"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="apply_pattern/pc_ctr/INV" org.eventb.core.confidence="0" org.eventb.core.prFresh="m" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3" org.eventb.core.prSets="Component,Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p5,p6"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p5,p6"/> |
|
|
<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="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="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="p11"/> |
|
|
<org.eventb.core.prRule name="r3" 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="r4" 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="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p14" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p15" org.eventb.core.prHyps="p13"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p15" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p16" org.eventb.core.prHyps="p13"/> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p18" org.eventb.core.prHyps="p17"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p18" org.eventb.core.prHyps="p1"> |
|
|
<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="generalized MP" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p17" org.eventb.core.prHyps="p13" org.eventb.core.prInfHyps="p20"/> |
|
|
<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="p20" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p21"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p21"/> |
|
|
</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.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="p22" org.eventb.core.prHyps="p17"> |
|
|
<org.eventb.core.prRule name="r4" 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="p23" org.eventb.core.prHyps="p13"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p23" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p24"> |
|
|
<org.eventb.core.prRule name="r6" 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="p17" org.eventb.core.prHyps="p13" org.eventb.core.prInfHyps="p20"/> |
|
|
<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="p20" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p21"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p21"/> |
|
|
</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.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p25" org.eventb.core.prHyps="p17"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p25" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p26"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p1"> |
|
|
<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="generalized MP" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p17" org.eventb.core.prHyps="p13" org.eventb.core.prInfHyps="p20"/> |
|
|
<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="p20" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p21"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p21"/> |
|
|
</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.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="p28" org.eventb.core.prHyps="p17"> |
|
|
<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="p13"> |
|
|
<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="p30" org.eventb.core.prHyps="p13"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p30" org.eventb.core.prHyps="p2"> |
|
|
<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="generalized MP" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p13" org.eventb.core.prHyps="p17" org.eventb.core.prInfHyps="p21"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" 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="0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p32" org.eventb.core.prHyps="p17"> |
|
|
<org.eventb.core.prRule name="r5" 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="Functional image simplification in goal" org.eventb.core.prGoal="p33" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p34"> |
|
|
<org.eventb.core.prRule name="r6" 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="p13" org.eventb.core.prHyps="p17" org.eventb.core.prInfHyps="p21"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" 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"/> |
|
|
</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="p35" org.eventb.core.prHyps="p17"> |
|
|
<org.eventb.core.prRule name="r4" 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="p13"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p36" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p37"> |
|
|
<org.eventb.core.prRule name="r5" 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="r6" 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="p13" org.eventb.core.prHyps="p17" org.eventb.core.prInfHyps="p21"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" 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.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="p39" org.eventb.core.prHyps="p17"> |
|
|
<org.eventb.core.prRule name="r5" 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="r5" 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="Functional image simplification in goal" org.eventb.core.prGoal="p41" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p42"/> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/> |
|
|
</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.prIdent name="inst_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="inst_ports" org.eventb.core.type="ℙ(Port×Port)"/> |
|
|
<org.eventb.core.prIdent name="new_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_ports" org.eventb.core.type="ℙ(Port×Port)"/> |
|
|
<org.eventb.core.prIdent name="p_component" org.eventb.core.type="ℙ(Model×ℙ(Port×Component))"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="p_component(m)∈({Mdl} ⩤ ports)(m) → ({Mdl} ⩤ components)(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="Pattern⊆Model"> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="p_component(Mdl)∪((inst_ports∪new_ports)∼;p_component(Pat);(inst_components∪new_components))∈ports(m) → 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="p_component(m)∈ports(m) → 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="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="p_component∈Model → (Port ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="p_component(Mdl)∪((inst_ports∪new_ports)∼;p_component(Pat);(inst_components∪new_components))∈ports(m) → ({Mdl} ⩤ 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="p_component(m)∈ports(m) → ({Mdl} ⩤ 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="¬m=Mdl"> |
|
|
<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="({Mdl} ⩤ p_component)(m)∈ports(Mdl)∪ran(new_ports) → (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="p34" org.eventb.core.predicate="p_component(m)∈ports(Mdl)∪ran(new_ports) → 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="p_component(Mdl)∪((inst_ports∪new_ports)∼;p_component(Pat);(inst_components∪new_components))∈ports(Mdl)∪ran(new_ports) → (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="p32" org.eventb.core.predicate="({Mdl} ⩤ p_component)(m)∈ports(Mdl)∪ran(new_ports) → ({Mdl} ⩤ components)(m)"> |
|
|
<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="p_component(Mdl)∪((inst_ports∪new_ports)∼;p_component(Pat);(inst_components∪new_components))∈ports(Mdl)∪ran(new_ports) → ({Mdl} ⩤ components)(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="p_component(m)∈({Mdl} ⩤ ports)(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="p16" org.eventb.core.predicate="p_component(Mdl)∪((inst_ports∪new_ports)∼;p_component(Pat);(inst_components∪new_components))∈ports(Mdl)∪ran(new_ports) → components(Mdl)∪ran(new_components)"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="({Mdl} ⩤ p_component)(m)∈ports(Mdl)∪ran(new_ports) → 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="p24" org.eventb.core.predicate="p_component(Mdl)∪((inst_ports∪new_ports)∼;p_component(Pat);(inst_components∪new_components))∈ports(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="p8" 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="⊥"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·(p_component{Mdl ↦ p_component(Mdl)∪((inst_ports∪new_ports)∼;p_component(Pat);(inst_components∪new_components))})(m)∈(ports{Mdl ↦ ports(Mdl)∪ran(new_ports)})(m) → (components{Mdl ↦ components(Mdl)∪ran(new_components)})(m)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="(p_component{Mdl ↦ p_component(Mdl)∪((inst_ports∪new_ports)∼;p_component(Pat);(inst_components∪new_components))})(m)∈(ports{Mdl ↦ ports(Mdl)∪ran(new_ports)})(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="p4" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="p_component(m)∈ports(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="p19" org.eventb.core.predicate="p_component(Mdl)∪((inst_ports∪new_ports)∼;p_component(Pat);(inst_components∪new_components))∈ports(Mdl)∪ran(new_ports) → 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="p_component(m)∈ports(Mdl)∪ran(new_ports) → ({Mdl} ⩤ 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=Mdl"> |
|
|
<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="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="p_component(Mdl)∪((inst_ports∪new_ports)∼;p_component(Pat);(inst_components∪new_components))∈({Mdl} ⩤ ports)(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="p3" org.eventb.core.predicate="ports∈Model → ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="({Mdl} ⩤ p_component)(m)∈({Mdl} ⩤ ports)(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="p39" org.eventb.core.predicate="({Mdl} ⩤ p_component)(m)∈({Mdl} ⩤ ports)(m) → ({Mdl} ⩤ components)(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="p_component(Mdl)∪((inst_ports∪new_ports)∼;p_component(Pat);(inst_components∪new_components))∈({Mdl} ⩤ ports)(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="p25" org.eventb.core.predicate="p_component(Mdl)∪((inst_ports∪new_ports)∼;p_component(Pat);(inst_components∪new_components))∈({Mdl} ⩤ ports)(m) → ({Mdl} ⩤ 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="p_component(m)∈ports(Mdl)∪ran(new_ports) → 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="p28" org.eventb.core.predicate="({Mdl} ⩤ p_component)(m)∈(ports{Mdl ↦ ports(Mdl)∪ran(new_ports)})(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="p36" org.eventb.core.predicate="({Mdl} ⩤ p_component)(m)∈({Mdl} ⩤ ports)(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="p7" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="p_component(Mdl)∪((inst_ports∪new_ports)∼;p_component(Pat);(inst_components∪new_components))∈(ports{Mdl ↦ ports(Mdl)∪ran(new_ports)})(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="p20" org.eventb.core.predicate="¬⊤"/> |
|
|
<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="r7" org.eventb.core.prRID="org.eventb.core.seqprover.falseHyp"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<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.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<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/to_unfold_p/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,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54" org.eventb.core.prSets="Component,Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p44" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p55,p56"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p55,p56"/> |
|
|
<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="p31" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p57"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p45" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p58"/> |
|
|
<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="p59"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p61" org.eventb.core.prHyps="p60"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with Pat=Mdl" org.eventb.core.prHyps="p60"> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p49" org.eventb.core.prInfHyps="p62"/> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p14" org.eventb.core.prInfHyps="p63"/> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p10" org.eventb.core.prInfHyps="p64"/> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p33" org.eventb.core.prInfHyps="p65"/> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p16" org.eventb.core.prInfHyps="p66"/> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p42" org.eventb.core.prInfHyps="p67"/> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF6" org.eventb.core.prHyps="p5" org.eventb.core.prInfHyps="p68"/> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF7" org.eventb.core.prHyps="p51" org.eventb.core.prInfHyps="p69"/> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF8" org.eventb.core.prHyps="p17" org.eventb.core.prInfHyps="p70"/> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF9" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p71"/> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF10" org.eventb.core.prHyps="p41" org.eventb.core.prInfHyps="p72"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT11" org.eventb.core.prHyps="p49,p14,p10,p33,p16,p42,p5,p51,p17,p21,p41"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p61" org.eventb.core.prHyps="p28,p7,p36,p46,p8,p22,p9,p26,p52,p53,p39,p18,p29,p20,p23,p27,p2,p35,p43,p38,p49,p4,p19,p14,p48,p47,p10,p15,p33,p54,p30,p12,p16,p42,p5,p6,p1,p51,p34,p25,p50,p17,p13,p40,p21,p32,p41,p37,p11,p3,p24,p55,p56,p57,p58,p60,p62,p63,p64,p65,p66,p67,p68,p69,p70,p71,p72"> |
|
|
<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="p74" org.eventb.core.prHyps="p73"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p74" org.eventb.core.prHyps="p27"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p49"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p49" org.eventb.core.prHyps="p49"/> |
|
|
</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.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="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="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="inst_ports" org.eventb.core.type="ℙ(Port×Port)"/> |
|
|
<org.eventb.core.prIdent name="new_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_ports" org.eventb.core.type="ℙ(Port×Port)"/> |
|
|
<org.eventb.core.prIdent name="p_component" org.eventb.core.type="ℙ(Model×ℙ(Port×Component))"/> |
|
|
<org.eventb.core.prIdent name="p_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Port×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<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.prIdent name="to_unfold_p" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p59" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="p_multiplicity∈Model ⇸ ℙ(Port × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="p_component∈Model → (Port ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pat∈dom(ports{Mdl ↦ ports(Mdl)∪ran(new_ports)})"/> |
|
|
<org.eventb.core.prPred name="p64" org.eventb.core.predicate="inst_components∈components(Mdl) ⤔ components(Mdl)"/> |
|
|
<org.eventb.core.prPred name="p70" org.eventb.core.predicate="dom(inst_ports)⊆dom(p_component(Mdl) ▷ dom(inst_components))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Pat∈dom(ports)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="(p_multiplicity(Pat))[ports(Pat)]⊆{1}"/> |
|
|
<org.eventb.core.prPred name="p74" org.eventb.core.predicate="to_unfold_p⊆({Mdl} ⩤ ports)(Pat)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Pat∈dom(p_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p65" org.eventb.core.predicate="inst_components∼;container(Mdl);inst_components⊆container(Mdl)"/> |
|
|
<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 ⇸ ℕ1)"/> |
|
|
<org.eventb.core.prPred name="p62" org.eventb.core.predicate="to_unfold_p⊆ports(Mdl)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="inst_components∈components(Pat) ⤔ components(Mdl)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="new_ports[OPort]⊆OPort"/> |
|
|
<org.eventb.core.prPred name="p60" org.eventb.core.predicate="Pat=Mdl"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Mdl∈dom(container)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="Pat∈dom(p_component)"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="(c_multiplicity(Pat))[components(Pat)]⊆{1}"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="Mdl∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p66" org.eventb.core.predicate="(container(Mdl))∼;inst_components∼;container(Mdl)⊆inst_components∼"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="(container(Mdl))∼;inst_components∼;container(Pat)⊆inst_components∼"/> |
|
|
<org.eventb.core.prPred name="p58" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="dom(inst_ports)⊆dom(p_component(Pat) ▷ dom(inst_components))"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="ports∈Model ⇸ ℙ(Port)"/> |
|
|
<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.prPred name="p21" org.eventb.core.predicate="inst_ports∼;p_component(Pat);inst_components⊆p_component(Mdl)"/> |
|
|
<org.eventb.core.prPred name="p22" 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="p23" org.eventb.core.predicate="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="ports{Mdl ↦ ports(Mdl)∪ran(new_ports)}∈Model ⇸ ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p72" org.eventb.core.predicate="new_ports∈ports(Mdl) ∖ dom(inst_ports) ↣ Port ∖ union(ran(ports))"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="inst_ports[IPort]⊆IPort"/> |
|
|
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="Port=IPort∪OPort"/> |
|
|
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ1"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="ports∈Model → ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="Mdl∈Model ∖ Pattern"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="c_index∈dom(to_clone_c) ⇸ ℕ"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<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="Mdl∈dom(p_component)"/> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="inst_components∼;container(Pat);inst_components⊆container(Mdl)"/> |
|
|
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="Mdl∈dom(ports)"/> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="∀m⦂Model·p_component(m)∈ports(m) → components(m)"/> |
|
|
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="new_ports[IPort]⊆IPort"/> |
|
|
<org.eventb.core.prPred name="p67" org.eventb.core.predicate="new_components∈components(Mdl) ∖ dom(inst_components) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒p_multiplicity(m)∈ports(m) → ℕ1"/> |
|
|
<org.eventb.core.prPred name="p61" org.eventb.core.predicate="to_unfold_p⊆ports(Mdl)∪ran(new_ports)"/> |
|
|
<org.eventb.core.prPred name="p69" org.eventb.core.predicate="inst_ports∈ports(Mdl) ⤔ ports(Mdl)"/> |
|
|
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p68" org.eventb.core.predicate="(p_multiplicity(Mdl))[ports(Mdl)]⊆{1}"/> |
|
|
<org.eventb.core.prPred name="p57" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="p_component∈Model ⇸ ℙ(Port × Component)"/> |
|
|
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="new_ports∈ports(Pat) ∖ dom(inst_ports) ↣ Port ∖ union(ran(ports))"/> |
|
|
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="new_components∈components(Pat) ∖ dom(inst_components) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="p_multiplicity∈Pattern → (Port ⇸ ℕ1)"/> |
|
|
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="partition(Port,IPort,OPort)"/> |
|
|
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p63" org.eventb.core.predicate="(c_multiplicity(Mdl))[components(Mdl)]⊆{1}"/> |
|
|
<org.eventb.core.prPred name="p73" org.eventb.core.predicate="¬Pat=Mdl"/> |
|
|
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="to_unfold_p⊆(ports{Mdl ↦ ports(Mdl)∪ran(new_ports)})(Pat)"/> |
|
|
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="to_unfold_p⊆ports(Pat)"/> |
|
|
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="inst_ports[OPort]⊆OPort"/> |
|
|
<org.eventb.core.prPred name="p71" org.eventb.core.predicate="inst_ports∼;p_component(Mdl);inst_components⊆p_component(Mdl)"/> |
|
|
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="inst_ports∈ports(Pat) ⤔ ports(Mdl)"/> |
|
|
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<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="r4" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/> |
|
|
<org.eventb.core.prReas name="r6" 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="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.funOvr:1"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="apply_pattern/sp/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="Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p4,p5"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p4,p5"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p6"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p6" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<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="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.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="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Mdl∈dom(ports)"/> |
|
|
<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="Component" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Mdl∈dom(ports)∧ports∈Model ⇸ ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="ports∈Model ⇸ ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<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="Component" org.eventb.core.type="ℙ(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.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_c/new_c_ports_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" org.eventb.core.prSets="Component,Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p6" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p7,p8"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p7,p8"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p5"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p9"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p9" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p16"> |
|
|
<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="REWRITE1" org.eventb.core.prHidden="p12" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p13"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE2" org.eventb.core.prHidden="p14" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p15"/> |
|
|
<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="p17"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p18"/> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p16" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p19"> |
|
|
<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="p19" org.eventb.core.prHyps="p4"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p20"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type 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="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p21" 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="p22"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p22" org.eventb.core.prHyps="p4"/> |
|
|
</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.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="p_component" org.eventb.core.type="ℙ(Model×ℙ(Port×Component))"/> |
|
|
<org.eventb.core.prPred name="p13" 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="p17" 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="⊤"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="p_component∈Model ⇸ ℙ(Port × Component)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="p_component∈Model → (Port ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="Pat∈dom(p_component)∧p_component∈Model ⇸ ℙ(Port × Component)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="c_multiplicity(Pat)∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="¬Mdl=Pat"> |
|
|
<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="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p18" 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="p20" org.eventb.core.predicate="Pat∈Model"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c∈dom(c_multiplicity(Pat))"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="⊤∧⊤∧⊤∧⊤∧Pat∈dom(p_component)∧p_component∈Model ⇸ ℙ(Port × Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Mdl≠Pat"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" 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="p19" org.eventb.core.predicate="Pat∈dom(p_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 ⇸ ℤ∧Pat∈dom(p_component)∧p_component∈Model ⇸ ℙ(Port × 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.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.totalDom:2"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.isFunGoal"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_c/pc_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="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p0" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p1,p2"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p1,p2"/> |
|
|
<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="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.prHypAction name="REWRITE2" 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="p9"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p10"/> |
|
|
</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.prPred name="p6" 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="p9" 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="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="p8" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="¬Mdl=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="p7" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" 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="p5" 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="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.partitionRewrites"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_c/pc_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" org.eventb.core.prSets="Component,Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6,p7"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p6,p7"/> |
|
|
<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="p8" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p9"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" 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="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="r3" 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="p13"> |
|
|
<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="ovr in goal" org.eventb.core.prGoal="p13" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p15" org.eventb.core.prHyps="p14"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m=Pat" org.eventb.core.prGoal="p15" org.eventb.core.prHyps="p14"> |
|
|
<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="PP" org.eventb.core.prGoal="p16" org.eventb.core.prHyps="p1,p2,p5,p6,p7,p14"> |
|
|
<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.prAnte name="(" org.eventb.core.prGoal="p18" org.eventb.core.prHyps="p17"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p18" org.eventb.core.prHyps="p3"> |
|
|
<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="PP" org.eventb.core.prGoal="p19" org.eventb.core.prHyps="p1,p2,p5,p6,p7,p17"> |
|
|
<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.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.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="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="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="p_component" org.eventb.core.type="ℙ(Model×ℙ(Port×Component))"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_c" org.eventb.core.type="ℙ(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="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="p1" org.eventb.core.predicate="∀m⦂Model·p_component(m)∈ports(m) → components(m)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c∈to_unfold_c"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="p_component(m)∈ports(m) → 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="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·p_component(m)∈ports(m) → (components{Pat ↦ components(Pat)∪ran(new_c)})(m)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="partition(Port,IPort,OPort)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="p_component(m)∈ports(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="p5" org.eventb.core.predicate="new_c∈1 ‥ c_multiplicity(Pat)(c) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="p_component(Pat)∈ports(Pat) → components(Pat)∪ran(new_c)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="p_component(m)∈ports(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="p6" org.eventb.core.predicate="Port=IPort∪OPort"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="p_component(m)∈ports(m) → ({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="¬m=Pat"> |
|
|
<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="p14" 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="r6" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<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="r5" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<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_c/to_unfold_p/INV" org.eventb.core.confidence="0" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1" org.eventb.core.prSets="Component,Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p2" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p3,p4"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p3,p4"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<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.prHypAction name="REWRITE2" 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="generalized MP" 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="simplification rewrites" org.eventb.core.prGoal="p12" 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="type rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p14"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p15"/> |
|
|
</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.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="new_c_ports" org.eventb.core.type="ℙ(ℤ×Port×Port)"/> |
|
|
<org.eventb.core.prIdent name="p_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Port×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_p" org.eventb.core.type="ℙ(Port)"/> |
|
|
<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="p14" 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="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="¬Mdl=Pat"> |
|
|
<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⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="to_unfold_p∪new_c_ports[1 ‥ c_multiplicity(Pat)(c) × dom(p_multiplicity(Pat))]⊆ports(Pat)"/> |
|
|
<org.eventb.core.prPred name="p15" 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="p3" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="new_c_ports[1 ‥ c_multiplicity(Pat)(c) × dom(p_multiplicity(Pat))]⊆ports(Pat)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="to_unfold_p⊆ports(Pat)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="⊤∧new_c_ports[1 ‥ c_multiplicity(Pat)(c) × dom(p_multiplicity(Pat))]⊆ports(Pat)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Mdl≠Pat"> |
|
|
<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="to_unfold_p⊆ports(Pat)∧new_c_ports[1 ‥ c_multiplicity(Pat)(c) × dom(p_multiplicity(Pat))]⊆ports(Pat)"/> |
|
|
<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="r3" 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="r2" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_c/new_p_component/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,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p4,p5"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p4,p5"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p6"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p6" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p13"> |
|
|
<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.prHypAction name="REWRITE2" org.eventb.core.prHidden="p11" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p12"/> |
|
|
<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.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="p_component" org.eventb.core.type="ℙ(Model×ℙ(Port×Component))"/> |
|
|
<org.eventb.core.prPred name="p6" 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.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="p_component∈Model ⇸ ℙ(Port × Component)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(p_component)∧p_component∈Model ⇸ ℙ(Port × Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="¬Mdl=Pat"> |
|
|
<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="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="Mdl≠Pat"> |
|
|
<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="Pat∈dom(p_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.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<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.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_c/unfold_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" org.eventb.core.prSets="Component,Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p7" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p8,p9"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p8,p9"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p2,p3,p4,p6"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p10"> |
|
|
<org.eventb.core.prRule name="r2" 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="p17"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p11" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p12"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p13" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p14"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE2" org.eventb.core.prHidden="p15" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p16"/> |
|
|
<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="p18"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p19"/> |
|
|
<org.eventb.core.prRule name="r4" 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="p20"> |
|
|
<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="p20" org.eventb.core.prHyps="p5"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p1"> |
|
|
<org.eventb.core.prRule name="r6" 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.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="p21"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p21" org.eventb.core.prHyps="p5"/> |
|
|
</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.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="p_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Port×ℤ))"/> |
|
|
<org.eventb.core.prPred name="p14" 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="p18" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="p_multiplicity∈Model ⇸ ℙ(Port × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="p_multiplicity∈Pattern → (Port ⇸ ℕ1)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="c_multiplicity(Pat)∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="¬Mdl=Pat"> |
|
|
<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="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="⊤∧⊤∧⊤∧⊤∧Pat∈dom(p_multiplicity)∧p_multiplicity∈Model ⇸ ℙ(Port × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="Pat∈dom(p_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p19" 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="p2" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c∈dom(c_multiplicity(Pat))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"/> |
|
|
<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 ⇸ ℤ∧Pat∈dom(p_multiplicity)∧p_multiplicity∈Model ⇸ ℙ(Port × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Mdl≠Pat"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="Pat∈dom(p_multiplicity)∧p_multiplicity∈Model ⇸ ℙ(Port × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p13" 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.prExpr name="e0" org.eventb.core.expression="Pattern"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.totalDom:2"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.isFunGoal"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<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.partitionRewrites"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/card/WD" org.eventb.core.confidence="0" org.eventb.core.prFresh="pp" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1" org.eventb.core.prSets="Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p2" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p3,p4"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p3,p4"/> |
|
|
<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="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.prHypAction name="REWRITE2" 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="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="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees pp)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p13"> |
|
|
<org.eventb.core.prIdent name="pp" org.eventb.core.type="Port"/> |
|
|
<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="p15" org.eventb.core.prHyps="p14"> |
|
|
<org.eventb.core.prRule name="r5" 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="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p16" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p17"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p17" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p18"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p18" 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="r8" 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.prAnte name=")" org.eventb.core.prGoal="p20"/> |
|
|
<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="functional image goal for p_multiplicity(Pat)" org.eventb.core.prGoal="p21" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p21" org.eventb.core.prHyps="p22"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p21" org.eventb.core.prHyps="p22"/> |
|
|
</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="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.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="inst_ports" org.eventb.core.type="ℙ(Port×Port)"/> |
|
|
<org.eventb.core.prIdent name="p_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Port×ℤ))"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="p_multiplicity(Pat)∈Port ⇸ ℕ1"/> |
|
|
<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="Component" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<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="p18" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="finite(inst_ports[{pp}])"> |
|
|
<org.eventb.core.prIdent name="pp" org.eventb.core.type="Port"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="p_multiplicity(Pat)∈Port ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="p_multiplicity∈Model ⇸ ℙ(Port × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="¬Mdl=Pat"> |
|
|
<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⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="pp∈dom(p_multiplicity(Pat))"> |
|
|
<org.eventb.core.prIdent name="pp" org.eventb.core.type="Port"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="pp∈dom(inst_ports)⇒Pat∈dom(p_multiplicity)∧p_multiplicity∈Model ⇸ ℙ(Port × ℤ)∧pp∈dom(p_multiplicity(Pat))∧p_multiplicity(Pat)∈Port ⇸ ℤ∧finite(inst_ports[{pp}])"> |
|
|
<org.eventb.core.prIdent name="pp" org.eventb.core.type="Port"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="Pat∈dom(p_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p12" 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="p17" org.eventb.core.predicate="Pat∈Model"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀pp⦂Port·pp∈dom(inst_ports)⇒Pat∈dom(p_multiplicity)∧p_multiplicity∈Model ⇸ ℙ(Port × ℤ)∧pp∈dom(p_multiplicity(Pat))∧p_multiplicity(Pat)∈Port ⇸ ℤ∧finite(inst_ports[{pp}])"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="pp∈dom(inst_ports)"> |
|
|
<org.eventb.core.prIdent name="pp" org.eventb.core.type="Port"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Mdl≠Pat"> |
|
|
<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="p_multiplicity∈Model → (Port ⇸ ℕ1)"/> |
|
|
<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="Component" org.eventb.core.type="ℙ(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="Pat∈dom(p_multiplicity)∧p_multiplicity∈Model ⇸ ℙ(Port × ℤ)∧pp∈dom(p_multiplicity(Pat))∧p_multiplicity(Pat)∈Port ⇸ ℤ∧finite(inst_ports[{pp}])"> |
|
|
<org.eventb.core.prIdent name="pp" org.eventb.core.type="Port"/> |
|
|
</org.eventb.core.prPred> |
|
|
<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.allI"/> |
|
|
<org.eventb.core.prReas name="r9" org.eventb.core.prRID="org.eventb.core.seqprover.funImgGoal"/> |
|
|
<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="r7" 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="r6" org.eventb.core.prRID="org.eventb.core.seqprover.totalDom:2"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<org.eventb.core.prReas name="r8" org.eventb.core.prRID="org.eventb.core.seqprover.isFunGoal"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="apply_pattern/ip/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="Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p5,p6"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p5,p6"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p7"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p7" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p8" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p9"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p10" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p11"/> |
|
|
<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="p13"/> |
|
|
<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="p12" org.eventb.core.prHyps="p1"> |
|
|
<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="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="r5" 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="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.prString name=".pos" org.eventb.core.prSValue=""/> |
|
|
</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="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p9" 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="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Mdl∈dom(ports)"/> |
|
|
<org.eventb.core.prPred name="p13" 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="p15" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="ports∈Model ⇸ ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pat∈dom(ports)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(ports)∧ports∈Model ⇸ ℙ(Port)∧Mdl∈dom(ports)"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="Mdl∈Model"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="⊤∧⊤∧Mdl∈dom(ports)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="ports∈Model → ℙ(Port)"/> |
|
|
<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="Component" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<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.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<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.partitionRewrites"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="apply_pattern/ports_inst_rel_comp_inst/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,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p2" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p3,p4"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p3,p4"/> |
|
|
<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="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="p9"/> |
|
|
<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="p10"> |
|
|
<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="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="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="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.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="p_component" org.eventb.core.type="ℙ(Model×ℙ(Port×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="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="p12" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="p_component∈Model ⇸ ℙ(Port × Component)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(p_component)∧p_component∈Model ⇸ ℙ(Port × Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="p_component∈Model → (Port ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pat∈Model"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.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.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Pat∈dom(p_component)"/> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="Model"/> |
|
|
<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="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="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<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.conj:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="apply_pattern/ports_inst_rel_port_comp/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,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p5,p6"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p5,p6"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p7"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p7" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p8" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p9"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p10" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p11"/> |
|
|
<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="p13"/> |
|
|
<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="p12" org.eventb.core.prHyps="p2"> |
|
|
<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="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="r5" 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="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.prString name=".pos" org.eventb.core.prSValue=""/> |
|
|
</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="p_component" org.eventb.core.type="ℙ(Model×ℙ(Port×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.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" 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="p15" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="p_component∈Model ⇸ ℙ(Port × Component)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="p_component∈Model → (Port ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(p_component)∧p_component∈Model ⇸ ℙ(Port × Component)∧Mdl∈dom(p_component)"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="Mdl∈Model"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="⊤∧⊤∧Mdl∈dom(p_component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pat∈dom(p_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="p12" org.eventb.core.predicate="Mdl∈dom(p_component)"/> |
|
|
<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.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<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.partitionRewrites"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="apply_pattern/pc_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="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p0" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p1,p2"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p1,p2"/> |
|
|
<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="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="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="p7"/> |
|
|
</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.prPred name="p4" 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="p7" 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="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</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="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="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.partitionRewrites"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="apply_pattern/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,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p5,p6"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p5,p6"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p7"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p7" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p8" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p9"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p10" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p11"/> |
|
|
<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.prString name=".pos" org.eventb.core.prSValue=""/> |
|
|
</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="p_component" org.eventb.core.type="ℙ(Model×ℙ(Port×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.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="p_component∈Model ⇸ ℙ(Port × Component)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Mdl∈dom(p_component)∧p_component∈Model ⇸ ℙ(Port × Component)∧Pat∈dom(p_component)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="⊤∧⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Pat∈dom(p_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="p3" org.eventb.core.predicate="Mdl∈dom(p_component)"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="apply_pattern/unfold_p_done/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="Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6,p7"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p6,p7"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p3,p4"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p8"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p8" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p13"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p9" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p10"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p11" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p12"/> |
|
|
<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="p14"/> |
|
|
<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="p15"> |
|
|
<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="p15" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p1"> |
|
|
<org.eventb.core.prRule name="r6" 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.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="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.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="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="p_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Port×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p10" 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="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="p_multiplicity∈Model ⇸ ℙ(Port × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="p_multiplicity∈Pattern → (Port ⇸ ℕ1)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="ports∈Model ⇸ ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Pat∈dom(ports)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="Pat∈dom(p_multiplicity)∧p_multiplicity∈Model ⇸ ℙ(Port × ℤ)∧⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="Pat∈dom(p_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(p_multiplicity)∧p_multiplicity∈Model ⇸ ℙ(Port × ℤ)∧Pat∈dom(ports)∧ports∈Model ⇸ ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="Pat∈dom(p_multiplicity)∧p_multiplicity∈Model ⇸ ℙ(Port × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p9" 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="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<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.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.isFunGoal"/> |
|
|
<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.totalDom:2"/> |
|
|
<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.partitionRewrites"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_c/pmult/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="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p0" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p1,p2"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p1,p2"/> |
|
|
<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="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.prHypAction name="REWRITE2" 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="p9"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p10"/> |
|
|
</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.prPred name="p6" 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="p9" 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="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="p8" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="¬Mdl=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="p7" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" 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="p5" 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="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.partitionRewrites"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_c/new_p_mult/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="Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p4,p5"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p4,p5"/> |
|
|
<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="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.prHypAction name="REWRITE2" 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="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.prHypAction name="HIDE1" org.eventb.core.prHyps="p13"/> |
|
|
<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="p14"> |
|
|
<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="p14" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p1"> |
|
|
<org.eventb.core.prRule name="r5" 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.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="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p15" 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.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="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="p_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Port×ℤ))"/> |
|
|
<org.eventb.core.prPred name="p9" 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="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="p_multiplicity∈Model ⇸ ℙ(Port × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="p_multiplicity∈Pattern → (Port ⇸ ℕ1)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="¬Mdl=Pat"> |
|
|
<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="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="Pat∈dom(p_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p13" 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="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Mdl≠Pat"> |
|
|
<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="Pat∈dom(p_multiplicity)∧p_multiplicity∈Model ⇸ ℙ(Port × ℤ)"/> |
|
|
<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="Component" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="Pattern"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<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.conj:0"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.isFunGoal"/> |
|
|
<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.hyp"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="clone_c/cloned_p_ty/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,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p5,p6"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p5,p6"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p7"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p7" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p8" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p9"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p10" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p11"/> |
|
|
<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="p13"/> |
|
|
<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 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="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p15"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p15" org.eventb.core.prHyps=""> |
|
|
<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="⊤ goal" org.eventb.core.prGoal="p16" 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="p17"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p17" 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.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="p_component" org.eventb.core.type="ℙ(Model×ℙ(Port×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="to_clone_c∈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.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" 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="p16" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(p_component)∧p_component∈Model ⇸ ℙ(Port × Component)∧c∈dom(to_clone_c)∧to_clone_c∈Component ⇸ Component"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="p_component∈Model ⇸ ℙ(Port × Component)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="p_component∈Model → (Port ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Pat∈dom(p_component)∧p_component∈Model ⇸ ℙ(Port × Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="Pat∈dom(p_component)∧p_component∈Model ⇸ ℙ(Port × Component)∧⊤∧⊤"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="Pat∈Model"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="c∈dom(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.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.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="Pat∈dom(p_component)"/> |
|
|
<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.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.isFunGoal"/> |
|
|
<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.totalDom:2"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="clone_c/p/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="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p0" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p1,p2"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p1,p2"/> |
|
|
<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="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="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="p7"/> |
|
|
</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.prPred name="p4" 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="p7" 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="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</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="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="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.partitionRewrites"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="clone_c/p_ctr/INV" org.eventb.core.confidence="0" org.eventb.core.prFresh="m1,m2" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6" org.eventb.core.prSets="Component,Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p7,p8"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p7,p8"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p9" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p10"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p11"/> |
|
|
<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="p13"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m1,m2)" org.eventb.core.prGoal="p12" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p14"> |
|
|
<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="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p14" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p16" org.eventb.core.prHyps="p15"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p16" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p18" org.eventb.core.prHyps="p17"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p18" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p20" org.eventb.core.prHyps="p19"> |
|
|
<org.eventb.core.prRule name="r1" 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="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p21" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p22"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m1=Pat" org.eventb.core.prHyps="p17"> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p23"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p15"/> |
|
|
<org.eventb.core.prRule name="r8" 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="p23" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p24"/> |
|
|
<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="p24" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p25"/> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p25"/> |
|
|
</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="p26"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m1=Pat" org.eventb.core.prHyps="p17"> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p23"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p15"/> |
|
|
<org.eventb.core.prRule name="r8" 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="p23" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p24"/> |
|
|
<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="p24" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p25"/> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p25"/> |
|
|
</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="p28" org.eventb.core.prHyps="p27"> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p29"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m1=Pat" org.eventb.core.prHyps="p17"> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p23"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p15"/> |
|
|
<org.eventb.core.prRule name="r8" 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="p23" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p30"/> |
|
|
<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="HIDE0" org.eventb.core.prHyps="p30"/> |
|
|
</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.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.prAnte name="(" org.eventb.core.prGoal="p32" org.eventb.core.prHyps="p31"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p32" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p33" org.eventb.core.prHyps="p19"> |
|
|
<org.eventb.core.prRule name="r10" 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.prString name=".pos" org.eventb.core.prSValue="0.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p35" org.eventb.core.prHyps="p27"> |
|
|
<org.eventb.core.prRule name="r10" 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="r10" 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="r11" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p37" org.eventb.core.prHyps="p2,p6,p1,p7,p8,p11,p15,p31,p27"> |
|
|
<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.1"/> |
|
|
</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.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="0.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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="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="cloned_p" org.eventb.core.type="ℙ(Port×Port)"/> |
|
|
<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="p_component" org.eventb.core.type="ℙ(Model×ℙ(Port×Component))"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prPred name="p13" 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="p27" org.eventb.core.predicate="¬m2=Pat"> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="ports(m1)∩(ports(Pat)∪ran(cloned_p))=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="m1" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="¬m1=Pat"> |
|
|
<org.eventb.core.prIdent name="m1" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="(ports(Pat)∪ran(cloned_p))∩(ports{Pat ↦ ports(Pat)∪ran(cloned_p)})(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<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="cloned_c∈(container(Pat))∼[{to_clone_c(c)}] ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="(ports(Pat)∪ran(cloned_p))∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<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⇒(ports{Pat ↦ ports(Pat)∪ran(cloned_p)})(m1)∩(ports{Pat ↦ ports(Pat)∪ran(cloned_p)})(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="¬m1=m2⇒(ports{Pat ↦ ports(Pat)∪ran(cloned_p)})(m1)∩(ports{Pat ↦ ports(Pat)∪ran(cloned_p)})(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<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="p30" org.eventb.core.predicate="¬⊥"/> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="({Pat} ⩤ ports)(m1)∩({Pat} ⩤ ports)(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<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="p26" org.eventb.core.predicate="cloned_p=(∅ ⦂ ℙ(Port×Port))"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒(ports{Pat ↦ ports(Pat)∪ran(cloned_p)})(m1)∩(ports{Pat ↦ ports(Pat)∪ran(cloned_p)})(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="ports(Pat)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="ports(Pat)=(∅ ⦂ ℙ(Port))∧cloned_p=(∅ ⦂ ℙ(Port×Port))"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="¬Pat=m2"> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="(ports{Pat ↦ ports(Pat)∪ran(cloned_p)})(m1)∩(ports{Pat ↦ ports(Pat)∪ran(cloned_p)})(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<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="p10" 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="⊥"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="partition(Port,IPort,OPort)"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p15" 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="p19" org.eventb.core.predicate="m2=Pat"> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="({Pat} ⩤ ports)(m1)∩(ports(Pat)∪ran(cloned_p))=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="m1" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="cloned_p∈(p_component(Pat))∼[{to_clone_c(c)}] ↣ Port ∖ union(ran(ports))"/> |
|
|
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<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="p2" org.eventb.core.predicate="c∈dom(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="Port=IPort∪OPort"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="(ports(Pat)∪ran(cloned_p))∩(ports(Pat)∪ran(cloned_p))=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="ports∈Model → ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="(ports(Pat)∪ran(cloned_p))∩({Pat} ⩤ ports)(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="ports(m1)∩({Pat} ⩤ ports)(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<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⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="({Pat} ⩤ ports)(m1)∩(ports{Pat ↦ ports(Pat)∪ran(cloned_p)})(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<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="p17" org.eventb.core.predicate="m1=Pat"> |
|
|
<org.eventb.core.prIdent name="m1" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="¬⊤"/> |
|
|
<org.eventb.core.prReas name="r11" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<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="r9" org.eventb.core.prRID="org.eventb.core.seqprover.falseHyp"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/> |
|
|
<org.eventb.core.prReas name="r8" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<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.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<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.funOvr:1"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="clone_c/pc_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="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p0" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p1,p2"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p1,p2"/> |
|
|
<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="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="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="p7"/> |
|
|
</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.prPred name="p4" 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="p7" 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="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</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="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="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.partitionRewrites"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="clone_c/pc_ctr/INV" org.eventb.core.confidence="0" org.eventb.core.prFresh="m" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3" org.eventb.core.prSets="Component,Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p5,p6"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p5,p6"/> |
|
|
<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="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="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="p11"/> |
|
|
<org.eventb.core.prRule name="r3" 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="r4" 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="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p14" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p15" org.eventb.core.prHyps="p13"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p15" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p16" org.eventb.core.prHyps="p13"/> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p18" org.eventb.core.prHyps="p17"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p18" org.eventb.core.prHyps="p1"> |
|
|
<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="generalized MP" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p17" org.eventb.core.prHyps="p13" org.eventb.core.prInfHyps="p20"/> |
|
|
<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="p20" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p21"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p21"/> |
|
|
</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.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="p22" org.eventb.core.prHyps="p17"> |
|
|
<org.eventb.core.prRule name="r4" 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="p23" org.eventb.core.prHyps="p13"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p23" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p24"> |
|
|
<org.eventb.core.prRule name="r6" 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="p17" org.eventb.core.prHyps="p13" org.eventb.core.prInfHyps="p20"/> |
|
|
<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="p20" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p21"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p21"/> |
|
|
</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.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p25" org.eventb.core.prHyps="p17"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p25" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p26"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p1"> |
|
|
<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="generalized MP" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p17" org.eventb.core.prHyps="p13" org.eventb.core.prInfHyps="p20"/> |
|
|
<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="p20" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p21"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p21"/> |
|
|
</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.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="p28" org.eventb.core.prHyps="p17"> |
|
|
<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="p13"> |
|
|
<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="p30" org.eventb.core.prHyps="p13"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p30" org.eventb.core.prHyps="p2"> |
|
|
<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="generalized MP" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p13" org.eventb.core.prHyps="p17" org.eventb.core.prInfHyps="p21"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" 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="0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p32" org.eventb.core.prHyps="p17"> |
|
|
<org.eventb.core.prRule name="r5" 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="Functional image simplification in goal" org.eventb.core.prGoal="p33" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p34"> |
|
|
<org.eventb.core.prRule name="r6" 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="p13" org.eventb.core.prHyps="p17" org.eventb.core.prInfHyps="p21"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" 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"/> |
|
|
</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="p35" org.eventb.core.prHyps="p17"> |
|
|
<org.eventb.core.prRule name="r4" 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="p13"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p36" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p37"> |
|
|
<org.eventb.core.prRule name="r5" 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="r6" 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="p13" org.eventb.core.prHyps="p17" org.eventb.core.prInfHyps="p21"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" 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.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="p39" org.eventb.core.prHyps="p17"> |
|
|
<org.eventb.core.prRule name="r5" 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="r5" 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="Functional image simplification in goal" org.eventb.core.prGoal="p41" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p42"/> |
|
|
<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.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="cloned_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="cloned_p" org.eventb.core.type="ℙ(Port×Port)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
<org.eventb.core.prIdent name="p_component" org.eventb.core.type="ℙ(Model×ℙ(Port×Component))"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<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="p14" org.eventb.core.predicate="p_component(Pat)∪(ran(cloned_p) × {c})∈(ports{Pat ↦ ports(Pat)∪ran(cloned_p)})(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="({Pat} ⩤ p_component)(m)∈({Pat} ⩤ ports)(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="p_component(m)∈ports(m) → 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="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="p_component∈Model → (Port ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="({Pat} ⩤ p_component)(m)∈({Pat} ⩤ ports)(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="p31" org.eventb.core.predicate="p_component(m)∈ports(Pat)∪ran(cloned_p) → 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="p22" org.eventb.core.predicate="p_component(Pat)∪(ran(cloned_p) × {c})∈({Pat} ⩤ ports)(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="p25" org.eventb.core.predicate="p_component(Pat)∪(ran(cloned_p) × {c})∈({Pat} ⩤ ports)(m) → ({Pat} ⩤ 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="p_component(m)∈ports(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="p29" org.eventb.core.predicate="({Pat} ⩤ p_component)(m)∈ports(Pat)∪ran(cloned_p) → (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="p_component(m)∈({Pat} ⩤ ports)(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="p30" org.eventb.core.predicate="({Pat} ⩤ p_component)(m)∈ports(Pat)∪ran(cloned_p) → 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="p27" org.eventb.core.predicate="p_component(Pat)∪(ran(cloned_p) × {c})∈ports(m) → components(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="p_component(Pat)∪(ran(cloned_p) × {c})∈({Pat} ⩤ ports)(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="({Pat} ⩤ p_component)(m)∈(ports{Pat ↦ ports(Pat)∪ran(cloned_p)})(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="p_component(m)∈ports(Pat)∪ran(cloned_p) → ({Pat} ⩤ 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="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="⊥"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·(p_component{Pat ↦ p_component(Pat)∪(ran(cloned_p) × {c})})(m)∈(ports{Pat ↦ ports(Pat)∪ran(cloned_p)})(m) → (components{Pat ↦ components(Pat)∪ran(cloned_c)})(m)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="p_component(Pat)∪(ran(cloned_p) × {c})∈ports(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="p40" org.eventb.core.predicate="p_component(m)∈({Pat} ⩤ ports)(m) → ({Pat} ⩤ components)(m)"> |
|
|
<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="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="p_component(Pat)∪(ran(cloned_p) × {c})∈ports(Pat)∪ran(cloned_p) → ({Pat} ⩤ 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="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="(p_component{Pat ↦ p_component(Pat)∪(ran(cloned_p) × {c})})(m)∈(ports{Pat ↦ ports(Pat)∪ran(cloned_p)})(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="p16" org.eventb.core.predicate="p_component(Pat)∪(ran(cloned_p) × {c})∈ports(Pat)∪ran(cloned_p) → components(Pat)∪ran(cloned_c)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="p_component(Pat)∪(ran(cloned_p) × {c})∈ports(Pat)∪ran(cloned_p) → (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="p26" org.eventb.core.predicate="p_component(Pat)∪(ran(cloned_p) × {c})∈ports(m) → ({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="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="p_component(Pat)∪(ran(cloned_p) × {c})∈ports(Pat)∪ran(cloned_p) → 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="ports∈Model → ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="({Pat} ⩤ p_component)(m)∈ports(Pat)∪ran(cloned_p) → ({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="({Pat} ⩤ p_component)(m)∈({Pat} ⩤ ports)(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="p34" org.eventb.core.predicate="p_component(m)∈ports(Pat)∪ran(cloned_p) → 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="p_component(m)∈ports(m) → ({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="¬m=Pat"> |
|
|
<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="p13" 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="¬⊤"/> |
|
|
<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="r7" org.eventb.core.prRID="org.eventb.core.seqprover.falseHyp"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<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.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<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="clone_c/pmult/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="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p0" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p1,p2"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p1,p2"/> |
|
|
<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="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="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="p7"/> |
|
|
</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.prPred name="p4" 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="p7" 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="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</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="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="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.partitionRewrites"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="clone_c/to_unfold_p/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,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6,p7"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p6,p7"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p8" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p9"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" 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="type rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p13"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p12" org.eventb.core.prHyps="p4,p2,p5,p1,p6,p7"> |
|
|
<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.prString name=".pos" org.eventb.core.prSValue=""/> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="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="cloned_p" org.eventb.core.type="ℙ(Port×Port)"/> |
|
|
<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="p_component" org.eventb.core.type="ℙ(Model×ℙ(Port×Component))"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<org.eventb.core.prIdent name="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_p" org.eventb.core.type="ℙ(Port)"/> |
|
|
<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="p13" 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="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(Port,IPort,OPort)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p5" 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="cloned_p∈(p_component(Pat))∼[{to_clone_c(c)}] ↣ Port ∖ union(ran(ports))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="c∈dom(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Port=IPort∪OPort"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="to_unfold_p⊆ports(Pat)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="to_unfold_p∪ran(cloned_p)⊆(ports{Pat ↦ ports(Pat)∪ran(cloned_p)})(Pat)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="to_unfold_p⊆ports(Pat)∪ran(cloned_p)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<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.partitionRewrites"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="clone_c/cloned_p/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,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p4,p5"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p4,p5"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p6"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p6" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<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="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.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="p_component" org.eventb.core.type="ℙ(Model×ℙ(Port×Component))"/> |
|
|
<org.eventb.core.prPred name="p6" 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.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="p_component∈Model ⇸ ℙ(Port × Component)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(p_component)∧p_component∈Model ⇸ ℙ(Port × Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Pat∈dom(p_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.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="clone_c/source_p/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="Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p4,p5"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p4,p5"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p6"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p6" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<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="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.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="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p6" 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.prIdent name="Component" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(ports)∧ports∈Model ⇸ ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="ports∈Model ⇸ ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Pat∈dom(ports)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<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="Component" org.eventb.core.type="ℙ(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.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="clone_c/p_mult/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="Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p4,p5"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p4,p5"/> |
|
|
<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="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="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="∧ goal" org.eventb.core.prGoal="p0" 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="total function dom substitution in goal" org.eventb.core.prGoal="p11" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p1"> |
|
|
<org.eventb.core.prRule name="r5" 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.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="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p12" 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.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="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="p_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Port×ℤ))"/> |
|
|
<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="Component" org.eventb.core.type="ℙ(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.prPred name="p12" org.eventb.core.predicate="p_multiplicity∈Model ⇸ ℙ(Port × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="p_multiplicity∈Pattern → (Port ⇸ ℕ1)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pat∈dom(p_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(p_multiplicity)∧p_multiplicity∈Model ⇸ ℙ(Port × ℤ)"/> |
|
|
<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="Component" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="Pattern"/> |
|
|
<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="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="r5" org.eventb.core.prRID="org.eventb.core.seqprover.hyp"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<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="free_c/pc_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" org.eventb.core.prSets="Component,Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p6" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p7,p8"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p7,p8"/> |
|
|
<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="p9" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p10"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" 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="type rewrites" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p13"/> |
|
|
<org.eventb.core.prRule name="r3" 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="p14"> |
|
|
<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="ovr in goal" org.eventb.core.prGoal="p14" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p16" org.eventb.core.prHyps="p15"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p16" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p17" org.eventb.core.prHyps="p15"> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p17" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p18" org.eventb.core.prHyps="p15"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p18" org.eventb.core.prHyps="p1,p4,p7,p8,p15"> |
|
|
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R500"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p20" org.eventb.core.prHyps="p19"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p20" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p21"> |
|
|
<org.eventb.core.prRule name="r7" 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="p19" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p22"/> |
|
|
<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="p22" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p23"/> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p23"/> |
|
|
</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.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="p24" org.eventb.core.prHyps="p19"> |
|
|
<org.eventb.core.prRule name="r4" 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="p25" org.eventb.core.prHyps="p15"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p25" org.eventb.core.prHyps="p5"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p26"> |
|
|
<org.eventb.core.prRule name="r7" 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="p19" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p22"/> |
|
|
<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="p22" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p23"/> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p23"/> |
|
|
</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.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p27" org.eventb.core.prHyps="p19"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps="p5"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="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="p28" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p29"> |
|
|
<org.eventb.core.prRule name="r7" 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="p19" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p22"/> |
|
|
<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="p22" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p23"/> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p23"/> |
|
|
</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.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="p30" org.eventb.core.prHyps="p19"> |
|
|
<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="p15"> |
|
|
<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="p15"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p32" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p33"> |
|
|
<org.eventb.core.prRule name="r7" 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="p15" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p23"/> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p23"/> |
|
|
</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="p34" org.eventb.core.prHyps="p19"> |
|
|
<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="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p35" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p36"> |
|
|
<org.eventb.core.prRule name="r7" 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="p15" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p23"/> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p23"/> |
|
|
</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="p37" org.eventb.core.prHyps="p19"> |
|
|
<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="p15"> |
|
|
<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="p5"> |
|
|
<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="generalized MP" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p15" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p23"/> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p23"/> |
|
|
</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="p41" org.eventb.core.prHyps="p19"> |
|
|
<org.eventb.core.prRule name="r6" 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="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p42" org.eventb.core.prHyps="p5"> |
|
|
<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="Functional image simplification in goal" org.eventb.core.prGoal="p43" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p44"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p44" org.eventb.core.prHyps="p1,p4,p7,p8,p19"> |
|
|
<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.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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="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="p_component" org.eventb.core.type="ℙ(Model×ℙ(Port×Component))"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<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="p0" org.eventb.core.predicate="∀m⦂Model·(p_component{Pat ↦ p_component(Pat) ⩥ {c}})(m)∈(ports{Pat ↦ ports(Pat) ∖ (p_component(Pat))∼[{c}]})(m) → (components{Pat ↦ components(Pat) ∖ {c}})(m)"/> |
|
|
<org.eventb.core.prPred name="p13" 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="∀m⦂Model·p_component(m)∈ports(m) → components(m)"/> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="p_component(m)∈ports(Pat) ∖ (p_component(Pat))∼[{c}] → ({Pat} ⩤ 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="p_component(Pat) ⩥ {c}∈ports(m) → ({Pat} ⩤ 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} ⩤ p_component)(m)∈({Pat} ⩤ ports)(m) → components(Pat) ∖ {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="({Pat} ⩤ p_component)(m)∈({Pat} ⩤ ports)(m) → ({Pat} ⩤ 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="p_component(m)∈ports(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="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="p_component∈Model → (Port ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="p_component(m)∈ports(Pat) ∖ (p_component(Pat))∼[{c}] → components(Pat) ∖ {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="p_component(Pat) ⩥ {c}∈ports(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} ⩤ p_component)(m)∈({Pat} ⩤ ports)(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="p21" org.eventb.core.predicate="p_component(Pat) ⩥ {c}∈ports(Pat) ∖ (p_component(Pat))∼[{c}] → 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="p_component(Pat) ⩥ {c}∈({Pat} ⩤ ports)(m) → ({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="p_component(Pat) ⩥ {c}∈(ports{Pat ↦ ports(Pat) ∖ (p_component(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="p32" org.eventb.core.predicate="({Pat} ⩤ p_component)(m)∈ports(Pat) ∖ (p_component(Pat))∼[{c}] → components(Pat) ∖ {c}"> |
|
|
<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="(p_component{Pat ↦ p_component(Pat) ⩥ {c}})(m)∈(ports{Pat ↦ ports(Pat) ∖ (p_component(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="p4" org.eventb.core.predicate="c∈to_free_c ∖ ran(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="p_component(Pat) ⩥ {c}∈ports(Pat) ∖ (p_component(Pat))∼[{c}] → components(Pat) ∖ {c}"/> |
|
|
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="p_component(m)∈({Pat} ⩤ ports)(m) → components(Pat) ∖ {c}"> |
|
|
<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="({Pat} ⩤ p_component)(m)∈(ports{Pat ↦ ports(Pat) ∖ (p_component(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="p10" 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="⊥"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="p_component(m)∈({Pat} ⩤ ports)(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="p_component(m)∈ports(Pat) ∖ (p_component(Pat))∼[{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="p_component(m)∈ports(m) → components(Pat) ∖ {c}"> |
|
|
<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="partition(Port,IPort,OPort)"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="p_component(Pat) ⩥ {c}∈({Pat} ⩤ ports)(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="p31" org.eventb.core.predicate="({Pat} ⩤ p_component)(m)∈ports(Pat) ∖ (p_component(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="p11" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="p_component(Pat) ⩥ {c}∈ports(m) → 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="p_component(Pat) ⩥ {c}∈ports(Pat) ∖ (p_component(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="p34" org.eventb.core.predicate="({Pat} ⩤ p_component)(m)∈ports(Pat) ∖ (p_component(Pat))∼[{c}] → ({Pat} ⩤ components)(m)"> |
|
|
<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="Port=IPort∪OPort"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="ports∈Model → ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="p_component(Pat) ⩥ {c}∈ports(Pat) ∖ (p_component(Pat))∼[{c}] → ({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="p_component(m)∈ports(m) → ({Pat} ⩤ components)(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="¬m=Pat"> |
|
|
<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="p_component(Pat) ⩥ {c}∈({Pat} ⩤ ports)(m) → components(Pat) ∖ {c}"> |
|
|
<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="∀m1⦂Model,m2⦂Model·m1≠m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p15" 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="p22" org.eventb.core.predicate="¬⊤"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<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="r8" org.eventb.core.prRID="org.eventb.core.seqprover.falseHyp"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<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_p/p_ty/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,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p2" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p3,p4"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p3,p4"/> |
|
|
<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="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.prHypAction name="REWRITE2" 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="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="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="p13"> |
|
|
<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="p13" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p14"> |
|
|
<org.eventb.core.prRule name="r2" 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="r5" 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="e0"/> |
|
|
</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="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.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="p_component" org.eventb.core.type="ℙ(Model×ℙ(Port×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="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="p15" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="p_component∈Model ⇸ ℙ(Port × Component)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(p_component)∧p_component∈Model ⇸ ℙ(Port × Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="p_component∈Model → (Port ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="¬Mdl=Pat"> |
|
|
<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⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" 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="p14" org.eventb.core.predicate="Pat∈Model"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Mdl≠Pat"> |
|
|
<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.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="Pat∈dom(p_component)"/> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="Model"/> |
|
|
<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="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="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<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.conj:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="mult_cstr/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="Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p4,p5"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p4,p5"/> |
|
|
<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="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="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="∀ goal (frees m)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<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="⇒ 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="r5" 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="r6" 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="r7" 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="r8" 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.prAnte name=")" org.eventb.core.prGoal="p16"> |
|
|
<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="p16" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p17"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p17" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p18"> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p18" 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="p19"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p19" 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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="p_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Port×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="m∈dom(p_multiplicity)"> |
|
|
<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.prIdent name="Component" org.eventb.core.type="ℙ(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.prPred name="p18" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="p_multiplicity∈Model ⇸ ℙ(Port × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="m∈dom(p_multiplicity)∧p_multiplicity∈Model ⇸ ℙ(Port × ℤ)∧m∈dom(ports)∧ports∈Model ⇸ ℙ(Port)"> |
|
|
<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="m∈Model"> |
|
|
<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="p_multiplicity∈Pattern → (Port ⇸ ℕ1)"/> |
|
|
<org.eventb.core.prPred name="p12" 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="p3" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="m∈Pattern⇒m∈dom(p_multiplicity)∧p_multiplicity∈Model ⇸ ℙ(Port × ℤ)∧m∈dom(ports)∧ports∈Model ⇸ ℙ(Port)"> |
|
|
<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="ports∈Model ⇸ ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒m∈dom(p_multiplicity)∧p_multiplicity∈Model ⇸ ℙ(Port × ℤ)∧m∈dom(ports)∧ports∈Model ⇸ ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="m∈dom(ports)"> |
|
|
<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="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="ports∈Model → ℙ(Port)"/> |
|
|
<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="Component" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<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="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="r8" org.eventb.core.prRID="org.eventb.core.seqprover.isFunGoal"/> |
|
|
<org.eventb.core.prReas name="r6" 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="r7" org.eventb.core.prRID="org.eventb.core.seqprover.hyp"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.impI"/> |
|
|
<org.eventb.core.prReas name="r9" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="apply_pattern/mult_cstr/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,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52" org.eventb.core.prSets="Component,Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p42" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p53,p54"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p53,p54"/> |
|
|
<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="p29" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p55"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p43" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p56"/> |
|
|
<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="p57"/> |
|
|
<org.eventb.core.prRule name="r3" 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="p58"> |
|
|
<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="⇒ goal" org.eventb.core.prGoal="p58" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p60" org.eventb.core.prHyps="p59"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p60" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p62" org.eventb.core.prHyps="p61"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m=Mdl" org.eventb.core.prGoal="p62" org.eventb.core.prHyps="p61"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p64"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p59" org.eventb.core.prInfHyps="p63"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p59"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p64" org.eventb.core.prHyps="p26,p6,p34,p44,p7,p21,p8,p24,p50,p51,p37,p17,p27,p19,p22,p25,p2,p33,p41,p36,p47,p3,p18,p13,p46,p45,p9,p14,p31,p52,p28,p11,p15,p40,p4,p5,p1,p49,p32,p23,p48,p16,p12,p38,p20,p30,p39,p35,p10,p53,p54,p55,p56,p59,p61,p63"> |
|
|
<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="p66" org.eventb.core.prHyps="p65"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p66" org.eventb.core.prHyps="p25"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p67"/> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="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="inst_ports" org.eventb.core.type="ℙ(Port×Port)"/> |
|
|
<org.eventb.core.prIdent name="new_components" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
<org.eventb.core.prIdent name="new_ports" org.eventb.core.type="ℙ(Port×Port)"/> |
|
|
<org.eventb.core.prIdent name="p_component" org.eventb.core.type="ℙ(Model×ℙ(Port×Component))"/> |
|
|
<org.eventb.core.prIdent name="p_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Port×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<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.prIdent name="to_unfold_p" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p57" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="p_multiplicity∈Model ⇸ ℙ(Port × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="p_component∈Model → (Port ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pat∈dom(ports)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="(p_multiplicity(Pat))[ports(Pat)]⊆{1}"/> |
|
|
<org.eventb.core.prPred name="p67" org.eventb.core.predicate="p_multiplicity(m)∈ports(m) → ℕ1"> |
|
|
<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="Pat∈dom(p_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<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_multiplicity∈Pattern → (Component ⇸ ℕ1)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="inst_components∈components(Pat) ⤔ components(Mdl)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="new_ports[OPort]⊆OPort"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Mdl∈dom(container)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Pat∈dom(p_component)"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="(c_multiplicity(Pat))[components(Pat)]⊆{1}"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="Mdl∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p60" org.eventb.core.predicate="p_multiplicity(m)∈(ports{Mdl ↦ ports(Mdl)∪ran(new_ports)})(m) → ℕ1"> |
|
|
<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="(container(Mdl))∼;inst_components∼;container(Pat)⊆inst_components∼"/> |
|
|
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="dom(inst_ports)⊆dom(p_component(Pat) ▷ dom(inst_components))"/> |
|
|
<org.eventb.core.prPred name="p59" 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="p17" org.eventb.core.predicate="to_clone_c∈components(Pat) ⇸ components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="ports∈Model ⇸ ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p19" 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="inst_ports∼;p_component(Pat);inst_components⊆p_component(Mdl)"/> |
|
|
<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="to_free_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="inst_ports[IPort]⊆IPort"/> |
|
|
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="Port=IPort∪OPort"/> |
|
|
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ1"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="ports∈Model → ℙ(Port)"/> |
|
|
<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="container∈Model ⇸ ℙ(Component × Component)"/> |
|
|
<org.eventb.core.prPred name="p29" 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="Mdl∈dom(p_component)"/> |
|
|
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="inst_components∼;container(Pat);inst_components⊆container(Mdl)"/> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="Mdl∈dom(ports)"/> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="∀m⦂Model·p_component(m)∈ports(m) → components(m)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒p_multiplicity(m)∈(ports{Mdl ↦ ports(Mdl)∪ran(new_ports)})(m) → ℕ1"/> |
|
|
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="new_ports[IPort]⊆IPort"/> |
|
|
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒p_multiplicity(m)∈ports(m) → ℕ1"/> |
|
|
<org.eventb.core.prPred name="p65" 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="p37" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p66" org.eventb.core.predicate="p_multiplicity(m)∈({Mdl} ⩤ ports)(m) → ℕ1"> |
|
|
<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="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="p_component∈Model ⇸ ℙ(Port × Component)"/> |
|
|
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="new_ports∈ports(Pat) ∖ dom(inst_ports) ↣ Port ∖ union(ran(ports))"/> |
|
|
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="new_components∈components(Pat) ∖ dom(inst_components) ↣ Component ∖ union(ran(components))"/> |
|
|
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="p_multiplicity∈Pattern → (Port ⇸ ℕ1)"/> |
|
|
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="partition(Port,IPort,OPort)"/> |
|
|
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="container∈Model → (Component ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p63" org.eventb.core.predicate="Mdl∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p61" 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="p64" org.eventb.core.predicate="p_multiplicity(Mdl)∈ports(Mdl)∪ran(new_ports) → ℕ1"/> |
|
|
<org.eventb.core.prPred name="p62" org.eventb.core.predicate="p_multiplicity(m)∈ports(Mdl)∪ran(new_ports) → ℕ1"> |
|
|
<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="to_unfold_p⊆ports(Pat)"/> |
|
|
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="inst_ports[OPort]⊆OPort"/> |
|
|
<org.eventb.core.prPred name="p58" org.eventb.core.predicate="m∈Pattern⇒p_multiplicity(m)∈(ports{Mdl ↦ ports(Mdl)∪ran(new_ports)})(m) → ℕ1"> |
|
|
<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="inst_ports∈ports(Pat) ⤔ ports(Mdl)"/> |
|
|
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="to_unfold_c⊆components(Pat)"/> |
|
|
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="Pat∈dom(container)"/> |
|
|
<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="r6" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r8" org.eventb.core.prRID="org.eventb.core.seqprover.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<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.funOvr:1"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_c/mult_cstr/INV" org.eventb.core.confidence="0" org.eventb.core.prFresh="m" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1" org.eventb.core.prSets="Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p2" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p3,p4"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p3,p4"/> |
|
|
<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="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.prHypAction name="REWRITE2" 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="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="r3" 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="p13"> |
|
|
<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="⇒ goal" org.eventb.core.prGoal="p13" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p15" org.eventb.core.prHyps="p14"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in 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="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m=Pat" org.eventb.core.prGoal="p17" org.eventb.core.prHyps="p16"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p19"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p14"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p18"/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p21" org.eventb.core.prHyps="p20"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p21" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p22"/> |
|
|
<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.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="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="new_c_ports" org.eventb.core.type="ℙ(ℤ×Port×Port)"/> |
|
|
<org.eventb.core.prIdent name="p_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Port×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<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="Component" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="p_multiplicity(Pat)∪(new_c_ports∼;(prj2 ⦂ ℙ(ℤ×Port×Port));p_multiplicity(Pat))∈ports(Pat) → ℕ1"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="m∈Pattern⇒(p_multiplicity{Pat ↦ p_multiplicity(Pat)∪(new_c_ports∼;(prj2 ⦂ ℙ(ℤ×Port×Port));p_multiplicity(Pat))})(m)∈ports(m) → ℕ1"> |
|
|
<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="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒(p_multiplicity{Pat ↦ p_multiplicity(Pat)∪(new_c_ports∼;(prj2 ⦂ ℙ(ℤ×Port×Port));p_multiplicity(Pat))})(m)∈ports(m) → ℕ1"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="p_multiplicity∈Pattern → (Port ⇸ ℕ1)"/> |
|
|
<org.eventb.core.prPred name="p14" 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="p2" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="¬Mdl=Pat"> |
|
|
<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⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="p_multiplicity(Pat)∪(new_c_ports∼;(prj2 ⦂ ℙ(ℤ×Port×Port));p_multiplicity(Pat))∈ports(m) → ℕ1"> |
|
|
<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="p_multiplicity(m)∈ports(m) → ℕ1"> |
|
|
<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="Mdl∈Model"> |
|
|
<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="(p_multiplicity{Pat ↦ p_multiplicity(Pat)∪(new_c_ports∼;(prj2 ⦂ ℙ(ℤ×Port×Port));p_multiplicity(Pat))})(m)∈ports(m) → ℕ1"> |
|
|
<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="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="({Pat} ⩤ p_multiplicity)(m)∈ports(m) → ℕ1"> |
|
|
<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="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Mdl≠Pat"> |
|
|
<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="¬m=Pat"> |
|
|
<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.prIdent name="Component" org.eventb.core.type="ℙ(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="m=Pat"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<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="r6" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<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.funOvr:1"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="clone_c/mult_cstr/INV" org.eventb.core.confidence="0" org.eventb.core.prFresh="m" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2" org.eventb.core.prSets="Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p4,p5"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p4,p5"/> |
|
|
<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="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="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="∀ goal (frees m)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<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="⇒ 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="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p13" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p15" org.eventb.core.prHyps="p14"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p15" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p16" org.eventb.core.prHyps="p14"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m=Pat" org.eventb.core.prHyps="p14"> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p12"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p17"/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p19" org.eventb.core.prHyps="p18"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p19" org.eventb.core.prHyps="p2"> |
|
|
<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="generalized MP" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p18" org.eventb.core.prHyps="p14" org.eventb.core.prInfHyps="p21"/> |
|
|
<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="p21" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p22"/> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p22"/> |
|
|
</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.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="p23" org.eventb.core.prHyps="p18"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p23" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p24" org.eventb.core.prHyps="p14"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p24" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p25"> |
|
|
<org.eventb.core.prRule name="r8" 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="p14" org.eventb.core.prHyps="p18" org.eventb.core.prInfHyps="p22"/> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p22"/> |
|
|
</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="p26" org.eventb.core.prHyps="p18"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="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="p27" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p28"/> |
|
|
<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.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="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="cloned_p" org.eventb.core.type="ℙ(Port×Port)"/> |
|
|
<org.eventb.core.prIdent name="p_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Port×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="p_multiplicity(Pat)∪(cloned_p∼;p_multiplicity(Pat))∈ports(Pat)∪ran(cloned_p) → ℕ1"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="p_multiplicity(m)∈({Pat} ⩤ ports)(m) → ℕ1"> |
|
|
<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·m∈Pattern⇒(p_multiplicity{Pat ↦ p_multiplicity(Pat)∪(cloned_p∼;p_multiplicity(Pat))})(m)∈(ports{Pat ↦ ports(Pat)∪ran(cloned_p)})(m) → ℕ1"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="({Pat} ⩤ p_multiplicity)(m)∈({Pat} ⩤ ports)(m) → ℕ1"> |
|
|
<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="(p_multiplicity{Pat ↦ p_multiplicity(Pat)∪(cloned_p∼;p_multiplicity(Pat))})(m)∈(ports{Pat ↦ ports(Pat)∪ran(cloned_p)})(m) → ℕ1"> |
|
|
<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="p_multiplicity(m)∈ports(m) → ℕ1"> |
|
|
<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="({Pat} ⩤ p_multiplicity)(m)∈(ports{Pat ↦ ports(Pat)∪ran(cloned_p)})(m) → ℕ1"> |
|
|
<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∈Pattern⇒(p_multiplicity{Pat ↦ p_multiplicity(Pat)∪(cloned_p∼;p_multiplicity(Pat))})(m)∈(ports{Pat ↦ ports(Pat)∪ran(cloned_p)})(m) → ℕ1"> |
|
|
<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="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="p_multiplicity(Pat)∪(cloned_p∼;p_multiplicity(Pat))∈ports(m) → ℕ1"> |
|
|
<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.prIdent name="Component" org.eventb.core.type="ℙ(Component)"/> |
|
|
<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="⊥"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="p_multiplicity∈Pattern → (Port ⇸ ℕ1)"/> |
|
|
<org.eventb.core.prPred name="p12" 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="p3" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="({Pat} ⩤ p_multiplicity)(m)∈ports(Pat)∪ran(cloned_p) → ℕ1"> |
|
|
<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⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="p_multiplicity(m)∈ports(Pat)∪ran(cloned_p) → ℕ1"> |
|
|
<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="p_multiplicity(Pat)∪(cloned_p∼;p_multiplicity(Pat))∈({Pat} ⩤ ports)(m) → ℕ1"> |
|
|
<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="p_multiplicity(Pat)∪(cloned_p∼;p_multiplicity(Pat))∈(ports{Pat ↦ ports(Pat)∪ran(cloned_p)})(m) → ℕ1"> |
|
|
<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="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="ports∈Model → ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p18" 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="p6" 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="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" 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="¬⊤"/> |
|
|
<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="r9" org.eventb.core.prRID="org.eventb.core.seqprover.falseHyp"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/> |
|
|
<org.eventb.core.prReas name="r8" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<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.funOvr:1"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_p/mult_cstr/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="Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p9,p10"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p9,p10"/> |
|
|
<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="p11" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p12"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p13" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p14"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE2" org.eventb.core.prHidden="p15" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p16"/> |
|
|
<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="p17"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p18"/> |
|
|
<org.eventb.core.prRule name="r3" 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="p19"> |
|
|
<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="⇒ goal" org.eventb.core.prGoal="p19" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p21" org.eventb.core.prHyps="p20"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p21" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p23" org.eventb.core.prHyps="p22"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p23" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p24" org.eventb.core.prHyps="p22"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m=Pat" org.eventb.core.prHyps="p22"> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p20"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p1"/> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p24" org.eventb.core.prHyps="p6,p5,p8,p7,p9,p10,p22,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.prAnte name="(" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p25"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p3"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p27"> |
|
|
<org.eventb.core.prRule name="r9" 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="p25" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p28"/> |
|
|
<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="p28" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p29"/> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p29"/> |
|
|
</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.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="p30" org.eventb.core.prHyps="p25"> |
|
|
<org.eventb.core.prRule name="r5" 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="p22"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p31" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p32"> |
|
|
<org.eventb.core.prRule name="r9" 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="p22" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p29"/> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p29"/> |
|
|
</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="p33" org.eventb.core.prHyps="p25"> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p33" org.eventb.core.prHyps="p2"> |
|
|
<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="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="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p35" org.eventb.core.prHyps="p6,p5,p8,p7,p9,p10,p20,p25"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="new_p" org.eventb.core.type="ℙ(ℤ×Port)"/> |
|
|
<org.eventb.core.prIdent name="p" org.eventb.core.type="Port"/> |
|
|
<org.eventb.core.prIdent name="p_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Port×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_p" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="p_multiplicity(m)∈({Pat} ⩤ ports)(m) → ℕ1"> |
|
|
<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="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="({Pat} ⩤ p_multiplicity)(m)∈({Pat} ⩤ ports)(m) → ℕ1"> |
|
|
<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="p∈to_unfold_p"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒p_multiplicity(m)∈ports(m) → ℕ1"/> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="p_multiplicity(m)∈ports(m) → ℕ1"> |
|
|
<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="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="({Pat} ⩤ p_multiplicity)(m)∈(ports{Pat ↦ (ports(Pat) ∖ {p})∪ran(new_p)})(m) → ℕ1"> |
|
|
<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·m∈Pattern⇒(p_multiplicity{Pat ↦ ({p} ⩤ p_multiplicity(Pat))(ran(new_p) × {1})})(m)∈(ports{Pat ↦ (ports(Pat) ∖ {p})∪ran(new_p)})(m) → ℕ1"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="({p} ⩤ p_multiplicity(Pat))(ran(new_p) × {1})∈(ports(Pat) ∖ {p})∪ran(new_p) → ℕ1"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="m∈Pattern⇒(p_multiplicity{Pat ↦ ({p} ⩤ p_multiplicity(Pat))(ran(new_p) × {1})})(m)∈(ports{Pat ↦ (ports(Pat) ∖ {p})∪ran(new_p)})(m) → ℕ1"> |
|
|
<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="∀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="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="⊥"/> |
|
|
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="({p} ⩤ p_multiplicity(Pat))(ran(new_p) × {1})∈ports(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="p_multiplicity∈Pattern → (Port ⇸ ℕ1)"/> |
|
|
<org.eventb.core.prPred name="p20" 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="partition(Port,IPort,OPort)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="¬Mdl=Pat"> |
|
|
<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="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="({p} ⩤ p_multiplicity(Pat))(ran(new_p) × {1})∈({Pat} ⩤ ports)(m) → ℕ1"> |
|
|
<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="new_p∈1 ‥ p_multiplicity(Pat)(p) ↣ Port ∖ union(ran(ports))"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="(p_multiplicity{Pat ↦ ({p} ⩤ p_multiplicity(Pat))(ran(new_p) × {1})})(m)∈(ports{Pat ↦ (ports(Pat) ∖ {p})∪ran(new_p)})(m) → ℕ1"> |
|
|
<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="({p} ⩤ p_multiplicity(Pat))(ran(new_p) × {1})∈(ports{Pat ↦ (ports(Pat) ∖ {p})∪ran(new_p)})(m) → ℕ1"> |
|
|
<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="({Pat} ⩤ p_multiplicity)(m)∈(ports(Pat) ∖ {p})∪ran(new_p) → ℕ1"> |
|
|
<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="Mdl∈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="Port=IPort∪OPort"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="ports∈Model → ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Mdl≠Pat"> |
|
|
<org.eventb.core.prIdent name="Mdl" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<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="p32" org.eventb.core.predicate="p_multiplicity(m)∈(ports(Pat) ∖ {p})∪ran(new_p) → ℕ1"> |
|
|
<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="p∈dom(p_multiplicity(Pat))"/> |
|
|
<org.eventb.core.prPred name="p13" 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="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p22" 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="p28" org.eventb.core.predicate="¬⊤"/> |
|
|
<org.eventb.core.prReas name="r4" 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="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<org.eventb.core.prReas name="r9" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r10" org.eventb.core.prRID="org.eventb.core.seqprover.falseHyp"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r8" org.eventb.core.prRID="org.eventb.core.seqprover.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.funOvr:1"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="free_c/p/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="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p0" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p1,p2"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p1,p2"/> |
|
|
<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="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="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="p7"/> |
|
|
</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.prPred name="p4" 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="p7" 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="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</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="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="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.partitionRewrites"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="free_c/p_ctr/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="m1,m2" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4" org.eventb.core.prSets="Component,Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p5,p6"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p5,p6"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p10"> |
|
|
<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="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p9"/> |
|
|
<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="p11"/> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m1,m2)" org.eventb.core.prGoal="p10" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12"> |
|
|
<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="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ 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="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p14" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p16" org.eventb.core.prHyps="p15"> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p16" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p18" org.eventb.core.prHyps="p17"> |
|
|
<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="p19"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m1=Pat" org.eventb.core.prHyps="p15"> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p13" org.eventb.core.prInfHyps="p20"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p13"/> |
|
|
<org.eventb.core.prRule name="r7" 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="p20" org.eventb.core.prHyps="p17" org.eventb.core.prInfHyps="p21"/> |
|
|
<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="p21" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p22"/> |
|
|
<org.eventb.core.prRule name="r8" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p22"/> |
|
|
</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="p24" org.eventb.core.prHyps="p23"> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p24" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p25"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p25" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p26"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m1=Pat" org.eventb.core.prHyps="p15"> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p13" org.eventb.core.prInfHyps="p20"/> |
|
|
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p13"/> |
|
|
<org.eventb.core.prRule name="r7" 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="p20" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p27"/> |
|
|
<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="HIDE0" org.eventb.core.prHyps="p27"/> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p1,p5,p6,p9,p15,p23"> |
|
|
<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.prAnte> |
|
|
</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="0.1"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p29" org.eventb.core.prHyps="p28"> |
|
|
<org.eventb.core.prRule name="r5" 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="p17"> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p30" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p31"> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p31" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p32"> |
|
|
<org.eventb.core.prRule name="r10" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p32" org.eventb.core.prHyps="p1,p5,p6,p9,p13,p28,p17"> |
|
|
<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.prString name=".pos" org.eventb.core.prSValue="0.0"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p33" org.eventb.core.prHyps="p23"> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p33" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p34"> |
|
|
<org.eventb.core.prRule name="r9" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p34" org.eventb.core.prHyps="p2"> |
|
|
<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="PP" org.eventb.core.prGoal="p35" org.eventb.core.prHyps="p1,p5,p6,p9,p13,p28,p23"> |
|
|
<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.1"/> |
|
|
</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.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="0.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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="c" org.eventb.core.type="Component"/> |
|
|
<org.eventb.core.prIdent name="p_component" org.eventb.core.type="ℙ(Model×ℙ(Port×Component))"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<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="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="p23" org.eventb.core.predicate="¬m2=Pat"> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="¬m1=Pat"> |
|
|
<org.eventb.core.prIdent name="m1" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="({Pat} ⩤ ports)(m1)∩(ports(Pat) ∖ (p_component(Pat))∼[{c}])=(∅ ⦂ ℙ(Port))"> |
|
|
<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,m2⦂Model·¬m1=m2⇒(ports{Pat ↦ ports(Pat) ∖ (p_component(Pat))∼[{c}]})(m1)∩(ports{Pat ↦ ports(Pat) ∖ (p_component(Pat))∼[{c}]})(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="ports(Pat)⊆(p_component(Pat))∼[{c}]"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="¬m1=m2⇒(ports{Pat ↦ ports(Pat) ∖ (p_component(Pat))∼[{c}]})(m1)∩(ports{Pat ↦ ports(Pat) ∖ (p_component(Pat))∼[{c}]})(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<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="p27" org.eventb.core.predicate="¬⊥"/> |
|
|
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="ports(Pat)∩ports(m2)⊆(p_component(Pat))∼[{c}]"> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="({Pat} ⩤ ports)(m1)∩({Pat} ⩤ ports)(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<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="p16" org.eventb.core.predicate="(ports(Pat) ∖ (p_component(Pat))∼[{c}])∩(ports{Pat ↦ ports(Pat) ∖ (p_component(Pat))∼[{c}]})(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="({Pat} ⩤ ports)(m1)∩(ports{Pat ↦ ports(Pat) ∖ (p_component(Pat))∼[{c}]})(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<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="p31" org.eventb.core.predicate="ports(m1)∩(ports(Pat) ∖ (p_component(Pat))∼[{c}])=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="m1" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="(ports(Pat) ∖ (p_component(Pat))∼[{c}])∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="c∈to_free_c ∖ ran(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒(ports{Pat ↦ ports(Pat) ∖ (p_component(Pat))∼[{c}]})(m1)∩(ports{Pat ↦ ports(Pat) ∖ (p_component(Pat))∼[{c}]})(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="(ports(Pat) ∖ (p_component(Pat))∼[{c}])∩({Pat} ⩤ ports)(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="¬Pat=m2"> |
|
|
<org.eventb.core.prIdent name="m2" 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.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="⊥"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="(ports{Pat ↦ ports(Pat) ∖ (p_component(Pat))∼[{c}]})(m1)∩(ports{Pat ↦ ports(Pat) ∖ (p_component(Pat))∼[{c}]})(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<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⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(Port,IPort,OPort)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p13" 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="p17" org.eventb.core.predicate="m2=Pat"> |
|
|
<org.eventb.core.prIdent name="m2" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="ports(m1)∩ports(Pat)⊆(p_component(Pat))∼[{c}]"> |
|
|
<org.eventb.core.prIdent name="m1" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<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="p18" org.eventb.core.predicate="(ports(Pat) ∖ (p_component(Pat))∼[{c}])∩(ports(Pat) ∖ (p_component(Pat))∼[{c}])=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Port=IPort∪OPort"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="ports∈Model → ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="ports(m1)∩({Pat} ⩤ ports)(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<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⦂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="p15" org.eventb.core.predicate="m1=Pat"> |
|
|
<org.eventb.core.prIdent name="m1" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="¬⊤"/> |
|
|
<org.eventb.core.prReas name="r10" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<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="r8" org.eventb.core.prRID="org.eventb.core.seqprover.falseHyp"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r9" org.eventb.core.prRID="org.eventb.core.seqprover.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<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.funOvr:1"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="free_c/mult_cstr/INV" org.eventb.core.confidence="0" org.eventb.core.prFresh="m" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4" org.eventb.core.prSets="Component,Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p5,p6"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p5,p6"/> |
|
|
<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="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="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="p11"/> |
|
|
<org.eventb.core.prRule name="r3" 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="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ 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="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ovr in goal" org.eventb.core.prGoal="p14" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p16" org.eventb.core.prHyps="p15"> |
|
|
<org.eventb.core.prRule name="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m=Pat" org.eventb.core.prGoal="p16" org.eventb.core.prHyps="p15"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p18"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p13"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p17"/> |
|
|
</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.prHyps="p19"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p20" org.eventb.core.prHyps="p2"> |
|
|
<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="PP" org.eventb.core.prGoal="p21" org.eventb.core.prHyps="p4,p1,p5,p6,p13,p19"> |
|
|
<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.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="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="p_component" org.eventb.core.type="ℙ(Model×ℙ(Port×Component))"/> |
|
|
<org.eventb.core.prIdent name="p_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Port×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<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="p20" org.eventb.core.predicate="p_multiplicity(m)∈({Pat} ⩤ ports)(m) → ℕ1"> |
|
|
<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.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="p_multiplicity(m)∈(ports{Pat ↦ ports(Pat) ∖ (p_component(Pat))∼[{c}]})(m) → ℕ1"> |
|
|
<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="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p13" 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="p3" org.eventb.core.predicate="partition(Port,IPort,OPort)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒p_multiplicity(m)∈ports(m) → ℕ1"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="p_multiplicity(Pat)∈ports(Pat) ∖ (p_component(Pat))∼[{c}] → ℕ1"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="p_multiplicity(m)∈ports(m) → ℕ1"> |
|
|
<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·m∈Pattern⇒p_multiplicity(m)∈(ports{Pat ↦ ports(Pat) ∖ (p_component(Pat))∼[{c}]})(m) → ℕ1"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Port=IPort∪OPort"/> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="c∈to_free_c ∖ ran(to_clone_c)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="ports∈Model → ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="m∈Pattern⇒p_multiplicity(m)∈(ports{Pat ↦ ports(Pat) ∖ (p_component(Pat))∼[{c}]})(m) → ℕ1"> |
|
|
<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="p_multiplicity(m)∈ports(Pat) ∖ (p_component(Pat))∼[{c}] → ℕ1"> |
|
|
<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="¬m=Pat"> |
|
|
<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.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p15" 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="r8" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/> |
|
|
<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="r6" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<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.funOvr:1"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="free_c/to_unfold_p/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,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p1" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p2,p3"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p2,p3"/> |
|
|
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="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="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.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="p_component" org.eventb.core.type="ℙ(Model×ℙ(Port×Component))"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<org.eventb.core.prIdent name="to_unfold_p" org.eventb.core.type="ℙ(Port)"/> |
|
|
<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="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="p8" org.eventb.core.predicate="to_unfold_p⊆ports(Pat) ∖ (p_component(Pat))∼[{c}]"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="to_unfold_p⊆(ports{Pat ↦ ports(Pat) ∖ (p_component(Pat))∼[{c}]})(Pat)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<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="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.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.partitionRewrites"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="free_c/prt/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,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p5,p6"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p5,p6"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p7"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p7" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p8" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p9"/> |
|
|
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p10" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p11"/> |
|
|
<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="p13"/> |
|
|
<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 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="p15"> |
|
|
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p15" org.eventb.core.prHyps=""> |
|
|
<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="⊤ goal" org.eventb.core.prGoal="p16" 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="p17"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p17" 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.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="p_component" org.eventb.core.type="ℙ(Model×ℙ(Port×Component))"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p9" 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="p13" 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="p16" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="p_component∈Model ⇸ ℙ(Port × Component)"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="p_component∈Model → (Port ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="Pat∈dom(p_component)∧p_component∈Model ⇸ ℙ(Port × Component)"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="⊤∧⊤∧Pat∈dom(p_component)∧p_component∈Model ⇸ ℙ(Port × Component)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="ports∈Model ⇸ ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Pat∈dom(ports)"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(ports)∧ports∈Model ⇸ ℙ(Port)∧Pat∈dom(p_component)∧p_component∈Model ⇸ ℙ(Port × Component)"/> |
|
|
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="Pat∈Model"/> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.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.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="Pat∈dom(p_component)"/> |
|
|
<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.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.isFunGoal"/> |
|
|
<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.totalDom:2"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<org.eventb.core.prReas name="r6" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="free_c/pc_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="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p0" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p1,p2"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p1,p2"/> |
|
|
<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="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="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="p7"/> |
|
|
</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.prPred name="p4" 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="p7" 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="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</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="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="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.partitionRewrites"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="free_c/pc/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,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p2" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p3,p4"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p3,p4"/> |
|
|
<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="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="p9"/> |
|
|
<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="p10"> |
|
|
<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="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="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="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.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="p_component" org.eventb.core.type="ℙ(Model×ℙ(Port×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="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="p12" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="p_component∈Model ⇸ ℙ(Port × Component)"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(p_component)∧p_component∈Model ⇸ ℙ(Port × Component)"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="p_component∈Model → (Port ⇸ Component)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="Pat∈Model"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.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.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="Pat∈dom(p_component)"/> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="Model"/> |
|
|
<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="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="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<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.conj:0"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/pm/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="Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p4,p5"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p4,p5"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p6"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p6" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<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="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.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="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p6" 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.prIdent name="Component" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Pat∈dom(ports)∧ports∈Model ⇸ ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="ports∈Model ⇸ ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Pat∈dom(ports)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<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="Component" org.eventb.core.type="ℙ(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.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/pmult/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="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p0" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p1,p2"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p1,p2"/> |
|
|
<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="p3" org.eventb.core.prHyps="p5,p6" org.eventb.core.prInfHyps="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="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.prHypAction name="REWRITE2" org.eventb.core.prHidden="p4" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p11"/> |
|
|
<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="p12"/> |
|
|
</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.prPred name="p3" org.eventb.core.predicate="∀pp⦂Port·Pat∈dom(ports)∧ports∈Model ⇸ ℙ(Port)∧(pp∈ports(Pat)⇒finite(inst_ports[{pp}]))"> |
|
|
<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="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="inst_ports" org.eventb.core.type="ℙ(Port×Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀pp⦂Port·pp∈ports(Pat)⇒finite(inst_ports[{pp}])"> |
|
|
<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="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="inst_ports" org.eventb.core.type="ℙ(Port×Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</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.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="p12" 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="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="ports∈Model ⇸ ℙ(Port)"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="Pat∈dom(ports)"> |
|
|
<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="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="∀pp⦂Port·⊤∧⊤∧(pp∈ports(Pat)⇒finite(inst_ports[{pp}]))"> |
|
|
<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="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="inst_ports" org.eventb.core.type="ℙ(Port×Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</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.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="r3" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/mult_cstr/INV" org.eventb.core.confidence="0" org.eventb.core.prFresh="m" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1" org.eventb.core.prSets="Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p2" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p3,p4"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p3,p4"/> |
|
|
<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="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="p9"/> |
|
|
<org.eventb.core.prRule name="r3" 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="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="p12" org.eventb.core.prHyps="p11"> |
|
|
<org.eventb.core.prRule name="r5" 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="r6" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with m=Pat" org.eventb.core.prGoal="p14" org.eventb.core.prHyps="p13"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p16"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p11"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p15"/> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p18" org.eventb.core.prHyps="p17"> |
|
|
<org.eventb.core.prRule name="r7" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Functional image simplification in goal" org.eventb.core.prGoal="p18" org.eventb.core.prHyps="p1"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p19"/> |
|
|
<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.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="Pattern" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="inst_ports" org.eventb.core.type="ℙ(Port×Port)"/> |
|
|
<org.eventb.core.prIdent name="p_mult_others" org.eventb.core.type="ℙ(Port×ℤ)"/> |
|
|
<org.eventb.core.prIdent name="p_multiplicity" org.eventb.core.type="ℙ(Model×ℙ(Port×ℤ))"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<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="Component" org.eventb.core.type="ℙ(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="Pattern⊆Model"/> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="p_mult_others{pp⦂Port·pp∈ports(Pat) ∣ pp ↦ card(inst_ports[{pp}])}∈ports(m) → ℕ1"> |
|
|
<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="p_mult_others{pp⦂Port·pp∈ports(Pat) ∣ pp ↦ card(inst_ports[{pp}])}∈ports(Pat) → ℕ1"/> |
|
|
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="p_multiplicity∈Pattern → (Port ⇸ ℕ1)"/> |
|
|
<org.eventb.core.prPred name="p11" 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="p2" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒(p_multiplicity{Pat ↦ p_mult_others{pp⦂Port·pp∈ports(Pat) ∣ pp ↦ card(inst_ports[{pp}])}})(m)∈ports(m) → ℕ1"/> |
|
|
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="p_multiplicity(m)∈ports(m) → ℕ1"> |
|
|
<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="Pat∈Pattern"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="({Pat} ⩤ p_multiplicity)(m)∈ports(m) → ℕ1"> |
|
|
<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="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="(p_multiplicity{Pat ↦ p_mult_others{pp⦂Port·pp∈ports(Pat) ∣ pp ↦ card(inst_ports[{pp}])}})(m)∈ports(m) → ℕ1"> |
|
|
<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∈Pattern⇒(p_multiplicity{Pat ↦ p_mult_others{pp⦂Port·pp∈ports(Pat) ∣ pp ↦ card(inst_ports[{pp}])}})(m)∈ports(m) → ℕ1"> |
|
|
<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="¬m=Pat"> |
|
|
<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.prIdent name="Component" org.eventb.core.type="ℙ(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=Pat"> |
|
|
<org.eventb.core.prIdent name="m" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<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="r6" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r7" org.eventb.core.prRID="org.eventb.core.seqprover.funImgSimplifies:0"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<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.funOvr:1"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="instanciate_pattern/p_mult/WD" org.eventb.core.confidence="0" org.eventb.core.prFresh="pp" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2" org.eventb.core.prSets="Model,Port"> |
|
|
<org.eventb.core.lang name="L"/> |
|
|
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p4,p5"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p4,p5"/> |
|
|
<org.eventb.core.prRule name="r1" 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="p6"> |
|
|
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p6" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11"> |
|
|
<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="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="p12"/> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees pp)" org.eventb.core.prGoal="p11" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p13"> |
|
|
<org.eventb.core.prIdent name="pp" org.eventb.core.type="Port"/> |
|
|
<org.eventb.core.prRule name="r5" 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="p15" org.eventb.core.prHyps="p14"/> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
</org.eventb.core.prRule> |
|
|
</org.eventb.core.prAnte> |
|
|
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/> |
|
|
</org.eventb.core.prRule> |
|
|
<org.eventb.core.prIdent name="Pat" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="inst_ports" org.eventb.core.type="ℙ(Port×Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀pp⦂Port·Pat∈dom(ports)∧ports∈Model ⇸ ℙ(Port)∧(pp∈ports(Pat)⇒finite(inst_ports[{pp}]))"/> |
|
|
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="∀pp⦂Port·pp∈ports(Pat)⇒finite(inst_ports[{pp}])"/> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="pp∈ports(Pat)⇒finite(inst_ports[{pp}])"> |
|
|
<org.eventb.core.prIdent name="pp" org.eventb.core.type="Port"/> |
|
|
</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.prIdent name="Component" org.eventb.core.type="ℙ(Component)"/> |
|
|
<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="Pattern⊆Model"> |
|
|
<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="finite(inst_ports[{pp}])"> |
|
|
<org.eventb.core.prIdent name="pp" org.eventb.core.type="Port"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="ports∈Model ⇸ ℙ(Port)"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="Pat∈dom(ports)"/> |
|
|
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"/> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="pp∈ports(Pat)"> |
|
|
<org.eventb.core.prIdent name="pp" org.eventb.core.type="Port"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀pp⦂Port·⊤∧⊤∧(pp∈ports(Pat)⇒finite(inst_ports[{pp}]))"/> |
|
|
<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="Component" org.eventb.core.type="ℙ(Component)"/> |
|
|
<org.eventb.core.prIdent name="components" org.eventb.core.type="ℙ(Model×ℙ(Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL3"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.allI"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
<org.eventb.core.prReas name="r5" org.eventb.core.prRID="org.eventb.core.seqprover.impI"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="clone_c/to_unfold_c/SIM" 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="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p0" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p1,p2"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p1,p2"/> |
|
|
<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="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.prHypAction name="REWRITE2" 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="p9"/> |
|
|
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p10"/> |
|
|
</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.prPred name="p6" 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="p9" 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="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="p8" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="¬Mdl=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="p7" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p3" 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="p5" 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.autoRewritesL4:0"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/> |
|
|
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_p/p_in_p_mult/THM" 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="Partition rewrites in hyp (partition(Port,IPort,OPort))" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p0" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p1,p2"/> |
|
|
<org.eventb.core.prHypAction name="SELECT1" org.eventb.core.prHyps="p1,p2"/> |
|
|
<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="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="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="p7"/> |
|
|
</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.prPred name="p4" 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="p7" 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="p6" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·¬m1=m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Port=IPort∪OPort"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="IPort∩OPort=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="partition(Port,IPort,OPort)"> |
|
|
<org.eventb.core.prIdent name="IPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="OPort" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m1⦂Model,m2⦂Model·m1≠m2⇒ports(m1)∩ports(m2)=(∅ ⦂ ℙ(Port))"> |
|
|
<org.eventb.core.prIdent name="Model" org.eventb.core.type="ℙ(Model)"/> |
|
|
<org.eventb.core.prIdent name="Port" org.eventb.core.type="ℙ(Port)"/> |
|
|
<org.eventb.core.prIdent name="ports" org.eventb.core.type="ℙ(Model×ℙ(Port))"/> |
|
|
</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="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="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.partitionRewrites"/> |
|
|
</org.eventb.core.prProof> |
|
|
<org.eventb.core.prProof name="unfold_root_c/prop/WD" 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,Property" 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="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.prHypAction name="HIDE1" 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="p0" 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="sl/ds" org.eventb.core.prHyps=""> |
|
|
<org.eventb.core.prAnte name="'"> |
|
|
<org.eventb.core.prHypAction name="SELECT0" org.eventb.core.prHyps="p10,p1,p11,p12,p13,p14,p15,p16,p17,p18,p2,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p40,p41,p42,p4,p6"/> |
|
|
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ hyp mp (inst Pat)" org.eventb.core.prHyps="p2"> |
|
|
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p43"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p2"/> |
|
|
<org.eventb.core.prRule name="r5" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p43" 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="p2"/> |
|
|
<org.eventb.core.prRule name="r6" 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="p44"> |
|
|
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p2"/> |
|
|
</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="p45"/> |
|
|
</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="properties" org.eventb.core.type="ℙ(Component×Property)"/> |
|
|
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="to_unfold_c_in;inst2pat_c⊆container(Pat)"> |
|
|
<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="to_unfold_c_in" 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.prPred name="p35" 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="p12" org.eventb.core.predicate="components∈Model → ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p36" 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="p33" org.eventb.core.predicate="to_unfold_c∩dom(container(Pat))=(∅ ⦂ ℙ(Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(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="c∈dom(properties)"/> |
|
|
<org.eventb.core.prPred name="p44" 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="p41" org.eventb.core.predicate="c∈dom(c_multiplicity(Pat))"/> |
|
|
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="Inst∈dom(components)"> |
|
|
<org.eventb.core.prIdent name="Inst" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="∀m⦂Model·finite(components(m))"/> |
|
|
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="components∈Model ⇸ ℙ(Component)"/> |
|
|
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="Inst∈dom(container)"> |
|
|
<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> |
|
|
<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="p19" org.eventb.core.predicate="to_unfold_c_in∈components(Pat) ↔ components(Inst)"> |
|
|
<org.eventb.core.prIdent name="Inst" 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="to_clone_c∈components(Inst) ⇸ components(Pat)"> |
|
|
<org.eventb.core.prIdent name="Inst" 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="p28" 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="p34" org.eventb.core.predicate="dom(to_unfold_c_in)⊆dom(container(Pat))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(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="∀m1⦂Model,m2⦂Model·¬m1=m2⇒components(m1)∩components(m2)=(∅ ⦂ ℙ(Component))"/> |
|
|
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="⊤"/> |
|
|
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="c_multiplicity∈Pattern → (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="p37" org.eventb.core.predicate="inst2pat_c;container(Pat)=container(Inst);inst2pat_c"> |
|
|
<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.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="c_multiplicity(Pat)∈Component ⇸ ℤ"/> |
|
|
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="∀m⦂Model·m∈Pattern⇒c_multiplicity(m)∈components(m) → ℕ"/> |
|
|
<org.eventb.core.prPred name="p32" 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="p25" 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="to_clone_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="properties∈Component ⇸ Property"/> |
|
|
<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="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="p8" org.eventb.core.predicate="properties∈Component ↔ Property"/> |
|
|
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="c_multiplicity∈Model ⇸ ℙ(Component × ℤ)"/> |
|
|
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="inst2pat_c∈components(Inst) → components(Pat)"> |
|
|
<org.eventb.core.prIdent name="Inst" org.eventb.core.type="Model"/> |
|
|
<org.eventb.core.prIdent name="inst2pat_c" org.eventb.core.type="ℙ(Component×Component)"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="Pat∈dom(c_multiplicity)"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="c∈dom(properties)∧properties∈Component ⇸ Property"/> |
|
|
<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="p17" org.eventb.core.predicate="∀m⦂Model·container(m)∩(id ⦂ ℙ(Component×Component))=(∅ ⦂ ℙ(Component×Component))"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<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="p11" org.eventb.core.predicate="Inst∈Model ∖ Pattern"> |
|
|
<org.eventb.core.prIdent name="Inst" org.eventb.core.type="Model"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prPred name="p24" 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="p5" 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="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="p20" org.eventb.core.predicate="Pat∈dom(components)"/> |
|
|
<org.eventb.core.prPred name="p26" 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="p30" org.eventb.core.predicate="Pat∈dom(container)"> |
|
|
<org.eventb.core.prIdent name="container" org.eventb.core.type="ℙ(Model×ℙ(Component×Component))"/> |
|
|
</org.eventb.core.prPred> |
|
|
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="Pat"/> |
|
|
<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="r6" org.eventb.core.prRID="org.eventb.core.seqprover.hyp"/> |
|
|
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="org.eventb.core.seqprover.allmpD:0"/> |
|
|
<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.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="unfold_node_c/prop/WD" org.eventb.core.confidence="0" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="" org.eventb.core.prSets="Component,Property"> |
|
|
<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.prHypAction name="HIDE1" 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.prAnte name="(" org.eventb.core.prGoal="p8"/> |
|
|
</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="properties" org.eventb.core.type="ℙ(Component×Property)"/> |
|
|
<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="p6" org.eventb.core.predicate="properties∈Component ↔ Property"/> |
|
|
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="c∈dom(properties)∧properties∈Component ⇸ Property"/> |
|
|
<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.prPred name="p7" org.eventb.core.predicate="c∈dom(properties)"/> |
|
|
<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="p8" org.eventb.core.predicate="properties∈Component ⇸ Property"/> |
|
|
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/> |
|
|
<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.prFile>
|
|
|
|