[prev in list] [next in list] [prev in thread] [next in thread]
List: darcs-conflicts
Subject: Re: [darcs-conflicts] conflictor plan, part 3: conflictor commutation
From: Marnix Klooster <marnix.klooster () gmail ! com>
Date: 2005-04-30 20:20:25
Message-ID: 4273E889.2040507 () gmail ! com
[Download RAW message or body]
David Roundy wrote:
>On Thu, Apr 28, 2005 at 08:58:17PM +0200, Marnix Klooster wrote:
>
>
>>Hello David,
>>
>>Just like Ian, I don't quite get the following. You wrote (slightly
>>edited for new notation):
>>
>>
>>
>>>We define
>>>
>>>B || [A,C] => B[AB,C]
>>>
>>>so the total merge is
>>>
>>>(AB || C) => AB[AB,C]
>>>
>>>In terms of commutation, this means that
>>>
>>>inv(B)[A,C] <-> c[AB,C]inv([C,AB])
>>>
>>>Note that I've also now introduced a third patch, [C,AB], in which the
>>>sequence shows up in the second "this patch" part.
>>>
>>>
>>>
>>Can you explain the "this means that" step in more detail? I see that
>>
>> (AB)+C = AB[AB,C]
>> (AB)+C = C[C,AB]
>>
>>
>
>(tentatively switching to a variant of Ian's modified conflictor notation,
>where [C,AB] is [C;A,B] and [C,A] is [C;A])
>
>The second isn't true if A and B are separate patches (since patch number
>is conserved on merge),
>
>AB+C = C[C;A][C;A,B]
>
>This can then be commuted in two steps
>
>C[C;A][C;A,B] <-> (easy) A[A,C][C;A,B] <-> (by above merge) AB[AB;C]
>
>So if we take the second commute
>
>[A;C][C;A,B] <-> B[AB;C] and apply the property that a commute with a patch
>and its inverse makes no chanch (except to the patch and its inverse)--I
>think this is your 'juggle axiom'--then
>
>inv(B)[A;C] <-> [AB;C]inv([C;A,B])
>
>
Aha! Now I'm clear why I was confused. When writing [C,AB] you meant a
relationship between *three* patches, whily I meant one between two
patches, where one (AB) was 'accidentally' composed of two sub-patches.
In my own notation, you just showed me that we have the following law
(axiom, I think):
<C,AB> = <C,A><C+A,B>
where A, B, and C are patches (or expressions that result in patches).
Justification: if we add C to the context of AB, then we first add C to
the context of A, resulting in <C,A>; and then we add C<C,A> (= C+A) to
the context of B.
Groetjes,
<><
Marnix
_______________________________________________
darcs-conflicts mailing list
darcs-conflicts@darcs.net
http://www.abridgegame.org/cgi-bin/mailman/listinfo/darcs-conflicts
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic