From Wikipedia, the free encyclopedia

Untitled

A basic knowledge of term rewriting systems is sufficient to understand this article; the technical and other tags are simply unjustified. Dysprosia 22:28, 10 May 2006 (UTC) reply

Would a good (pedagogical) example be word forms in context-free grammars for natural languages? — Preceding unsigned comment added by 81.191.60.249 ( talk) 06:22, 17 October 2011 (UTC) reply

2 or 3

I reapplied User:Qwertyus' change in the example. The version with '3' is at least misleading, since it applies the rule twice in a single step, and the text doesn't say that can be used in this way -- one would usually expect each to mean just a single substitution. Even if there's an established usage for this, the fact that Qwertyus and I independently stumbled over this and initially thought it was wrong shows that this shouldn't be in an initial example because people can't be expected to be familiar with this usage.

"one" was also misleading, since there are several (in fact three) ways of eventually reducing the original expression to "4".

Granted, there are indeed two reductions taking place in one step, which isn't right; this could have been elucidated with a more extensive comment from Qwertyus. Maybe a better way of fixing the problem would be to add the extra step in the reduction instead of changing the reduction sequence altogether, this would demonstrate reduction more clearly. So the question is either revert and add an extra reduction step or leave it as it is? Dysprosia 07:48, 8 July 2006 (UTC) reply
Neither - I've added some plain English text to explain what it is being done. — Paul G 13:48, 27 October 2006 (UTC) reply
Make sure you are precise when you do this; the language is to speak of applying the reduction rule (more specifically, contracting redexes, but we need not get that technical here), not the function symbol that may occur. Dysprosia 14:12, 27 October 2006 (UTC) reply
The derivation was not clear to me. I believe that showing all steps is the best solution. Perhaps you could use the substitutions x' = g(4,2) and y' = g(3,1). Then
         g(g(4,2),g(3,1))
       =>g(x',y')
       =>x'
       =>g(4,2)
       =>4

Yamex5 ( talk) 17:19, 11 April 2010 (UTC) reply

Mental note

In the general vagueness and confusion that rules amongst the articles on rewriting on this wiki, it's not clear if this article wants to be about a normal form in an abstract reduction system, or in a more particular term rewriting system. Pcap ping 19:53, 11 August 2009 (UTC) reply

Strong normalization properties of the two-rule example

For the term-rewriting system { g(x,y) → x, g(x,x) → g(3,x) } in section Normal_form_(abstract_rewriting)#Examples, the recent edit summary of Xqyww123 claims that e.g. g(4,4) is not strongly normalizing. However, starting from g(4,4),

  • we can apply rule 1 to obtain g(4,4) → 4, which is in normal form, or
  • we can apply rule 2 to obtain g(4,4) → g(3,4); to the latter term, only rule 1 is applicable, yielding g(3,4) → 3, which is again in normal form.

I don't see any other possibilities.

This said, Xqyww123 did reveal a real flaw of the argument in note4: e.g. the term g(g(3,1),g(3,2)) doesn't contain g(3,3), but can be rewritten to it, and so does not stronly normalize:

  • e.g. g(g(3,1),g(3,2)) → g(3,g(3,2)) → g(3,3) → g(3,3) → ...

I guess, the argument in note4 can still be used to show at least "Every term not containing two occurrences of 3 does strongly normalize". - Jochen Burghardt ( talk) 14:47, 16 October 2022 (UTC) reply

I think there is a stronger condition, "every term that does not reduce to a term containing g(3,3)", since the metric m+n only fails to decrease on g(3,3). Mathnerd314159 ( talk) 18:48, 16 October 2022 (UTC) reply
But honestly this all seems like WP:OR, it would be better to find standard examples from the literature. Mathnerd314159 ( talk) 18:49, 16 October 2022 (UTC) reply
Agreed. - I vaguely remember that I'd not come up with this example myself, but took it from somewhere (I guessed, from "Rewrite Systems", Dershowitz, Jouannaud, p.243-320 in: Handbook of Theoretical Computer Science, Vol.B, Elsevier, 1990). However, I couldn't find the source when I looked for it recently. - Jochen Burghardt ( talk) 10:57, 17 October 2022 (UTC) reply
Well, the g(4,4) dates to Dysprosia's May 2006 initial edit, which was in the time before verifiability was really a thing. You did extend it during the cleanup but presumably you would have added a source if you had one. So it's either Baader&Nipkow or nowhere. But they introduce normal forms quite early on page 9 and don't seem to have any exercises for it. Mathnerd314159 ( talk) 17:27, 17 October 2022 (UTC) reply
So my memory fooled me; I became a Wikipedian not before 2012. Deleting the example is ok (sigh!), but we should look for a sourced example of a weakly, but not strongly normalizing system. - In your arithmetic example, you'd need an infinite system if you expect rules like "8*3 -> 24" to be found in it. Usually, natural numbers are encoded in the 0-s-notation for term rewriting, and the equations shown e.g. at Peano_axioms#Defining_arithmetic_operations_and_relations are used, oriented left-to-right into rewrite rules. The same applies to your 2 later examples (count up, Collatz). - Jochen Burghardt ( talk) 19:06, 17 October 2022 (UTC) reply
Well, we're dealing with ARSs here, not TRSs, so infinite systems are expected. I used ⇒ to distinguish that it's an ARS.
And the local!=global confluence example also shows weak != strong normalization, so I used that. I'm sure that's actually in some source but I didn't look it up. Mathnerd314159 ( talk) 19:36, 17 October 2022 (UTC) reply
Ah! Sorry, I thought strong normalization is the one that from one term all paths terminate on a unique normal form. Sorry about this... Xqyww123 ( talk) 02:32, 20 October 2022 (UTC) reply
It's fine, Wikipedia has always been the blind leading the blind. The experts get banned or rage quit after they don't win the discussions. :-) Mathnerd314159 ( talk) 03:56, 21 October 2022 (UTC) reply