lean4-htt/tests/lean/run/simp_univ_poly.lean
Gabriel Ebner 0c15724e8e fix(library/tactic/simplify): handle universe polymorphic simplification rules
The issue was that instantiate_mvars(infer(m)) had a metavariable, while
infer(instantiate_mvars(m)) did not.  Changing the call from assign to
is_def_eq also unifies the type, assigning the metavariable inside the
type.
2017-08-03 17:42:07 +01:00

23 lines
No EOL
765 B
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

universes u v
def equinumerous (α : Type u) (β : Type v) :=
∃ f : α → β, function.bijective f
local infix ` ≈ ` := equinumerous
@[refl] lemma refl {α} : αα := sorry
@[trans] lemma trans {α β γ} :
α ≈ β → β ≈ γαγ := sorry
@[congr] lemma equinumerous.congr_eqn {α α' β β'} :
αα' → β ≈ β' → (α ≈ β) = (α' ≈ β') := sorry
@[congr] lemma congr_sum {α α' β β'} :
αα' → β ≈ β' → (α ⊕ β) ≈ (α' ⊕ β') := sorry
@[simp] lemma eqn_ulift {α} : ulift αα := sorry
@[simp] lemma sum_empty {α} : (α ⊕ empty) ≈ α := sorry
-- rewriting `ulift empty` ==> `empty` changes the universe level
example {α : Type u} : (α ⊕ ulift empty) ≈ α := by simp