A metamodel is a model whose instances are models.[1] A GenVoca model of a product line is a tuple whose components are features (0-ary or 1-ary functions). An extension (a.k.a. delta or refinement) of a model is a "meta-feature", which is a tuple of deltas that can modify an existing product line by modifying existing features and adding new features. As a simple example, consider GenVoca model M that contains three features a-c:
![{\displaystyle M=[a,b,c]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ec1e7cc4916e97375cc3eb943f8ad28de8e05306)
Suppose meta-model MM contains three meta-features AAA-CCC, each of which
is a tuple with a single non-identity feature:
![{\displaystyle {\begin{aligned}MM&=[AAA,BBB,CCC]\\&=[[a,0,0],[0,b,0],[0,0,c]]\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/58197c293a95cb57b3801ea609415933f9e32345)
where 0 is the null feature. Model M is constructed by adding the meta-features of MM, where + is the composition operation (see FOSD).
![{\displaystyle {\begin{aligned}M&=AAA+BBB+CCC&{\text{expression}}\\&=[a,0,0]+[0,b,0]+[0,0,c]&{\text{substitution}}\\&=[a+0+0,0+b+0,0+0+c]&{\text{composition}}\\&=[a,b,c]&{\text{simplification where }}0+x=x+0=x\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c1b2b380089a45381df13211f69345ee9243a4d4)
MM models a product line of product lines (PL**2). That is, different MM expressions correspond to GenVoca models of different product lines.