Re: Using the RM for ADTs

From: Brian Selzer <>
Date: Tue, 7 Jul 2009 11:43:32 -0400
Message-ID: <caK4m.5633$>

"Roy Hann" <specially_at_processed.almost.meat> wrote in message
> Brian Selzer wrote:
>> "David BL" <> wrote in message
>>> On Jul 3, 12:58 pm, "Brian Selzer" <> wrote:
>>>> "David BL" <> wrote in message
>>>> > Consider a node to which n components are connected and n is large.
>>>> > Using pairwise connections can either be exceedingly arbitrary (by
>>>> > only representing n-1 pairs) or it makes for enormous redundancy (by
>>>> > representing all n(n-1)/2 pairs).
>>>> > I think this is much worse that the symmetry problem with resistors.
>>>> I see your point, but I still think that assigning components
>>>> artificial
>>>> identifiers is better: the unordered pairs could be replaced with or
>>>> preprocessed into a single set per node prior to the determination of
>>>> isomorphism. For example,
>>>> {resistor1:lead1,capacitor2:lead1,transistor1:lead2}
>>>> discribes a node that connects a resistor and a capacitor to the base
>>>> of
>>>> a
>>>> transistor.
>>>> The above contains the same information as the unordered pairs
>>>> {{resistor1:lead1,capacitor2:lead1},
>>>> {resistor1:lead1,transistor1:lead2}}
>>>> without either the arbitrariness or the redundancy you seek to avoid.
>>> I cannot tell which approach is better. Anyway, the point I find
>>> interesting is that in both cases nesting can ensure the schema meets
>>> the given requirements for logical equivalence of circuit values.
>> I think that this is the perfect counterexample to some of the myths that
>> are perpetuated here on cdt. It illustrates valid uses of both
>> artificial
>> identifiers and nesting. I think one would be hard pressed to come up
>> with
>> a solution that doesn't involve the use of artificial identifiers. The
>> nesting can, of course, be dispensed with through the introduction of
>> additional artificial identifiers.
> I think it is a perfect example of wondering why chisels don't make
> good screwdrivers.

I don't understand why you scoff:

Here is a case in which what defines something is how it stands in relation to other things rather than just a collection of properties. A typical circuit template may call for several 1K resistors, but apart from the resistance, precision and power rating, what defines each include the nodes that its leads are connected to. This is also a case in which what defines something is a collection of other things rather than just a collection of properties. Each node in a circuit template is defined entirely by the component leads that it connects. In a circuit template, resistors and capacitors or just components in general are not physical objects--neither are nodes, yet despite their lack of substance, it is intuitively obvious that each component or node should still be distinguishable from all other components and nodes in the same template; however, the expression of that intuition in a first-order language without assigning arbitrary names (artifical identifiers) to each component or to each node is anything but obvious.

But what I find most interesting is the compactness and lack of redundancy in the design above where each node is modeled as a single collection of two or more component leads as opposed to the one where each node is modeled as one or more uniform pairs of component leads. Of course the former would require a constraint that guarantees that the collections be pairwise disjoint. Received on Tue Jul 07 2009 - 17:43:32 CEST

Original text of this message