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

Positive coverage: prove_syntactically_eq / alias

alias
LineCoverageSource
161N/A(let AliasTy { name: a_name, parameters: a_parameters } = a)
162N/A(let AliasTy { name: b_name, parameters: b_parameters } = b)
163(if a_name == b_name)
1641(zip(decls, env, assumptions, a_parameters.clone(), b_parameters.clone(), &prove_syntactically_eq) => c)
──────── ("alias")
1661(prove_syntactically_eq(decls, env, assumptions, TyData::AliasTy(a), TyData::AliasTy(b)) => c)

1 test exercised this rule:


Source location: crates/formality-rust/src/prove/prove/test/eq_assumptions.rs:126

#[test]
fn test_normalize_assoc_ty_existential1() {
    test_prove(
        Program::empty(),
        term(
            "\
            forall<T> \
            exists<A> \
            { <T as Iterator>::Item = u32 } => { <A as Iterator>::Item = u32 }",
        ),
    )
    .assert_ok(expect!["{Constraints { env: Env { variables: [!ty_1, ?ty_2], bias: Soundness, pending: [], allow_pending_outlives: false }, known_true: true, substitution: {?ty_2 => !ty_1} }}"]);
}
Proof tree