linear extension