open subtype example (f : nat → nat) (a b : nat) : f a = a → f (f a) = a :=
begin
  intro h₁,
  subst h₁ -- ERROR
end

open nat

example (f : nat → nat) (a b : nat) : f a = a → a = 0 → f (f a) = a :=
begin
  intro h₁ h₂,
  subst a, -- should use h₂
  rewrite +h₁
end