-1

In computer science there is a term "refinement". Refinement is a hierarchical relationship between two concepts. If B refines A, then the requirements of B are a superset of the requirements of A. Thus, the set of abstractions that model B are a subset of those that model A, i.e., every B is an A.

At the same time there is a term "lifting". It stands for finding a concept with least requirements to fit a particular algorithm.

The question is how to describe A in terms of B if B is a refinement of "A". Similar to ancestor vs. descendant.

My guess is "A is a lifting of B". But I'm not sure I can use "a lifting" in English.

1

Depending on the exact context, it may be appropriate to write A relaxes B or A is a relaxation of B to mean B refines A or B is a refinement of A.

  • Yes, this is an explanation, but I am seeking for a word that refers not to the properties of concepts but to concepts directly. – Riga May 3 '13 at 15:34
  • thanks! This makes sense. What do you think of my suggestion? – Riga May 3 '13 at 15:38
  • "A is a lifting of B" – Riga May 3 '13 at 15:38
0

According to the Generic Programming Glossary:

Refinement is a hierarchical relationship between two concepts. If B refines A, then the requirements of B are a superset of the requirements of A. Thus, the set of abstractions that model B are a subset of those that model A, i.e., every B is an A.

And in turn:

A model is a type or set of types that meets the requirements of a concept. An integer pointer is a model of the Input Iterator concept. "Model" can also be used as a verb to describe the relationship between a type or set of types and a concept, e.g., an adjacency list models the Graph concept.

So, according to standard usage, A models B.

As for lifting:

Lifting is the process by which the differences among multiple, concrete implementations of the same algorithm are abstracted away, producing a generic algorithm.

I don't think it's quite correct to say that the inverse of refinement is lifting, since lifting concrete implementations of A and B produces some new generic entity C.

So, as far as there is an inverse of refinement, it's model.

A models B; B is a refinement of A.

  • "Models" refers to types and not to concepts, so it is not the right term to use in the context of this question. In some more details a model is a specific implementation that realizes the requirements of the concept. – Dror May 4 '13 at 19:51
  • @Dror Read the definition of refinement again; the distinction you're trying to make isn't explicit in that definition, as I read it. – Gnawme May 4 '13 at 21:26
  • I still think (and as far as I know this is also the case) refinement refers to a relation between concepts, and model refers to the properties of types. Rereading the definition that you cite seems to support this understanding of mine. – Dror May 5 '13 at 7:52
  • @Gnawme, Dror is right. – Riga May 7 '13 at 7:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.