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

Negative coverage: prove_predicate / parameter well formed / premise prove_wf(decls, env, assumptions, p) => c

Premise at line 149. Observed failure causes: failed_judgment.

parameter well formed
LineCoverageSource
1494(prove_wf(decls, env, assumptions, p) => c)
──────── ("parameter well formed")
151204(prove_predicate(decls, env, assumptions, AtomicPredicate::WellFormed(p)) => c)

4 tests failed proving this premise:


Source location: crates/formality-rust/src/prove/test/adt_wf.rs:44 (all coverage from this test)

#[test]
fn not_well_formed_adt() {
    let assumptions: Predicates = Predicates::t();
    let goal: Parameter = term("X<u64>");
    prove(
        decls(),
        Env::default(),
        assumptions,
        AtomicPredicate::WellFormed(goal),
    )
    .assert_err(expect![[r#"
        crates/formality-rust/src/prove/prove_via.rs:9:1: no applicable rules for prove_via { goal: u64 = u32, via: Foo(u64), assumptions: {Foo(u64)}, env: Env { variables: [], bias: Soundness, pending: [], allow_pending_outlives: false } }

        crates/formality-rust/src/prove/prove_normalize.rs:55:1: no applicable rules for prove_normalize_via { goal: u64, via: Foo(u64), assumptions: {Foo(u64)}, env: Env { variables: [], bias: Soundness, pending: [], allow_pending_outlives: false } }

        crates/formality-rust/src/prove/prove_normalize.rs:55:1: no applicable rules for prove_normalize_via { goal: u32, via: Foo(u64), assumptions: {Foo(u64)}, env: Env { variables: [], bias: Soundness, pending: [], allow_pending_outlives: false } }

        the rule "trait implied bound" at (prove_predicate.rs) failed because
          expression evaluated to an empty collection: `decls.trait_invariants()`"#]]);
}
Failed proof tree

Source location: tests/drop.rs:83 (all coverage from this test)

Failed proof tree

Source location: tests/mir_typeck.rs:321 (all coverage from this test)

fn foo() -> () {
    let s2: S2<S1>;
}
Failed proof tree

Source location: tests/references.rs:13 (all coverage from this test)

Failed proof tree

How to read this page