formula: track Δ₁, Σ₂, Π₂, and Δ₂ membership
* spot/tl/formula.hh, spot/tl/formula.cc: Update the properties and track them. * tests/core/kind.test: Augment the test case. * doc/tl/tl.tex, doc/spot.bib, NEWS: Document these new classes.
This commit is contained in:
parent
0c52c49079
commit
7901a37747
6 changed files with 473 additions and 175 deletions
|
|
@ -25,118 +25,120 @@
|
|||
set -e
|
||||
|
||||
cat >input<<EOF
|
||||
a,B&!xfLPSFsgopra
|
||||
a<->b,BxfLPSFsgopra
|
||||
!a,B&!xfLPSFsgopra
|
||||
!(a|b),B&xfLPSFsgopra
|
||||
F(a),&!xLPegopra
|
||||
G(a),&!xLPusopra
|
||||
a U b,&!xfLPgopra
|
||||
a U Fb,&!xLPegopra
|
||||
Ga U b,&!xLPopra
|
||||
1 U a,&!xfLPegopra
|
||||
a W b,&!xfLPsopra
|
||||
a W 0,&!xfLPusopra
|
||||
a M b,&!xfLPgopra
|
||||
a M 1,&!xfLPegopra
|
||||
a R b,&!xfLPsopra
|
||||
0 R b,&!xfLPusopra
|
||||
a R (b R (c R d)),&!xfLPsopra
|
||||
a U (b U (c U d)),&!xfLPgopra
|
||||
a W (b W (c W d)),&!xfLPsopra
|
||||
a M (b M (c M d)),&!xfLPgopra
|
||||
Fa -> Fb,xLPopra
|
||||
Ga -> Fb,xLPegopra
|
||||
Fa -> Gb,xLPusopra
|
||||
(Ga|Fc) -> Fb,xLPopra
|
||||
(Ga|Fa) -> Gb,xLPopra
|
||||
{a;c*;b}|->!Xb,&fPsopra
|
||||
{a;c*;b}|->X!b,&!fPsopra
|
||||
{a;c*;b}|->!Fb,&Psopra
|
||||
{a;c*;b}|->G!b,&!Psopra
|
||||
{a;c*;b}|->!Gb,&Pra
|
||||
{a;c*;b}|->F!b,&!Pra
|
||||
{a;c*;b}|->GFa,&!Pra
|
||||
a,B&!xfLPSFsgopraOPRD
|
||||
a<->b,BxfLPSFsgopraOPRD
|
||||
!a,B&!xfLPSFsgopraOPRD
|
||||
!(a|b),B&xfLPSFsgopraOPRD
|
||||
F(a),&!xLPegopraOPRD
|
||||
G(a),&!xLPusopraOPRD
|
||||
a U b,&!xfLPgopraOPRD
|
||||
a U Fb,&!xLPegopraOPRD
|
||||
Ga U b,&!xLPopraPD
|
||||
1 U a,&!xfLPegopraOPRD
|
||||
a W b,&!xfLPsopraOPRD
|
||||
a W 0,&!xfLPusopraOPRD
|
||||
a M b,&!xfLPgopraOPRD
|
||||
a M 1,&!xfLPegopraOPRD
|
||||
a R b,&!xfLPsopraOPRD
|
||||
0 R b,&!xfLPusopraOPRD
|
||||
a R (b R (c R d)),&!xfLPsopraOPRD
|
||||
a U (b U (c U d)),&!xfLPgopraOPRD
|
||||
a W (b W (c W d)),&!xfLPsopraOPRD
|
||||
a M (b M (c M d)),&!xfLPgopraOPRD
|
||||
Fa -> Fb,xLPopraOPRD
|
||||
Ga -> Fb,xLPegopraOPRD
|
||||
Fa -> Gb,xLPusopraOPRD
|
||||
(Ga|Fc) -> Fb,xLPopraOPRD
|
||||
(Ga|Fa) -> Gb,xLPopraOPRD
|
||||
{a;c*;b}|->!Xb,&fPsopraOPRD
|
||||
{a;c*;b}|->X!b,&!fPsopraOPRD
|
||||
{a;c*;b}|->!Fb,&PsopraOPRD
|
||||
{a;c*;b}|->G!b,&!PsopraOPRD
|
||||
{a;c*;b}|->!Gb,&PraRD
|
||||
{a;c*;b}|->F!b,&!PraRD
|
||||
{a;c*;b}|->GFa,&!PraRD
|
||||
{a;c*;b}|->FGa,&!Pa
|
||||
{a[+];c[+];b*}|->!Fb,&Psopra
|
||||
{a*;c[+];b*}|->!Fb,&xPsopra
|
||||
{a[+];c*;b[+]}|->G!b,&!Psopra
|
||||
{a*;c[+];b[+]}|->!Gb,&Pra
|
||||
{a[+];c*;b[+]}|->F!b,&!Pra
|
||||
{a[+];c[+];b*}|->GFa,&!Pra
|
||||
{a[+];c[+];b*}|->!Fb,&PsopraOPRD
|
||||
{a*;c[+];b*}|->!Fb,&xPsopraOPRD
|
||||
{a[+];c*;b[+]}|->G!b,&!PsopraOPRD
|
||||
{a*;c[+];b[+]}|->!Gb,&PraRD
|
||||
{a[+];c*;b[+]}|->F!b,&!PraRD
|
||||
{a[+];c[+];b*}|->GFa,&!PraRD
|
||||
{a*;c[+];b[+]}|->FGa,&!Pa
|
||||
{a;c;b|(d;e)}|->!Xb,&fPFsgopra
|
||||
{a;c;b|(d;e)}|->X!b,&!fPFsgopra
|
||||
{a;c;b|(d;e)}|->!Fb,&Psopra
|
||||
{a;c;b|(d;e)}|->G!b,&!Psopra
|
||||
{a;c;b|(d;e)}|->!Gb,&Pgopra
|
||||
{a;c;b|(d;e)}|->F!b,&!Pgopra
|
||||
{a;c;b|(d;e)}|->GFa,&!Pra
|
||||
{a;c;b|(d;e)}|->FGa,&!Ppa
|
||||
{a[+] && c[+]}|->!Xb,&fPsopra
|
||||
{a[+] && c[+]}|->X!b,&!fPsopra
|
||||
{a[+] && c[+]}|->!Fb,&xPsopra
|
||||
{a[+] && c[+]}|->G!b,&!xPsopra
|
||||
{a[+] && c[+]}|->!Gb,&xPra
|
||||
{a[+] && c[+]}|->F!b,&!xPra
|
||||
{a[+] && c[+]}|->GFa,&!xPra
|
||||
{a;c;b|(d;e)}|->!Xb,&fPFsgopraOPRD
|
||||
{a;c;b|(d;e)}|->X!b,&!fPFsgopraOPRD
|
||||
{a;c;b|(d;e)}|->!Fb,&PsopraOPRD
|
||||
{a;c;b|(d;e)}|->G!b,&!PsopraOPRD
|
||||
{a;c;b|(d;e)}|->!Gb,&PgopraOPRD
|
||||
{a;c;b|(d;e)}|->F!b,&!PgopraOPRD
|
||||
{a;c;b|(d;e)}|->GFa,&!PraRD
|
||||
{a;c;b|(d;e)}|->FGa,&!PpaPD
|
||||
{a[+] && c[+]}|->!Xb,&fPsopraOPRD
|
||||
{a[+] && c[+]}|->X!b,&!fPsopraOPRD
|
||||
{a[+] && c[+]}|->!Fb,&xPsopraOPRD
|
||||
{a[+] && c[+]}|->G!b,&!xPsopraOPRD
|
||||
{a[+] && c[+]}|->!Gb,&xPraRD
|
||||
{a[+] && c[+]}|->F!b,&!xPraRD
|
||||
{a[+] && c[+]}|->GFa,&!xPraRD
|
||||
{a[+] && c[+]}|->FGa,&!xPa
|
||||
{a;c*;b}<>->!Gb,&Pgopra
|
||||
{a;c*;b}<>->F!b,&!Pgopra
|
||||
{a;c*;b}<>->FGb,&!Ppa
|
||||
{a;c*;b}<>->!GFb,&Ppa
|
||||
{a;c*;b}<>->!Gb,&PgopraOPRD
|
||||
{a;c*;b}<>->F!b,&!PgopraOPRD
|
||||
{a;c*;b}<>->FGb,&!PpaPD
|
||||
{a;c*;b}<>->!GFb,&PpaPD
|
||||
{a;c*;b}<>->GFb,&!Pa
|
||||
{a;c*;b}<>->!FGb,&Pa
|
||||
{a*;c[+];b[+]}<>->!FGb,&Pa
|
||||
{a;c|d;b}<>->!Gb,&Pgopra
|
||||
{a;c|d;b}<>->G!b,&!Psopra
|
||||
{a;c|d;b}<>->FGb,&!Ppa
|
||||
{a;c|d;b}<>->!GFb,&Ppa
|
||||
{a;c|d;b}<>->GFb,&!Pra
|
||||
{a;c|d;_b}<>->!FGb,&Pr
|
||||
{a;c|d;b}<>->!Gb,&PgopraOPRD
|
||||
{a;c|d;b}<>->G!b,&!PsopraOPRD
|
||||
{a;c|d;b}<>->FGb,&!PpaPD
|
||||
{a;c|d;b}<>->!GFb,&PpaPD
|
||||
{a;c|d;b}<>->GFb,&!PraRD
|
||||
{a;c|d;_b}<>->!FGb,&PrRD
|
||||
# Equivalent to a&b&c&d
|
||||
{a:b:c:d}!,B&!xfLPSFsgopra
|
||||
a&b&c&d,B&!xfLPSFsgopra
|
||||
(Xa <-> XXXc) U (b & Fe),LPgopra
|
||||
(!X(a|X(!b))&(FX(g xor h)))U(!G(a|b)),LPegopra
|
||||
(!X(a|X(!b))&(GX(g xor h)))R(!F(a|b)),LPusopra
|
||||
(!X(a|X(!b))&(GX(g xor h)))U(!G(a|b)),LPeopra
|
||||
(!X(a|X(!b))&(FX(g xor h)))R(!F(a|b)),LPuopra
|
||||
(!X(a|X(!b))&(GX(g xor h)))U(!F(a|b)),LPpa
|
||||
(!X(a|X(!b))&(FX(g xor h)))R(!G(a|b)),LPra
|
||||
(!X(a|GXF(!b))&(FGX(g xor h)))U(!F(a|b)),LPpa
|
||||
{a:b:c:d}!,B&!xfLPSFsgopraOPRD
|
||||
a&b&c&d,B&!xfLPSFsgopraOPRD
|
||||
(Xa <-> XXXc) U (b & Fe),LPgopraOPRD
|
||||
(!X(a|X(!b))&(FX(g xor h)))U(!G(a|b)),LPegopraOPRD
|
||||
(!X(a|X(!b))&(GX(g xor h)))R(!F(a|b)),LPusopraOPRD
|
||||
(!X(a|X(!b))&(GX(g xor h)))U(!G(a|b)),LPeopraPD
|
||||
(!X(a|X(!b))&(FX(g xor h)))R(!F(a|b)),LPuopraRD
|
||||
(!X(a|X(!b))&(GX(g xor h)))U(!F(a|b)),LPpaPD
|
||||
(!X(a|X(!b))&(FX(g xor h)))R(!G(a|b)),LPraRD
|
||||
(!X(a|GXF(!b))&(FGX(g xor h)))U(!F(a|b)),LPpaPD
|
||||
(!X(a|GXF(!b))&(FGX(g xor h)))R(!F(a|b)),LPupa
|
||||
(!X(a|FXG(!b))&(GFX(g xor h)))R(!G(a|b)),LPra
|
||||
(!X(a|FXG(!b))&(GFX(g xor h)))R(!G(a|b)),LPraRD
|
||||
(!X(a|FXG(!b))&(GFX(g xor h)))U(!G(a|b)),LPera
|
||||
(!X(a|GXF(!b))&(FGX(g xor h)))U(!G(a|Fb)),LPepa
|
||||
(!X(a|GXF(!b))&(FGX(g xor h)))U(!G(a|Fb)),LPepaPD
|
||||
(!X(a|GXF(!b))&(FGX(g xor h)))U(!F(a|Gb)),LPa
|
||||
(!X(a|FXG(!b))&(GFX(g xor h)))R(!F(a|Gb)),LPura
|
||||
(!X(a|FXG(!b))&(GFX(g xor h)))R(!F(a|Gb)),LPuraRD
|
||||
(!X(a|FXG(!b))&(GFX(g xor h)))R(!G(a|Fb)),LPa
|
||||
GFa M GFb,&!xLPeua
|
||||
FGa M FGb,&!xLPeupa
|
||||
FGa M FGb,&!xLPeupaPD
|
||||
Fa M GFb,&!xLPera
|
||||
GFa W GFb,&!xLPeura
|
||||
GFa W GFb,&!xLPeuraRD
|
||||
FGa W FGb,&!xLPeua
|
||||
Ga W FGb,&!xLPupa
|
||||
Ga W b,&!xLPsopra
|
||||
Fa M b,&!xLPgopra
|
||||
{a;b*;c},&!fPsopra
|
||||
{a;b*;c}!,&!fPgopra
|
||||
Ga W b,&!xLPsopraOPRD
|
||||
Fa M b,&!xLPgopraOPRD
|
||||
{a;b*;c},&!fPsopraOPRD
|
||||
{a;b*;c}!,&!fPgopraOPRD
|
||||
# The negative normal form is {a;b*;c}[]->1
|
||||
!{a;b*;c}!,&fPsopra
|
||||
{a;b*;p112}[]->0,&!fPsopra
|
||||
!{a;b*;c.2},&!fPgopr
|
||||
!{a[+];b*;c[+]},&!fPgopra
|
||||
!{a[+];b*;c*},&!xfPgopra
|
||||
{a[+];b*;c[+]},&!fPsopra
|
||||
{a[+] && b || c[+]},&!fPsopra
|
||||
{a[+] && b[+] || c[+]},&!xfPsopra
|
||||
{p[+]:p[+]},&!xfPsoprla
|
||||
(!p W Gp) | ({(!p[*];(p[+]:(p[*];!p[+])))[:*4][:+]}<>-> (!p W Gp)),&!xPpla
|
||||
{b[+][:*0..3]},&!fPsopra
|
||||
{a->c[*]},xfPsopra
|
||||
{(a[+];b*);c*}<>->d,&!xfPgopra
|
||||
{first_match(a[+];b*);c*}<>->d,&!fPgopra
|
||||
!{a;b*;c}!,&fPsopraOPRD
|
||||
{a;b*;p112}[]->0,&!fPsopraOPRD
|
||||
!{a;b*;c.2},&!fPgoprOPRD
|
||||
!{a[+];b*;c[+]},&!fPgopraOPRD
|
||||
!{a[+];b*;c*},&!xfPgopraOPRD
|
||||
{a[+];b*;c[+]},&!fPsopraOPRD
|
||||
{a[+] && b || c[+]},&!fPsopraOPRD
|
||||
{a[+] && b[+] || c[+]},&!xfPsopraOPRD
|
||||
{p[+]:p[+]},&!xfPsoprlaOPRD
|
||||
(!p W Gp) | ({(!p[*];(p[+]:(p[*];!p[+])))[:*4][:+]}<>-> (!p W Gp)),&!xPplaPD
|
||||
{b[+][:*0..3]},&!fPsopraOPRD
|
||||
{a->c[*]},xfPsopraOPRD
|
||||
{(a[+];b*);c*}<>->d,&!xfPgopraOPRD
|
||||
{first_match(a[+];b*);c*}<>->d,&!fPgopraOPRD
|
||||
G(Ga U b),&!xLPura
|
||||
GFb & G(Ga R b),&!xLPuraRD
|
||||
EOF
|
||||
|
||||
run 0 ../kind input
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue