16 lines
536 B
Text
16 lines
536 B
Text
class HasMulComm (α : Type u) [Mul α] : Prop where
|
||
mulComm : {a b : α} → a * b = b * a
|
||
|
||
class A (α : Type u) extends Mul α
|
||
attribute [instance] A.mk
|
||
|
||
class B (α : Type u) extends A α, HasMulComm α
|
||
attribute [instance] B.mk
|
||
|
||
example [Mul α] : A α := inferInstance
|
||
example [Mul α] [HasMulComm α] : A α := inferInstance
|
||
example [B α] : A α := inferInstance
|
||
|
||
example [A α] [HasMulComm α] : B α := inferInstance
|
||
example [Mul α] [HasMulComm α] : B α := inferInstance
|
||
example [Mul α] [HasMulComm α] : B α := B.mk
|