lean4-htt/tests/lean/diamond9.lean
2022-02-03 09:17:14 -08:00

17 lines
395 B
Text

class Zero (A : Type u) where zero : A
instance {A} [Zero A] : OfNat A (nat_lit 0) := ⟨Zero.zero⟩
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
}