On 5 Sep 2012, at 15:50, Ramana Kumar wrote:
> What is the usual name for this kind of relation?
>
> Given an inductive data type like
> foo = C1 of bool | C2 of foo list
>
So foo is a type of trees with arbitrary finite branching and with Boolean
labels on the leaves.
> I want to classify relations R:foo -> foo -> bool that satisfy:
> 1. equivalence R
> 2. EVERY2 R vs1 vs2 ==> R (C2 vs1) (C2 vs2)
> 3. ( R (C1 _) v ==> ?b. v = (C1 b) ) /\ ( R (C2 _) v ==> ?vs. v = (C2 vs) )
>
As I think 3 is supposed to a conjunction of two implications, I have inserted
the opening brackets before the two Rs and the matching closing brackets. If
you didn't want the brackets, then I must completely misunderstand your
question.
> Condition 1 alone is obviously an equivalence relation.
Indeed! That is a good start :-)
> I think Conditions 1 + 2 give you a "congruence relation".
Yes, assuming that EVERY2 R vs1 vs2 means that vs1 and vs2 are lists of the
same length such that for each element v1 of vs1, R v1 v2 holds for the
corresponding element of v2. I.e., in universal algebra jargon, EVERY2 R is the
congruence on lists generated by the relation that holds between singleton
lists [v1] [v2] iff R v1 v2 holds. (Here the congruence A generated by a
relation B is the smallest congruence A such that A relates every pair that B
relates).
> Any standard name or theory about 1 + 2 + 3?
> Or maybe 3 should be included for congruences?
No. Congruences have properties 1 & 2 but need not have (the analogue of)
property 3. E.g., one wants the relation "equivalent modulo 2" to be a
congruence on the natural numbers, but it relates SUC(SUC 0) to 0.
I don't know of a snappy name for congruences with properties 1, 2 & 3. I would
describe them as "congruences that refine the congruence whose congruence
classes are the ranges of the constructors". I.e., in your example, 1, 2 & 3
mean that R refines the congruence Theta, such that, for f, g in {C1, C2},
Theta (f x) (g y) holds iff f = g. (Equivalence relation A refines equivalence
relation B if every pair that A relates is also related by B).
>
> (Context: I'm trying to generalise a theorem that says some operation
> preserves values up to a suitable equivalence of values, but equivalence is
> subtle because my values include closures that contain code and other
> (environment) values, and all I really care about in the end is that they
> behave the same. In full generality this is a contextual equivalence problem,
> which I don't want to solve; and indeed the approach above would still
> require the code to be identical (since it's a different type). But it might
> be useful to prove the theorem for a class of congruence relations, rather
> than a specific one, and/or it might make the proof slightly simpler...
> And I could allow the code to vary by defining "congruence" for both the
> value and code types together...)
I can think of two more properties that might be relevant.
4. R (C2 vs1) (C2 vs2) ==> EVERY2 R vs1 vs2
5. R (C1 x) (C1 y)
So 4 is the converse of 2. 1 + 2 + 3 + 4 together say that R is generated by
its restriction to the range of C1. I.e., there is an equivalence relation S on
the leaf labels, such that two trees are related by R iff (i) they are
identical modulo leaf labels and (ii) the labels on corresponding leaves are
related by S. Finally 1 + 2 + 3 + 4 + 5 says that R is the relation "identical
modulo leaf labels".
Regards,
Rob.
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
hol-info mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/hol-info