Linear part:
Completing equations...
Completed equations:
Convergent part:
host(key(x_22)) = x_22
key(host(x_21)) = x_21
Completing equations...
Completed equations:
key(host(x_21)) = x_21
host(key(x_22)) = x_22
Completed destructors:
PtCredVerifyPtIDDr(zk((Ptr_252,PtID_253,PtNym_254,PtHII_255,PtSSS_256,PtAcc_257,rpt_258),(comt(PtID_253,Ptr_252),PtCred(PtID_253,PtNym_254,PtHII_255,PtSSS_256,PtAcc_257,rpt_258))),comt(PtID_253,Ptr_252),PtCred(PtID_253,PtNym_254,PtHII_255,PtSSS_256,PtAcc_257,rpt_258)) => true()
openChcomt(chcomt(m_262,r_263),fake(chcomt(m_262,r_263),m1_261)) => m1_261
openChcomt(chcomt(m_259,r_260),r_260) => m_259
getpubmsg(spk(x_265,y_264,z_266)) => y_264
getmessage(sign(x_267,y_268),pk(y_268)) => x_267
open(comt(x_269,y_270),y_270) => x_269
PtCredVerifyPh(zk((PtID_271,PtNym_272,PtHII_273,PtSSS_274,PtAcc_275,rpt_276),(PtCred(PtID_271,PtNym_272,PtHII_273,PtSSS_274,PtAcc_275,rpt_276),PtSSS_274)),PtCred(PtID_271,PtNym_272,PtHII_273,PtSSS_274,PtAcc_275,rpt_276),PtSSS_274) => true()
getmsg(spk(x_278,y_279,z_277)) => z_277
CheckReceptionAck(spk((PtID_280,PtNym_281,PtHII_282,PtSSS_283,PtAcc_284,rpt_285),PtCred(PtID_280,PtNym_281,PtHII_282,PtSSS_283,PtAcc_284,rpt_285),(xPrescID_286,xPharmID_287,vc1_288,vc2_289,vc3_290,vc31_291,vc4_292,c5_293)),PtCred(PtID_280,PtNym_281,PtHII_282,PtSSS_283,PtAcc_284,rpt_285),xPrescID_286,xPharmID_287,vc1_288,vc2_289,vc3_290,vc31_291,vc4_292,c5_293) => true()
DrCredVerify(zk((DrNym_294,DrID_295,rdr_296),DrCred(DrNym_294,DrID_295,rdr_296)),DrCred(DrNym_294,DrID_295,rdr_296)) => true()
checkAuth(sign(x_297,y_298),pk(y_298)) => true()
CheckSPKDrPtDrNym(spk((DrNym_299,Drr_300,DrID_301,rdr_302),(comt(DrNym_299,Drr_300),DrCred(DrNym_299,DrID_301,rdr_302)),(PrescText_303,PrescID_304,comt(DrNym_299,Drr_300),comt(PtID_305,Ptr_306))),DrCred(DrNym_299,DrID_301,rdr_302),PrescText_303,PrescID_304,comt(DrNym_299,Drr_300),comt(PtID_305,Ptr_306)) => true()
CheckVEncHii(zk((PtID_307,PtNym_308,PtHII_309,PtSSS_310,PtAcc_311,rpt_312,r_313),(PtCred(PtID_307,PtNym_308,PtHII_309,PtSSS_310,PtAcc_311,rpt_312),penc(PtHII_309,pubkey_314,r_313))),PtCred(PtID_307,PtNym_308,PtHII_309,PtSSS_310,PtAcc_311,rpt_312),penc(PtHII_309,pubkey_314,r_313),pubkey_314) => true()
CheckVEncPtnym(zk((PtID_315,PtNym_316,PtHII_317,PtSSS_318,PtAcc_319,rpt_320,r_321),(PtCred(PtID_315,PtNym_316,PtHII_317,PtSSS_318,PtAcc_319,rpt_320),penc(PtNym_316,pubkey_322,r_321))),PtCred(PtID_315,PtNym_316,PtHII_317,PtSSS_318,PtAcc_319,rpt_320),penc(PtNym_316,pubkey_322,r_321),pubkey_322) => true()
PtCredVerifyDr(zk((PtID_323,PtNym_324,PtHII_325,PtSSS_326,PtAcc_327,rpt_328),PtCred(PtID_323,PtNym_324,PtHII_325,PtSSS_326,PtAcc_327,rpt_328)),PtCred(PtID_323,PtNym_324,PtHII_325,PtSSS_326,PtAcc_327,rpt_328)) => true()
CheckVEncDrnymMpa(zk((DrNym_329,Drr_330,r_331),(spk((DrNym_329,Drr_330,DrID_332,rdr_333),(comt(DrNym_329,Drr_330),DrCred(DrNym_329,DrID_332,rdr_333)),(PrescText_334,PrescID_335,comt(DrNym_329,Drr_330),xPtComt_336)),penc(DrNym_329,pkMPA_337,r_331))),spk((DrNym_329,Drr_330,DrID_332,rdr_333),(comt(DrNym_329,Drr_330),DrCred(DrNym_329,DrID_332,rdr_333)),(PrescText_334,PrescID_335,comt(DrNym_329,Drr_330),xPtComt_336)),penc(DrNym_329,pkMPA_337,r_331),pkMPA_337) => true()
getpublic(zk(x_339,y_338)) => y_338
dec(penc(m_340,pk(sk_341),r_342),sk_341) => m_340
CheckSPKPhPtID(spk((PtID_343,PtNym_344,PtHII_345,PtSSS_346,PtAcc_347,Ptr_348,rpt_349),(PtCred(PtID_343,PtNym_344,PtHII_345,PtSSS_346,PtAcc_347,rpt_349),comt(PtID_343,Ptr_348)),nonce_350),PtCred(PtID_343,PtNym_344,PtHII_345,PtSSS_346,PtAcc_347,rpt_349),comt(PtID_343,Ptr_348),nonce_350) => true()
Process:
{1}new skSSO_105;
{2}new privchhiipt_106;
{3}new privchmpaph_107;
{4}new privchphpt_108;
{5}let pkSSO_109 = pk(skSSO_105) in
{6}out(ch, pkSSO_109);
{7}!
(
    {8}new nDrID_110;
    {9}let DrID_111 = nDrID_110 in
    {10}!
    {11}new nDrNym_112;
    {12}let DrNym_113 = nDrNym_112 in
    {13}new rdr_114;
    {14}out(ch, zk((DrNym_113,DrID_111,rdr_114),DrCred(DrNym_113,DrID_111,rdr_114)));
    {15}in(ch, (xPtAuthProof_115,xPtDrPtIDProof_116));
    {16}let xPtCred_117 = getpublic(xPtAuthProof_115) in
    {17}let (xPtComt_118,=xPtCred_117) = getpublic(xPtDrPtIDProof_116) in
    {18}if PtCredVerifyDr(xPtAuthProof_115,xPtCred_117) = true() then
    {19}if PtCredVerifyPtIDDr(xPtDrPtIDProof_116,xPtComt_118,xPtCred_117) = true() then
    {20}new PrescText_119;
    {21}new Drr_120;
    {22}let PrescID_121 = hash(PrescText_119,xPtComt_118,comt(DrNym_113,Drr_120)) in
    {23}out(ch, (spk((DrNym_113,Drr_120,DrID_111,rdr_114),(comt(DrNym_113,Drr_120),DrCred(DrNym_113,DrID_111,rdr_114)),(PrescText_119,PrescID_121,comt(DrNym_113,Drr_120),xPtComt_118)),Drr_120))
) | (
    {24}in(privchhiipt_106, PtHII_122);
    {25}let cpkHII_123 = key(PtHII_122) in
    {26}!
    {27}new nPtID_124;
    {28}new nPtNym_125;
    {29}new nPtAcc_126;
    {30}!
    {31}new nPtSSS_127;
    {32}new wPtID_128;
    {33}new wPtNym_129;
    {34}new wPtSSS_130;
    {35}new wPtAcc_131;
    {36}let PtID_132 = choice[nPtID_124,wPtID_128] in
    {37}let PtNym_133 = choice[nPtNym_125,wPtNym_129] in
    {38}let PtSSS_134 = choice[nPtSSS_127,wPtSSS_130] in
    {39}let PtAcc_135 = choice[nPtAcc_126,wPtAcc_131] in
    {40}in(privchphpt_108, cpkPh_136);
    {41}let cPharmID_137 = host(cpkPh_136) in
    {42}in(ch, xDrCredProof_138);
    {43}let xDrCred_139 = getpublic(xDrCredProof_138) in
    {44}if DrCredVerify(xDrCredProof_138,xDrCred_139) = true() then
    {45}new Ptr_140;
    {46}new rpt_141;
    {47}out(ch, (zk((PtID_132,PtNym_133,PtHII_122,PtSSS_134,PtAcc_135,rpt_141),PtCred(PtID_132,PtNym_133,PtHII_122,PtSSS_134,PtAcc_135,rpt_141)),zk((Ptr_140,PtID_132,PtNym_133,PtHII_122,PtSSS_134,PtAcc_135,rpt_141),(comt(PtID_132,Ptr_140),PtCred(PtID_132,PtNym_133,PtHII_122,PtSSS_134,PtAcc_135,rpt_141)))));
    {48}in(ch, (xSPKDrPtDrNym_142,xDrr_143));
    {49}let (xPrescText_144,xPrescID_145,xDrComt_146,=comt(PtID_132,Ptr_140)) = getmsg(xSPKDrPtDrNym_142) in
    {50}if CheckSPKDrPtDrNym(xSPKDrPtDrNym_142,xDrCred_139,xPrescText_144,xPrescID_145,xDrComt_146,comt(PtID_132,Ptr_140)) = true() then
    {51}let xDrNym_147 = open(xDrComt_146,xDrr_143) in
    {52}in(ch, xPhAuth_148);
    {53}if checkAuth(xPhAuth_148,cpkPh_136) = true() then
    {54}let (=cPharmID_137,xMpaID_149) = getmessage(xPhAuth_148,cpkPh_136) in
    {55}let cpkMPA_150 = key(xMpaID_149) in
    {56}out(ch, zk((PtID_132,PtNym_133,PtHII_122,PtSSS_134,PtAcc_135,rpt_141),(PtCred(PtID_132,PtNym_133,PtHII_122,PtSSS_134,PtAcc_135,rpt_141),PtSSS_134)));
    {57}new nonce_151;
    {58}new r_152;
    {59}let vc1_153 = zk((PtID_132,PtNym_133,PtHII_122,PtSSS_134,PtAcc_135,rpt_141,r_152),(PtCred(PtID_132,PtNym_133,PtHII_122,PtSSS_134,PtAcc_135,rpt_141),penc(PtHII_122,cpkMPA_150,r_152))) in
    {60}let vc2_154 = zk((xDrNym_147,xDrr_143,r_152),(xSPKDrPtDrNym_142,penc(xDrNym_147,cpkMPA_150,r_152))) in
    {61}let vc3_155 = zk((PtID_132,PtNym_133,PtHII_122,PtSSS_134,PtAcc_135,rpt_141,r_152),(PtCred(PtID_132,PtNym_133,PtHII_122,PtSSS_134,PtAcc_135,rpt_141),penc(PtNym_133,pkSSO_109,r_152))) in
    {62}let vc31_156 = zk((PtID_132,PtNym_133,PtHII_122,PtSSS_134,PtAcc_135,rpt_141,r_152),(PtCred(PtID_132,PtNym_133,PtHII_122,PtSSS_134,PtAcc_135,rpt_141),penc(PtHII_122,pkSSO_109,r_152))) in
    {63}let vc4_157 = zk((PtID_132,PtNym_133,PtHII_122,PtSSS_134,PtAcc_135,rpt_141,r_152),(PtCred(PtID_132,PtNym_133,PtHII_122,PtSSS_134,PtAcc_135,rpt_141),penc(PtNym_133,cpkMPA_150,r_152))) in
    {64}let vc5_158 = zk((PtID_132,PtNym_133,PtHII_122,PtSSS_134,PtAcc_135,rpt_141,r_152),(PtCred(PtID_132,PtNym_133,PtHII_122,PtSSS_134,PtAcc_135,rpt_141),penc(PtNym_133,cpkHII_123,r_152))) in
    {65}let c5_159 = penc(vc5_158,cpkMPA_150,r_152) in
    {66}out(ch, (xSPKDrPtDrNym_142,spk((PtID_132,PtNym_133,PtHII_122,PtSSS_134,PtAcc_135,Ptr_140,rpt_141),(PtCred(PtID_132,PtNym_133,PtHII_122,PtSSS_134,PtAcc_135,rpt_141),comt(PtID_132,Ptr_140)),nonce_151),vc1_153,vc2_154,vc3_155,vc31_156,vc4_157,c5_159));
    {67}in(ch, xInvoice_160);
    {68}let ReceptionAck_161 = spk((PtID_132,PtNym_133,PtHII_122,PtSSS_134,PtAcc_135,rpt_141),PtCred(PtID_132,PtNym_133,PtHII_122,PtSSS_134,PtAcc_135,rpt_141),(xPrescID_145,cPharmID_137,vc1_153,vc2_154,vc3_155,vc31_156,vc4_157,c5_159)) in
    {69}out(ch, ReceptionAck_161)
) | (
    {70}!
    (
        {71}new nskPh_162;
        {72}let skPh_163 = nskPh_162 in
        {73}let pkPh_164 = pk(skPh_163) in
        {74}let PharmID_165 = host(pkPh_164) in
        {75}!
        (
            {76}out(ch, pkPh_164)
        ) | (
            {77}!
            (
                {78}out(privchphpt_108, pkPh_164)
            ) | (
                {79}!
                {80}in(privchmpaph_107, dpkMPA_166);
                {81}let dMpaID_167 = host(dpkMPA_166) in
                {82}out(ch, sign((PharmID_165,dMpaID_167),skPh_163));
                {83}in(ch, xPhPtAuthProof_168);
                {84}let (xPhPtCred_169,xPhPtSSS_170) = getpublic(xPhPtAuthProof_168) in
                {85}if PtCredVerifyPh(xPhPtAuthProof_168,xPhPtCred_169,xPhPtSSS_170) = true() then
                {86}in(ch, (xPhSPKDrPtDrNym_171,xPtPhSPKPtID_172,xvc1_173,xvc2_174,xvc3_175,xvc31_176,xvc4_177,xc5_178));
                {87}let (xPhPrescText_179,xPhPrescID_180,xPhDrComt_181,xPhPtComt_182) = getmsg(xPhSPKDrPtDrNym_171) in
                {88}let (=xPhDrComt_181,xPhDrCred_183) = getpubmsg(xPhSPKDrPtDrNym_171) in
                {89}if CheckSPKDrPtDrNym(xPhSPKDrPtDrNym_171,xPhDrCred_183,xPhPrescText_179,xPhPrescID_180,xPhDrComt_181,xPhPtComt_182) = true() then
                {90}let xnonce_184 = getmsg(xPtPhSPKPtID_172) in
                {91}if CheckSPKPhPtID(xPtPhSPKPtID_172,xPhPtCred_169,xPhPtComt_182,xnonce_184) = true() then
                {92}let (=xPhPtCred_169,xEnc1_185) = getpublic(xvc1_173) in
                {93}if CheckVEncHii(xvc1_173,xPhPtCred_169,xEnc1_185,dpkMPA_166) = true() then
                {94}let (=xPhSPKDrPtDrNym_171,xEnc2_186) = getpublic(xvc2_174) in
                {95}if CheckVEncDrnymMpa(xvc2_174,xPhSPKDrPtDrNym_171,xEnc2_186,dpkMPA_166) = true() then
                {96}let (=xPhPtCred_169,xEnc3_187) = getpublic(xvc3_175) in
                {97}if CheckVEncPtnym(xvc3_175,xPhPtCred_169,xEnc3_187,pkSSO_109) = true() then
                {98}let (=xPhPtCred_169,xEnc31_188) = getpublic(xvc31_176) in
                {99}if CheckVEncHii(xvc31_176,xPhPtCred_169,xEnc31_188,pkSSO_109) = true() then
                {100}let (=xPhPtCred_169,xEnc4_189) = getpublic(xvc4_177) in
                {101}if CheckVEncPtnym(xvc4_177,xPhPtCred_169,xEnc4_189,dpkMPA_166) = true() then
                {102}out(ch, invoice(xPhPrescID_180));
                {103}in(ch, xReceptionAck_190);
                {104}if CheckReceptionAck(xReceptionAck_190,xPhPtCred_169,xPhPrescID_180,PharmID_165,xvc1_173,xvc2_174,xvc3_175,xvc31_176,xvc4_177,xc5_178) = true() then
                {105}out(ch, (sign((PharmID_165,dMpaID_167),skPh_163),PharmID_165));
                {106}in(ch, xMpaAuth_191);
                {107}if checkAuth(xMpaAuth_191,dpkMPA_166) = true() then
                {108}out(ch, (xPhSPKDrPtDrNym_171,xvc1_173,xvc2_174,xvc3_175,xvc31_176,xvc4_177,xc5_178,xReceptionAck_190))
            )
        )
    ) | (
        {109}!
        (
            {110}new nskMPA_192;
            {111}let skMPA_193 = nskMPA_192 in
            {112}let pkMPA_194 = pk(skMPA_193) in
            {113}let MpaID_195 = host(pkMPA_194) in
            {114}!
            (
                {115}out(ch, pkMPA_194)
            ) | (
                {116}!
                (
                    {117}out(privchmpaph_107, pkMPA_194)
                ) | (
                    {118}!
                    {119}in(ch, (xMpaPhAuth_196,xPharmID_197));
                    {120}let xpkPh_198 = key(xPharmID_197) in
                    {121}if checkAuth(xMpaPhAuth_196,xpkPh_198) = true() then
                    {122}let (=xPharmID_197,=MpaID_195) = getmessage(xMpaPhAuth_196,xpkPh_198) in
                    {123}out(ch, sign(MpaID_195,skMPA_193));
                    {124}in(ch, (xMpaSPKDrPtDrNym_199,xMpaVc1_200,xMpaVc2_201,xMpaVc3_202,xMpaVc31_203,xMpaVc4_204,xMpac5_205,xMpaReceptionAck_206));
                    {125}let (xMpaDrComt_207,xMpaDrCred_208) = getpubmsg(xMpaSPKDrPtDrNym_199) in
                    {126}let (xMpaPrescText_209,xMpaPrescID_210,=xMpaDrComt_207,xMpaPtComt_211) = getmsg(xMpaSPKDrPtDrNym_199) in
                    {127}if CheckSPKDrPtDrNym(xMpaSPKDrPtDrNym_199,xMpaDrCred_208,xMpaPrescText_209,xMpaPrescID_210,xMpaDrComt_207,xMpaPtComt_211) = true() then
                    {128}let (xMpaPtCred_212,xMpaEnc1_213) = getpublic(xMpaVc1_200) in
                    {129}if CheckVEncHii(xMpaVc1_200,xMpaPtCred_212,xMpaEnc1_213,pkMPA_194) = true() then
                    {130}let xMpaPthii_214 = dec(xMpaEnc1_213,skMPA_193) in
                    {131}let (=xMpaSPKDrPtDrNym_199,xMpaEnc2_215) = getpublic(xMpaVc2_201) in
                    {132}if CheckVEncDrnymMpa(xMpaVc2_201,xMpaSPKDrPtDrNym_199,xMpaEnc2_215,pkMPA_194) = true() then
                    {133}let xMpaDrnym_216 = dec(xMpaEnc2_215,skMPA_193) in
                    {134}let (=xMpaPtCred_212,xMpaEnc3_217) = getpublic(xMpaVc3_202) in
                    {135}if CheckVEncPtnym(xMpaVc3_202,xMpaPtCred_212,xMpaEnc3_217,pkSSO_109) = true() then
                    {136}let (=xMpaPtCred_212,xMpaEnc31_218) = getpublic(xMpaVc31_203) in
                    {137}if CheckVEncHii(xMpaVc31_203,xMpaPtCred_212,xMpaEnc31_218,pkSSO_109) = true() then
                    {138}let (=xMpaPtCred_212,xMpaEnc4_219) = getpublic(xMpaVc4_204) in
                    {139}if CheckVEncPtnym(xMpaVc4_204,xMpaPtCred_212,xMpaEnc4_219,pkMPA_194) = true() then
                    {140}let xMpaPtnym_220 = dec(xMpaEnc4_219,skMPA_193) in
                    {141}if CheckReceptionAck(xMpaReceptionAck_206,xMpaPtCred_212,xMpaPrescID_210,xPharmID_197,xMpaVc1_200,xMpaVc2_201,xMpaVc3_202,xMpaVc31_203,xMpaVc4_204,xMpac5_205) = true() then
                    {142}out(ch, (sign(MpaID_195,skMPA_193),MpaID_195));
                    {143}in(ch, xMpaHiiAuth_221);
                    {144}let mpkHII_222 = key(xMpaPthii_214) in
                    {145}if checkAuth(xMpaHiiAuth_221,mpkHII_222) = true() then
                    {146}if getmessage(xMpaHiiAuth_221,mpkHII_222) = xMpaPthii_214 then
                    {147}out(ch, (xMpaReceptionAck_206,dec(xMpac5_205,skMPA_193)));
                    {148}in(ch, xMpaInvoice_223)
                )
            )
        ) | (
            {149}!
            {150}new nskHII_224;
            {151}let skHII_225 = nskHII_224 in
            {152}let pkHII_226 = pk(skHII_225) in
            {153}let HiiID_227 = host(pkHII_226) in
            {154}!
            (
                {155}out(ch, pkHII_226)
            ) | (
                {156}!
                (
                    {157}out(privchhiipt_106, HiiID_227)
                ) | (
                    {158}!
                    {159}in(ch, (xHiiMpaAuth_228,xHiiMpaID_229));
                    {160}let xHiipkMPA_230 = key(xHiiMpaID_229) in
                    {161}if checkAuth(xHiiMpaAuth_228,xHiipkMPA_230) = true() then
                    {162}out(ch, sign(HiiID_227,skHII_225));
                    {163}in(ch, (xHiiReceptionAck_231,xHiiVc5_232));
                    {164}let xHiiPtCred_233 = getpubmsg(xHiiReceptionAck_231) in
                    {165}let (xHiiPrescID_234,xHiiPharmID_235,xHiiVc1_236,xHiiVc2_237,xHiiVc3_238,xHiiVc31_239,xHiiVc4_240,xHiic5_241) = getmsg(xHiiReceptionAck_231) in
                    {166}if CheckReceptionAck(xHiiReceptionAck_231,xHiiPtCred_233,xHiiPrescID_234,xHiiPharmID_235,xHiiVc1_236,xHiiVc2_237,xHiiVc3_238,xHiiVc31_239,xHiiVc4_240,xHiic5_241) = true() then
                    {167}let (=xHiiPtCred_233,xHiiEnc5_242) = getpublic(xHiiVc5_232) in
                    {168}if CheckVEncPtnym(xHiiVc5_232,xHiiPtCred_233,xHiiEnc5_242,pkHII_226) = true() then
                    {169}let xHiiPtnym_243 = dec(xHiiEnc5_242,skHII_225) in
                    {170}out(ch, invoice(xHiiPrescID_234))
                )
            )
        )
    )
)

