| class AddGroup (A : Type u) extends Zero A where | |
| gsmul : Int → A → A | |
| gsmul_zero' : ∀ a, gsmul 0 a = 0 | |
| class Ring (R : Type u) extends Zero R, AddGroup R | |
| #print Ring.mk | |
| #check { | |
| zero := 0 | |
| gsmul := fun x n => x.toNat * n | |
| gsmul_zero' := fun a => Nat.zero_mul _ | |
| : Ring Nat | |
| } |