circular reasoning is a potential source of unsoundness
circular reasoning is a potential source of unsoundness
Posted Mar 30, 2026 15:05 UTC (Mon) by garyguo (subscriber, #173367)Parent article: Rust's next-generation trait solver
This can be quite worrying because it can expose the type system to circular reasoning. Trait bounds are obligations that the trait system needs to prove, and if the trait system can make use of a bound that it is proving, would the corresponding mathematical reasoning with Curry–Howard correspondence be flawed as well?
Having said that, I've tried out the example in article and it is still rejected with `-Znext-solver=globally` with "overflow evaluating the requirement `Link<MyWrapper>: Debug`", so it's a relief.
