Take the 2-minute tour ×
English Language & Usage Stack Exchange is a question and answer site for linguists, etymologists, and serious English language enthusiasts. It's 100% free, no registration required.

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.

share|improve this question
    
The origin on Stackoverflow: stackoverflow.com/questions/16355303/… –  Riga May 3 '13 at 15:29
    
Those who do understand the terms, understand that this is Too Localized. –  Kris May 4 '13 at 5:57
add comment

2 Answers

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.

share|improve this answer
    
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
add comment

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.

share|improve this answer
    
"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
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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