fix(library/tactic/inversion_tactic): missing normalization step in the inversion_tactic

This commit is contained in:
Leonardo de Moura 2015-02-01 10:38:30 -08:00
parent d52af105d7
commit 143143e94c
2 changed files with 29 additions and 1 deletions

View file

@ -359,7 +359,7 @@ class inversion_tac {
buffer<expr> hyps;
g.get_hyps(hyps);
expr const & h = hyps.back();
expr const & h_type = mlocal_type(h);
expr const & h_type = m_tc.whnf(mlocal_type(h)).first;
buffer<expr> I_args;
expr const & I = get_app_args(h_type, I_args);
name const & I_name = const_name(I);

View file

@ -0,0 +1,28 @@
open sigma
constant hom.{l₁ l₂} {A : Type.{l₁}} {B : Type.{l₂}} (a : A) (b : B) : Type.{max l₁ l₂}
definition arrow_ob [reducible] (A B : Type) : Type :=
Σ (a : A) (b : B), hom a b
definition src1 {A B : Type} (x : arrow_ob A B) : A :=
match x with
⟨a, b, h⟩ := a
end
definition src2 {A B : Type} : arrow_ob A B → A,
src2 ⟨a, _, _⟩ := a
definition src3 {A B : Type} (x : arrow_ob A B) : A :=
match x with
⟨a, _, _⟩ := a
end
example (A B : Type) (x : arrow_ob A B) : src1 x = src2 x :=
rfl
example (A B : Type) (x : arrow_ob A B) : src1 x = src3 x :=
rfl
example (A B : Type) (x : arrow_ob A B) : src2 x = src3 x :=
rfl