-- Observational equivalence
Termination warning: v_1671 <> v_1672 & attacker2:v_1670,v_1671 & attacker2:v_1670,v_1672 -> bad:
Selecting 0
Termination warning: v_1674 <> v_1675 & attacker2:v_1674,v_1673 & attacker2:v_1675,v_1673 -> bad:
Selecting 0
Completing...
Termination warning: v_1671 <> v_1672 & attacker2:v_1670,v_1671 & attacker2:v_1670,v_1672 -> bad:
Selecting 0
Termination warning: v_1674 <> v_1675 & attacker2:v_1674,v_1673 & attacker2:v_1675,v_1673 -> bad:
Selecting 0
200 rules inserted. The rule base contains 200 rules. 247 rules in the queue.
400 rules inserted. The rule base contains 399 rules. 195 rules in the queue.
600 rules inserted. The rule base contains 555 rules. 173 rules in the queue.
nounif attacker2:sign(x_134062,nskHII_224[!4 = *@sid_134063,!3 = *@sid_134064,!2 = *@sid_134065,!1 = *@sid_134066]),sign(x_134067,nskHII_224[!4 = *@sid_134063,!3 = *@sid_134064,!2 = *@sid_134065,!1 = *@sid_134066])/-5000
800 rules inserted. The rule base contains 687 rules. 121 rules in the queue.
1000 rules inserted. The rule base contains 852 rules. 156 rules in the queue.
1200 rules inserted. The rule base contains 1018 rules. 138 rules in the queue.
1400 rules inserted. The rule base contains 1207 rules. 55 rules in the queue.
1600 rules inserted. The rule base contains 1260 rules. 39 rules in the queue.
1800 rules inserted. The rule base contains 1428 rules. 136 rules in the queue.
2000 rules inserted. The rule base contains 1590 rules. 104 rules in the queue.
2200 rules inserted. The rule base contains 1742 rules. 58 rules in the queue.
2400 rules inserted. The rule base contains 1880 rules. 19 rules in the queue.
RESULT Observational equivalence is true (bad not derivable).
