Zulip Chat Archive
Stream: mathlib4
Topic: Question with a notation of type-classes?
Sina Hazratpour 𓃵 (Dec 23 2024 at 20:10):
I am not sure if I understand the square brackets around the field exact : ExactPairing X rightDual in the type class below correctly. And, I could not find anything related to it on the Lean Language Reference.
class HasLeftDual (Y : C) where
  /-- The left dual of the object `X`. -/
  leftDual : C
  [exact : ExactPairing leftDual Y]
Is it supposed to be the same as exact : ExactPairing leftDual Y := by infer_instance or does something different?
Soundwave (Dec 23 2024 at 20:54):
Indeed, all the binders work in the class context as they do in others:
class Foo (α : Type) where
  foo : α
class Bar (α : Type) where
  {bar : Prop}
  baz : bar
  bax : α
class Qux (α : Type) where
  qux : α
  [foo : Foo α]
instance foo : Foo Nat where
  foo := 2
instance bar : Bar Nat where
  baz : 2 = 2 := by rfl
  bax := 2
instance qux : Qux Nat where
  qux := 1
#eval qux.foo.foo
Last updated: May 02 2025 at 03:31 UTC