Negative coverage: prove_wc_list / some / premise prove_after(decls, c, assumptions, wcs1) => c
Premise at line 27. Observed failure causes: failed_judgment.
some| Line | Coverage | Source |
|---|---|---|
| 26 | 44 | (prove_wc(decls, env, assumptions, wc0) => c) |
| 27 | 2 | (prove_after(decls, c, assumptions, wcs1) => c) |
| ──────── ("some") | ||
| 29 | 171 | (prove_wc_list(decls, env, assumptions, Cons(wc0, wcs1)) => c) |
2 tests failed proving this premise:
Source location: crates/formality-rust/src/prove/test/occurs_check.rs:48
#[test]
fn indirect_cycle_1() {
test_prove(decls(), term("exists<A, B> {} => {A = Vec<B>, B = A}")).assert_err(expect![[r#"
failed at (proven_set.rs) because
`?ty_0` occurs in `Vec<?ty_0>`
crates/formality-rust/src/prove/prove_normalize.rs:20:1: no applicable rules for prove_normalize { p: ?ty_0, assumptions: {}, env: Env { variables: [?ty_0], bias: Soundness, pending: [], allow_pending_outlives: false } }
crates/formality-rust/src/prove/prove_normalize.rs:20:1: no applicable rules for prove_normalize { p: Vec<?ty_0>, assumptions: {}, env: Env { variables: [?ty_0], bias: Soundness, pending: [], allow_pending_outlives: false } }"#]]);
}
Failed proof tree
prove failedtest_util.rs:57args
ruletest_util.rs:57prove_wc_list failedprove_wc_list.rs:8args
rule "some"prove_wc_list.rs:27prove_after failedprove_after.rs:8args
rule "prove_after"prove_after.rs:19prove failedprove_after.rs:19args
ruleprove_after.rs:19prove_wc_list failedprove_wc_list.rs:8args
rule "some"prove_wc_list.rs:26prove_wc failedprove_wc.rs:21args
rule "eq"prove_wc.rs:125prove_eq failedprove_eq.rs:23args
rule "existential"prove_eq.rs:62prove_existential_var_eq failedprove_eq.rs:76args
rule "existential-nonvar"prove_eq.rs:95equate_variable failedprove_eq.rs:95ruleproven_set.rs:57 (failed: inapplicable)
rule "normalize-l"prove_eq.rs:68prove_normalize failedprove_normalize.rs:20args
rule "symmetric"prove_eq.rs:38prove_eq failedprove_eq.rs:23args
rule "normalize-l"prove_eq.rs:68prove_normalize failedprove_normalize.rs:20args
Source location: crates/formality-rust/src/prove/test/occurs_check.rs:60
#[test]
fn indirect_cycle_2() {
test_prove(decls(), term("exists<A, B> {} => {B = A, A = Vec<B>}")).assert_err(expect![[r#"
failed at (proven_set.rs) because
`?ty_0` occurs in `Vec<?ty_0>`
crates/formality-rust/src/prove/prove_normalize.rs:20:1: no applicable rules for prove_normalize { p: ?ty_0, assumptions: {}, env: Env { variables: [?ty_0], bias: Soundness, pending: [], allow_pending_outlives: false } }
crates/formality-rust/src/prove/prove_normalize.rs:20:1: no applicable rules for prove_normalize { p: Vec<?ty_0>, assumptions: {}, env: Env { variables: [?ty_0], bias: Soundness, pending: [], allow_pending_outlives: false } }"#]]);
}
Failed proof tree
prove failedtest_util.rs:57args
ruletest_util.rs:57prove_wc_list failedprove_wc_list.rs:8args
rule "some"prove_wc_list.rs:27prove_after failedprove_after.rs:8args
rule "prove_after"prove_after.rs:19prove failedprove_after.rs:19args
ruleprove_after.rs:19prove_wc_list failedprove_wc_list.rs:8args
rule "some"prove_wc_list.rs:26prove_wc failedprove_wc.rs:21args
rule "eq"prove_wc.rs:125prove_eq failedprove_eq.rs:23args
rule "existential"prove_eq.rs:62prove_existential_var_eq failedprove_eq.rs:76args
rule "existential-nonvar"prove_eq.rs:95equate_variable failedprove_eq.rs:95ruleproven_set.rs:57 (failed: inapplicable)
rule "normalize-l"prove_eq.rs:68prove_normalize failedprove_normalize.rs:20args
rule "symmetric"prove_eq.rs:38prove_eq failedprove_eq.rs:23args
rule "normalize-l"prove_eq.rs:68prove_normalize failedprove_normalize.rs:20args