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 prove_eq

judgment_fn! {
    pub fn prove_eq(
        _decls: Program,
        env: Env,
        assumptions: Predicates,
        a: Parameter,
        b: Parameter,
    ) => Constraints {
        /* rules omitted */
    }
}

Source: crates/formality-rust/src/prove/prove_eq.rs:23

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.

symmetric
LineCoverageSource
3817(prove_eq(decls, env, assumptions, r, l) => env_c)
──────── ("symmetric")
40220(prove_eq(decls, env, assumptions, l, r) => env_c)
rigid
LineCoverageSource
44N/A(let RigidTy { name: a_name, parameters: a_parameters } = a)
45N/A(let RigidTy { name: b_name, parameters: b_parameters } = b)
46✗(if a_name == b_name)
471(prove(decls, env, assumptions, Predicates::all_eq(a_parameters, b_parameters)) => c)
──────── ("rigid")
49201(prove_eq(decls, env, assumptions, Ty::RigidTy(a), Ty::RigidTy(b)) => c)
alias
LineCoverageSource
53N/A(let AliasTy { name: a_name, parameters: a_parameters } = a)
54N/A(let AliasTy { name: b_name, parameters: b_parameters } = b)
55✗(if a_name == b_name)
561(prove(decls, env, assumptions, Predicates::all_eq(a_parameters, b_parameters)) => env_c)
──────── ("alias")
581(prove_eq(decls, env, assumptions, Ty::AliasTy(a), Ty::AliasTy(b)) => env_c)
existential
LineCoverageSource
625(prove_existential_var_eq(decls, env, assumptions, v, r) => c)
──────── ("existential")
64223(prove_eq(decls, env, assumptions, Variable::ExistentialVar(v), r) => c)
normalize-l
LineCoverageSource
6817(prove_normalize(decls, env, assumptions, x) => Constrained(y, c))
693(prove_after(decls, c, assumptions, eq(y, z)) => c)
──────── ("normalize-l")
7126(prove_eq(decls, env, assumptions, x, z) => c)

How to read this page