Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Judgment may_contain_downstream_type

judgment_fn! {
    fn may_contain_downstream_type(
        _decls: Program,
        env: Env,
        assumptions: Predicates,
        parameter: Parameter,
    ) => () {
        /* rules omitted */
    }
}

Source: crates/formality-rust/src/prove/is_local.rs:141

The number on each rule’s conclusion is positive coverage; the number on each premise is negative coverage. Click a number to browse the tests.

existential variable
LineCoverageSource
──────── ("existential variable")
154✗(may_contain_downstream_type(_decls, _env, _assumptions,
Ty::Variable(Variable::ExistentialVar(_))) => ())
rigid type parameter
LineCoverageSource
160✗(p in parameters.iter())
161✗(may_contain_downstream_type(decls, env, assumptions, p) => ())
──────── ("rigid type parameter")
163✗(may_contain_downstream_type(decls, env, assumptions,
RigidTy { name: _, parameters }) => ())
via normalize
LineCoverageSource
169✗(prove_normalize(decls, env, assumptions, parameter) => Constrained(p, c))
170N/A(let assumptions = c.substitution().apply(assumptions))
171✗(may_contain_downstream_type(decls, env, assumptions, p) => ())
──────── ("via normalize")
173✗(may_contain_downstream_type(decls, env, assumptions, parameter) => ())
forall
LineCoverageSource
178✗(scope(enter_existentially(env, binder) => (env, ty)) with()
(may_contain_downstream_type(decls, env, assumptions, ty) => ()))
──────── ("forall")
181✗(may_contain_downstream_type(decls, env, assumptions,
Ty::PredicateTy(PredicateTy::ForAll(binder))) => ())

How to read this page