NO ignored inputs: (COMMENT rules to obtain PNF of first-order formulas ) (COMMENT Example 44 of [ FG07 , doi:10.1016/j.ic.2006.12.002 ] ) NRS: [ (0): a#P |- (and <[]P,(forall [a][]Q)>) -> (forall [a](and <[]P,[]Q>)), (1): a#P |- (and <(forall [a][]Q),[]P>) -> (forall [a](and <[]Q,[]P>)), (2): a#P |- (or <[]P,(forall [a][]Q)>) -> (forall [a](or <[]P,[]Q>)), (3): a#P |- (or <(forall [a][]Q),[]P>) -> (forall [a](or <[]Q,[]P>)), (4): a#P |- (and <[]P,(exists [a][]Q)>) -> (exists [a](and <[]P,[]Q>)), (5): a#P |- (and <(exists [a][]Q),[]P>) -> (exists [a](and <[]Q,[]P>)), (6): a#P |- (or <[]P,(exists [a][]Q)>) -> (exists [a](or <[]P,[]Q>)), (7): a#P |- (or <(exists [a][]Q),[]P>) -> (exists [a](or <[]Q,[]P>)), (8): |- (not <(exists [a][]Q)>) -> (forall [a](not []Q)), (9): |- (not <(forall [a][]Q)>) -> (exists [a](not []Q)) ] Check confluence by Knuth-Bendix criterion uniform writing to temporary file... ./run_snprover.sh ./SMLNJ-AAVV3y.trs YES Problem: and(pair_2(P,forall(lambda(Q)))) -> forall(lambda(and(pair_2(P,Q)))) and(pair_2(forall(lambda(Q)),P)) -> forall(lambda(and(pair_2(Q,P)))) or(pair_2(P,forall(lambda(Q)))) -> forall(lambda(or(pair_2(P,Q)))) or(pair_2(forall(lambda(Q)),P)) -> forall(lambda(or(pair_2(Q,P)))) and(pair_2(P,exists(lambda(Q)))) -> exists(lambda(and(pair_2(P,Q)))) and(pair_2(exists(lambda(Q)),P)) -> exists(lambda(and(pair_2(Q,P)))) or(pair_2(P,exists(lambda(Q)))) -> exists(lambda(or(pair_2(P,Q)))) or(pair_2(exists(lambda(Q)),P)) -> exists(lambda(or(pair_2(Q,P)))) not(pair_1(exists(lambda(Q)))) -> forall(lambda(not(Q))) not(pair_1(forall(lambda(Q)))) -> exists(lambda(not(Q))) Proof: LPO Processor: precedence: pair_1 ~ pair_2 > not ~ exists ~ or ~ and ~ forall ~ lambda problem: Qed terminating check each BCP has alpha-equivalent normal forms or not BCPs: (0 on 0): { a#P_1 |- < (forall [a](and <[]P_1,[]Q_1>)) <= (and <[]P_1,(forall [a][]Q_1)>) => (forall [a](and <[]P_1,[]Q_1>)) >, a#Q_1,a#P_1,b#P_1 |- < (forall [a](and <[]P_1,[(a b)]Q_1>)) <= (and <[]P_1,(forall [b][]Q_1)>) => (forall [b](and <[]P_1,[]Q_1>)) > } (0 on 1): { |- < (forall [a](and <(forall [a][]Q_1),[]Q>)) <= (and <(forall [a][]Q_1),(forall [a][]Q)>) => (forall [a](and <[]Q_1,(forall [a][]Q)>)) >, a#Q_1,b#Q |- < (forall [a](and <(forall [b][]Q_1),[]Q>)) <= (and <(forall [b][]Q_1),(forall [a][]Q)>) => (forall [b](and <[]Q_1,(forall [a][]Q)>)) > } (0 on 5): { |- < (forall [a](and <(exists [a][]Q_1),[]Q>)) <= (and <(exists [a][]Q_1),(forall [a][]Q)>) => (exists [a](and <[]Q_1,(forall [a][]Q)>)) >, a#Q_1,b#Q |- < (forall [a](and <(exists [b][]Q_1),[]Q>)) <= (and <(exists [b][]Q_1),(forall [a][]Q)>) => (exists [b](and <[]Q_1,(forall [a][]Q)>)) > } (1 on 0): { |- < (forall [a](and <[]Q,(forall [a][]Q_1)>)) <= (and <(forall [a][]Q),(forall [a][]Q_1)>) => (forall [a](and <(forall [a][]Q),[]Q_1>)) >, a#Q_1,b#Q |- < (forall [a](and <[]Q,(forall [b][]Q_1)>)) <= (and <(forall [a][]Q),(forall [b][]Q_1)>) => (forall [b](and <(forall [a][]Q),[]Q_1>)) > } (1 on 1): { a#P_1 |- < (forall [a](and <[]Q_1,[]P_1>)) <= (and <(forall [a][]Q_1),[]P_1>) => (forall [a](and <[]Q_1,[]P_1>)) >, a#Q_1,a#P_1,b#P_1 |- < (forall [a](and <[(a b)]Q_1,[]P_1>)) <= (and <(forall [b][]Q_1),[]P_1>) => (forall [b](and <[]Q_1,[]P_1>)) > } (1 on 4): { |- < (forall [a](and <[]Q,(exists [a][]Q_1)>)) <= (and <(forall [a][]Q),(exists [a][]Q_1)>) => (exists [a](and <(forall [a][]Q),[]Q_1>)) >, a#Q_1,b#Q |- < (forall [a](and <[]Q,(exists [b][]Q_1)>)) <= (and <(forall [a][]Q),(exists [b][]Q_1)>) => (exists [b](and <(forall [a][]Q),[]Q_1>)) > } (2 on 2): { a#P_1 |- < (forall [a](or <[]P_1,[]Q_1>)) <= (or <[]P_1,(forall [a][]Q_1)>) => (forall [a](or <[]P_1,[]Q_1>)) >, a#Q_1,a#P_1,b#P_1 |- < (forall [a](or <[]P_1,[(a b)]Q_1>)) <= (or <[]P_1,(forall [b][]Q_1)>) => (forall [b](or <[]P_1,[]Q_1>)) > } (2 on 3): { |- < (forall [a](or <(forall [a][]Q_1),[]Q>)) <= (or <(forall [a][]Q_1),(forall [a][]Q)>) => (forall [a](or <[]Q_1,(forall [a][]Q)>)) >, a#Q_1,b#Q |- < (forall [a](or <(forall [b][]Q_1),[]Q>)) <= (or <(forall [b][]Q_1),(forall [a][]Q)>) => (forall [b](or <[]Q_1,(forall [a][]Q)>)) > } (2 on 7): { |- < (forall [a](or <(exists [a][]Q_1),[]Q>)) <= (or <(exists [a][]Q_1),(forall [a][]Q)>) => (exists [a](or <[]Q_1,(forall [a][]Q)>)) >, a#Q_1,b#Q |- < (forall [a](or <(exists [b][]Q_1),[]Q>)) <= (or <(exists [b][]Q_1),(forall [a][]Q)>) => (exists [b](or <[]Q_1,(forall [a][]Q)>)) > } (3 on 2): { |- < (forall [a](or <[]Q,(forall [a][]Q_1)>)) <= (or <(forall [a][]Q),(forall [a][]Q_1)>) => (forall [a](or <(forall [a][]Q),[]Q_1>)) >, a#Q_1,b#Q |- < (forall [a](or <[]Q,(forall [b][]Q_1)>)) <= (or <(forall [a][]Q),(forall [b][]Q_1)>) => (forall [b](or <(forall [a][]Q),[]Q_1>)) > } (3 on 3): { a#P_1 |- < (forall [a](or <[]Q_1,[]P_1>)) <= (or <(forall [a][]Q_1),[]P_1>) => (forall [a](or <[]Q_1,[]P_1>)) >, a#Q_1,a#P_1,b#P_1 |- < (forall [a](or <[(a b)]Q_1,[]P_1>)) <= (or <(forall [b][]Q_1),[]P_1>) => (forall [b](or <[]Q_1,[]P_1>)) > } (3 on 6): { |- < (forall [a](or <[]Q,(exists [a][]Q_1)>)) <= (or <(forall [a][]Q),(exists [a][]Q_1)>) => (exists [a](or <(forall [a][]Q),[]Q_1>)) >, a#Q_1,b#Q |- < (forall [a](or <[]Q,(exists [b][]Q_1)>)) <= (or <(forall [a][]Q),(exists [b][]Q_1)>) => (exists [b](or <(forall [a][]Q),[]Q_1>)) > } (4 on 1): { |- < (exists [a](and <(forall [a][]Q_1),[]Q>)) <= (and <(forall [a][]Q_1),(exists [a][]Q)>) => (forall [a](and <[]Q_1,(exists [a][]Q)>)) >, a#Q_1,b#Q |- < (exists [a](and <(forall [b][]Q_1),[]Q>)) <= (and <(forall [b][]Q_1),(exists [a][]Q)>) => (forall [b](and <[]Q_1,(exists [a][]Q)>)) > } (4 on 4): { a#P_1 |- < (exists [a](and <[]P_1,[]Q_1>)) <= (and <[]P_1,(exists [a][]Q_1)>) => (exists [a](and <[]P_1,[]Q_1>)) >, a#Q_1,a#P_1,b#P_1 |- < (exists [a](and <[]P_1,[(a b)]Q_1>)) <= (and <[]P_1,(exists [b][]Q_1)>) => (exists [b](and <[]P_1,[]Q_1>)) > } (4 on 5): { |- < (exists [a](and <(exists [a][]Q_1),[]Q>)) <= (and <(exists [a][]Q_1),(exists [a][]Q)>) => (exists [a](and <[]Q_1,(exists [a][]Q)>)) >, a#Q_1,b#Q |- < (exists [a](and <(exists [b][]Q_1),[]Q>)) <= (and <(exists [b][]Q_1),(exists [a][]Q)>) => (exists [b](and <[]Q_1,(exists [a][]Q)>)) > } (5 on 0): { |- < (exists [a](and <[]Q,(forall [a][]Q_1)>)) <= (and <(exists [a][]Q),(forall [a][]Q_1)>) => (forall [a](and <(exists [a][]Q),[]Q_1>)) >, a#Q_1,b#Q |- < (exists [a](and <[]Q,(forall [b][]Q_1)>)) <= (and <(exists [a][]Q),(forall [b][]Q_1)>) => (forall [b](and <(exists [a][]Q),[]Q_1>)) > } (5 on 4): { |- < (exists [a](and <[]Q,(exists [a][]Q_1)>)) <= (and <(exists [a][]Q),(exists [a][]Q_1)>) => (exists [a](and <(exists [a][]Q),[]Q_1>)) >, a#Q_1,b#Q |- < (exists [a](and <[]Q,(exists [b][]Q_1)>)) <= (and <(exists [a][]Q),(exists [b][]Q_1)>) => (exists [b](and <(exists [a][]Q),[]Q_1>)) > } (5 on 5): { a#P_1 |- < (exists [a](and <[]Q_1,[]P_1>)) <= (and <(exists [a][]Q_1),[]P_1>) => (exists [a](and <[]Q_1,[]P_1>)) >, a#Q_1,a#P_1,b#P_1 |- < (exists [a](and <[(a b)]Q_1,[]P_1>)) <= (and <(exists [b][]Q_1),[]P_1>) => (exists [b](and <[]Q_1,[]P_1>)) > } (6 on 3): { |- < (exists [a](or <(forall [a][]Q_1),[]Q>)) <= (or <(forall [a][]Q_1),(exists [a][]Q)>) => (forall [a](or <[]Q_1,(exists [a][]Q)>)) >, a#Q_1,b#Q |- < (exists [a](or <(forall [b][]Q_1),[]Q>)) <= (or <(forall [b][]Q_1),(exists [a][]Q)>) => (forall [b](or <[]Q_1,(exists [a][]Q)>)) > } (6 on 6): { a#P_1 |- < (exists [a](or <[]P_1,[]Q_1>)) <= (or <[]P_1,(exists [a][]Q_1)>) => (exists [a](or <[]P_1,[]Q_1>)) >, a#Q_1,a#P_1,b#P_1 |- < (exists [a](or <[]P_1,[(a b)]Q_1>)) <= (or <[]P_1,(exists [b][]Q_1)>) => (exists [b](or <[]P_1,[]Q_1>)) > } (6 on 7): { |- < (exists [a](or <(exists [a][]Q_1),[]Q>)) <= (or <(exists [a][]Q_1),(exists [a][]Q)>) => (exists [a](or <[]Q_1,(exists [a][]Q)>)) >, a#Q_1,b#Q |- < (exists [a](or <(exists [b][]Q_1),[]Q>)) <= (or <(exists [b][]Q_1),(exists [a][]Q)>) => (exists [b](or <[]Q_1,(exists [a][]Q)>)) > } (7 on 2): { |- < (exists [a](or <[]Q,(forall [a][]Q_1)>)) <= (or <(exists [a][]Q),(forall [a][]Q_1)>) => (forall [a](or <(exists [a][]Q),[]Q_1>)) >, a#Q_1,b#Q |- < (exists [a](or <[]Q,(forall [b][]Q_1)>)) <= (or <(exists [a][]Q),(forall [b][]Q_1)>) => (forall [b](or <(exists [a][]Q),[]Q_1>)) > } (7 on 6): { |- < (exists [a](or <[]Q,(exists [a][]Q_1)>)) <= (or <(exists [a][]Q),(exists [a][]Q_1)>) => (exists [a](or <(exists [a][]Q),[]Q_1>)) >, a#Q_1,b#Q |- < (exists [a](or <[]Q,(exists [b][]Q_1)>)) <= (or <(exists [a][]Q),(exists [b][]Q_1)>) => (exists [b](or <(exists [a][]Q),[]Q_1>)) > } (7 on 7): { a#P_1 |- < (exists [a](or <[]Q_1,[]P_1>)) <= (or <(exists [a][]Q_1),[]P_1>) => (exists [a](or <[]Q_1,[]P_1>)) >, a#Q_1,a#P_1,b#P_1 |- < (exists [a](or <[(a b)]Q_1,[]P_1>)) <= (or <(exists [b][]Q_1),[]P_1>) => (exists [b](or <[]Q_1,[]P_1>)) > } (8 on 8): { |- < (forall [a](not []Q_1)) <= (not <(exists [a][]Q_1)>) => (forall [a](not []Q_1)) >, a#Q_1 |- < (forall [a](not [(a b)]Q_1)) <= (not <(exists [b][]Q_1)>) => (forall [b](not []Q_1)) > } (9 on 9): { |- < (exists [a](not []Q_1)) <= (not <(forall [a][]Q_1)>) => (exists [a](not []Q_1)) >, a#Q_1 |- < (exists [a](not [(a b)]Q_1)) <= (not <(forall [b][]Q_1)>) => (exists [b](not []Q_1)) > } BCP: |- < (forall [a](and <(forall [a][]Q_1),[]Q>)), (forall [a](and <[]Q_1,(forall [a][]Q)>)) > ===> nf(lhs):(forall [a](and <(forall [a][]Q_1),[]Q>)) and nf(rhs):(forall [a](and <[]Q_1,(forall [a][]Q)>)) are not aeq some BCP is not joinable result: NO time: 31 msec.