aptitude renders implicit Provides, as can be seen by versioned kernel packages getting Provides: $kernel (= $binary:Version) or rustc having a Provides: rustc:any (= $binary:Version), when shown by aptitude show. Please hide them by looking calling IsMultiArchImplicit() on the PrvIterator or DepIterator. I think the latter also has an IsImplicit() that handles more cases and might be better suited.