Welcome to Abella 2.0.3-dev
Abella < Kind name, action, proc type.
Abella < Import "pic_core".
Importing from pic_core
Warning: Definition can be used to defeat stratification
(higher-order argument "Tech" occurs to the left of ->)
Abella < Import "pic_bisim".
Importing from pic_bisim
Warning: Definition can be used to defeat stratification
(higher-order argument "Tech" occurs to the left of ->)
Warning: Definition can be used to defeat stratification
(higher-order argument "Tech" occurs to the left of ->)
Abella < Import "pic_ctx".
Importing from pic_ctx
Abella < Type a, b, c, d name.
Abella < Theorem bisim_par_null :
forall P, bisim_up_to refl_t (par P null) P.
============================
forall P, bisim_up_to refl_t (par P null) P
bisim_par_null < coinduction.
CH : forall P, bisim_up_to refl_t (par P null) P +
============================
forall P, bisim_up_to refl_t (par P null) P #
bisim_par_null < intros.
Variables: P
CH : forall P, bisim_up_to refl_t (par P null) P +
============================
bisim_up_to refl_t (par P null) P #
bisim_par_null < unfold.
Subgoal 1:
Variables: P
CH : forall P, bisim_up_to refl_t (par P null) P +
============================
forall L P1, one (par P null) L P1 ->
(exists Q1, one P L Q1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 2 is:
forall X P1, oneb (par P null) (dn X) P1 ->
(exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < intros.
Subgoal 1:
Variables: P L P1
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : one (par P null) L P1
============================
exists Q1, one P L Q1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (par P null) (dn X) P1 ->
(exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < case H1.
Subgoal 1.1:
Variables: P L R
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : one P L R
============================
exists Q1, one P L Q1 /\
(exists P2 Q2, refl_t (par R null) P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +)
Subgoal 1.2 is:
exists Q1, one P L Q1 /\
(exists P2 Q2, refl_t (par P R) P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (par PP QQ) P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +)
Subgoal 1.4 is:
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (nu (y\par (PP y) (QQ y))) P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (par P null) (dn X) P1 ->
(exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < witness R.
Subgoal 1.1:
Variables: P L R
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : one P L R
============================
one P L R /\
(exists P2 Q2, refl_t (par R null) P2 R Q2 /\ bisim_up_to refl_t P2 Q2 +)
Subgoal 1.2 is:
exists Q1, one P L Q1 /\
(exists P2 Q2, refl_t (par P R) P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (par PP QQ) P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +)
Subgoal 1.4 is:
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (nu (y\par (PP y) (QQ y))) P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (par P null) (dn X) P1 ->
(exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < split.
Subgoal 1.1.1:
Variables: P L R
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : one P L R
============================
one P L R
Subgoal 1.1.2 is:
exists P2 Q2, refl_t (par R null) P2 R Q2 /\ bisim_up_to refl_t P2 Q2 +
Subgoal 1.2 is:
exists Q1, one P L Q1 /\
(exists P2 Q2, refl_t (par P R) P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (par PP QQ) P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +)
Subgoal 1.4 is:
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (nu (y\par (PP y) (QQ y))) P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (par P null) (dn X) P1 ->
(exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < search.
Subgoal 1.1.2:
Variables: P L R
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : one P L R
============================
exists P2 Q2, refl_t (par R null) P2 R Q2 /\ bisim_up_to refl_t P2 Q2 +
Subgoal 1.2 is:
exists Q1, one P L Q1 /\
(exists P2 Q2, refl_t (par P R) P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (par PP QQ) P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +)
Subgoal 1.4 is:
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (nu (y\par (PP y) (QQ y))) P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (par P null) (dn X) P1 ->
(exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < witness par R null.
Subgoal 1.1.2:
Variables: P L R
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : one P L R
============================
exists Q2, refl_t (par R null) (par R null) R Q2 /\
bisim_up_to refl_t (par R null) Q2 +
Subgoal 1.2 is:
exists Q1, one P L Q1 /\
(exists P2 Q2, refl_t (par P R) P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (par PP QQ) P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +)
Subgoal 1.4 is:
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (nu (y\par (PP y) (QQ y))) P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (par P null) (dn X) P1 ->
(exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < witness R.
Subgoal 1.1.2:
Variables: P L R
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : one P L R
============================
refl_t (par R null) (par R null) R R /\ bisim_up_to refl_t (par R null) R +
Subgoal 1.2 is:
exists Q1, one P L Q1 /\
(exists P2 Q2, refl_t (par P R) P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (par PP QQ) P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +)
Subgoal 1.4 is:
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (nu (y\par (PP y) (QQ y))) P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (par P null) (dn X) P1 ->
(exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < split.
Subgoal 1.1.2.1:
Variables: P L R
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : one P L R
============================
refl_t (par R null) (par R null) R R
Subgoal 1.1.2.2 is:
bisim_up_to refl_t (par R null) R +
Subgoal 1.2 is:
exists Q1, one P L Q1 /\
(exists P2 Q2, refl_t (par P R) P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (par PP QQ) P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +)
Subgoal 1.4 is:
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (nu (y\par (PP y) (QQ y))) P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (par P null) (dn X) P1 ->
(exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < search.
Subgoal 1.1.2.2:
Variables: P L R
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : one P L R
============================
bisim_up_to refl_t (par R null) R +
Subgoal 1.2 is:
exists Q1, one P L Q1 /\
(exists P2 Q2, refl_t (par P R) P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (par PP QQ) P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +)
Subgoal 1.4 is:
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (nu (y\par (PP y) (QQ y))) P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (par P null) (dn X) P1 ->
(exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < backchain CH.
Subgoal 1.2:
Variables: P L R
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : one null L R
============================
exists Q1, one P L Q1 /\
(exists P2 Q2, refl_t (par P R) P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (par PP QQ) P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +)
Subgoal 1.4 is:
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (nu (y\par (PP y) (QQ y))) P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (par P null) (dn X) P1 ->
(exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < case H2.
Subgoal 1.3:
Variables: P QQ PP
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : (exists X Y R, oneb P (dn X) R /\ one null (up X Y) QQ /\ PP = R Y) \/
(exists X Y R, one P (up X Y) PP /\ oneb null (dn X) R /\ QQ = R Y)
============================
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (par PP QQ) P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +)
Subgoal 1.4 is:
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (nu (y\par (PP y) (QQ y))) P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (par P null) (dn X) P1 ->
(exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < case H2.
Subgoal 1.3.1:
Variables: P QQ X Y R
CH : forall P, bisim_up_to refl_t (par P null) P +
H3 : oneb P (dn X) R
H4 : one null (up X Y) QQ
============================
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (par (R Y) QQ) P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 1.3.2 is:
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (par PP (R Y)) P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 1.4 is:
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (nu (y\par (PP y) (QQ y))) P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (par P null) (dn X) P1 ->
(exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < case H4.
Subgoal 1.3.2:
Variables: P PP X Y R
CH : forall P, bisim_up_to refl_t (par P null) P +
H3 : one P (up X Y) PP
H4 : oneb null (dn X) R
============================
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (par PP (R Y)) P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 1.4 is:
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (nu (y\par (PP y) (QQ y))) P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (par P null) (dn X) P1 ->
(exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < case H4.
Subgoal 1.4:
Variables: P QQ PP
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : (exists X, oneb P (dn X) PP /\ oneb null (up X) QQ) \/
(exists X, oneb P (up X) PP /\ oneb null (dn X) QQ)
============================
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (nu (y\par (PP y) (QQ y))) P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (par P null) (dn X) P1 ->
(exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < case H2.
Subgoal 1.4.1:
Variables: P QQ PP X
CH : forall P, bisim_up_to refl_t (par P null) P +
H3 : oneb P (dn X) PP
H4 : oneb null (up X) QQ
============================
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (nu (y\par (PP y) (QQ y))) P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 1.4.2 is:
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (nu (y\par (PP y) (QQ y))) P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (par P null) (dn X) P1 ->
(exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < case H4.
Subgoal 1.4.2:
Variables: P QQ PP X
CH : forall P, bisim_up_to refl_t (par P null) P +
H3 : oneb P (up X) PP
H4 : oneb null (dn X) QQ
============================
exists Q1, one P tau Q1 /\
(exists P2 Q2, refl_t (nu (y\par (PP y) (QQ y))) P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (par P null) (dn X) P1 ->
(exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < case H4.
Subgoal 2:
Variables: P
CH : forall P, bisim_up_to refl_t (par P null) P +
============================
forall X P1, oneb (par P null) (dn X) P1 ->
(exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < intros.
Subgoal 2:
Variables: P X P1
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : oneb (par P null) (dn X) P1
============================
exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < case H1.
Subgoal 2.1:
Variables: P X R
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : oneb P (dn X) R
============================
exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (par (R N) null) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +)
Subgoal 2.2 is:
exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (par P (R N)) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < witness R.
Subgoal 2.1:
Variables: P X R
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : oneb P (dn X) R
============================
oneb P (dn X) R /\
(exists P2 Q2, forall N, refl_t (par (R N) null) (P2 N) (R N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +)
Subgoal 2.2 is:
exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (par P (R N)) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < split.
Subgoal 2.1.1:
Variables: P X R
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : oneb P (dn X) R
============================
oneb P (dn X) R
Subgoal 2.1.2 is:
exists P2 Q2, forall N, refl_t (par (R N) null) (P2 N) (R N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +
Subgoal 2.2 is:
exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (par P (R N)) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < search.
Subgoal 2.1.2:
Variables: P X R
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : oneb P (dn X) R
============================
exists P2 Q2, forall N, refl_t (par (R N) null) (P2 N) (R N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +
Subgoal 2.2 is:
exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (par P (R N)) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < witness x\par (R x) null.
Subgoal 2.1.2:
Variables: P X R
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : oneb P (dn X) R
============================
exists Q2, forall N, refl_t (par (R N) null) (par (R N) null) (R N) (Q2 N) /\
bisim_up_to refl_t (par (R N) null) (Q2 N) +
Subgoal 2.2 is:
exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (par P (R N)) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < witness R.
Subgoal 2.1.2:
Variables: P X R
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : oneb P (dn X) R
============================
forall N, refl_t (par (R N) null) (par (R N) null) (R N) (R N) /\
bisim_up_to refl_t (par (R N) null) (R N) +
Subgoal 2.2 is:
exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (par P (R N)) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < intros.
Subgoal 2.1.2:
Variables: P X R N
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : oneb P (dn X) R
============================
refl_t (par (R N) null) (par (R N) null) (R N) (R N) /\
bisim_up_to refl_t (par (R N) null) (R N) +
Subgoal 2.2 is:
exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (par P (R N)) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < split.
Subgoal 2.1.2.1:
Variables: P X R N
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : oneb P (dn X) R
============================
refl_t (par (R N) null) (par (R N) null) (R N) (R N)
Subgoal 2.1.2.2 is:
bisim_up_to refl_t (par (R N) null) (R N) +
Subgoal 2.2 is:
exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (par P (R N)) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < search.
Subgoal 2.1.2.2:
Variables: P X R N
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : oneb P (dn X) R
============================
bisim_up_to refl_t (par (R N) null) (R N) +
Subgoal 2.2 is:
exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (par P (R N)) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < backchain CH.
Subgoal 2.2:
Variables: P X R
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : oneb null (dn X) R
============================
exists Q1, oneb P (dn X) Q1 /\
(exists P2 Q2, forall N, refl_t (par P (R N)) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < case H2.
Subgoal 3:
Variables: P
CH : forall P, bisim_up_to refl_t (par P null) P +
============================
forall X P1, oneb (par P null) (up X) P1 ->
(exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < intros.
Subgoal 3:
Variables: P X P1
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : oneb (par P null) (up X) P1
============================
exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +)
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < case H1.
Subgoal 3.1:
Variables: P X R
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : oneb P (up X) R
============================
exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (par (R x) null) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +)
Subgoal 3.2 is:
exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (par P (R x)) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +)
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < witness R.
Subgoal 3.1:
Variables: P X R
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : oneb P (up X) R
============================
oneb P (up X) R /\
(exists P2 Q2, nabla x, refl_t (par (R x) null) (P2 x) (R x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +)
Subgoal 3.2 is:
exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (par P (R x)) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +)
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < split.
Subgoal 3.1.1:
Variables: P X R
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : oneb P (up X) R
============================
oneb P (up X) R
Subgoal 3.1.2 is:
exists P2 Q2, nabla x, refl_t (par (R x) null) (P2 x) (R x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +
Subgoal 3.2 is:
exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (par P (R x)) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +)
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < search.
Subgoal 3.1.2:
Variables: P X R
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : oneb P (up X) R
============================
exists P2 Q2, nabla x, refl_t (par (R x) null) (P2 x) (R x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +
Subgoal 3.2 is:
exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (par P (R x)) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +)
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < witness x\par (R x) null.
Subgoal 3.1.2:
Variables: P X R
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : oneb P (up X) R
============================
exists Q2, nabla x, refl_t (par (R x) null) (par (R x) null) (R x) (Q2 x) /\
bisim_up_to refl_t (par (R x) null) (Q2 x) +
Subgoal 3.2 is:
exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (par P (R x)) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +)
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < witness R.
Subgoal 3.1.2:
Variables: P X R
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : oneb P (up X) R
============================
nabla x, refl_t (par (R x) null) (par (R x) null) (R x) (R x) /\
bisim_up_to refl_t (par (R x) null) (R x) +
Subgoal 3.2 is:
exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (par P (R x)) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +)
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < intros.
Subgoal 3.1.2:
Variables: P X R
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : oneb P (up X) R
============================
refl_t (par (R n1) null) (par (R n1) null) (R n1) (R n1) /\
bisim_up_to refl_t (par (R n1) null) (R n1) +
Subgoal 3.2 is:
exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (par P (R x)) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +)
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < split.
Subgoal 3.1.2.1:
Variables: P X R
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : oneb P (up X) R
============================
refl_t (par (R n1) null) (par (R n1) null) (R n1) (R n1)
Subgoal 3.1.2.2 is:
bisim_up_to refl_t (par (R n1) null) (R n1) +
Subgoal 3.2 is:
exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (par P (R x)) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +)
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < search.
Subgoal 3.1.2.2:
Variables: P X R
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : oneb P (up X) R
============================
bisim_up_to refl_t (par (R n1) null) (R n1) +
Subgoal 3.2 is:
exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (par P (R x)) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +)
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < backchain CH.
Subgoal 3.2:
Variables: P X R
CH : forall P, bisim_up_to refl_t (par P null) P +
H2 : oneb null (up X) R
============================
exists Q1, oneb P (up X) Q1 /\
(exists P2 Q2, nabla x, refl_t (par P (R x)) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +)
Subgoal 4 is:
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < case H2.
Subgoal 4:
Variables: P
CH : forall P, bisim_up_to refl_t (par P null) P +
============================
forall L Q1, one P L Q1 ->
(exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < intros.
Subgoal 4:
Variables: P L Q1
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : one P L Q1
============================
exists P1, one (par P null) L P1 /\
(exists P2 Q2, refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < witness par Q1 null.
Subgoal 4:
Variables: P L Q1
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : one P L Q1
============================
one (par P null) L (par Q1 null) /\
(exists P2 Q2, refl_t (par Q1 null) P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < split.
Subgoal 4.1:
Variables: P L Q1
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : one P L Q1
============================
one (par P null) L (par Q1 null)
Subgoal 4.2 is:
exists P2 Q2, refl_t (par Q1 null) P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < search.
Subgoal 4.2:
Variables: P L Q1
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : one P L Q1
============================
exists P2 Q2, refl_t (par Q1 null) P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < witness par Q1 null.
Subgoal 4.2:
Variables: P L Q1
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : one P L Q1
============================
exists Q2, refl_t (par Q1 null) (par Q1 null) Q1 Q2 /\
bisim_up_to refl_t (par Q1 null) Q2 +
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < witness Q1.
Subgoal 4.2:
Variables: P L Q1
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : one P L Q1
============================
refl_t (par Q1 null) (par Q1 null) Q1 Q1 /\
bisim_up_to refl_t (par Q1 null) Q1 +
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < split.
Subgoal 4.2.1:
Variables: P L Q1
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : one P L Q1
============================
refl_t (par Q1 null) (par Q1 null) Q1 Q1
Subgoal 4.2.2 is:
bisim_up_to refl_t (par Q1 null) Q1 +
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < search.
Subgoal 4.2.2:
Variables: P L Q1
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : one P L Q1
============================
bisim_up_to refl_t (par Q1 null) Q1 +
Subgoal 5 is:
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < backchain CH.
Subgoal 5:
Variables: P
CH : forall P, bisim_up_to refl_t (par P null) P +
============================
forall X Q1, oneb P (dn X) Q1 ->
(exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < intros.
Subgoal 5:
Variables: P X Q1
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : oneb P (dn X) Q1
============================
exists P1, oneb (par P null) (dn X) P1 /\
(exists P2 Q2, forall N, refl_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +)
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < witness x\par (Q1 x) null.
Subgoal 5:
Variables: P X Q1
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : oneb P (dn X) Q1
============================
oneb (par P null) (dn X) (x\par (Q1 x) null) /\
(exists P2 Q2, forall N, refl_t (par (Q1 N) null) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +)
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < split.
Subgoal 5.1:
Variables: P X Q1
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : oneb P (dn X) Q1
============================
oneb (par P null) (dn X) (x\par (Q1 x) null)
Subgoal 5.2 is:
exists P2 Q2, forall N, refl_t (par (Q1 N) null) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < search.
Subgoal 5.2:
Variables: P X Q1
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : oneb P (dn X) Q1
============================
exists P2 Q2, forall N, refl_t (par (Q1 N) null) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to refl_t (P2 N) (Q2 N) +
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < witness x\par (Q1 x) null.
Subgoal 5.2:
Variables: P X Q1
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : oneb P (dn X) Q1
============================
exists Q2, forall N, refl_t (par (Q1 N) null) (par (Q1 N) null) (Q1 N)
(Q2 N) /\
bisim_up_to refl_t (par (Q1 N) null) (Q2 N) +
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < witness Q1.
Subgoal 5.2:
Variables: P X Q1
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : oneb P (dn X) Q1
============================
forall N, refl_t (par (Q1 N) null) (par (Q1 N) null) (Q1 N) (Q1 N) /\
bisim_up_to refl_t (par (Q1 N) null) (Q1 N) +
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < intros.
Subgoal 5.2:
Variables: P X Q1 N
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : oneb P (dn X) Q1
============================
refl_t (par (Q1 N) null) (par (Q1 N) null) (Q1 N) (Q1 N) /\
bisim_up_to refl_t (par (Q1 N) null) (Q1 N) +
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < split.
Subgoal 5.2.1:
Variables: P X Q1 N
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : oneb P (dn X) Q1
============================
refl_t (par (Q1 N) null) (par (Q1 N) null) (Q1 N) (Q1 N)
Subgoal 5.2.2 is:
bisim_up_to refl_t (par (Q1 N) null) (Q1 N) +
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < search.
Subgoal 5.2.2:
Variables: P X Q1 N
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : oneb P (dn X) Q1
============================
bisim_up_to refl_t (par (Q1 N) null) (Q1 N) +
Subgoal 6 is:
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < backchain CH.
Subgoal 6:
Variables: P
CH : forall P, bisim_up_to refl_t (par P null) P +
============================
forall X Q1, oneb P (up X) Q1 ->
(exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +))
bisim_par_null < intros.
Subgoal 6:
Variables: P X Q1
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : oneb P (up X) Q1
============================
exists P1, oneb (par P null) (up X) P1 /\
(exists P2 Q2, nabla x, refl_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +)
bisim_par_null < witness x\par (Q1 x) null.
Subgoal 6:
Variables: P X Q1
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : oneb P (up X) Q1
============================
oneb (par P null) (up X) (x\par (Q1 x) null) /\
(exists P2 Q2, nabla x, refl_t (par (Q1 x) null) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +)
bisim_par_null < split.
Subgoal 6.1:
Variables: P X Q1
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : oneb P (up X) Q1
============================
oneb (par P null) (up X) (x\par (Q1 x) null)
Subgoal 6.2 is:
exists P2 Q2, nabla x, refl_t (par (Q1 x) null) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +
bisim_par_null < search.
Subgoal 6.2:
Variables: P X Q1
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : oneb P (up X) Q1
============================
exists P2 Q2, nabla x, refl_t (par (Q1 x) null) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (P2 x) (Q2 x) +
bisim_par_null < witness x\par (Q1 x) null.
Subgoal 6.2:
Variables: P X Q1
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : oneb P (up X) Q1
============================
exists Q2, nabla x, refl_t (par (Q1 x) null) (par (Q1 x) null) (Q1 x) (Q2 x) /\
bisim_up_to refl_t (par (Q1 x) null) (Q2 x) +
bisim_par_null < witness Q1.
Subgoal 6.2:
Variables: P X Q1
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : oneb P (up X) Q1
============================
nabla x, refl_t (par (Q1 x) null) (par (Q1 x) null) (Q1 x) (Q1 x) /\
bisim_up_to refl_t (par (Q1 x) null) (Q1 x) +
bisim_par_null < intros.
Subgoal 6.2:
Variables: P X Q1
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : oneb P (up X) Q1
============================
refl_t (par (Q1 n1) null) (par (Q1 n1) null) (Q1 n1) (Q1 n1) /\
bisim_up_to refl_t (par (Q1 n1) null) (Q1 n1) +
bisim_par_null < split.
Subgoal 6.2.1:
Variables: P X Q1
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : oneb P (up X) Q1
============================
refl_t (par (Q1 n1) null) (par (Q1 n1) null) (Q1 n1) (Q1 n1)
Subgoal 6.2.2 is:
bisim_up_to refl_t (par (Q1 n1) null) (Q1 n1) +
bisim_par_null < search.
Subgoal 6.2.2:
Variables: P X Q1
CH : forall P, bisim_up_to refl_t (par P null) P +
H1 : oneb P (up X) Q1
============================
bisim_up_to refl_t (par (Q1 n1) null) (Q1 n1) +
bisim_par_null < backchain CH.
Proof completed.
Abella < Theorem ex_bang_plus :
bisim (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))).
============================
bisim (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null)))
ex_bang_plus < Sound : apply bisim_sound.
Sound : is_sound bisim_t
============================
bisim (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null)))
ex_bang_plus < Sound : case Sound.
Sound : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
============================
bisim (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null)))
ex_bang_plus < unfold.
Sound : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
============================
bisim_up_to refl_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null)))
ex_bang_plus < backchain Sound.
Sound : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
============================
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null)))
ex_bang_plus < clear Sound.
============================
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null)))
ex_bang_plus < coinduction.
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) #
ex_bang_plus < unfold.
Subgoal 1:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
forall L P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 ->
(exists Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < intros.
Subgoal 1:
Variables: L P1
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H1 : one (repl (plus (inp a x\null) (inp b x\null))) L P1
============================
exists Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H1.
Subgoal 1.1:
Variables: L R
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H2 : one (plus (inp a x\null) (inp b x\null)) L R
============================
exists Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 /\
(exists P2 Q2, bisim_t (par (repl (plus (inp a x\null) (inp b x\null))) R)
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.2 is:
exists Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
(par PP (R Y)))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
(nu (y\par (PP y) (QQ y))))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H2.
Subgoal 1.1.1:
Variables: L R
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H3 : one (inp a x\null) L R
============================
exists Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 /\
(exists P2 Q2, bisim_t (par (repl (plus (inp a x\null) (inp b x\null))) R)
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.1.2 is:
exists Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 /\
(exists P2 Q2, bisim_t (par (repl (plus (inp a x\null) (inp b x\null))) R)
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.2 is:
exists Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
(par PP (R Y)))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
(nu (y\par (PP y) (QQ y))))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H3.
Subgoal 1.1.2:
Variables: L R
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H3 : one (inp b x\null) L R
============================
exists Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 /\
(exists P2 Q2, bisim_t (par (repl (plus (inp a x\null) (inp b x\null))) R)
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.2 is:
exists Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
(par PP (R Y)))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
(nu (y\par (PP y) (QQ y))))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H3.
Subgoal 1.2:
Variables: X Y R PP
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H2 : one (plus (inp a x\null) (inp b x\null)) (up X Y) PP
H3 : oneb (plus (inp a x\null) (inp b x\null)) (dn X) R
============================
exists Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
(par PP (R Y)))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
(nu (y\par (PP y) (QQ y))))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H2.
Subgoal 1.2.1:
Variables: X Y R PP
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H3 : oneb (plus (inp a x\null) (inp b x\null)) (dn X) R
H4 : one (inp a x\null) (up X Y) PP
============================
exists Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
(par PP (R Y)))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.2.2 is:
exists Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
(par PP (R Y)))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
(nu (y\par (PP y) (QQ y))))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H4.
Subgoal 1.2.2:
Variables: X Y R PP
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H3 : oneb (plus (inp a x\null) (inp b x\null)) (dn X) R
H4 : one (inp b x\null) (up X Y) PP
============================
exists Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
(par PP (R Y)))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
(nu (y\par (PP y) (QQ y))))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H4.
Subgoal 1.3:
Variables: X QQ PP
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H2 : oneb (plus (inp a x\null) (inp b x\null)) (up X) PP
H3 : oneb (plus (inp a x\null) (inp b x\null)) (dn X) QQ
============================
exists Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
(nu (y\par (PP y) (QQ y))))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H2.
Subgoal 1.3.1:
Variables: X QQ PP
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H3 : oneb (plus (inp a x\null) (inp b x\null)) (dn X) QQ
H4 : oneb (inp a x\null) (up X) PP
============================
exists Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
(nu (y\par (PP y) (QQ y))))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.3.2 is:
exists Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
(nu (y\par (PP y) (QQ y))))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H4.
Subgoal 1.3.2:
Variables: X QQ PP
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H3 : oneb (plus (inp a x\null) (inp b x\null)) (dn X) QQ
H4 : oneb (inp b x\null) (up X) PP
============================
exists Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
(nu (y\par (PP y) (QQ y))))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H4.
Subgoal 2:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < intros.
Subgoal 2:
Variables: X P1
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H1 : oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1
============================
exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H1.
Subgoal 2:
Variables: X R
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H2 : oneb (plus (inp a x\null) (inp b x\null)) (dn X) R
============================
exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t
(par
(repl (plus (inp a x\null) (inp b x\null)))
(R N))
(P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H2.
Subgoal 2.1:
Variables: X R
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H3 : oneb (inp a x\null) (dn X) R
============================
exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t
(par
(repl (plus (inp a x\null) (inp b x\null)))
(R N))
(P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 2.2 is:
exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t
(par
(repl (plus (inp a x\null) (inp b x\null)))
(R N))
(P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H3.
Subgoal 2.1:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (dn a) Q1 /\
(exists P2 Q2, forall N, bisim_t
(par
(repl (plus (inp a x\null) (inp b x\null)))
null)
(P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 2.2 is:
exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t
(par
(repl (plus (inp a x\null) (inp b x\null)))
(R N))
(P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < witness x\par (par (repl (inp X x1\null)) null) (repl (inp b x1\null)).
Subgoal 2.1:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (dn a)
(x\par (par (repl (inp a x1\null)) null) (repl (inp b x1\null))) /\
(exists P2 Q2, forall N, bisim_t
(par
(repl (plus (inp a x\null) (inp b x\null)))
null)
(P2 N)
(par (par (repl (inp a x\null)) null)
(repl (inp b x\null)))
(Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 2.2 is:
exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t
(par
(repl (plus (inp a x\null) (inp b x\null)))
(R N))
(P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < split.
Subgoal 2.1.1:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (dn a)
(x\par (par (repl (inp a x1\null)) null) (repl (inp b x1\null)))
Subgoal 2.1.2 is:
exists P2 Q2, forall N, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
null)
(P2 N)
(par (par (repl (inp a x\null)) null)
(repl (inp b x\null)))
(Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +
Subgoal 2.2 is:
exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t
(par
(repl (plus (inp a x\null) (inp b x\null)))
(R N))
(P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < search.
Subgoal 2.1.2:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
exists P2 Q2, forall N, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
null)
(P2 N)
(par (par (repl (inp a x\null)) null)
(repl (inp b x\null)))
(Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +
Subgoal 2.2 is:
exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t
(par
(repl (plus (inp a x\null) (inp b x\null)))
(R N))
(P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < witness x\repl (plus (inp X x1\null) (inp b x1\null)).
Subgoal 2.1.2:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
exists Q2, forall N, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null))) null)
(repl (plus (inp a x\null) (inp b x\null)))
(par (par (repl (inp a x\null)) null)
(repl (inp b x\null)))
(Q2 N) /\
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null))) (Q2 N) +
Subgoal 2.2 is:
exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t
(par
(repl (plus (inp a x\null) (inp b x\null)))
(R N))
(P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < witness x\par (repl (inp X x1\null)) (repl (inp b x1\null)).
Subgoal 2.1.2:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
forall N, bisim_t (par (repl (plus (inp a x\null) (inp b x\null))) null)
(repl (plus (inp a x\null) (inp b x\null)))
(par (par (repl (inp a x\null)) null) (repl (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) /\
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
Subgoal 2.2 is:
exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t
(par
(repl (plus (inp a x\null) (inp b x\null)))
(R N))
(P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < intros.
Subgoal 2.1.2:
Variables: N
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
bisim_t (par (repl (plus (inp a x\null) (inp b x\null))) null)
(repl (plus (inp a x\null) (inp b x\null)))
(par (par (repl (inp a x\null)) null) (repl (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) /\
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
Subgoal 2.2 is:
exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t
(par
(repl (plus (inp a x\null) (inp b x\null)))
(R N))
(P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < split.
Subgoal 2.1.2.1:
Variables: N
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
bisim_t (par (repl (plus (inp a x\null) (inp b x\null))) null)
(repl (plus (inp a x\null) (inp b x\null)))
(par (par (repl (inp a x\null)) null) (repl (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null)))
Subgoal 2.1.2.2 is:
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
Subgoal 2.2 is:
exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t
(par
(repl (plus (inp a x\null) (inp b x\null)))
(R N))
(P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < unfold.
Subgoal 2.1.2.1.1:
Variables: N
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
bisim_up_to refl_t (par (repl (plus (inp a x\null) (inp b x\null))) null)
(repl (plus (inp a x\null) (inp b x\null)))
Subgoal 2.1.2.1.2 is:
bisim_up_to refl_t
(par (par (repl (inp a x\null)) null) (repl (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null)))
Subgoal 2.1.2.2 is:
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
Subgoal 2.2 is:
exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t
(par
(repl (plus (inp a x\null) (inp b x\null)))
(R N))
(P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < backchain bisim_par_null.
Subgoal 2.1.2.1.2:
Variables: N
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
bisim_up_to refl_t
(par (par (repl (inp a x\null)) null) (repl (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null)))
Subgoal 2.1.2.2 is:
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
Subgoal 2.2 is:
exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t
(par
(repl (plus (inp a x\null) (inp b x\null)))
(R N))
(P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < backchain bisim_par_subst_1.
Subgoal 2.1.2.1.2:
Variables: N
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
bisim_up_to refl_t (par (repl (inp a x\null)) null) (repl (inp a x\null))
Subgoal 2.1.2.2 is:
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
Subgoal 2.2 is:
exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t
(par
(repl (plus (inp a x\null) (inp b x\null)))
(R N))
(P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < backchain bisim_par_null.
Subgoal 2.1.2.2:
Variables: N
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
Subgoal 2.2 is:
exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t
(par
(repl (plus (inp a x\null) (inp b x\null)))
(R N))
(P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < backchain CH.
Subgoal 2.2:
Variables: X R
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H3 : oneb (inp b x\null) (dn X) R
============================
exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t
(par
(repl (plus (inp a x\null) (inp b x\null)))
(R N))
(P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H3.
Subgoal 2.2:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (dn b) Q1 /\
(exists P2 Q2, forall N, bisim_t
(par
(repl (plus (inp a x\null) (inp b x\null)))
null)
(P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < witness x\par (repl (inp a x1\null)) (par (repl (inp X x1\null)) null).
Subgoal 2.2:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (dn b)
(x\par (repl (inp a x1\null)) (par (repl (inp b x1\null)) null)) /\
(exists P2 Q2, forall N, bisim_t
(par
(repl (plus (inp a x\null) (inp b x\null)))
null)
(P2 N)
(par (repl (inp a x\null))
(par (repl (inp b x\null)) null))
(Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < split.
Subgoal 2.2.1:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (dn b)
(x\par (repl (inp a x1\null)) (par (repl (inp b x1\null)) null))
Subgoal 2.2.2 is:
exists P2 Q2, forall N, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
null)
(P2 N)
(par (repl (inp a x\null))
(par (repl (inp b x\null)) null))
(Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < search.
Subgoal 2.2.2:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
exists P2 Q2, forall N, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
null)
(P2 N)
(par (repl (inp a x\null))
(par (repl (inp b x\null)) null))
(Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < witness x\repl (plus (inp a x1\null) (inp X x1\null)).
Subgoal 2.2.2:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
exists Q2, forall N, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null))) null)
(repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null))
(par (repl (inp b x\null)) null))
(Q2 N) /\
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null))) (Q2 N) +
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < witness x\par (repl (inp a x1\null)) (repl (inp X x1\null)).
Subgoal 2.2.2:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
forall N, bisim_t (par (repl (plus (inp a x\null) (inp b x\null))) null)
(repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (par (repl (inp b x\null)) null))
(par (repl (inp a x\null)) (repl (inp b x\null))) /\
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < intros.
Subgoal 2.2.2:
Variables: N
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
bisim_t (par (repl (plus (inp a x\null) (inp b x\null))) null)
(repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (par (repl (inp b x\null)) null))
(par (repl (inp a x\null)) (repl (inp b x\null))) /\
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < split.
Subgoal 2.2.2.1:
Variables: N
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
bisim_t (par (repl (plus (inp a x\null) (inp b x\null))) null)
(repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (par (repl (inp b x\null)) null))
(par (repl (inp a x\null)) (repl (inp b x\null)))
Subgoal 2.2.2.2 is:
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < unfold.
Subgoal 2.2.2.1.1:
Variables: N
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
bisim_up_to refl_t (par (repl (plus (inp a x\null) (inp b x\null))) null)
(repl (plus (inp a x\null) (inp b x\null)))
Subgoal 2.2.2.1.2 is:
bisim_up_to refl_t
(par (repl (inp a x\null)) (par (repl (inp b x\null)) null))
(par (repl (inp a x\null)) (repl (inp b x\null)))
Subgoal 2.2.2.2 is:
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < backchain bisim_par_null.
Subgoal 2.2.2.1.2:
Variables: N
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
bisim_up_to refl_t
(par (repl (inp a x\null)) (par (repl (inp b x\null)) null))
(par (repl (inp a x\null)) (repl (inp b x\null)))
Subgoal 2.2.2.2 is:
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < backchain bisim_par_subst_2.
Subgoal 2.2.2.1.2:
Variables: N
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
bisim_up_to refl_t (par (repl (inp b x\null)) null) (repl (inp b x\null))
Subgoal 2.2.2.2 is:
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < backchain bisim_par_null.
Subgoal 2.2.2.2:
Variables: N
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
Subgoal 3 is:
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < backchain CH.
Subgoal 3:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
forall X P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 ->
(exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < intros.
Subgoal 3:
Variables: X P1
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H1 : oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1
============================
exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +)
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H1.
Subgoal 3:
Variables: X R
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H2 : oneb (plus (inp a x\null) (inp b x\null)) (up X) R
============================
exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
(R x))
(P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +)
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H2.
Subgoal 3.1:
Variables: X R
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H3 : oneb (inp a x\null) (up X) R
============================
exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
(R x))
(P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +)
Subgoal 3.2 is:
exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
(R x))
(P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +)
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H3.
Subgoal 3.2:
Variables: X R
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H3 : oneb (inp b x\null) (up X) R
============================
exists Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
(R x))
(P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +)
Subgoal 4 is:
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H3.
Subgoal 4:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
forall L Q1, one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1 ->
(exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < intros.
Subgoal 4:
Variables: L Q1
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H1 : one (par (repl (inp a x\null)) (repl (inp b x\null))) L Q1
============================
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H1.
Subgoal 4.1:
Variables: L R
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H2 : one (repl (inp a x\null)) L R
============================
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 (par R (repl (inp b x\null))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.2 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 (par (repl (inp a x\null)) R) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.3 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par PP QQ) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (PP y) (QQ y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H2.
Subgoal 4.1.1:
Variables: L R1
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H3 : one (inp a x\null) L R1
============================
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2
(par (par (repl (inp a x\null)) R1) (repl (inp b x\null)))
Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.1.2 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2
(par (par (repl (inp a x\null)) (par PP (R1 Y)))
(repl (inp b x\null)))
Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.1.3 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2
(par
(par (repl (inp a x\null)) (nu (y\par (PP y) (QQ y))))
(repl (inp b x\null)))
Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.2 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 (par (repl (inp a x\null)) R) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.3 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par PP QQ) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (PP y) (QQ y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H3.
Subgoal 4.1.2:
Variables: X Y R1 PP
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H3 : one (inp a x\null) (up X Y) PP
H4 : oneb (inp a x\null) (dn X) R1
============================
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2
(par (par (repl (inp a x\null)) (par PP (R1 Y)))
(repl (inp b x\null)))
Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.1.3 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2
(par
(par (repl (inp a x\null)) (nu (y\par (PP y) (QQ y))))
(repl (inp b x\null)))
Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.2 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 (par (repl (inp a x\null)) R) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.3 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par PP QQ) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (PP y) (QQ y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H3.
Subgoal 4.1.3:
Variables: X QQ PP
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H3 : oneb (inp a x\null) (up X) PP
H4 : oneb (inp a x\null) (dn X) QQ
============================
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2
(par
(par (repl (inp a x\null)) (nu (y\par (PP y) (QQ y))))
(repl (inp b x\null)))
Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.2 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 (par (repl (inp a x\null)) R) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.3 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par PP QQ) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (PP y) (QQ y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H3.
Subgoal 4.2:
Variables: L R
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H2 : one (repl (inp b x\null)) L R
============================
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 (par (repl (inp a x\null)) R) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.3 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par PP QQ) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (PP y) (QQ y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H2.
Subgoal 4.2.1:
Variables: L R1
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H3 : one (inp b x\null) L R1
============================
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2
(par (repl (inp a x\null)) (par (repl (inp b x\null)) R1))
Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.2.2 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2
(par (repl (inp a x\null))
(par (repl (inp b x\null)) (par PP (R1 Y))))
Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.2.3 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2
(par (repl (inp a x\null))
(par (repl (inp b x\null)) (nu (y\par (PP y) (QQ y)))))
Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.3 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par PP QQ) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (PP y) (QQ y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H3.
Subgoal 4.2.2:
Variables: X Y R1 PP
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H3 : one (inp b x\null) (up X Y) PP
H4 : oneb (inp b x\null) (dn X) R1
============================
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2
(par (repl (inp a x\null))
(par (repl (inp b x\null)) (par PP (R1 Y))))
Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.2.3 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2
(par (repl (inp a x\null))
(par (repl (inp b x\null)) (nu (y\par (PP y) (QQ y)))))
Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.3 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par PP QQ) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (PP y) (QQ y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H3.
Subgoal 4.2.3:
Variables: X QQ PP
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H3 : oneb (inp b x\null) (up X) PP
H4 : oneb (inp b x\null) (dn X) QQ
============================
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2
(par (repl (inp a x\null))
(par (repl (inp b x\null)) (nu (y\par (PP y) (QQ y)))))
Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.3 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par PP QQ) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (PP y) (QQ y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H3.
Subgoal 4.3:
Variables: QQ PP
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H2 : (exists X Y R, oneb (repl (inp a x\null)) (dn X) R /\
one (repl (inp b x\null)) (up X Y) QQ /\ PP = R Y) \/
(exists X Y R, one (repl (inp a x\null)) (up X Y) PP /\
oneb (repl (inp b x\null)) (dn X) R /\ QQ = R Y)
============================
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par PP QQ) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (PP y) (QQ y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H2.
Subgoal 4.3.1:
Variables: QQ X Y R
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H3 : oneb (repl (inp a x\null)) (dn X) R
H4 : one (repl (inp b x\null)) (up X Y) QQ
============================
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par (R Y) QQ) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.3.2 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par PP (R Y)) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (PP y) (QQ y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H4.
Subgoal 4.3.1:
Variables: X Y R R1
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H3 : oneb (repl (inp a x\null)) (dn X) R
H5 : one (inp b x\null) (up X Y) R1
============================
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par (R Y) (par (repl (inp b x\null)) R1)) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.3.2 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par PP (R Y)) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (PP y) (QQ y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H5.
Subgoal 4.3.2:
Variables: PP X Y R
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H3 : one (repl (inp a x\null)) (up X Y) PP
H4 : oneb (repl (inp b x\null)) (dn X) R
============================
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par PP (R Y)) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (PP y) (QQ y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H3.
Subgoal 4.3.2:
Variables: X Y R R1
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H4 : oneb (repl (inp b x\null)) (dn X) R
H5 : one (inp a x\null) (up X Y) R1
============================
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par (par (repl (inp a x\null)) R1) (R Y)) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (PP y) (QQ y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H5.
Subgoal 4.4:
Variables: QQ PP
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H2 : (exists X, oneb (repl (inp a x\null)) (dn X) PP /\
oneb (repl (inp b x\null)) (up X) QQ) \/
(exists X, oneb (repl (inp a x\null)) (up X) PP /\
oneb (repl (inp b x\null)) (dn X) QQ)
============================
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (PP y) (QQ y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H2.
Subgoal 4.4.1:
Variables: QQ PP X
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H3 : oneb (repl (inp a x\null)) (dn X) PP
H4 : oneb (repl (inp b x\null)) (up X) QQ
============================
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (PP y) (QQ y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.4.2 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (PP y) (QQ y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H4.
Subgoal 4.4.1:
Variables: PP X R
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H3 : oneb (repl (inp a x\null)) (dn X) PP
H5 : oneb (inp b x\null) (up X) R
============================
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2
(nu (y\par (PP y) (par (repl (inp b x\null)) (R y)))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.4.2 is:
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (PP y) (QQ y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H5.
Subgoal 4.4.2:
Variables: QQ PP X
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H3 : oneb (repl (inp a x\null)) (up X) PP
H4 : oneb (repl (inp b x\null)) (dn X) QQ
============================
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (PP y) (QQ y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H3.
Subgoal 4.4.2:
Variables: QQ X R
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H4 : oneb (repl (inp b x\null)) (dn X) QQ
H5 : oneb (inp a x\null) (up X) R
============================
exists P1, one (repl (plus (inp a x\null) (inp b x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2
(nu (y\par (par (repl (inp a x\null)) (R y)) (QQ y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H5.
Subgoal 5:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(dn X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < intros.
Subgoal 5:
Variables: X Q1
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H1 : oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (dn X) Q1
============================
exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H1.
Subgoal 5.1:
Variables: X R
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H2 : oneb (repl (inp a x\null)) (dn X) R
============================
exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N)
(par (R N) (repl (inp b x\null))) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 5.2 is:
exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N)
(par (repl (inp a x\null)) (R N)) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H2.
Subgoal 5.1:
Variables: X R1
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H3 : oneb (inp a x\null) (dn X) R1
============================
exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N)
(par (par (repl (inp a x\null)) (R1 N))
(repl (inp b x\null)))
(Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 5.2 is:
exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N)
(par (repl (inp a x\null)) (R N)) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H3.
Subgoal 5.1:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn a) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N)
(par (par (repl (inp a x\null)) null)
(repl (inp b x\null)))
(Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 5.2 is:
exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N)
(par (repl (inp a x\null)) (R N)) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < witness x\par (repl (plus (inp X x1\null) (inp b x1\null))) null.
Subgoal 5.1:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
oneb (repl (plus (inp a x\null) (inp b x\null))) (dn a)
(x\par (repl (plus (inp a x1\null) (inp b x1\null))) null) /\
(exists P2 Q2, forall N, bisim_t
(par
(repl (plus (inp a x\null) (inp b x\null)))
null)
(P2 N)
(par (par (repl (inp a x\null)) null)
(repl (inp b x\null)))
(Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 5.2 is:
exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N)
(par (repl (inp a x\null)) (R N)) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < split.
Subgoal 5.1.1:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
oneb (repl (plus (inp a x\null) (inp b x\null))) (dn a)
(x\par (repl (plus (inp a x1\null) (inp b x1\null))) null)
Subgoal 5.1.2 is:
exists P2 Q2, forall N, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
null)
(P2 N)
(par (par (repl (inp a x\null)) null)
(repl (inp b x\null)))
(Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +
Subgoal 5.2 is:
exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N)
(par (repl (inp a x\null)) (R N)) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < search.
Subgoal 5.1.2:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
exists P2 Q2, forall N, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
null)
(P2 N)
(par (par (repl (inp a x\null)) null)
(repl (inp b x\null)))
(Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +
Subgoal 5.2 is:
exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N)
(par (repl (inp a x\null)) (R N)) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < witness x\repl (plus (inp X x1\null) (inp b x1\null)).
Subgoal 5.1.2:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
exists Q2, forall N, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null))) null)
(repl (plus (inp a x\null) (inp b x\null)))
(par (par (repl (inp a x\null)) null)
(repl (inp b x\null)))
(Q2 N) /\
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null))) (Q2 N) +
Subgoal 5.2 is:
exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N)
(par (repl (inp a x\null)) (R N)) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < witness x\par (repl (inp X x1\null)) (repl (inp b x1\null)).
Subgoal 5.1.2:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
forall N, bisim_t (par (repl (plus (inp a x\null) (inp b x\null))) null)
(repl (plus (inp a x\null) (inp b x\null)))
(par (par (repl (inp a x\null)) null) (repl (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) /\
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
Subgoal 5.2 is:
exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N)
(par (repl (inp a x\null)) (R N)) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < intros.
Subgoal 5.1.2:
Variables: N
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
bisim_t (par (repl (plus (inp a x\null) (inp b x\null))) null)
(repl (plus (inp a x\null) (inp b x\null)))
(par (par (repl (inp a x\null)) null) (repl (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) /\
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
Subgoal 5.2 is:
exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N)
(par (repl (inp a x\null)) (R N)) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < split.
Subgoal 5.1.2.1:
Variables: N
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
bisim_t (par (repl (plus (inp a x\null) (inp b x\null))) null)
(repl (plus (inp a x\null) (inp b x\null)))
(par (par (repl (inp a x\null)) null) (repl (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null)))
Subgoal 5.1.2.2 is:
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
Subgoal 5.2 is:
exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N)
(par (repl (inp a x\null)) (R N)) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < unfold.
Subgoal 5.1.2.1.1:
Variables: N
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
bisim_up_to refl_t (par (repl (plus (inp a x\null) (inp b x\null))) null)
(repl (plus (inp a x\null) (inp b x\null)))
Subgoal 5.1.2.1.2 is:
bisim_up_to refl_t
(par (par (repl (inp a x\null)) null) (repl (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null)))
Subgoal 5.1.2.2 is:
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
Subgoal 5.2 is:
exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N)
(par (repl (inp a x\null)) (R N)) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < backchain bisim_par_null.
Subgoal 5.1.2.1.2:
Variables: N
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
bisim_up_to refl_t
(par (par (repl (inp a x\null)) null) (repl (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null)))
Subgoal 5.1.2.2 is:
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
Subgoal 5.2 is:
exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N)
(par (repl (inp a x\null)) (R N)) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < backchain bisim_par_subst_1.
Subgoal 5.1.2.1.2:
Variables: N
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
bisim_up_to refl_t (par (repl (inp a x\null)) null) (repl (inp a x\null))
Subgoal 5.1.2.2 is:
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
Subgoal 5.2 is:
exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N)
(par (repl (inp a x\null)) (R N)) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < backchain bisim_par_null.
Subgoal 5.1.2.2:
Variables: N
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
Subgoal 5.2 is:
exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N)
(par (repl (inp a x\null)) (R N)) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < backchain CH.
Subgoal 5.2:
Variables: X R
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H2 : oneb (repl (inp b x\null)) (dn X) R
============================
exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N)
(par (repl (inp a x\null)) (R N)) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H2.
Subgoal 5.2:
Variables: X R1
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H3 : oneb (inp b x\null) (dn X) R1
============================
exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N)
(par (repl (inp a x\null))
(par (repl (inp b x\null)) (R1 N)))
(Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < case H3.
Subgoal 5.2:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (dn b) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N)
(par (repl (inp a x\null))
(par (repl (inp b x\null)) null))
(Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < witness x\par (repl (plus (inp a x1\null) (inp X x1\null))) null.
Subgoal 5.2:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
oneb (repl (plus (inp a x\null) (inp b x\null))) (dn b)
(x\par (repl (plus (inp a x1\null) (inp b x1\null))) null) /\
(exists P2 Q2, forall N, bisim_t
(par
(repl (plus (inp a x\null) (inp b x\null)))
null)
(P2 N)
(par (repl (inp a x\null))
(par (repl (inp b x\null)) null))
(Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < split.
Subgoal 5.2.1:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
oneb (repl (plus (inp a x\null) (inp b x\null))) (dn b)
(x\par (repl (plus (inp a x1\null) (inp b x1\null))) null)
Subgoal 5.2.2 is:
exists P2 Q2, forall N, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
null)
(P2 N)
(par (repl (inp a x\null))
(par (repl (inp b x\null)) null))
(Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < search.
Subgoal 5.2.2:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
exists P2 Q2, forall N, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null)))
null)
(P2 N)
(par (repl (inp a x\null))
(par (repl (inp b x\null)) null))
(Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < witness x\repl (plus (inp a x1\null) (inp X x1\null)).
Subgoal 5.2.2:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
exists Q2, forall N, bisim_t
(par (repl (plus (inp a x\null) (inp b x\null))) null)
(repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null))
(par (repl (inp b x\null)) null))
(Q2 N) /\
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null))) (Q2 N) +
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < witness x\par (repl (inp a x1\null)) (repl (inp X x1\null)).
Subgoal 5.2.2:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
forall N, bisim_t (par (repl (plus (inp a x\null) (inp b x\null))) null)
(repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (par (repl (inp b x\null)) null))
(par (repl (inp a x\null)) (repl (inp b x\null))) /\
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < intros.
Subgoal 5.2.2:
Variables: N
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
bisim_t (par (repl (plus (inp a x\null) (inp b x\null))) null)
(repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (par (repl (inp b x\null)) null))
(par (repl (inp a x\null)) (repl (inp b x\null))) /\
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < split.
Subgoal 5.2.2.1:
Variables: N
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
bisim_t (par (repl (plus (inp a x\null) (inp b x\null))) null)
(repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (par (repl (inp b x\null)) null))
(par (repl (inp a x\null)) (repl (inp b x\null)))
Subgoal 5.2.2.2 is:
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < unfold.
Subgoal 5.2.2.1.1:
Variables: N
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
bisim_up_to refl_t (par (repl (plus (inp a x\null) (inp b x\null))) null)
(repl (plus (inp a x\null) (inp b x\null)))
Subgoal 5.2.2.1.2 is:
bisim_up_to refl_t
(par (repl (inp a x\null)) (par (repl (inp b x\null)) null))
(par (repl (inp a x\null)) (repl (inp b x\null)))
Subgoal 5.2.2.2 is:
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < backchain bisim_par_null.
Subgoal 5.2.2.1.2:
Variables: N
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
bisim_up_to refl_t
(par (repl (inp a x\null)) (par (repl (inp b x\null)) null))
(par (repl (inp a x\null)) (repl (inp b x\null)))
Subgoal 5.2.2.2 is:
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < backchain bisim_par_subst_2.
Subgoal 5.2.2.1.2:
Variables: N
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
bisim_up_to refl_t (par (repl (inp b x\null)) null) (repl (inp b x\null))
Subgoal 5.2.2.2 is:
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < backchain bisim_par_null.
Subgoal 5.2.2.2:
Variables: N
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
Subgoal 6 is:
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < backchain CH.
Subgoal 6:
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
============================
forall X Q1, oneb (par (repl (inp a x\null)) (repl (inp b x\null)))
(up X) Q1 ->
(exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_plus < intros.
Subgoal 6:
Variables: X Q1
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H1 : oneb (par (repl (inp a x\null)) (repl (inp b x\null))) (up X) Q1
============================
exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +)
ex_bang_plus < case H1.
Subgoal 6.1:
Variables: X R
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H2 : oneb (repl (inp a x\null)) (up X) R
============================
exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x)
(par (R x) (repl (inp b x\null))) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +)
Subgoal 6.2 is:
exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x)
(par (repl (inp a x\null)) (R x)) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +)
ex_bang_plus < case H2.
Subgoal 6.1:
Variables: X R1
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H3 : oneb (inp a x\null) (up X) R1
============================
exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x)
(par (par (repl (inp a x\null)) (R1 x))
(repl (inp b x\null)))
(Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +)
Subgoal 6.2 is:
exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x)
(par (repl (inp a x\null)) (R x)) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +)
ex_bang_plus < case H3.
Subgoal 6.2:
Variables: X R
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H2 : oneb (repl (inp b x\null)) (up X) R
============================
exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x)
(par (repl (inp a x\null)) (R x)) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +)
ex_bang_plus < case H2.
Subgoal 6.2:
Variables: X R1
CH : bisim_up_to bisim_t (repl (plus (inp a x\null) (inp b x\null)))
(par (repl (inp a x\null)) (repl (inp b x\null))) +
H3 : oneb (inp b x\null) (up X) R1
============================
exists P1, oneb (repl (plus (inp a x\null) (inp b x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x)
(par (repl (inp a x\null))
(par (repl (inp b x\null)) (R1 x)))
(Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +)
ex_bang_plus < case H3.
Proof completed.
Abella < Theorem ex_bang_bang :
(forall P, bisim_up_to refl_t (par (repl P) P) (repl P)) ->
bisim (repl (repl (inp a x\null))) (repl (inp a x\null)).
============================
(forall P, bisim_up_to refl_t (par (repl P) P) (repl P)) ->
bisim (repl (repl (inp a x\null))) (repl (inp a x\null))
ex_bang_bang < intros bisim_repl_absorb.
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
============================
bisim (repl (repl (inp a x\null))) (repl (inp a x\null))
ex_bang_bang < Sound : apply bisim_sound.
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
Sound : is_sound bisim_t
============================
bisim (repl (repl (inp a x\null))) (repl (inp a x\null))
ex_bang_bang < Sound : case Sound.
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
Sound : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
============================
bisim (repl (repl (inp a x\null))) (repl (inp a x\null))
ex_bang_bang < unfold.
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
Sound : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
============================
bisim_up_to refl_t (repl (repl (inp a x\null))) (repl (inp a x\null))
ex_bang_bang < backchain Sound.
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
Sound : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
============================
bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null))
ex_bang_bang < clear Sound.
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
============================
bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null))
ex_bang_bang < coinduction.
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) #
ex_bang_bang < unfold.
Subgoal 1:
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
forall L P1, one (repl (repl (inp a x\null))) L P1 ->
(exists Q1, one (repl (inp a x\null)) L Q1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2 is:
forall X P1, oneb (repl (repl (inp a x\null))) (dn X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < intros.
Subgoal 1:
Variables: L P1
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H1 : one (repl (repl (inp a x\null))) L P1
============================
exists Q1, one (repl (inp a x\null)) L Q1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (repl (repl (inp a x\null))) (dn X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < case H1.
Subgoal 1.1:
Variables: L R
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H2 : one (repl (inp a x\null)) L R
============================
exists Q1, one (repl (inp a x\null)) L Q1 /\
(exists P2 Q2, bisim_t (par (repl (repl (inp a x\null))) R) P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.2 is:
exists Q1, one (repl (inp a x\null)) tau Q1 /\
(exists P2 Q2, bisim_t (par (repl (repl (inp a x\null))) (par PP (R Y)))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one (repl (inp a x\null)) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (repl (inp a x\null)))
(nu (y\par (PP y) (QQ y))))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (repl (repl (inp a x\null))) (dn X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < case H2.
Subgoal 1.1.1:
Variables: L R1
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H3 : one (inp a x\null) L R1
============================
exists Q1, one (repl (inp a x\null)) L Q1 /\
(exists P2 Q2, bisim_t
(par (repl (repl (inp a x\null)))
(par (repl (inp a x\null)) R1))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.1.2 is:
exists Q1, one (repl (inp a x\null)) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (repl (inp a x\null)))
(par (repl (inp a x\null)) (par PP (R1 Y))))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.1.3 is:
exists Q1, one (repl (inp a x\null)) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (repl (inp a x\null)))
(par (repl (inp a x\null)) (nu (y\par (PP y) (QQ y)))))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.2 is:
exists Q1, one (repl (inp a x\null)) tau Q1 /\
(exists P2 Q2, bisim_t (par (repl (repl (inp a x\null))) (par PP (R Y)))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one (repl (inp a x\null)) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (repl (inp a x\null)))
(nu (y\par (PP y) (QQ y))))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (repl (repl (inp a x\null))) (dn X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < case H3.
Subgoal 1.1.2:
Variables: X Y R1 PP
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H3 : one (inp a x\null) (up X Y) PP
H4 : oneb (inp a x\null) (dn X) R1
============================
exists Q1, one (repl (inp a x\null)) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (repl (inp a x\null)))
(par (repl (inp a x\null)) (par PP (R1 Y))))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.1.3 is:
exists Q1, one (repl (inp a x\null)) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (repl (inp a x\null)))
(par (repl (inp a x\null)) (nu (y\par (PP y) (QQ y)))))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.2 is:
exists Q1, one (repl (inp a x\null)) tau Q1 /\
(exists P2 Q2, bisim_t (par (repl (repl (inp a x\null))) (par PP (R Y)))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one (repl (inp a x\null)) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (repl (inp a x\null)))
(nu (y\par (PP y) (QQ y))))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (repl (repl (inp a x\null))) (dn X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < case H3.
Subgoal 1.1.3:
Variables: X QQ PP
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H3 : oneb (inp a x\null) (up X) PP
H4 : oneb (inp a x\null) (dn X) QQ
============================
exists Q1, one (repl (inp a x\null)) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (repl (inp a x\null)))
(par (repl (inp a x\null)) (nu (y\par (PP y) (QQ y)))))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.2 is:
exists Q1, one (repl (inp a x\null)) tau Q1 /\
(exists P2 Q2, bisim_t (par (repl (repl (inp a x\null))) (par PP (R Y)))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one (repl (inp a x\null)) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (repl (inp a x\null)))
(nu (y\par (PP y) (QQ y))))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (repl (repl (inp a x\null))) (dn X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < case H3.
Subgoal 1.2:
Variables: X Y R PP
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H2 : one (repl (inp a x\null)) (up X Y) PP
H3 : oneb (repl (inp a x\null)) (dn X) R
============================
exists Q1, one (repl (inp a x\null)) tau Q1 /\
(exists P2 Q2, bisim_t (par (repl (repl (inp a x\null))) (par PP (R Y)))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one (repl (inp a x\null)) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (repl (inp a x\null)))
(nu (y\par (PP y) (QQ y))))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (repl (repl (inp a x\null))) (dn X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < case H2.
Subgoal 1.2:
Variables: X Y R R1
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H3 : oneb (repl (inp a x\null)) (dn X) R
H4 : one (inp a x\null) (up X Y) R1
============================
exists Q1, one (repl (inp a x\null)) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (repl (inp a x\null)))
(par (par (repl (inp a x\null)) R1) (R Y)))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one (repl (inp a x\null)) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (repl (inp a x\null)))
(nu (y\par (PP y) (QQ y))))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (repl (repl (inp a x\null))) (dn X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < case H3.
Subgoal 1.2:
Variables: X Y R1 R2
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H4 : one (inp a x\null) (up X Y) R1
H5 : oneb (inp a x\null) (dn X) R2
============================
exists Q1, one (repl (inp a x\null)) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (repl (inp a x\null)))
(par (par (repl (inp a x\null)) R1)
(par (repl (inp a x\null)) (R2 Y))))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one (repl (inp a x\null)) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (repl (inp a x\null)))
(nu (y\par (PP y) (QQ y))))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (repl (repl (inp a x\null))) (dn X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < case H4.
Subgoal 1.3:
Variables: X QQ PP
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H2 : oneb (repl (inp a x\null)) (up X) PP
H3 : oneb (repl (inp a x\null)) (dn X) QQ
============================
exists Q1, one (repl (inp a x\null)) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (repl (inp a x\null)))
(nu (y\par (PP y) (QQ y))))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (repl (repl (inp a x\null))) (dn X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < case H2.
Subgoal 1.3:
Variables: X QQ R
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H3 : oneb (repl (inp a x\null)) (dn X) QQ
H4 : oneb (inp a x\null) (up X) R
============================
exists Q1, one (repl (inp a x\null)) tau Q1 /\
(exists P2 Q2, bisim_t
(par (repl (repl (inp a x\null)))
(nu (y\par (par (repl (inp a x\null)) (R y)) (QQ y))))
P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X P1, oneb (repl (repl (inp a x\null))) (dn X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < case H4.
Subgoal 2:
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
forall X P1, oneb (repl (repl (inp a x\null))) (dn X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < intros.
Subgoal 2:
Variables: X P1
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H1 : oneb (repl (repl (inp a x\null))) (dn X) P1
============================
exists Q1, oneb (repl (inp a x\null)) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < case H1.
Subgoal 2:
Variables: X R
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H2 : oneb (repl (inp a x\null)) (dn X) R
============================
exists Q1, oneb (repl (inp a x\null)) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t (par (repl (repl (inp a x\null))) (R N))
(P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < case H2.
Subgoal 2:
Variables: X R1
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H3 : oneb (inp a x\null) (dn X) R1
============================
exists Q1, oneb (repl (inp a x\null)) (dn X) Q1 /\
(exists P2 Q2, forall N, bisim_t
(par (repl (repl (inp a x\null)))
(par (repl (inp a x\null)) (R1 N)))
(P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < case H3.
Subgoal 2:
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
exists Q1, oneb (repl (inp a x\null)) (dn a) Q1 /\
(exists P2 Q2, forall N, bisim_t
(par (repl (repl (inp a x\null)))
(par (repl (inp a x\null)) null))
(P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < witness x\par (repl (inp X x1\null)) null.
Subgoal 2:
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
oneb (repl (inp a x\null)) (dn a) (x\par (repl (inp a x1\null)) null) /\
(exists P2 Q2, forall N, bisim_t
(par (repl (repl (inp a x\null)))
(par (repl (inp a x\null)) null))
(P2 N) (par (repl (inp a x\null)) null)
(Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < split.
Subgoal 2.1:
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
oneb (repl (inp a x\null)) (dn a) (x\par (repl (inp a x1\null)) null)
Subgoal 2.2 is:
exists P2 Q2, forall N, bisim_t
(par (repl (repl (inp a x\null)))
(par (repl (inp a x\null)) null))
(P2 N) (par (repl (inp a x\null)) null) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < search.
Subgoal 2.2:
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
exists P2 Q2, forall N, bisim_t
(par (repl (repl (inp a x\null)))
(par (repl (inp a x\null)) null))
(P2 N) (par (repl (inp a x\null)) null) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < witness x\repl (repl (inp X x1\null)).
Subgoal 2.2:
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
exists Q2, forall N, bisim_t
(par (repl (repl (inp a x\null)))
(par (repl (inp a x\null)) null))
(repl (repl (inp a x\null)))
(par (repl (inp a x\null)) null) (Q2 N) /\
bisim_up_to bisim_t (repl (repl (inp a x\null))) (Q2 N) +
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < witness x\repl (inp X x1\null).
Subgoal 2.2:
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
forall N, bisim_t
(par (repl (repl (inp a x\null)))
(par (repl (inp a x\null)) null))
(repl (repl (inp a x\null))) (par (repl (inp a x\null)) null)
(repl (inp a x\null)) /\
bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < intros.
Subgoal 2.2:
Variables: N
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
bisim_t (par (repl (repl (inp a x\null))) (par (repl (inp a x\null)) null))
(repl (repl (inp a x\null))) (par (repl (inp a x\null)) null)
(repl (inp a x\null)) /\
bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < split.
Subgoal 2.2.1:
Variables: N
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
bisim_t (par (repl (repl (inp a x\null))) (par (repl (inp a x\null)) null))
(repl (repl (inp a x\null))) (par (repl (inp a x\null)) null)
(repl (inp a x\null))
Subgoal 2.2.2 is:
bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < unfold.
Subgoal 2.2.1.1:
Variables: N
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
bisim_up_to refl_t
(par (repl (repl (inp a x\null))) (par (repl (inp a x\null)) null))
(repl (repl (inp a x\null)))
Subgoal 2.2.1.2 is:
bisim_up_to refl_t (par (repl (inp a x\null)) null) (repl (inp a x\null))
Subgoal 2.2.2 is:
bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < apply bisim_par_null with P = repl (inp X x\null).
Subgoal 2.2.1.1:
Variables: N
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H4 : bisim_up_to refl_t (par (repl (inp a x\null)) null)
(repl (inp a x\null))
============================
bisim_up_to refl_t
(par (repl (repl (inp a x\null))) (par (repl (inp a x\null)) null))
(repl (repl (inp a x\null)))
Subgoal 2.2.1.2 is:
bisim_up_to refl_t (par (repl (inp a x\null)) null) (repl (inp a x\null))
Subgoal 2.2.2 is:
bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < apply bisim_par_subst_2 to H4 with R = repl (repl (inp X x\null)).
Subgoal 2.2.1.1:
Variables: N
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H4 : bisim_up_to refl_t (par (repl (inp a x\null)) null)
(repl (inp a x\null))
H5 : bisim_up_to refl_t
(par (repl (repl (inp a x\null))) (par (repl (inp a x\null)) null))
(par (repl (repl (inp a x\null))) (repl (inp a x\null)))
============================
bisim_up_to refl_t
(par (repl (repl (inp a x\null))) (par (repl (inp a x\null)) null))
(repl (repl (inp a x\null)))
Subgoal 2.2.1.2 is:
bisim_up_to refl_t (par (repl (inp a x\null)) null) (repl (inp a x\null))
Subgoal 2.2.2 is:
bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < apply bisim_repl_absorb with P = repl (inp X x\null).
Subgoal 2.2.1.1:
Variables: N
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H4 : bisim_up_to refl_t (par (repl (inp a x\null)) null)
(repl (inp a x\null))
H5 : bisim_up_to refl_t
(par (repl (repl (inp a x\null))) (par (repl (inp a x\null)) null))
(par (repl (repl (inp a x\null))) (repl (inp a x\null)))
H6 : bisim_up_to refl_t
(par (repl (repl (inp a x\null))) (repl (inp a x\null)))
(repl (repl (inp a x\null)))
============================
bisim_up_to refl_t
(par (repl (repl (inp a x\null))) (par (repl (inp a x\null)) null))
(repl (repl (inp a x\null)))
Subgoal 2.2.1.2 is:
bisim_up_to refl_t (par (repl (inp a x\null)) null) (repl (inp a x\null))
Subgoal 2.2.2 is:
bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < backchain bisim_transitive.
Subgoal 2.2.1.2:
Variables: N
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
bisim_up_to refl_t (par (repl (inp a x\null)) null) (repl (inp a x\null))
Subgoal 2.2.2 is:
bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < backchain bisim_par_null.
Subgoal 2.2.2:
Variables: N
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
Subgoal 3 is:
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < backchain CH.
Subgoal 3:
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
forall X P1, oneb (repl (repl (inp a x\null))) (up X) P1 ->
(exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < intros.
Subgoal 3:
Variables: X P1
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H1 : oneb (repl (repl (inp a x\null))) (up X) P1
============================
exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +)
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < case H1.
Subgoal 3:
Variables: X R
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H2 : oneb (repl (inp a x\null)) (up X) R
============================
exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t (par (repl (repl (inp a x\null))) (R x))
(P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +)
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < case H2.
Subgoal 3:
Variables: X R1
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H3 : oneb (inp a x\null) (up X) R1
============================
exists Q1, oneb (repl (inp a x\null)) (up X) Q1 /\
(exists P2 Q2, nabla x, bisim_t
(par (repl (repl (inp a x\null)))
(par (repl (inp a x\null)) (R1 x)))
(P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +)
Subgoal 4 is:
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < case H3.
Subgoal 4:
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
forall L Q1, one (repl (inp a x\null)) L Q1 ->
(exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < intros.
Subgoal 4:
Variables: L Q1
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H1 : one (repl (inp a x\null)) L Q1
============================
exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < case H1.
Subgoal 4.1:
Variables: L R
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H2 : one (inp a x\null) L R
============================
exists P1, one (repl (repl (inp a x\null))) L P1 /\
(exists P2 Q2, bisim_t P1 P2 (par (repl (inp a x\null)) R) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.2 is:
exists P1, one (repl (repl (inp a x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par (repl (inp a x\null)) (par PP (R Y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.3 is:
exists P1, one (repl (repl (inp a x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2
(par (repl (inp a x\null)) (nu (y\par (PP y) (QQ y)))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < case H2.
Subgoal 4.2:
Variables: X Y R PP
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H2 : one (inp a x\null) (up X Y) PP
H3 : oneb (inp a x\null) (dn X) R
============================
exists P1, one (repl (repl (inp a x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par (repl (inp a x\null)) (par PP (R Y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.3 is:
exists P1, one (repl (repl (inp a x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2
(par (repl (inp a x\null)) (nu (y\par (PP y) (QQ y)))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < case H2.
Subgoal 4.3:
Variables: X QQ PP
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H2 : oneb (inp a x\null) (up X) PP
H3 : oneb (inp a x\null) (dn X) QQ
============================
exists P1, one (repl (repl (inp a x\null))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2
(par (repl (inp a x\null)) (nu (y\par (PP y) (QQ y)))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < case H2.
Subgoal 5:
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
forall X Q1, oneb (repl (inp a x\null)) (dn X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +))
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < intros.
Subgoal 5:
Variables: X Q1
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H1 : oneb (repl (inp a x\null)) (dn X) Q1
============================
exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N) (Q1 N) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < case H1.
Subgoal 5:
Variables: X R
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H2 : oneb (inp a x\null) (dn X) R
============================
exists P1, oneb (repl (repl (inp a x\null))) (dn X) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N)
(par (repl (inp a x\null)) (R N)) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < case H2.
Subgoal 5:
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
exists P1, oneb (repl (repl (inp a x\null))) (dn a) P1 /\
(exists P2 Q2, forall N, bisim_t (P1 N) (P2 N)
(par (repl (inp a x\null)) null) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < witness x\par (repl (repl (inp X x1\null))) (par (repl (inp X x1\null)) null).
Subgoal 5:
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
oneb (repl (repl (inp a x\null))) (dn a)
(x\par (repl (repl (inp a x1\null))) (par (repl (inp a x1\null)) null)) /\
(exists P2 Q2, forall N, bisim_t
(par (repl (repl (inp a x\null)))
(par (repl (inp a x\null)) null))
(P2 N) (par (repl (inp a x\null)) null)
(Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +)
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < split.
Subgoal 5.1:
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
oneb (repl (repl (inp a x\null))) (dn a)
(x\par (repl (repl (inp a x1\null))) (par (repl (inp a x1\null)) null))
Subgoal 5.2 is:
exists P2 Q2, forall N, bisim_t
(par (repl (repl (inp a x\null)))
(par (repl (inp a x\null)) null))
(P2 N) (par (repl (inp a x\null)) null) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < search.
Subgoal 5.2:
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
exists P2 Q2, forall N, bisim_t
(par (repl (repl (inp a x\null)))
(par (repl (inp a x\null)) null))
(P2 N) (par (repl (inp a x\null)) null) (Q2 N) /\
bisim_up_to bisim_t (P2 N) (Q2 N) +
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < witness x\repl (repl (inp X x1\null)).
Subgoal 5.2:
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
exists Q2, forall N, bisim_t
(par (repl (repl (inp a x\null)))
(par (repl (inp a x\null)) null))
(repl (repl (inp a x\null)))
(par (repl (inp a x\null)) null) (Q2 N) /\
bisim_up_to bisim_t (repl (repl (inp a x\null))) (Q2 N) +
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < witness x\repl (inp X x1\null).
Subgoal 5.2:
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
forall N, bisim_t
(par (repl (repl (inp a x\null)))
(par (repl (inp a x\null)) null))
(repl (repl (inp a x\null))) (par (repl (inp a x\null)) null)
(repl (inp a x\null)) /\
bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < intros.
Subgoal 5.2:
Variables: N
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
bisim_t (par (repl (repl (inp a x\null))) (par (repl (inp a x\null)) null))
(repl (repl (inp a x\null))) (par (repl (inp a x\null)) null)
(repl (inp a x\null)) /\
bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < split.
Subgoal 5.2.1:
Variables: N
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
bisim_t (par (repl (repl (inp a x\null))) (par (repl (inp a x\null)) null))
(repl (repl (inp a x\null))) (par (repl (inp a x\null)) null)
(repl (inp a x\null))
Subgoal 5.2.2 is:
bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < unfold.
Subgoal 5.2.1.1:
Variables: N
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
bisim_up_to refl_t
(par (repl (repl (inp a x\null))) (par (repl (inp a x\null)) null))
(repl (repl (inp a x\null)))
Subgoal 5.2.1.2 is:
bisim_up_to refl_t (par (repl (inp a x\null)) null) (repl (inp a x\null))
Subgoal 5.2.2 is:
bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < apply bisim_par_null with P = repl (inp X x\null).
Subgoal 5.2.1.1:
Variables: N
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H3 : bisim_up_to refl_t (par (repl (inp a x\null)) null)
(repl (inp a x\null))
============================
bisim_up_to refl_t
(par (repl (repl (inp a x\null))) (par (repl (inp a x\null)) null))
(repl (repl (inp a x\null)))
Subgoal 5.2.1.2 is:
bisim_up_to refl_t (par (repl (inp a x\null)) null) (repl (inp a x\null))
Subgoal 5.2.2 is:
bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < apply bisim_par_subst_2 to H3 with R = repl (repl (inp X x\null)).
Subgoal 5.2.1.1:
Variables: N
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H3 : bisim_up_to refl_t (par (repl (inp a x\null)) null)
(repl (inp a x\null))
H4 : bisim_up_to refl_t
(par (repl (repl (inp a x\null))) (par (repl (inp a x\null)) null))
(par (repl (repl (inp a x\null))) (repl (inp a x\null)))
============================
bisim_up_to refl_t
(par (repl (repl (inp a x\null))) (par (repl (inp a x\null)) null))
(repl (repl (inp a x\null)))
Subgoal 5.2.1.2 is:
bisim_up_to refl_t (par (repl (inp a x\null)) null) (repl (inp a x\null))
Subgoal 5.2.2 is:
bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < apply bisim_repl_absorb with P = repl (inp X x\null).
Subgoal 5.2.1.1:
Variables: N
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H3 : bisim_up_to refl_t (par (repl (inp a x\null)) null)
(repl (inp a x\null))
H4 : bisim_up_to refl_t
(par (repl (repl (inp a x\null))) (par (repl (inp a x\null)) null))
(par (repl (repl (inp a x\null))) (repl (inp a x\null)))
H5 : bisim_up_to refl_t
(par (repl (repl (inp a x\null))) (repl (inp a x\null)))
(repl (repl (inp a x\null)))
============================
bisim_up_to refl_t
(par (repl (repl (inp a x\null))) (par (repl (inp a x\null)) null))
(repl (repl (inp a x\null)))
Subgoal 5.2.1.2 is:
bisim_up_to refl_t (par (repl (inp a x\null)) null) (repl (inp a x\null))
Subgoal 5.2.2 is:
bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < backchain bisim_transitive.
Subgoal 5.2.1.2:
Variables: N
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
bisim_up_to refl_t (par (repl (inp a x\null)) null) (repl (inp a x\null))
Subgoal 5.2.2 is:
bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < backchain bisim_par_null.
Subgoal 5.2.2:
Variables: N
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
Subgoal 6 is:
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < backchain CH.
Subgoal 6:
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
============================
forall X Q1, oneb (repl (inp a x\null)) (up X) Q1 ->
(exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +))
ex_bang_bang < intros.
Subgoal 6:
Variables: X Q1
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H1 : oneb (repl (inp a x\null)) (up X) Q1
============================
exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x) (Q1 x) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +)
ex_bang_bang < case H1.
Subgoal 6:
Variables: X R
bisim_repl_absorb : forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
CH : bisim_up_to bisim_t (repl (repl (inp a x\null))) (repl (inp a x\null)) +
H2 : oneb (inp a x\null) (up X) R
============================
exists P1, oneb (repl (repl (inp a x\null))) (up X) P1 /\
(exists P2 Q2, nabla x, bisim_t (P1 x) (P2 x)
(par (repl (inp a x\null)) (R x)) (Q2 x) /\
bisim_up_to bisim_t (P2 x) (Q2 x) +)
ex_bang_bang < case H2.
Proof completed.
Abella < Goodbye.