lean4-htt/tests/lean/755.lean
Leonardo de Moura a5b1b8de4f fix: bug at Offset.lean
Offset equalities should not assume default `Nat` instances for
numerals, `+`, `*`, and `-` have been used.

fixes #755
2021-11-08 18:27:25 -08:00

39 lines
1.2 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

def Additive (α : Type) := α
instance [OfNat α 1] : OfNat (Additive α) (nat_lit 0) := ⟨(1 : α)⟩
example : (0 : Nat) = (0 : Additive Nat) := rfl -- Error
def toA (a : Nat) : Additive Nat := a
def Foo (α : Type) := α
instance [OfNat α n] : OfNat (Foo α) n :=
inferInstanceAs (OfNat α n)
instance [HAdd α α α] : HMul (Foo α) (Foo α) (Foo α) where
hMul a b := let a : α := a; let b : α := b; let x : α := a + b; x
instance [HAdd α α α] : HSub (Foo α) (Foo α) (Foo α) where
hSub a b := let a : α := a; let b : α := b; let x : α := a + b; x
instance [HAdd α α α] : HAdd (Foo α) (Foo α) (Foo α) where
hAdd a b := let a : α := a; let b : α := b; let x : α := a + b + a; x
example : (2 : Nat) * (3 : Nat) = (2 : Foo Nat) * (3 : Foo Nat) :=
rfl -- Error
example : (2 : Nat) + (3 : Nat) = (2 : Foo Nat) + (3 : Foo Nat) :=
rfl -- Error
example : (2 : Nat) - (3 : Nat) = (2 : Foo Nat) - (3 : Foo Nat) :=
rfl -- Error
example : (2 : Nat) + (3 : Nat) = (2 : Foo Nat) * (3 : Foo Nat) :=
rfl
example : (2 : Nat) + (3 : Nat) + (2 : Nat) = (2 : Foo Nat) + (3 : Foo Nat) :=
rfl
example : (2 : Nat) + (3 : Nat) = (2 : Foo Nat) - (3 : Foo Nat) :=
rfl