Another go at making pred_test() handle all reasonable combinations of AND and OR clauses.  The key point here is that an OR on the predicate side has to be treated gingerly: we may be able to prove that the OR is implied even when no one of its components is implied. For example (x OR y) implies (x OR y OR z) even though no one of x, y, or z can be individually proven.  This code handles both the example shown recently by Sergey Koshcheyev and the one shown last October by Dawid Kuroczko.
Another go at making pred_test() handle all reasonable combinations
of AND and OR clauses.  The key point here is that an OR on the
predicate side has to be treated gingerly: we may be able to prove
that the OR is implied even when no one of its components is implied.
For example (x OR y) implies (x OR y OR z) even though no one of x,
y, or z can be individually proven.  This code handles both the
example shown recently by Sergey Koshcheyev and the one shown last
October by Dawid Kuroczko.

adam8157/gpdb,Quikling/gpdb,rvs/gpdb,Quikling/gpdb,pavanvd/postgres-xl,arcivanov/postgres-xl,yuanzhao/gpdb,yuanzhao/gpdb,arcivanov/postgres-xl,xinzweb/gpdb,tangp3/gpdb,rubikloud/gpdb,atris/gpdb,royc1/gpdb,rubikloud/gpdb,xuegang/gpdb,randomtask1155/gpdb,lintzc/gpdb,kaknikhil/gpdb,kaknikhil/gpdb,kaknikhil/gpdb,kmjungersen/PostgresXL,zeroae/postgres-xl,arcivanov/postgres-xl,techdragon/Postgres-XL,techdragon/Postgres-XL,pavanvd/postgres-xl,Chibin/gpdb,xinzweb/gpdb,ahachete/gpdb,Quikling/gpdb,rubikloud/gpdb,tpostgres-projects/tPostgres,lpetrov-pivotal/gpdb,Quikling/gpdb,Quikling/gpdb,edespino/gpdb,zaksoup/gpdb,arcivanov/postgres-xl,tangp3/gpdb,kmjungersen/PostgresXL,lpetrov-pivotal/gpdb,ahachete/gpdb,janebeckman/gpdb,Chibin/gpdb,Chibin/gpdb,CraigHarris/gpdb,0x0FFF/gpdb,lisakowen/gpdb,snaga/postgres-xl,zaksoup/gpdb,adam8157/gpdb,zaksoup/gpdb,yazun/postgres-xl,jmcatamney/gpdb,0x0FFF/gpdb,CraigHarris/gpdb,ahachete/gpdb,adam8157/gpdb,50wu/gpdb,yazun/postgres-xl,kaknikhil/gpdb,foyzur/gpdb,atris/gpdb,CraigHarris/gpdb,xuegang/gpdb,yuanzhao/gpdb,kmjungersen/PostgresXL,foyzur/gpdb,snaga/postgres-xl,oberstet/postgres-xl,lintzc/gpdb,lpetrov-pivotal/gpdb,yuanzhao/gpdb,lisakowen/gpdb,oberstet/postgres-xl,lpetrov-pivotal/gpdb,snaga/postgres-xl,atris/gpdb,janebeckman/gpdb,rubikloud/gpdb,xinzweb/gpdb,royc1/gpdb,tangp3/gpdb,edespino/gpdb,lisakowen/gpdb,xuegang/gpdb,ashwinstar/gpdb,CraigHarris/gpdb,lintzc/gpdb,tangp3/gpdb,cjcjameson/gpdb,pavanvd/postgres-xl,foyzur/gpdb,adam8157/gpdb,oberstet/postgres-xl,ovr/postgres-xl,rubikloud/gpdb,zaksoup/gpdb,adam8157/gpdb,foyzur/gpdb,edespino/gpdb,tangp3/gpdb,jmcatamney/gpdb,randomtask1155/gpdb,rvs/gpdb,chrishajas/gpdb,greenplum-db/gpdb,randomtask1155/gpdb,yuanzhao/gpdb,atris/gpdb,kaknikhil/gpdb,CraigHarris/gpdb,chrishajas/gpdb,Postgres-XL/Postgres-XL,yazun/postgres-xl,ovr/postgres-xl,rvs/gpdb,ahachete/gpdb,janebeckman/gpdb,techdragon/Postgres-XL,oberstet/postgres-xl,chrishajas/gpdb,lpetrov-pivotal/gpdb,kaknikhil/gpdb,randomtask1155/gpdb,ovr/postgres-xl,Quikling/gpdb,ovr/postgres-xl,CraigHarris/gpdb,ashwinstar/gpdb,jmcatamney/gpdb,xuegang/gpdb,ashwinstar/gpdb,Chibin/gpdb,randomtask1155/gpdb,rubikloud/gpdb,adam8157/gpdb,atris/gpdb,zeroae/postgres-xl,ashwinstar/gpdb,greenplum-db/gpdb,Chibin/gpdb,pavanvd/postgres-xl,royc1/gpdb,chrishajas/gpdb,janebeckman/gpdb,xuegang/gpdb,lintzc/gpdb,greenplum-db/gpdb,kaknikhil/gpdb,Postgres-XL/Postgres-XL,arcivanov/postgres-xl,edespino/gpdb,0x0FFF/gpdb,0x0FFF/gpdb,zeroae/postgres-xl,techdragon/Postgres-XL,techdragon/Postgres-XL,adam8157/gpdb,zaksoup/gpdb,tangp3/gpdb,Chibin/gpdb,cjcjameson/gpdb,50wu/gpdb,ahachete/gpdb,tangp3/gpdb,ashwinstar/gpdb,greenplum-db/gpdb,rubikloud/gpdb,lintzc/gpdb,edespino/gpdb,janebeckman/gpdb,rvs/gpdb,zeroae/postgres-xl,lintzc/gpdb,jmcatamney/gpdb,CraigHarris/gpdb,rvs/gpdb,ashwinstar/gpdb,postmind-net/postgres-xl,yuanzhao/gpdb,jmcatamney/gpdb,tangp3/gpdb,chrishajas/gpdb,oberstet/postgres-xl,arcivanov/postgres-xl,atris/gpdb,0x0FFF/gpdb,lpetrov-pivotal/gpdb,kaknikhil/gpdb,Quikling/gpdb,Postgres-XL/Postgres-XL,yuanzhao/gpdb,zaksoup/gpdb,royc1/gpdb,cjcjameson/gpdb,tpostgres-projects/tPostgres,rvs/gpdb,cjcjameson/gpdb,foyzur/gpdb,xuegang/gpdb,janebeckman/gpdb,xinzweb/gpdb,tpostgres-projects/tPostgres,50wu/gpdb,yazun/postgres-xl,ashwinstar/gpdb,Chibin/gpdb,lisakowen/gpdb,lintzc/gpdb,edespino/gpdb,zaksoup/gpdb,0x0FFF/gpdb,randomtask1155/gpdb,cjcjameson/gpdb,janebeckman/gpdb,foyzur/gpdb,snaga/postgres-xl,postmind-net/postgres-xl,Quikling/gpdb,50wu/gpdb,xuegang/gpdb,Chibin/gpdb,snaga/postgres-xl,kaknikhil/gpdb,tpostgres-projects/tPostgres,greenplum-db/gpdb,0x0FFF/gpdb,xinzweb/gpdb,xuegang/gpdb,rubikloud/gpdb,greenplum-db/gpdb,edespino/gpdb,xinzweb/gpdb,ahachete/gpdb,lintzc/gpdb,cjcjameson/gpdb,edespino/gpdb,yuanzhao/gpdb,lpetrov-pivotal/gpdb,xinzweb/gpdb,Postgres-XL/Postgres-XL,foyzur/gpdb,postmind-net/postgres-xl,pavanvd/postgres-xl,cjcjameson/gpdb,postmind-net/postgres-xl,Quikling/gpdb,lisakowen/gpdb,zeroae/postgres-xl,50wu/gpdb,yuanzhao/gpdb,Chibin/gpdb,50wu/gpdb,ahachete/gpdb,randomtask1155/gpdb,royc1/gpdb,xinzweb/gpdb,ovr/postgres-xl,chrishajas/gpdb,greenplum-db/gpdb,janebeckman/gpdb,rvs/gpdb,CraigHarris/gpdb,CraigHarris/gpdb,Postgres-XL/Postgres-XL,yuanzhao/gpdb,50wu/gpdb,kmjungersen/PostgresXL,jmcatamney/gpdb,greenplum-db/gpdb,kmjungersen/PostgresXL,royc1/gpdb,50wu/gpdb,tpostgres-projects/tPostgres,cjcjameson/gpdb,Chibin/gpdb,foyzur/gpdb,janebeckman/gpdb,ahachete/gpdb,jmcatamney/gpdb,postmind-net/postgres-xl,Quikling/gpdb,yazun/postgres-xl,rvs/gpdb,lpetrov-pivotal/gpdb,royc1/gpdb,ashwinstar/gpdb,rvs/gpdb,lisakowen/gpdb,royc1/gpdb,chrishajas/gpdb,lisakowen/gpdb,randomtask1155/gpdb,rvs/gpdb,lintzc/gpdb,adam8157/gpdb,chrishajas/gpdb,atris/gpdb,jmcatamney/gpdb,edespino/gpdb,cjcjameson/gpdb,0x0FFF/gpdb,edespino/gpdb,lisakowen/gpdb,janebeckman/gpdb,zaksoup/gpdb,kaknikhil/gpdb,cjcjameson/gpdb,xuegang/gpdb,atris/gpdb