Electron liquid: Difference between revisions
en>ChrisGualtieri m TypoScan Project using AWB |
en>MZMcBride |
||
| Line 1: | Line 1: | ||
The name of the | [[Image:Koblenz im Buga-Jahr 2011 - Deutsches Eck 01.jpg|thumb|'''Pic.1:''' The name ''confluence'' is inspired from [[Confluence|geography]], meaning there the meeting of two bodies of water.]] | ||
In computer science, '''confluence''' is a property of [[rewriting]] systems, describing that terms in this system can be rewritten in more than one way, to yield the same result. This article describes the properties in the most abstract setting of an [[abstract rewriting system]]. | |||
== Motivating examples == | |||
The usual rules of elementary arithmetic form an abstract rewriting system. | |||
For example, the expression (11 + 9) × (2 + 4) can be evaluated starting either at the left or at the right parentheses; | |||
however, in both cases the same result is obtained eventually. | |||
This suggests that the arithmetic rewriting system is a confluent one. | |||
<math> | |||
\begin{array}{|rcccl|} | |||
\hline | |||
\color{MidnightBlue}{\mbox{eval left}}&&(11+9)\times(2+4)&&\color{MidnightBlue}{\mbox{eval right}}\\ | |||
&\color{MidnightBlue}{\swarrow}&&\color{MidnightBlue}{\searrow}&\\ | |||
20\times(2+4)&&&&(11+9)\times 6\\ | |||
&\color{MidnightBlue}{\searrow}&&\color{MidnightBlue}{\swarrow}&\\ | |||
\color{MidnightBlue}{\mbox{eval right}}&&20 \times 6&&\color{MidnightBlue}{\mbox{eval left}}\\ | |||
&&\color{MidnightBlue}{\downarrow}&&\\ | |||
&&120&&\\ | |||
\hline | |||
\end{array} | |||
</math> | |||
A second, more abstract example is obtained from the following proof of each [[Group_(mathematics)|group]] element equalling the [[Group_(mathematics)#Definition|inverse]] of its inverse: | |||
<ref>{{cite book| title=Deduktionsssysteme| year=1992| pages=291| publisher=Oldenbourg| editor=K. H. Bläsius and H.-J. Bürckert}}; here: p.134; axiom and proposition names follow the original text</ref> | |||
{| style="border: 1px solid grey; float: left; margin: 1em 1em;" | |||
|+ Group axioms | |||
|- | |||
| '''A1''' || 1 ⋅ ''a'' || = ''a'' | |||
|- | |||
| '''A2''' || ''a''<sup>-1</sup> ⋅ ''a'' || = 1 | |||
|- | |||
| '''A3''' || (''a'' ⋅ ''b'') ⋅ ''c'' || = ''a'' ⋅ (''b'' ⋅ ''c'') | |||
|} | |||
{| style="border: 1px solid grey; float: left; margin: 1em 1em;" | |||
|+ Proof of '''R4''': ''a''<sup>-1</sup>⋅(''a''⋅''b'') = ''b'' | |||
|- | |||
| || ''a''<sup>-1</sup> ⋅ (''a'' ⋅ ''b'') || | |||
|- | |||
| = || (''a''<sup>-1</sup> ⋅ ''a'') ⋅ ''b'' || by A3(r) | |||
|- | |||
| = || 1 ⋅ ''b'' || by A2 | |||
|- | |||
| = || ''b'' || by A1 | |||
|} | |||
{| style="border: 1px solid grey; float: left; margin: 1em 1em;" | |||
|+ Proof of '''R6''': (''a''<sup>-1</sup>)<sup>-1</sup> ⋅ 1 = ''a'' | |||
|- | |||
| || (''a''<sup>-1</sup>)<sup>-1</sup> ⋅ 1 || | |||
|- | |||
| = || (''a''<sup>-1</sup>)<sup>-1</sup> ⋅ (''a''<sup>-1</sup> ⋅ ''a'') || by A2(r) | |||
|- | |||
| = || ''a'' || by R4 | |||
|} | |||
{| style="border: 1px solid grey; float: left; margin: 1em 1em;" | |||
|+ Proof of '''R10''': (''a''<sup>-1</sup>)<sup>-1</sup> ⋅ ''b'' = ''a'' ⋅ ''b'' | |||
|- | |||
| || (''a''<sup>-1</sup>)<sup>-1</sup> ⋅ ''b'' || | |||
|- | |||
| = || (''a''<sup>-1</sup>)<sup>-1</sup> ⋅ (''a''<sup>-1</sup> ⋅ (''a'' ⋅ ''b'')) || by R4(r) | |||
|- | |||
| = || ''a'' ⋅ ''b'' || by R4 | |||
|} | |||
{| style="border: 1px solid grey; float: left; margin: 1em 1em;" | |||
|+ Proof of '''R11''': ''a'' ⋅ 1 = ''a'' | |||
|- | |||
| || ''a'' ⋅ 1 || | |||
|- | |||
| = || (''a''<sup>-1</sup>)<sup>-1</sup> ⋅ 1 || by R10(r) | |||
|- | |||
| = || ''a'' || by R6 | |||
|} | |||
{| style="border: 1px solid grey; float: left; margin: 1em 1em;" | |||
|+ Proof of '''R12''': (''a''<sup>-1</sup>)<sup>-1</sup> = ''a'' | |||
|- | |||
| || (''a''<sup>-1</sup>)<sup>-1</sup> || | |||
|- | |||
| = || (''a''<sup>-1</sup>)<sup>-1</sup> ⋅ 1 || by R11(r) | |||
|- | |||
| = || ''a'' || by R6 | |||
|} | |||
{{clear}} | |||
This proof starts from the given group axioms A1-A3, and establishes five propositions R4, R6, R10, R11, and R12, each of them using some earlier ones, and R12 being the main theorem. Some of the proofs require non-obvious, if not creative, steps, like applying axiom A2 in reverse, thereby rewriting "1" to "''a''<sup>-1</sup> ⋅ a" in the first step of R6's proof. One of the historical motivations to develop the ''theory of term rewriting'' was to avoid the need for such steps, which are difficult to find by an unexperienced human, let alone by a computer program. | |||
If a [[Term_rewriting#Term_rewriting_systems|term rewriting system]] is '''confluent''' and ''[[Rewriting#Termination|terminating]]'', a straight-forward method exists to prove equality between two expressions (a.k.a. ''[[term (logic)|terms]]'') ''s'' and ''t'': | |||
Starting with ''s'', apply equalities<ref group=note>then called ''rewrite rules'' to emphasize their left-to-right orientation</ref> from left to right as long as possible, eventually obtaining a term ''s’''. | |||
Obtain from ''t'' a term ''t’'' in a similar way. | |||
If both terms ''s’'' and ''t’'' literally agree, then ''s'' and ''t'' are (not surprisingly) proven equal. | |||
More important, if they disagree, ''s'' and ''t'' cannot be equal. | |||
That is, any two terms ''s'' and ''t'' that can be proven equal at all, can be so by that method. | |||
The success of that method doesn't depend on a certain sophisticated order in which to apply rewrite rules, as '''confluence''' ensures that any sequence of rule applications will eventually lead to the same result (while the ''termination'' property ensures that any sequence will eventually reach an end at all). Therefore, if a confluent and terminating term rewriting system can be provided for some equational theory,<ref group=note>The [[Knuth–Bendix completion algorithm]] can be used to compute such a system from a given set of equations. Such a system e.g. for groups is shown [[Word problem (mathematics)#Example: A term rewriting system to decide the word problem in the free group|here]], with its propositions consistently numbered. Using it, a proof of e.g. R6 consists in applying R11 and R12 in any order to (''a''<sup>-1</sup>)<sup>-1</sup>⋅1 to obtain ''a''.; no other rules are applicable.</ref> | |||
not a tinge of creativity is required to perform proofs of term equality; that task hence becomes amenable to computer programs. Modern approaches handle more general ''abstract rewriting systems'' rather than ''term'' rewriting systems; the latter are a special case of the former. | |||
== General case and theory == | |||
[[Image:Confluence.svg|right|Pic.2: Confluence diagram|200px|thumb|In this diagram, {{mvar|a}} reduces to both {{mvar|b}} or {{mvar|c}} in zero or more rewrite steps (denoted by the asterisk). In order for the rewrite relation to be confluent, both reducts must in turn reduce to some common {{mvar|d}}.]] | |||
A rewriting system can be expressed as a directed graph in which nodes represent expressions and edges represent rewrites. So, for example, if the expression ''a'' can be rewritten into ''b'', then we say that ''b'' is a ''reduct'' of ''a'' (alternatively, ''a'' ''reduces to'' ''b'', or ''b'' is an ''expansion'' of ''a''). This is represented using arrow notation; ''a'' → ''b'' indicates that ''a'' reduces to ''b''. Intuitively, this means that the corresponding graph has a directed edge from ''a'' to ''b''. | |||
If there is a path between two graph nodes ''c'' and ''d'', then the intermediate nodes form a ''reduction sequence''. So, for instance, if ''c'' → ''c''’ → ''c''’’ → ... → ''d''’ → ''d'', then we can write ''c'' →<sup>*</sup> ''d'', indicating the existence of a reduction sequence from ''c'' to ''d''. Formally, →<sup>*</sup> is the [[Closure (mathematics)#P closures of binary relations|reflexive-transitive closure]] of →. Using the example from the previous paragraph, we have (11+9)×(2+4) → 20×(2+4) and 20×(2+4) → 20×6, so (11+9)×(2+4) →<sup>*</sup> 20×6. | |||
With this established, confluence can be defined as follows. Let ''a'', ''b'', ''c'' ∈ ''S'', with ''a'' →<sup>*</sup> ''b'' and ''a'' →<sup>*</sup> ''c''. ''a'' is deemed confluent if there exists a ''d'' ∈ ''S'' with ''b'' →<sup>*</sup> ''d'' and ''c'' →<sup>*</sup> ''d''. If every ''a'' ∈ ''S'' is confluent, we say that → is confluent, or has the ''Church-Rosser property''. This property is also sometimes called the ''diamond property'', after the shape of the diagram shown on the right. Some authors reserve the term ''diamond property'' for a variant of the diagram with single reductions everywhere; that is, whenever ''a'' → ''b'' and ''a'' → ''c'', there must exist a ''d'' such that ''b'' → ''d'' and ''c'' → ''d''. The single-reduction variant is strictly stronger than the multi-reduction one. | |||
=== Local confluence === | |||
[[File:Cyclic locally, but not globally confluent rewrite system.gif|thumb|'''Pic.3:''' Cyclic locally, but not globally confluent rewrite system]] | |||
[[File:Non-cyclic locally, but not globally confluent rewrite system.gif|thumb|'''Pic.4:''' Non-cyclic locally, but not globally confluent rewrite system]] | |||
An element ''a'' ∈ ''S'' is said to be locally (or weakly) confluent if for all ''b'', ''c'' ∈ ''S'' with ''a'' → ''b'' and ''a'' → ''c'' there exists ''d'' ∈ ''S'' with ''b'' →<sup>*</sup> ''d'' and ''c'' →* ''d''. If every ''a'' ∈ ''S'' is locally confluent, then → is called locally (or weakly) confluent, or having the ''weak Church-Rosser property''. This is different from confluence in that ''b'' and ''c'' must be reduced from ''a'' in one step. In analogy with this, confluence is sometimes referred to as ''global confluence''. | |||
The relation →<sup>*</sup>, introduced as a notation for reduction sequences, may be viewd as a rewriting system in its own right, whose relation is the [[Closure_(mathematics)#P_closures_of_binary_relations|reflexive-transitive closure]] of ''→''. Since a sequence of reduction sequences is again a reduction sequence (or, equivalently, since forming the reflexive-transitive closure is [[idempotence#Unary operation|idempotent]]), →<sup>*</sup><sup>*</sup> = →<sup>*</sup>. It follows that → is confluent if and only if →<sup>*</sup> is locally confluent. | |||
A rewriting system may be locally confluent without being (globally) confluent. Examples are shown in picture 3 and 4. However, [[Newman's lemma]] states that if a locally confluent rewriting system has no infinite reduction sequences (in which case it is said to be ''terminating'' or ''strongly normalizing''), then it is globally confluent. | |||
=== Semi-confluence === | |||
The definition of local confluence differs from that of global confluence in that only elements reached from a given element in a single rewriting step are considered. By considering one element reached in a single step and another element reached by an arbitrary sequence, we arrive at the intermediate concept of semi-confluence: ''a'' ∈ ''S'' is said to be semi-confluent if for all ''b'', ''c'' ∈ ''S'' with ''a'' → ''b'' and ''a'' →<sup>*</sup> ''c'' there exists ''d'' ∈ ''S'' with ''b'' →<sup>*</sup> ''d'' and ''c'' →<sup>*</sup> ''d''; if every ''a'' ∈ ''S'' is semi-confluent, we say that → is semi-confluent. | |||
A semi-confluent element need not be confluent, but a semi-confluent rewriting system is necessarily confluent. | |||
=== Strong confluence === | |||
Strong confluence is another variation on local confluence that allows us to conclude that a rewriting system is globally confluent. An element ''a'' ∈ ''S'' is said to be strongly confluent if for all ''b'', ''c'' ∈ ''S'' with ''a'' → ''b'' and ''a'' → ''c'' there exists ''d'' ∈ ''S'' with ''b'' →<sup>*</sup> ''d'' and either ''c'' → ''d'' or ''c'' = ''d''; if every ''a'' ∈ ''S'' is strongly confluent, we say that → is strongly confluent. | |||
A strongly confluent element need not be confluent, but a strongly confluent rewriting system is necessarily confluent. | |||
== Examples of confluent systems == | |||
* Reduction of polynomials modulo an ideal is a confluent rewrite system provided one works with a [[Gröbner basis]]. | |||
* [[Matsumoto's theorem (group theory)|Matsumoto's theorem]] follows from confluence of the braid relations. | |||
== See also == | |||
* [[convergence (logic)]] | |||
* [[critical pair (logic)]] | |||
* [[Church–Rosser theorem]] | |||
== Notes == | |||
{{reflist|group=note}} | |||
== References == | |||
* ''Term Rewriting Systems'', Terese, Cambridge Tracts in Theoretical Computer Science, 2003. | |||
* ''Term Rewriting and All That'', Franz Baader and Tobias Nipkow, Cambridge University Press, 1998 | |||
{{reflist}} | |||
==External links== | |||
* {{MathWorld | urlname=Confluent | title=Confluent}} | |||
{{DEFAULTSORT:Confluence (Abstract Rewriting)}} | |||
[[Category:Rewriting systems]] | |||
Latest revision as of 12:09, 24 December 2012

In computer science, confluence is a property of rewriting systems, describing that terms in this system can be rewritten in more than one way, to yield the same result. This article describes the properties in the most abstract setting of an abstract rewriting system.
Motivating examples
The usual rules of elementary arithmetic form an abstract rewriting system. For example, the expression (11 + 9) × (2 + 4) can be evaluated starting either at the left or at the right parentheses; however, in both cases the same result is obtained eventually. This suggests that the arithmetic rewriting system is a confluent one.
A second, more abstract example is obtained from the following proof of each group element equalling the inverse of its inverse: [1]
| A1 | 1 ⋅ a | = a |
| A2 | a-1 ⋅ a | = 1 |
| A3 | (a ⋅ b) ⋅ c | = a ⋅ (b ⋅ c) |
| a-1 ⋅ (a ⋅ b) | ||
| = | (a-1 ⋅ a) ⋅ b | by A3(r) |
| = | 1 ⋅ b | by A2 |
| = | b | by A1 |
| (a-1)-1 ⋅ 1 | ||
| = | (a-1)-1 ⋅ (a-1 ⋅ a) | by A2(r) |
| = | a | by R4 |
| (a-1)-1 ⋅ b | ||
| = | (a-1)-1 ⋅ (a-1 ⋅ (a ⋅ b)) | by R4(r) |
| = | a ⋅ b | by R4 |
| a ⋅ 1 | ||
| = | (a-1)-1 ⋅ 1 | by R10(r) |
| = | a | by R6 |
| (a-1)-1 | ||
| = | (a-1)-1 ⋅ 1 | by R11(r) |
| = | a | by R6 |
50 year old Petroleum Engineer Kull from Dawson Creek, spends time with interests such as house brewing, property developers in singapore condo launch and camping. Discovers the beauty in planing a trip to places around the entire world, recently only coming back from . This proof starts from the given group axioms A1-A3, and establishes five propositions R4, R6, R10, R11, and R12, each of them using some earlier ones, and R12 being the main theorem. Some of the proofs require non-obvious, if not creative, steps, like applying axiom A2 in reverse, thereby rewriting "1" to "a-1 ⋅ a" in the first step of R6's proof. One of the historical motivations to develop the theory of term rewriting was to avoid the need for such steps, which are difficult to find by an unexperienced human, let alone by a computer program.
If a term rewriting system is confluent and terminating, a straight-forward method exists to prove equality between two expressions (a.k.a. terms) s and t: Starting with s, apply equalities[note 1] from left to right as long as possible, eventually obtaining a term s’. Obtain from t a term t’ in a similar way. If both terms s’ and t’ literally agree, then s and t are (not surprisingly) proven equal. More important, if they disagree, s and t cannot be equal. That is, any two terms s and t that can be proven equal at all, can be so by that method.
The success of that method doesn't depend on a certain sophisticated order in which to apply rewrite rules, as confluence ensures that any sequence of rule applications will eventually lead to the same result (while the termination property ensures that any sequence will eventually reach an end at all). Therefore, if a confluent and terminating term rewriting system can be provided for some equational theory,[note 2] not a tinge of creativity is required to perform proofs of term equality; that task hence becomes amenable to computer programs. Modern approaches handle more general abstract rewriting systems rather than term rewriting systems; the latter are a special case of the former.
General case and theory

A rewriting system can be expressed as a directed graph in which nodes represent expressions and edges represent rewrites. So, for example, if the expression a can be rewritten into b, then we say that b is a reduct of a (alternatively, a reduces to b, or b is an expansion of a). This is represented using arrow notation; a → b indicates that a reduces to b. Intuitively, this means that the corresponding graph has a directed edge from a to b.
If there is a path between two graph nodes c and d, then the intermediate nodes form a reduction sequence. So, for instance, if c → c’ → c’’ → ... → d’ → d, then we can write c →* d, indicating the existence of a reduction sequence from c to d. Formally, →* is the reflexive-transitive closure of →. Using the example from the previous paragraph, we have (11+9)×(2+4) → 20×(2+4) and 20×(2+4) → 20×6, so (11+9)×(2+4) →* 20×6.
With this established, confluence can be defined as follows. Let a, b, c ∈ S, with a →* b and a →* c. a is deemed confluent if there exists a d ∈ S with b →* d and c →* d. If every a ∈ S is confluent, we say that → is confluent, or has the Church-Rosser property. This property is also sometimes called the diamond property, after the shape of the diagram shown on the right. Some authors reserve the term diamond property for a variant of the diagram with single reductions everywhere; that is, whenever a → b and a → c, there must exist a d such that b → d and c → d. The single-reduction variant is strictly stronger than the multi-reduction one.
Local confluence


An element a ∈ S is said to be locally (or weakly) confluent if for all b, c ∈ S with a → b and a → c there exists d ∈ S with b →* d and c →* d. If every a ∈ S is locally confluent, then → is called locally (or weakly) confluent, or having the weak Church-Rosser property. This is different from confluence in that b and c must be reduced from a in one step. In analogy with this, confluence is sometimes referred to as global confluence.
The relation →*, introduced as a notation for reduction sequences, may be viewd as a rewriting system in its own right, whose relation is the reflexive-transitive closure of →. Since a sequence of reduction sequences is again a reduction sequence (or, equivalently, since forming the reflexive-transitive closure is idempotent), →** = →*. It follows that → is confluent if and only if →* is locally confluent.
A rewriting system may be locally confluent without being (globally) confluent. Examples are shown in picture 3 and 4. However, Newman's lemma states that if a locally confluent rewriting system has no infinite reduction sequences (in which case it is said to be terminating or strongly normalizing), then it is globally confluent.
Semi-confluence
The definition of local confluence differs from that of global confluence in that only elements reached from a given element in a single rewriting step are considered. By considering one element reached in a single step and another element reached by an arbitrary sequence, we arrive at the intermediate concept of semi-confluence: a ∈ S is said to be semi-confluent if for all b, c ∈ S with a → b and a →* c there exists d ∈ S with b →* d and c →* d; if every a ∈ S is semi-confluent, we say that → is semi-confluent.
A semi-confluent element need not be confluent, but a semi-confluent rewriting system is necessarily confluent.
Strong confluence
Strong confluence is another variation on local confluence that allows us to conclude that a rewriting system is globally confluent. An element a ∈ S is said to be strongly confluent if for all b, c ∈ S with a → b and a → c there exists d ∈ S with b →* d and either c → d or c = d; if every a ∈ S is strongly confluent, we say that → is strongly confluent.
A strongly confluent element need not be confluent, but a strongly confluent rewriting system is necessarily confluent.
Examples of confluent systems
- Reduction of polynomials modulo an ideal is a confluent rewrite system provided one works with a Gröbner basis.
- Matsumoto's theorem follows from confluence of the braid relations.
See also
Notes
43 year old Petroleum Engineer Harry from Deep River, usually spends time with hobbies and interests like renting movies, property developers in singapore new condominium and vehicle racing. Constantly enjoys going to destinations like Camino Real de Tierra Adentro.
References
- Term Rewriting Systems, Terese, Cambridge Tracts in Theoretical Computer Science, 2003.
- Term Rewriting and All That, Franz Baader and Tobias Nipkow, Cambridge University Press, 1998
43 year old Petroleum Engineer Harry from Deep River, usually spends time with hobbies and interests like renting movies, property developers in singapore new condominium and vehicle racing. Constantly enjoys going to destinations like Camino Real de Tierra Adentro.
External links
I had like 17 domains hosted on single account, and never had any special troubles. If you are not happy with the service you will get your money back with in 45 days, that's guaranteed. But the Search Engine utility inside the Hostgator account furnished an instant score for my launched website. Fantastico is unable to install WordPress in a directory which already have any file i.e to install WordPress using Fantastico the destination directory must be empty and it should not have any previous installation files. When you share great information, others will take note. Once your hosting is purchased, you will need to setup your domain name to point to your hosting. Money Back: All accounts of Hostgator come with a 45 day money back guarantee. If you have any queries relating to where by and how to use Hostgator Discount Coupon, you can make contact with us at our site. If you are starting up a website or don't have too much website traffic coming your way, a shared plan is more than enough. Condition you want to take advantage of the worldwide web you prerequisite a HostGator web page, -1 of the most trusted and unfailing web suppliers on the world wide web today. Since, single server is shared by 700 to 800 websites, you cannot expect much speed.
Hostgator tutorials on how to install Wordpress need not be complicated, especially when you will be dealing with a web hosting service that is friendly for novice webmasters and a blogging platform that is as intuitive as riding a bike. After that you can get Hostgator to host your domain and use the wordpress to do the blogging. Once you start site flipping, trust me you will not be able to stop. I cut my webmaster teeth on Control Panel many years ago, but since had left for other hosting companies with more commercial (cough, cough) interfaces. If you don't like it, you can chalk it up to experience and go on. First, find a good starter template design. When I signed up, I did a search for current "HostGator codes" on the web, which enabled me to receive a one-word entry for a discount. Your posts, comments, and pictures will all be imported into your new WordPress blog.
- ↑ 20 year-old Real Estate Agent Rusty from Saint-Paul, has hobbies and interests which includes monopoly, property developers in singapore and poker. Will soon undertake a contiki trip that may include going to the Lower Valley of the Omo.
My blog: http://www.primaboinca.com/view_profile.php?userid=5889534; here: p.134; axiom and proposition names follow the original text
Cite error: <ref> tags exist for a group named "note", but no corresponding <references group="note"/> tag was found