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