Positive coverage: prove_predicate / trait implied bound
trait implied bound| Line | Coverage | Source |
|---|---|---|
| 106 | 19 | (ti in decls.trait_invariants()) |
| 107 | ✗ | (scope(enter_existentially_with_constraints(env, &ti.binder) => (env, ti)) with(c) (prove_via(decls, env, assumptions, &ti.where_clause, trait_ref) => c) (prove_after(decls, c, assumptions, &ti.trait_ref) => c)) |
| ──────── ("trait implied bound") | ||
| 111 | 1 | (prove_predicate(decls, env, assumptions, AtomicPredicate::IsImplemented(trait_ref)) => c) |
1 test exercised this rule:
Source location: crates/formality-rust/src/prove/test/eq_partial_eq.rs:25 (all coverage from this test)
#[test]
fn eq_implies_partial_eq() {
let assumptions: Predicates = Predicates::t();
let goal: Predicate = term("for<T> if {Eq(T)} PartialEq(T)");
let constraints = prove(decls(), (), assumptions, goal);
constraints.assert_ok(
expect!["{Constraints { env: Env { variables: [], bias: Soundness, pending: [], allow_pending_outlives: false }, known_true: true, substitution: {} }}"]);
}
Proof tree
prove_predicate_list (some)prove_predicate_list.rs:28args
prove_predicate (forall)prove_predicate.rs:36args
scopeprove_predicate.rs:22prove_predicate (implies)prove_predicate.rs:42args
prove_predicate (trait implied bound)prove_predicate.rs:110args
scopeprove_predicate.rs:22prove_via (predicate-congruence-axiom)prove_via.rs:33args
prove_predicate_list (some)prove_predicate_list.rs:28args
prove_predicate (eq)prove_predicate.rs:116args
prove_eq (existential)prove_eq.rs:63args
prove_existential_var_eq (existential-universal)prove_eq.rs:141args
prove_after (prove_after)prove_after.rs:20args
prove_predicate_list (none)prove_predicate_list.rs:21args
prove_after (prove_after)prove_after.rs:20args
prove_predicate_list (some)prove_predicate_list.rs:28args
prove_predicate (assumption)prove_predicate.rs:49args
prove_via (predicate-congruence-axiom)prove_via.rs:33args
prove_predicate_list (some)prove_predicate_list.rs:28args
prove_predicate (eq)prove_predicate.rs:116args
prove_after (prove_after)prove_after.rs:20args
prove_predicate_list (none)prove_predicate_list.rs:21args
prove_after (prove_after)prove_after.rs:20args
prove_predicate_list (none)prove_predicate_list.rs:21args
prove_after (prove_after)prove_after.rs:20args
prove_predicate_list (none)prove_predicate_list.rs:21args