Zulip Chat Archive
Stream: Equational
Topic: A question about KB with constants.
Fan Zheng (Oct 15 2024 at 16:52):
I'm playing with the online version of KBCV and I give it the following input:
m(x,y)=m(y,m(y,m(x,x))) (Equation 3352)
m(m(x,x),m(x,x))=o() (which I add myself)
and it outputs the completion:
Knuth-Bendix completion
K1 : m(m(x,x),m(x,m(x,x))) -> o()
R1 : m(x,m(x,m(y,y))) -> m(y,x)
R2 : m(m(x,x),m(x,x)) -> o()
Squier completion
C1
m(m(x,x),m(m(x,x),m(m(x,x),m(x,x)))) -R1(m(x,x),m(x,x))-> m(m(x,x),m(x,x)) -R2(x)-> o()
m(m(x,x),m(m(x,x),m(m(x,x),m(x,x)))) -m(m(x,x),R1(m(x,x),x))-> m(m(x,x),m(x,m(x,x))) -K1(x)-> o()
so is it saying that K1, R1 and R2 are complete?, but how about the following CR:
o=(xx)(xx)=(xx)((xx)((xx)(xx)))=(xx)((xx)o),
where the RHS seems irreducible?
Fan Zheng (Oct 15 2024 at 16:53):
And this even simpler one:
x(xx)=(xx)((xx)(xx))=(xx)o?
Bhavik Mehta (Oct 15 2024 at 19:48):
I'm not sure which version of KBCV you're using, but a local install terminates with error giving that one of the equations can't be oriented. Although I don't quite know why it's not orientable...
Bhavik Mehta (Oct 15 2024 at 20:31):
Playing with it by hand, I think I've shown that m(x,y) -> o() (which is clearly confluent)
Cody Roux (Oct 15 2024 at 20:41):
which version are you using?
Cody Roux (Oct 15 2024 at 20:42):
my guess is that it uses KB order or RPO/LPO/MPO, which for this kind of system is pretty much just size of terms
Bhavik Mehta (Oct 15 2024 at 20:57):
The version I'm using is LPO
Cody Roux (Oct 15 2024 at 20:57):
Yea so "lex term size" in this case
Bhavik Mehta (Oct 15 2024 at 20:58):
Does that justify why m(x,y)=m(y,m(y,m(x,x)))
can't be oriented backwards? The term size looks pretty clearly decreasing to me! Or is the idea that x
could be much larger than y
in the general case
Cody Roux (Oct 15 2024 at 20:59):
swapping variables is a good way to confuse a lex
Cody Roux (Oct 15 2024 at 21:00):
mpo might owrk
Cody Roux (Oct 15 2024 at 21:00):
(I'll leave that typo)
Cody Roux (Oct 15 2024 at 21:01):
I have a little KB completion implementation and it was hard to get right, wouldn't be horribly shocked if there was a bug in the online version
Fan Zheng (Oct 15 2024 at 21:36):
@Bhavik Mehta I'm using the online version. Playing by hand I get (substituting xx for x in xy=y(y(xx)) ) (xx)y=y(yo()), which is not orientable, right?
Cody Roux (Oct 15 2024 at 22:26):
Not with LPO, I think
Cody Roux (Oct 15 2024 at 22:27):
I'm bad at this; sometimes I use https://aprove.informatik.rwth-aachen.de/interface/v-AProVE2023/trs_aprove to figure out if a TRS terminates; it's astronomically more powerful than LPO/MPO but it gives an idea
Last updated: May 02 2025 at 03:31 UTC