constant g : nat → nat

definition f := g

example : f = g := rfl

attribute f [irreducible]

example : f = g := rfl  -- Error

example (a : nat) (H : a = g a) : f a = a :=
eq.subst H rfl -- Error

attribute f [semireducible]

example (a : nat) (H : a = g a) : f a = a :=
eq.subst H rfl -- Error

example : f = g := rfl

attribute f [reducible]

example : f = g := rfl

example (a : nat) (H : a = g a) : f a = a :=
eq.subst H rfl