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_normalize_via at crates/formality-rust/src/prove/prove_normalize.rs:56

Signature:

prove_normalize_via(_decls: Program, env: Env, assumptions: Wcs, via: Wc, goal: Parameter,) => Constrained<Parameter>

No applicable rule observed: at least one test exercised this judgment with no matching rule.

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.

var-axiom-l
LineCoverageSource
73(if let Some(Variable::ExistentialVar(v_a)) = a.downcast())
74(if v_goal == v_a)
──────── ("var-axiom-l")
76(prove_normalize_via(_decls, env, _assumptions, Relation::Equals(a, b), Variable::ExistentialVar(v_goal)) => Constrained::none(env, b))
var-axiom-r
LineCoverageSource
80(if let Some(Variable::ExistentialVar(v_a)) = a.downcast())
81(if v_goal == v_a)
──────── ("var-axiom-r")
83(prove_normalize_via(_decls, env, _assumptions, Relation::Equals(b, a), Variable::ExistentialVar(v_goal)) => Constrained::none(env, b))
axiom-l
LineCoverageSource
95(if let None = goal.downcast::<ExistentialVar>())
96(if goal != b)
971(prove_syntactically_eq(decls, env, assumptions, a, goal) => c)
98N/A(let b = c.substitution().apply(b))
──────── ("axiom-l")
1003(prove_normalize_via(decls, env, assumptions, Relation::Equals(a, b), goal) => Constrained(b, c))
axiom-r
LineCoverageSource
104(if let None = goal.downcast::<ExistentialVar>())
105(if goal != b)
106(prove_syntactically_eq(decls, env, assumptions, a, goal) => c)
107N/A(let b = c.substitution().apply(b))
──────── ("axiom-r")
109(prove_normalize_via(decls, env, assumptions, Relation::Equals(b, a), goal) => Constrained(b, c))
forall
LineCoverageSource
115N/A(let (env, subst) = env.existential_substitution(binder))
116N/A(let via1 = binder.instantiate_with(&subst).unwrap())
117(prove_normalize_via(decls, env, assumptions, via1, goal) => Constrained(p, c))
118N/A(let c = c.pop_subst(&subst))
119(assert c.env().encloses(&p))
──────── ("forall")
121(prove_normalize_via(decls, env, assumptions, WcData::ForAll(binder), goal) => Constrained(p, c))
implies
LineCoverageSource
125(prove_normalize_via(decls, env, assumptions, wc_consequence, goal) => Constrained(p, c))
126(prove_after(decls, c, assumptions, wc_condition) => c)
127N/A(let p = c.substitution().apply(p))
──────── ("implies")
129(prove_normalize_via(decls, env, assumptions, WcData::Implies(wc_condition, wc_consequence), goal) => Constrained(p, c))