structure Foo where x : Nat y : Nat := 10 @[instance] def f (x : Nat) : Foo := { x := x + x } @[instance] def g (x : Nat) : Foo := { x := x + x } opaque q : Nat → Prop example (h : q (f x).1) : q (g x).1 := by -- Projections must not bump transparency setting from `reducible` to `instances` -- Thus, the following tactic must fail fail_if_success simp [h] assumption